summaryrefslogtreecommitdiffstats
path: root/tests/src/com/android/messaging/ui/attachmentchooser/AttachmentChooserFragmentTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/com/android/messaging/ui/attachmentchooser/AttachmentChooserFragmentTest.java')
-rw-r--r--tests/src/com/android/messaging/ui/attachmentchooser/AttachmentChooserFragmentTest.java172
1 files changed, 0 insertions, 172 deletions
diff --git a/tests/src/com/android/messaging/ui/attachmentchooser/AttachmentChooserFragmentTest.java b/tests/src/com/android/messaging/ui/attachmentchooser/AttachmentChooserFragmentTest.java
deleted file mode 100644
index 30c711b..0000000
--- a/tests/src/com/android/messaging/ui/attachmentchooser/AttachmentChooserFragmentTest.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.messaging.ui.attachmentchooser;
-
-import android.app.Fragment;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.widget.CheckBox;
-
-import com.android.messaging.FakeFactory;
-import com.android.messaging.R;
-import com.android.messaging.datamodel.DataModel;
-import com.android.messaging.datamodel.data.DraftMessageData;
-import com.android.messaging.datamodel.data.MessageData;
-import com.android.messaging.datamodel.data.MessagePartData;
-import com.android.messaging.datamodel.data.TestDataFactory;
-import com.android.messaging.ui.FragmentTestCase;
-import com.android.messaging.ui.TestActivity;
-import com.android.messaging.ui.TestActivity.FragmentEventListener;
-import com.android.messaging.ui.attachmentchooser.AttachmentChooserFragment;
-import com.android.messaging.ui.attachmentchooser.AttachmentGridItemView;
-import com.android.messaging.ui.attachmentchooser.AttachmentGridView;
-import com.android.messaging.ui.attachmentchooser.AttachmentChooserFragment.AttachmentChooserFragmentHost;
-import com.android.messaging.ui.conversationlist.ConversationListFragment;
-
-import org.mockito.ArgumentMatcher;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-
-/**
- * Unit tests for {@link ConversationListFragment}.
- */
-@LargeTest
-public class AttachmentChooserFragmentTest extends FragmentTestCase<AttachmentChooserFragment> {
-
- @Mock protected DataModel mockDataModel;
- @Mock protected DraftMessageData mockDraftMessageData;
- @Mock protected AttachmentChooserFragmentHost mockHost;
-
- private static final String CONVERSATION_ID = "cid";
-
- /** A custom argument matcher that checks whether the set argument passed in is a set
- * with identical attachment data as the given set.
- */
- private class IsSetOfGivenAttachments extends ArgumentMatcher<Set<MessagePartData>> {
- private final Set<MessagePartData> mGivenParts;
- public IsSetOfGivenAttachments(final Set<MessagePartData> givenParts) {
- mGivenParts = givenParts;
- }
-
- @Override
- public boolean matches(final Object set) {
- @SuppressWarnings("unchecked")
- final Set<MessagePartData> actualSet = (Set<MessagePartData>) set;
- if (actualSet.size() != mGivenParts.size()) {
- return false;
- }
- return mGivenParts.containsAll(actualSet) && actualSet.containsAll(mGivenParts);
- }
- }
-
- public AttachmentChooserFragmentTest() {
- super(AttachmentChooserFragment.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- FakeFactory.register(this.getInstrumentation().getTargetContext())
- .withDataModel(mockDataModel);
- }
-
- private void loadWith(final List<MessagePartData> attachments) {
- Mockito.when(mockDraftMessageData.isBound(Matchers.anyString()))
- .thenReturn(true);
- Mockito.doReturn(mockDraftMessageData)
- .when(mockDataModel)
- .createDraftMessageData(Mockito.anyString());
- Mockito.doReturn(attachments)
- .when(mockDraftMessageData)
- .getReadOnlyAttachments();
- Mockito.when(mockDataModel.createDraftMessageData(
- Matchers.anyString()))
- .thenReturn(mockDraftMessageData);
-
- // Create fragment synchronously to avoid need for volatile, synchronization etc.
- final AttachmentChooserFragment fragment = getFragment();
- // Binding to model happens when attaching fragment to activity, so hook into test
- // activity to do so.
- getActivity().setFragmentEventListener(new FragmentEventListener() {
- @Override
- public void onAttachFragment(final Fragment attachedFragment) {
- if (fragment == attachedFragment) {
- fragment.setConversationId(CONVERSATION_ID);
- }
- }
- });
-
- getActivity().runOnUiThread(new Runnable() {
- @Override
- public void run() {
- fragment.setHost(mockHost);
- getActivity().setFragment(fragment);
- Mockito.verify(mockDataModel).createDraftMessageData(
- Mockito.matches(CONVERSATION_ID));
- Mockito.verify(mockDraftMessageData).loadFromStorage(
- Matchers.eq(fragment.mBinding), Matchers.eq((MessageData) null),
- Matchers.eq(false));
- }
- });
- // Now load the cursor
- getActivity().runOnUiThread(new Runnable() {
- @Override
- public void run() {
- fragment.onDraftChanged(mockDraftMessageData, DraftMessageData.ALL_CHANGED);
- }
- });
- getInstrumentation().waitForIdleSync();
- }
-
- public void testUnselect() {
- final List<MessagePartData> attachments = TestDataFactory.getTestDraftAttachments();
- loadWith(attachments);
- final AttachmentGridView attachmentGridView = (AttachmentGridView)
- getFragment().getView().findViewById(R.id.grid);
- assertEquals("bad view count", attachments.size(),
- attachmentGridView.getAdapter().getCount());
-
- final AttachmentGridItemView itemView = (AttachmentGridItemView)
- attachmentGridView.getChildAt(0);
- assertEquals(attachmentGridView, itemView.testGetHostInterface());
- final CheckBox checkBox = (CheckBox) itemView.findViewById(R.id.checkbox);
- assertEquals(true, checkBox.isChecked());
- assertEquals(true, attachmentGridView.isItemSelected(itemView.mAttachmentData));
- clickButton(checkBox);
- assertEquals(false, checkBox.isChecked());
- assertEquals(false, attachmentGridView.isItemSelected(itemView.mAttachmentData));
-
- final AttachmentGridItemView itemView2 = (AttachmentGridItemView)
- attachmentGridView.getChildAt(1);
- final CheckBox checkBox2 = (CheckBox) itemView2.findViewById(R.id.checkbox);
- clickButton(checkBox2);
-
- getFragment().confirmSelection();
- final MessagePartData[] attachmentsToRemove = new MessagePartData[] {
- itemView.mAttachmentData, itemView2.mAttachmentData };
- Mockito.verify(mockDraftMessageData).removeExistingAttachments(Matchers.argThat(
- new IsSetOfGivenAttachments(new HashSet<>(Arrays.asList(attachmentsToRemove)))));
- Mockito.verify(mockDraftMessageData).saveToStorage(Matchers.eq(getFragment().mBinding));
- Mockito.verify(mockHost).onConfirmSelection();
- }
-}