Loading packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java +22 −8 Original line number Diff line number Diff line Loading @@ -820,9 +820,9 @@ public class DirectoryFragment extends Fragment { mModel.undoDeletion(); } else { mModel.finalizeDeletion( new Runnable() { new Model.DeletionListener() { @Override public void run() { public void onError() { Shared.makeSnackbar( activity, R.string.toast_failed_delete, Loading Loading @@ -1865,9 +1865,9 @@ public class DirectoryFragment extends Fragment { * @param view The view which will be used to interact with the user (e.g. surfacing * snackbars) for errors, info, etc. */ void finalizeDeletion(Runnable errorCallback) { void finalizeDeletion(DeletionListener listener) { final ContentResolver resolver = mContext.getContentResolver(); DeleteFilesTask task = new DeleteFilesTask(resolver, errorCallback); DeleteFilesTask task = new DeleteFilesTask(resolver, listener); task.execute(); } Loading @@ -1877,16 +1877,16 @@ public class DirectoryFragment extends Fragment { */ private class DeleteFilesTask extends AsyncTask<Void, Void, List<DocumentInfo>> { private ContentResolver mResolver; private Runnable mErrorCallback; private DeletionListener mListener; /** * @param resolver A ContentResolver for performing the actual file deletions. * @param errorCallback A Runnable that is executed in the event that one or more errors * occured while copying files. Execution will occur on the UI thread. */ public DeleteFilesTask(ContentResolver resolver, Runnable errorCallback) { public DeleteFilesTask(ContentResolver resolver, DeletionListener listener) { mResolver = resolver; mErrorCallback = errorCallback; mListener = listener; } @Override Loading Loading @@ -1920,13 +1920,27 @@ public class DirectoryFragment extends Fragment { if (hadTrouble) { // TODO show which files failed? b/23720103 mErrorCallback.run(); mListener.onError(); if (DEBUG) Log.d(TAG, "Deletion task completed. Some deletions failed."); } else { if (DEBUG) Log.d(TAG, "Deletion task completed successfully."); } mMarkedForDeletion.clear(); mListener.onCompletion(); } } static class DeletionListener { /** * Called when deletion has completed (regardless of whether an error occurred). */ void onCompletion() {} /** * Called at the end of a deletion operation that produced one or more errors. */ void onError() {} } void addUpdateListener(UpdateListener listener) { Loading packages/DocumentsUI/tests/src/com/android/documentsui/DirectoryFragmentModelTest.java +28 −9 Original line number Diff line number Diff line Loading @@ -34,6 +34,9 @@ import com.android.documentsui.MultiSelectManager.Selection; import com.android.documentsui.model.DocumentInfo; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; public class DirectoryFragmentModelTest extends AndroidTestCase { Loading Loading @@ -77,14 +80,6 @@ public class DirectoryFragmentModelTest extends AndroidTestCase { delete(2, 4); assertEquals(ITEM_COUNT - 2, model.getItemCount()); // Finalize the deletion. Provide a callback that just ignores errors. model.finalizeDeletion( new Runnable() { @Override public void run() {} }); assertEquals(ITEM_COUNT - 2, model.getItemCount()); } // Tests that the item count is correct after a deletion is undone. Loading @@ -95,7 +90,6 @@ public class DirectoryFragmentModelTest extends AndroidTestCase { // Undo the deletion model.undoDeletion(); assertEquals(ITEM_COUNT, model.getItemCount()); } // Tests that the right things are marked for deletion. Loading Loading @@ -125,6 +119,15 @@ public class DirectoryFragmentModelTest extends AndroidTestCase { assertEquals("0", docs.get(0).documentId); assertEquals("1", docs.get(1).documentId); assertEquals("4", docs.get(2).documentId); TestDeletionListener testListener = new TestDeletionListener(); model.finalizeDeletion(testListener); testListener.waitForDone(); docs = getDocumentInfo(0, 1, 2); assertEquals("0", docs.get(0).documentId); assertEquals("1", docs.get(1).documentId); assertEquals("2", docs.get(2).documentId); } // Tests that Model.getItem returns the right items after a deletion is undone. Loading Loading @@ -176,4 +179,20 @@ public class DirectoryFragmentModelTest extends AndroidTestCase { return null; } } private static class TestDeletionListener extends Model.DeletionListener { final CountDownLatch mSignal = new CountDownLatch(1); @Override public void onCompletion() { mSignal.countDown(); } public void waitForDone() { try { boolean timeout = mSignal.await(10, TimeUnit.SECONDS); assertTrue("Timed out waiting for deletion completion", timeout); } catch (InterruptedException e) {} } } } packages/DocumentsUI/tests/src/com/android/documentsui/MultiSelectManagerTest.java +34 −43 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import android.support.v7.widget.RecyclerView; import android.test.AndroidTestCase; import android.util.SparseBooleanArray; import android.view.MotionEvent; import android.view.View; Loading @@ -27,8 +28,6 @@ import android.view.ViewGroup; import com.android.documentsui.MultiSelectManager.Selection; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import java.util.ArrayList; Loading @@ -36,7 +35,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; public class MultiSelectManagerTest { public class MultiSelectManagerTest extends AndroidTestCase { private static final List<String> items; static { Loading @@ -54,7 +53,6 @@ public class MultiSelectManagerTest { private TestCallback mCallback; private EventHelper mEventHelper; @Before public void setUp() throws Exception { mAdapter = new TestAdapter(items); mCallback = new TestCallback(); Loading @@ -63,65 +61,61 @@ public class MultiSelectManagerTest { mManager.addCallback(mCallback); } @Test public void mouseClick_StartsSelectionMode() { public void testMouseClick_StartsSelectionMode() { click(7); assertSelection(7); } @Test public void mouseClick_ShiftClickExtendsSelection() { public void testMouseClick_NotifiesSelectionChanged() { click(7); mCallback.assertSelectionChanged(); } public void testMouseClick_ShiftClickExtendsSelection() { longPress(7); shiftClick(11); assertRangeSelection(7, 11); } @Test public void mouseClick_NoPosition_ClearsSelection() { public void testMouseClick_NoPosition_ClearsSelection() { longPress(7); click(11); click(RecyclerView.NO_POSITION); assertSelection(); } @Test public void setSelectionFocusBegin() { public void testSetSelectionFocusBegin() { mManager.setItemSelected(7, true); mManager.setSelectionFocusBegin(7); shiftClick(11); assertRangeSelection(7, 11); } @Test public void longPress_StartsSelectionMode() { public void testLongPress_StartsSelectionMode() { longPress(7); assertSelection(7); } @Test public void longPress_SecondPressExtendsSelection() { public void testLongPress_SecondPressExtendsSelection() { longPress(7); longPress(99); assertSelection(7, 99); } @Test public void singleTapUp_UnselectsSelectedItem() { public void testSingleTapUp_UnselectsSelectedItem() { longPress(7); tap(7); assertSelection(); } @Test public void singleTapUp_NoPosition_ClearsSelection() { public void testSingleTapUp_NoPosition_ClearsSelection() { longPress(7); tap(11); tap(RecyclerView.NO_POSITION); assertSelection(); } @Test public void singleTapUp_ExtendsSelection() { public void testSingleTapUp_ExtendsSelection() { longPress(99); tap(7); tap(13); Loading @@ -129,30 +123,26 @@ public class MultiSelectManagerTest { assertSelection(7, 99, 13, 129899); } @Test public void singleTapUp_ShiftCreatesRangeSelection() { public void testSingleTapUp_ShiftCreatesRangeSelection() { longPress(7); shiftTap(17); assertRangeSelection(7, 17); } @Test public void singleTapUp_ShiftCreatesRangeSeletion_Backwards() { public void testSingleTapUp_ShiftCreatesRangeSeletion_Backwards() { longPress(17); shiftTap(7); assertRangeSelection(7, 17); } @Test public void singleTapUp_SecondShiftClickExtendsSelection() { public void testSingleTapUp_SecondShiftClickExtendsSelection() { longPress(7); shiftTap(11); shiftTap(17); assertRangeSelection(7, 17); } @Test public void singleTapUp_MultipleContiguousRangesSelected() { public void testSingleTapUp_MultipleContiguousRangesSelected() { longPress(7); shiftTap(11); tap(20); Loading @@ -162,16 +152,14 @@ public class MultiSelectManagerTest { assertSelectionSize(11); } @Test public void singleTapUp_ShiftReducesSelectionRange_FromPreviousShiftClick() { public void testSingleTapUp_ShiftReducesSelectionRange_FromPreviousShiftClick() { longPress(7); shiftTap(17); shiftTap(10); assertRangeSelection(7, 10); } @Test public void singleTapUp_ShiftReducesSelectionRange_FromPreviousShiftClick_Backwards() { public void testSingleTapUp_ShiftReducesSelectionRange_FromPreviousShiftClick_Backwards() { mManager.onLongPress(TestInputEvent.tap(17)); shiftTap(7); shiftTap(14); Loading @@ -179,16 +167,14 @@ public class MultiSelectManagerTest { } @Test public void singleTapUp_ShiftReversesSelectionDirection() { public void testSingleTapUp_ShiftReversesSelectionDirection() { longPress(7); shiftTap(17); shiftTap(0); assertRangeSelection(0, 7); } @Test public void singleSelectMode() { public void testSingleSelectMode() { mManager = new MultiSelectManager(mAdapter, mEventHelper, MultiSelectManager.MODE_SINGLE); mManager.addCallback(mCallback); longPress(20); Loading @@ -196,8 +182,7 @@ public class MultiSelectManagerTest { assertSelection(13); } @Test public void singleSelectMode_ShiftTap() { public void testSingleSelectMode_ShiftTap() { mManager = new MultiSelectManager(mAdapter, mEventHelper, MultiSelectManager.MODE_SINGLE); mManager.addCallback(mCallback); longPress(13); Loading @@ -205,8 +190,7 @@ public class MultiSelectManagerTest { assertSelection(20); } @Test public void provisionaSelection() { public void testProvisionalSelection() { Selection s = mManager.getSelection(); assertSelection(); Loading Loading @@ -298,6 +282,7 @@ public class MultiSelectManagerTest { Set<Integer> ignored = new HashSet<>(); private int mLastChangedPosition; private boolean mLastChangedSelected; private boolean mSelectionChanged = false; @Override public void onItemStateChanged(int position, boolean selected) { Loading @@ -311,7 +296,13 @@ public class MultiSelectManagerTest { } @Override public void onSelectionChanged() {} public void onSelectionChanged() { mSelectionChanged = true; } void assertSelectionChanged() { assertTrue(mSelectionChanged); } } private static final class TestHolder extends RecyclerView.ViewHolder { Loading packages/DocumentsUI/tests/src/com/android/documentsui/MultiSelectManager_GridModelTest.java +3 −14 Original line number Diff line number Diff line Loading @@ -22,14 +22,12 @@ import static org.junit.Assert.assertTrue; import android.graphics.Point; import android.graphics.Rect; import android.support.v7.widget.RecyclerView.OnScrollListener; import android.test.AndroidTestCase; import android.util.SparseBooleanArray; import com.android.documentsui.MultiSelectManager.GridModel; import org.junit.After; import org.junit.Test; public class MultiSelectManager_GridModelTest { public class MultiSelectManager_GridModelTest extends AndroidTestCase { private static final int VIEW_PADDING_PX = 5; private static final int CHILD_VIEW_EDGE_PX = 100; Loading @@ -53,14 +51,13 @@ public class MultiSelectManager_GridModelTest { }); } @After @Override public void tearDown() { model = null; helper = null; lastSelection = null; } @Test public void testSelectionLeftOfItems() { setUp(20, 5); model.startSelection(new Point(0, 10)); Loading @@ -69,7 +66,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testSelectionRightOfItems() { setUp(20, 4); model.startSelection(new Point(viewWidth - 1, 10)); Loading @@ -78,7 +74,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testSelectionAboveItems() { setUp(20, 4); model.startSelection(new Point(10, 0)); Loading @@ -87,7 +82,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testSelectionBelowItems() { setUp(5, 4); model.startSelection(new Point(10, VIEWPORT_HEIGHT - 1)); Loading @@ -96,7 +90,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testVerticalSelectionBetweenItems() { setUp(20, 4); model.startSelection(new Point(106, 0)); Loading @@ -105,7 +98,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testHorizontalSelectionBetweenItems() { setUp(20, 4); model.startSelection(new Point(0, 105)); Loading @@ -114,7 +106,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testGrowingAndShrinkingSelection() { setUp(20, 4); model.startSelection(new Point(0, 0)); Loading Loading @@ -145,7 +136,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testSelectionMovingAroundOrigin() { setUp(16, 4); model.startSelection(new Point(210, 210)); Loading @@ -160,7 +150,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(10, model.getPositionNearestOrigin()); } @Test public void testScrollingBandSelect() { setUp(40, 4); model.startSelection(new Point(0, 0)); Loading packages/DocumentsUI/tests/src/com/android/documentsui/MultiSelectManager_SelectionTest.java +20 −36 Original line number Diff line number Diff line Loading @@ -18,16 +18,16 @@ package com.android.documentsui; import static org.junit.Assert.*; import android.test.AndroidTestCase; import com.android.documentsui.MultiSelectManager.Selection; import org.junit.Before; import org.junit.Test; public class MultiSelectManager_SelectionTest { public class MultiSelectManager_SelectionTest extends AndroidTestCase{ private Selection selection; @Before @Override public void setUp() throws Exception { selection = new Selection(); selection.add(3); Loading @@ -35,8 +35,7 @@ public class MultiSelectManager_SelectionTest { selection.add(9); } @Test public void add() { public void testAdd() { // We added in setUp. assertEquals(3, selection.size()); assertContains(3); Loading @@ -44,29 +43,25 @@ public class MultiSelectManager_SelectionTest { assertContains(9); } @Test public void remove() { public void testRemove() { selection.remove(3); selection.remove(5); assertEquals(1, selection.size()); assertContains(9); } @Test public void clear() { public void testClear() { selection.clear(); assertEquals(0, selection.size()); } @Test public void isEmpty() { public void testIsEmpty() { assertTrue(new Selection().isEmpty()); selection.clear(); assertTrue(selection.isEmpty()); } @Test public void sizeAndGet() { public void testSizeAndGet() { Selection other = new Selection(); for (int i = 0; i < selection.size(); i++) { other.add(selection.get(i)); Loading @@ -74,13 +69,11 @@ public class MultiSelectManager_SelectionTest { assertEquals(selection.size(), other.size()); } @Test public void equalsSelf() { public void testEqualsSelf() { assertEquals(selection, selection); } @Test public void equalsOther() { public void testEqualsOther() { Selection other = new Selection(); other.add(3); other.add(5); Loading @@ -89,23 +82,20 @@ public class MultiSelectManager_SelectionTest { assertEquals(selection.hashCode(), other.hashCode()); } @Test public void equalsCopy() { public void testEqualsCopy() { Selection other = new Selection(); other.copyFrom(selection); assertEquals(selection, other); assertEquals(selection.hashCode(), other.hashCode()); } @Test public void notEquals() { public void testNotEquals() { Selection other = new Selection(); other.add(789); assertFalse(selection.equals(other)); } @Test public void expandBefore() { public void testExpandBefore() { selection.expand(2, 10); assertEquals(3, selection.size()); assertContains(13); Loading @@ -113,8 +103,7 @@ public class MultiSelectManager_SelectionTest { assertContains(19); } @Test public void expandAfter() { public void testExpandAfter() { selection.expand(10, 10); assertEquals(3, selection.size()); assertContains(3); Loading @@ -122,8 +111,7 @@ public class MultiSelectManager_SelectionTest { assertContains(9); } @Test public void expandSplit() { public void testExpandSplit() { selection.expand(5, 10); assertEquals(3, selection.size()); assertContains(3); Loading @@ -131,8 +119,7 @@ public class MultiSelectManager_SelectionTest { assertContains(19); } @Test public void expandEncompased() { public void testExpandEncompased() { selection.expand(2, 10); assertEquals(3, selection.size()); assertContains(13); Loading @@ -140,8 +127,7 @@ public class MultiSelectManager_SelectionTest { assertContains(19); } @Test public void collapseBefore() { public void testCollapseBefore() { selection.collapse(0, 2); assertEquals(3, selection.size()); assertContains(1); Loading @@ -149,8 +135,7 @@ public class MultiSelectManager_SelectionTest { assertContains(7); } @Test public void collapseAfter() { public void testCollapseAfter() { selection.collapse(10, 10); assertEquals(3, selection.size()); assertContains(3); Loading @@ -158,8 +143,7 @@ public class MultiSelectManager_SelectionTest { assertContains(9); } @Test public void collapseAcross() { public void testCollapseAcross() { selection.collapse(0, 10); assertEquals(0, selection.size()); } Loading Loading
packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java +22 −8 Original line number Diff line number Diff line Loading @@ -820,9 +820,9 @@ public class DirectoryFragment extends Fragment { mModel.undoDeletion(); } else { mModel.finalizeDeletion( new Runnable() { new Model.DeletionListener() { @Override public void run() { public void onError() { Shared.makeSnackbar( activity, R.string.toast_failed_delete, Loading Loading @@ -1865,9 +1865,9 @@ public class DirectoryFragment extends Fragment { * @param view The view which will be used to interact with the user (e.g. surfacing * snackbars) for errors, info, etc. */ void finalizeDeletion(Runnable errorCallback) { void finalizeDeletion(DeletionListener listener) { final ContentResolver resolver = mContext.getContentResolver(); DeleteFilesTask task = new DeleteFilesTask(resolver, errorCallback); DeleteFilesTask task = new DeleteFilesTask(resolver, listener); task.execute(); } Loading @@ -1877,16 +1877,16 @@ public class DirectoryFragment extends Fragment { */ private class DeleteFilesTask extends AsyncTask<Void, Void, List<DocumentInfo>> { private ContentResolver mResolver; private Runnable mErrorCallback; private DeletionListener mListener; /** * @param resolver A ContentResolver for performing the actual file deletions. * @param errorCallback A Runnable that is executed in the event that one or more errors * occured while copying files. Execution will occur on the UI thread. */ public DeleteFilesTask(ContentResolver resolver, Runnable errorCallback) { public DeleteFilesTask(ContentResolver resolver, DeletionListener listener) { mResolver = resolver; mErrorCallback = errorCallback; mListener = listener; } @Override Loading Loading @@ -1920,13 +1920,27 @@ public class DirectoryFragment extends Fragment { if (hadTrouble) { // TODO show which files failed? b/23720103 mErrorCallback.run(); mListener.onError(); if (DEBUG) Log.d(TAG, "Deletion task completed. Some deletions failed."); } else { if (DEBUG) Log.d(TAG, "Deletion task completed successfully."); } mMarkedForDeletion.clear(); mListener.onCompletion(); } } static class DeletionListener { /** * Called when deletion has completed (regardless of whether an error occurred). */ void onCompletion() {} /** * Called at the end of a deletion operation that produced one or more errors. */ void onError() {} } void addUpdateListener(UpdateListener listener) { Loading
packages/DocumentsUI/tests/src/com/android/documentsui/DirectoryFragmentModelTest.java +28 −9 Original line number Diff line number Diff line Loading @@ -34,6 +34,9 @@ import com.android.documentsui.MultiSelectManager.Selection; import com.android.documentsui.model.DocumentInfo; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; public class DirectoryFragmentModelTest extends AndroidTestCase { Loading Loading @@ -77,14 +80,6 @@ public class DirectoryFragmentModelTest extends AndroidTestCase { delete(2, 4); assertEquals(ITEM_COUNT - 2, model.getItemCount()); // Finalize the deletion. Provide a callback that just ignores errors. model.finalizeDeletion( new Runnable() { @Override public void run() {} }); assertEquals(ITEM_COUNT - 2, model.getItemCount()); } // Tests that the item count is correct after a deletion is undone. Loading @@ -95,7 +90,6 @@ public class DirectoryFragmentModelTest extends AndroidTestCase { // Undo the deletion model.undoDeletion(); assertEquals(ITEM_COUNT, model.getItemCount()); } // Tests that the right things are marked for deletion. Loading Loading @@ -125,6 +119,15 @@ public class DirectoryFragmentModelTest extends AndroidTestCase { assertEquals("0", docs.get(0).documentId); assertEquals("1", docs.get(1).documentId); assertEquals("4", docs.get(2).documentId); TestDeletionListener testListener = new TestDeletionListener(); model.finalizeDeletion(testListener); testListener.waitForDone(); docs = getDocumentInfo(0, 1, 2); assertEquals("0", docs.get(0).documentId); assertEquals("1", docs.get(1).documentId); assertEquals("2", docs.get(2).documentId); } // Tests that Model.getItem returns the right items after a deletion is undone. Loading Loading @@ -176,4 +179,20 @@ public class DirectoryFragmentModelTest extends AndroidTestCase { return null; } } private static class TestDeletionListener extends Model.DeletionListener { final CountDownLatch mSignal = new CountDownLatch(1); @Override public void onCompletion() { mSignal.countDown(); } public void waitForDone() { try { boolean timeout = mSignal.await(10, TimeUnit.SECONDS); assertTrue("Timed out waiting for deletion completion", timeout); } catch (InterruptedException e) {} } } }
packages/DocumentsUI/tests/src/com/android/documentsui/MultiSelectManagerTest.java +34 −43 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import android.support.v7.widget.RecyclerView; import android.test.AndroidTestCase; import android.util.SparseBooleanArray; import android.view.MotionEvent; import android.view.View; Loading @@ -27,8 +28,6 @@ import android.view.ViewGroup; import com.android.documentsui.MultiSelectManager.Selection; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import java.util.ArrayList; Loading @@ -36,7 +35,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; public class MultiSelectManagerTest { public class MultiSelectManagerTest extends AndroidTestCase { private static final List<String> items; static { Loading @@ -54,7 +53,6 @@ public class MultiSelectManagerTest { private TestCallback mCallback; private EventHelper mEventHelper; @Before public void setUp() throws Exception { mAdapter = new TestAdapter(items); mCallback = new TestCallback(); Loading @@ -63,65 +61,61 @@ public class MultiSelectManagerTest { mManager.addCallback(mCallback); } @Test public void mouseClick_StartsSelectionMode() { public void testMouseClick_StartsSelectionMode() { click(7); assertSelection(7); } @Test public void mouseClick_ShiftClickExtendsSelection() { public void testMouseClick_NotifiesSelectionChanged() { click(7); mCallback.assertSelectionChanged(); } public void testMouseClick_ShiftClickExtendsSelection() { longPress(7); shiftClick(11); assertRangeSelection(7, 11); } @Test public void mouseClick_NoPosition_ClearsSelection() { public void testMouseClick_NoPosition_ClearsSelection() { longPress(7); click(11); click(RecyclerView.NO_POSITION); assertSelection(); } @Test public void setSelectionFocusBegin() { public void testSetSelectionFocusBegin() { mManager.setItemSelected(7, true); mManager.setSelectionFocusBegin(7); shiftClick(11); assertRangeSelection(7, 11); } @Test public void longPress_StartsSelectionMode() { public void testLongPress_StartsSelectionMode() { longPress(7); assertSelection(7); } @Test public void longPress_SecondPressExtendsSelection() { public void testLongPress_SecondPressExtendsSelection() { longPress(7); longPress(99); assertSelection(7, 99); } @Test public void singleTapUp_UnselectsSelectedItem() { public void testSingleTapUp_UnselectsSelectedItem() { longPress(7); tap(7); assertSelection(); } @Test public void singleTapUp_NoPosition_ClearsSelection() { public void testSingleTapUp_NoPosition_ClearsSelection() { longPress(7); tap(11); tap(RecyclerView.NO_POSITION); assertSelection(); } @Test public void singleTapUp_ExtendsSelection() { public void testSingleTapUp_ExtendsSelection() { longPress(99); tap(7); tap(13); Loading @@ -129,30 +123,26 @@ public class MultiSelectManagerTest { assertSelection(7, 99, 13, 129899); } @Test public void singleTapUp_ShiftCreatesRangeSelection() { public void testSingleTapUp_ShiftCreatesRangeSelection() { longPress(7); shiftTap(17); assertRangeSelection(7, 17); } @Test public void singleTapUp_ShiftCreatesRangeSeletion_Backwards() { public void testSingleTapUp_ShiftCreatesRangeSeletion_Backwards() { longPress(17); shiftTap(7); assertRangeSelection(7, 17); } @Test public void singleTapUp_SecondShiftClickExtendsSelection() { public void testSingleTapUp_SecondShiftClickExtendsSelection() { longPress(7); shiftTap(11); shiftTap(17); assertRangeSelection(7, 17); } @Test public void singleTapUp_MultipleContiguousRangesSelected() { public void testSingleTapUp_MultipleContiguousRangesSelected() { longPress(7); shiftTap(11); tap(20); Loading @@ -162,16 +152,14 @@ public class MultiSelectManagerTest { assertSelectionSize(11); } @Test public void singleTapUp_ShiftReducesSelectionRange_FromPreviousShiftClick() { public void testSingleTapUp_ShiftReducesSelectionRange_FromPreviousShiftClick() { longPress(7); shiftTap(17); shiftTap(10); assertRangeSelection(7, 10); } @Test public void singleTapUp_ShiftReducesSelectionRange_FromPreviousShiftClick_Backwards() { public void testSingleTapUp_ShiftReducesSelectionRange_FromPreviousShiftClick_Backwards() { mManager.onLongPress(TestInputEvent.tap(17)); shiftTap(7); shiftTap(14); Loading @@ -179,16 +167,14 @@ public class MultiSelectManagerTest { } @Test public void singleTapUp_ShiftReversesSelectionDirection() { public void testSingleTapUp_ShiftReversesSelectionDirection() { longPress(7); shiftTap(17); shiftTap(0); assertRangeSelection(0, 7); } @Test public void singleSelectMode() { public void testSingleSelectMode() { mManager = new MultiSelectManager(mAdapter, mEventHelper, MultiSelectManager.MODE_SINGLE); mManager.addCallback(mCallback); longPress(20); Loading @@ -196,8 +182,7 @@ public class MultiSelectManagerTest { assertSelection(13); } @Test public void singleSelectMode_ShiftTap() { public void testSingleSelectMode_ShiftTap() { mManager = new MultiSelectManager(mAdapter, mEventHelper, MultiSelectManager.MODE_SINGLE); mManager.addCallback(mCallback); longPress(13); Loading @@ -205,8 +190,7 @@ public class MultiSelectManagerTest { assertSelection(20); } @Test public void provisionaSelection() { public void testProvisionalSelection() { Selection s = mManager.getSelection(); assertSelection(); Loading Loading @@ -298,6 +282,7 @@ public class MultiSelectManagerTest { Set<Integer> ignored = new HashSet<>(); private int mLastChangedPosition; private boolean mLastChangedSelected; private boolean mSelectionChanged = false; @Override public void onItemStateChanged(int position, boolean selected) { Loading @@ -311,7 +296,13 @@ public class MultiSelectManagerTest { } @Override public void onSelectionChanged() {} public void onSelectionChanged() { mSelectionChanged = true; } void assertSelectionChanged() { assertTrue(mSelectionChanged); } } private static final class TestHolder extends RecyclerView.ViewHolder { Loading
packages/DocumentsUI/tests/src/com/android/documentsui/MultiSelectManager_GridModelTest.java +3 −14 Original line number Diff line number Diff line Loading @@ -22,14 +22,12 @@ import static org.junit.Assert.assertTrue; import android.graphics.Point; import android.graphics.Rect; import android.support.v7.widget.RecyclerView.OnScrollListener; import android.test.AndroidTestCase; import android.util.SparseBooleanArray; import com.android.documentsui.MultiSelectManager.GridModel; import org.junit.After; import org.junit.Test; public class MultiSelectManager_GridModelTest { public class MultiSelectManager_GridModelTest extends AndroidTestCase { private static final int VIEW_PADDING_PX = 5; private static final int CHILD_VIEW_EDGE_PX = 100; Loading @@ -53,14 +51,13 @@ public class MultiSelectManager_GridModelTest { }); } @After @Override public void tearDown() { model = null; helper = null; lastSelection = null; } @Test public void testSelectionLeftOfItems() { setUp(20, 5); model.startSelection(new Point(0, 10)); Loading @@ -69,7 +66,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testSelectionRightOfItems() { setUp(20, 4); model.startSelection(new Point(viewWidth - 1, 10)); Loading @@ -78,7 +74,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testSelectionAboveItems() { setUp(20, 4); model.startSelection(new Point(10, 0)); Loading @@ -87,7 +82,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testSelectionBelowItems() { setUp(5, 4); model.startSelection(new Point(10, VIEWPORT_HEIGHT - 1)); Loading @@ -96,7 +90,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testVerticalSelectionBetweenItems() { setUp(20, 4); model.startSelection(new Point(106, 0)); Loading @@ -105,7 +98,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testHorizontalSelectionBetweenItems() { setUp(20, 4); model.startSelection(new Point(0, 105)); Loading @@ -114,7 +106,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testGrowingAndShrinkingSelection() { setUp(20, 4); model.startSelection(new Point(0, 0)); Loading Loading @@ -145,7 +136,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(GridModel.NOT_SET, model.getPositionNearestOrigin()); } @Test public void testSelectionMovingAroundOrigin() { setUp(16, 4); model.startSelection(new Point(210, 210)); Loading @@ -160,7 +150,6 @@ public class MultiSelectManager_GridModelTest { assertEquals(10, model.getPositionNearestOrigin()); } @Test public void testScrollingBandSelect() { setUp(40, 4); model.startSelection(new Point(0, 0)); Loading
packages/DocumentsUI/tests/src/com/android/documentsui/MultiSelectManager_SelectionTest.java +20 −36 Original line number Diff line number Diff line Loading @@ -18,16 +18,16 @@ package com.android.documentsui; import static org.junit.Assert.*; import android.test.AndroidTestCase; import com.android.documentsui.MultiSelectManager.Selection; import org.junit.Before; import org.junit.Test; public class MultiSelectManager_SelectionTest { public class MultiSelectManager_SelectionTest extends AndroidTestCase{ private Selection selection; @Before @Override public void setUp() throws Exception { selection = new Selection(); selection.add(3); Loading @@ -35,8 +35,7 @@ public class MultiSelectManager_SelectionTest { selection.add(9); } @Test public void add() { public void testAdd() { // We added in setUp. assertEquals(3, selection.size()); assertContains(3); Loading @@ -44,29 +43,25 @@ public class MultiSelectManager_SelectionTest { assertContains(9); } @Test public void remove() { public void testRemove() { selection.remove(3); selection.remove(5); assertEquals(1, selection.size()); assertContains(9); } @Test public void clear() { public void testClear() { selection.clear(); assertEquals(0, selection.size()); } @Test public void isEmpty() { public void testIsEmpty() { assertTrue(new Selection().isEmpty()); selection.clear(); assertTrue(selection.isEmpty()); } @Test public void sizeAndGet() { public void testSizeAndGet() { Selection other = new Selection(); for (int i = 0; i < selection.size(); i++) { other.add(selection.get(i)); Loading @@ -74,13 +69,11 @@ public class MultiSelectManager_SelectionTest { assertEquals(selection.size(), other.size()); } @Test public void equalsSelf() { public void testEqualsSelf() { assertEquals(selection, selection); } @Test public void equalsOther() { public void testEqualsOther() { Selection other = new Selection(); other.add(3); other.add(5); Loading @@ -89,23 +82,20 @@ public class MultiSelectManager_SelectionTest { assertEquals(selection.hashCode(), other.hashCode()); } @Test public void equalsCopy() { public void testEqualsCopy() { Selection other = new Selection(); other.copyFrom(selection); assertEquals(selection, other); assertEquals(selection.hashCode(), other.hashCode()); } @Test public void notEquals() { public void testNotEquals() { Selection other = new Selection(); other.add(789); assertFalse(selection.equals(other)); } @Test public void expandBefore() { public void testExpandBefore() { selection.expand(2, 10); assertEquals(3, selection.size()); assertContains(13); Loading @@ -113,8 +103,7 @@ public class MultiSelectManager_SelectionTest { assertContains(19); } @Test public void expandAfter() { public void testExpandAfter() { selection.expand(10, 10); assertEquals(3, selection.size()); assertContains(3); Loading @@ -122,8 +111,7 @@ public class MultiSelectManager_SelectionTest { assertContains(9); } @Test public void expandSplit() { public void testExpandSplit() { selection.expand(5, 10); assertEquals(3, selection.size()); assertContains(3); Loading @@ -131,8 +119,7 @@ public class MultiSelectManager_SelectionTest { assertContains(19); } @Test public void expandEncompased() { public void testExpandEncompased() { selection.expand(2, 10); assertEquals(3, selection.size()); assertContains(13); Loading @@ -140,8 +127,7 @@ public class MultiSelectManager_SelectionTest { assertContains(19); } @Test public void collapseBefore() { public void testCollapseBefore() { selection.collapse(0, 2); assertEquals(3, selection.size()); assertContains(1); Loading @@ -149,8 +135,7 @@ public class MultiSelectManager_SelectionTest { assertContains(7); } @Test public void collapseAfter() { public void testCollapseAfter() { selection.collapse(10, 10); assertEquals(3, selection.size()); assertContains(3); Loading @@ -158,8 +143,7 @@ public class MultiSelectManager_SelectionTest { assertContains(9); } @Test public void collapseAcross() { public void testCollapseAcross() { selection.collapse(0, 10); assertEquals(0, selection.size()); } Loading