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 |