Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
|
Michael van Ouwerkerk
2017/04/04 13:54:31
nit: 2017
Finnur
2017/04/04 16:13:36
Done.
| |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 package org.chromium.chrome.browser.widget.selection; | |
| 6 | |
| 7 import static org.junit.Assert.assertEquals; | |
| 8 | |
| 9 import org.junit.Test; | |
| 10 import org.junit.runner.RunWith; | |
| 11 import org.robolectric.annotation.Config; | |
| 12 | |
| 13 import org.chromium.testing.local.LocalRobolectricTestRunner; | |
| 14 | |
| 15 import java.util.List; | |
| 16 | |
| 17 /** | |
| 18 * Tests for the SelectionDelegate class. | |
|
Michael van Ouwerkerk
2017/04/04 13:54:31
nit: {@link SelectionDelegate}
Finnur
2017/04/04 16:13:36
Done.
| |
| 19 */ | |
| 20 @RunWith(LocalRobolectricTestRunner.class) | |
| 21 @Config(manifest = Config.NONE) | |
| 22 public class SelectionDelegateTest implements SelectionDelegate.SelectionObserve r<Object> { | |
| 23 private SelectionDelegate<Object> mDelegate; | |
|
Michael van Ouwerkerk
2017/04/04 13:54:31
It seems cleaner to track this state on a per-test
Finnur
2017/04/04 16:13:36
Done.
| |
| 24 | |
| 25 private final Object mData1 = new Object(); | |
| 26 private final Object mData2 = new Object(); | |
| 27 private final Object mData3 = new Object(); | |
| 28 | |
| 29 private List<Object> mSelectedItems; | |
|
Michael van Ouwerkerk
2017/04/04 13:54:31
Same for this member, I'd avoid changing member st
Finnur
2017/04/04 16:13:36
Done.
| |
| 30 | |
| 31 // SelectionDelegate.SelectionObserver: | |
| 32 | |
| 33 public void onSelectionStateChange(List<Object> selectedItems) { | |
| 34 mSelectedItems = selectedItems; | |
| 35 assertEquals(selectedItems, mDelegate.getSelectedItems()); | |
| 36 } | |
| 37 | |
| 38 @Test | |
| 39 public void testSelectionDelegateSingle() { | |
| 40 mDelegate = new SelectionDelegate<Object>(); | |
| 41 mDelegate.setSingleSelectionMode(); | |
| 42 | |
| 43 mDelegate.addObserver(this); | |
| 44 | |
| 45 // Starting state, nothing is selected. | |
| 46 assertEquals(false, mDelegate.isItemSelected(mData1)); | |
|
Michael van Ouwerkerk
2017/04/04 13:54:31
Use assertFalse and assertTrue.
Finnur
2017/04/04 16:13:36
Done.
| |
| 47 assertEquals(false, mDelegate.isSelectionEnabled()); | |
| 48 | |
| 49 // Select first item and verify selection. | |
| 50 mDelegate.toggleSelectionForItem(mData1); | |
| 51 assertEquals(1, mSelectedItems.size()); | |
| 52 assertEquals(true, mDelegate.isItemSelected(mData1)); | |
| 53 assertEquals(true, mDelegate.isSelectionEnabled()); | |
| 54 | |
| 55 // Select second item, first item gets unselected. | |
| 56 mDelegate.toggleSelectionForItem(mData2); | |
| 57 assertEquals(1, mSelectedItems.size()); | |
| 58 assertEquals(false, mDelegate.isItemSelected(mData1)); | |
| 59 assertEquals(true, mDelegate.isItemSelected(mData2)); | |
| 60 assertEquals(true, mDelegate.isSelectionEnabled()); | |
| 61 | |
| 62 // Unselect second item. | |
| 63 mDelegate.toggleSelectionForItem(mData2); | |
| 64 assertEquals(0, mSelectedItems.size()); | |
| 65 assertEquals(false, mDelegate.isItemSelected(mData2)); | |
| 66 assertEquals(false, mDelegate.isSelectionEnabled()); | |
| 67 | |
| 68 // Test clearing selection. | |
| 69 mDelegate.toggleSelectionForItem(mData1); | |
| 70 mDelegate.clearSelection(); | |
| 71 assertEquals(0, mSelectedItems.size()); | |
| 72 assertEquals(false, mDelegate.isItemSelected(mData2)); | |
| 73 assertEquals(false, mDelegate.isSelectionEnabled()); | |
| 74 | |
| 75 mDelegate.removeObserver(this); | |
| 76 } | |
| 77 | |
| 78 @Test | |
| 79 public void testSelectionDelegateMulti() { | |
| 80 mDelegate = new SelectionDelegate<Object>(); | |
| 81 | |
| 82 mDelegate.addObserver(this); | |
| 83 | |
| 84 // Starting state, nothing is selected. | |
| 85 assertEquals(false, mDelegate.isItemSelected(mData1)); | |
| 86 assertEquals(false, mDelegate.isSelectionEnabled()); | |
| 87 | |
| 88 // Select first item and verify selection. | |
| 89 mDelegate.toggleSelectionForItem(mData1); | |
| 90 assertEquals(1, mSelectedItems.size()); | |
| 91 assertEquals(true, mDelegate.isItemSelected(mData1)); | |
| 92 assertEquals(true, mDelegate.isSelectionEnabled()); | |
| 93 | |
| 94 // Select second item, first item does not get unselected. | |
| 95 mDelegate.toggleSelectionForItem(mData2); | |
| 96 assertEquals(2, mSelectedItems.size()); | |
| 97 assertEquals(true, mDelegate.isItemSelected(mData1)); | |
| 98 assertEquals(true, mDelegate.isItemSelected(mData2)); | |
| 99 assertEquals(true, mDelegate.isSelectionEnabled()); | |
| 100 | |
| 101 // Unselect second item. | |
| 102 mDelegate.toggleSelectionForItem(mData2); | |
| 103 assertEquals(1, mSelectedItems.size()); | |
| 104 assertEquals(false, mDelegate.isItemSelected(mData2)); | |
| 105 assertEquals(true, mDelegate.isItemSelected(mData1)); | |
| 106 assertEquals(true, mDelegate.isSelectionEnabled()); | |
| 107 | |
| 108 // Test clearing selection. | |
| 109 mDelegate.clearSelection(); | |
| 110 assertEquals(0, mSelectedItems.size()); | |
| 111 assertEquals(false, mDelegate.isItemSelected(mData1)); | |
| 112 assertEquals(false, mDelegate.isItemSelected(mData2)); | |
| 113 assertEquals(false, mDelegate.isSelectionEnabled()); | |
| 114 | |
| 115 mDelegate.removeObserver(this); | |
| 116 } | |
| 117 } | |
| OLD | NEW |