OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/views/chooser_content_view.h" | 5 #include "chrome/browser/ui/views/chooser_content_view.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 // No option selected. | 87 // No option selected. |
88 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 88 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
89 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 89 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
90 EXPECT_FALSE(throbber_->visible()); | 90 EXPECT_FALSE(throbber_->visible()); |
91 EXPECT_TRUE(discovery_state_->text().empty()); | 91 EXPECT_TRUE(discovery_state_->text().empty()); |
92 } | 92 } |
93 | 93 |
94 TEST_F(ChooserContentViewTest, AddOption) { | 94 TEST_F(ChooserContentViewTest, AddOption) { |
95 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0); | 95 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0); |
96 | 96 |
97 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 97 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
| 98 MockChooserController::kNoImage); |
98 EXPECT_EQ(1, table_view_->RowCount()); | 99 EXPECT_EQ(1, table_view_->RowCount()); |
99 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 100 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); |
100 // |table_view_| should be enabled since there is an option. | 101 // |table_view_| should be enabled since there is an option. |
101 EXPECT_TRUE(table_view_->enabled()); | 102 EXPECT_TRUE(table_view_->enabled()); |
102 // No option selected. | 103 // No option selected. |
103 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 104 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
104 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 105 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
105 | 106 |
106 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 107 mock_chooser_controller_->OptionAdded( |
| 108 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
107 EXPECT_EQ(2, table_view_->RowCount()); | 109 EXPECT_EQ(2, table_view_->RowCount()); |
108 EXPECT_EQ(base::ASCIIToUTF16("b"), table_model_->GetText(1, 0)); | 110 EXPECT_EQ(base::ASCIIToUTF16("b"), table_model_->GetText(1, 0)); |
109 EXPECT_TRUE(table_view_->enabled()); | 111 EXPECT_TRUE(table_view_->enabled()); |
110 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 112 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
111 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 113 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
112 | 114 |
113 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 115 mock_chooser_controller_->OptionAdded( |
| 116 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
114 EXPECT_EQ(3, table_view_->RowCount()); | 117 EXPECT_EQ(3, table_view_->RowCount()); |
115 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); | 118 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); |
116 EXPECT_TRUE(table_view_->enabled()); | 119 EXPECT_TRUE(table_view_->enabled()); |
117 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 120 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
118 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 121 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
119 } | 122 } |
120 | 123 |
121 TEST_F(ChooserContentViewTest, RemoveOption) { | 124 TEST_F(ChooserContentViewTest, RemoveOption) { |
122 // Called from TableView::OnItemsRemoved(). | 125 // Called from TableView::OnItemsRemoved(). |
123 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); | 126 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); |
124 | 127 |
125 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 128 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
126 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 129 MockChooserController::kNoImage); |
127 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 130 mock_chooser_controller_->OptionAdded( |
| 131 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
| 132 mock_chooser_controller_->OptionAdded( |
| 133 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
128 | 134 |
129 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 135 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
130 EXPECT_EQ(2, table_view_->RowCount()); | 136 EXPECT_EQ(2, table_view_->RowCount()); |
131 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 137 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); |
132 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); | 138 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); |
133 EXPECT_TRUE(table_view_->enabled()); | 139 EXPECT_TRUE(table_view_->enabled()); |
134 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 140 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
135 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 141 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
136 | 142 |
137 // Remove a non-existent option, the number of rows should not change. | 143 // Remove a non-existent option, the number of rows should not change. |
(...skipping 21 matching lines...) Expand all Loading... |
159 table_model_->GetText(0, 0)); | 165 table_model_->GetText(0, 0)); |
160 // |table_view_| should be disabled since all options are removed. | 166 // |table_view_| should be disabled since all options are removed. |
161 EXPECT_FALSE(table_view_->enabled()); | 167 EXPECT_FALSE(table_view_->enabled()); |
162 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 168 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
163 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 169 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
164 } | 170 } |
165 | 171 |
166 TEST_F(ChooserContentViewTest, UpdateOption) { | 172 TEST_F(ChooserContentViewTest, UpdateOption) { |
167 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0); | 173 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0); |
168 | 174 |
169 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 175 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
170 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 176 MockChooserController::kNoImage); |
171 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 177 mock_chooser_controller_->OptionAdded( |
| 178 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
| 179 mock_chooser_controller_->OptionAdded( |
| 180 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
172 | 181 |
173 mock_chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | 182 mock_chooser_controller_->OptionUpdated( |
174 base::ASCIIToUTF16("d")); | 183 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), |
| 184 MockChooserController::kSignalStrengthLevel2Bar); |
175 EXPECT_EQ(3, table_view_->RowCount()); | 185 EXPECT_EQ(3, table_view_->RowCount()); |
176 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 186 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); |
177 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0)); | 187 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0)); |
178 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); | 188 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); |
179 EXPECT_TRUE(table_view_->enabled()); | 189 EXPECT_TRUE(table_view_->enabled()); |
180 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 190 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
181 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 191 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
182 } | 192 } |
183 | 193 |
184 TEST_F(ChooserContentViewTest, AddAndRemoveOption) { | 194 TEST_F(ChooserContentViewTest, AddAndRemoveOption) { |
185 // Called from TableView::OnItemsRemoved(). | 195 // Called from TableView::OnItemsRemoved(). |
186 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); | 196 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); |
187 | 197 |
188 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 198 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
| 199 MockChooserController::kNoImage); |
189 EXPECT_EQ(1, table_view_->RowCount()); | 200 EXPECT_EQ(1, table_view_->RowCount()); |
190 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 201 mock_chooser_controller_->OptionAdded( |
| 202 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
191 EXPECT_EQ(2, table_view_->RowCount()); | 203 EXPECT_EQ(2, table_view_->RowCount()); |
192 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 204 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
193 EXPECT_EQ(1, table_view_->RowCount()); | 205 EXPECT_EQ(1, table_view_->RowCount()); |
194 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 206 mock_chooser_controller_->OptionAdded( |
| 207 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
195 EXPECT_EQ(2, table_view_->RowCount()); | 208 EXPECT_EQ(2, table_view_->RowCount()); |
196 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("d")); | 209 mock_chooser_controller_->OptionAdded( |
| 210 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar); |
197 EXPECT_EQ(3, table_view_->RowCount()); | 211 EXPECT_EQ(3, table_view_->RowCount()); |
198 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); | 212 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); |
199 EXPECT_EQ(2, table_view_->RowCount()); | 213 EXPECT_EQ(2, table_view_->RowCount()); |
200 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); | 214 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); |
201 EXPECT_EQ(1, table_view_->RowCount()); | 215 EXPECT_EQ(1, table_view_->RowCount()); |
202 } | 216 } |
203 | 217 |
204 TEST_F(ChooserContentViewTest, UpdateAndRemoveTheUpdatedOption) { | 218 TEST_F(ChooserContentViewTest, UpdateAndRemoveTheUpdatedOption) { |
205 // Called from TableView::OnItemsRemoved(). | 219 // Called from TableView::OnItemsRemoved(). |
206 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1); | 220 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1); |
207 | 221 |
208 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 222 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
209 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 223 MockChooserController::kNoImage); |
210 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 224 mock_chooser_controller_->OptionAdded( |
| 225 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
| 226 mock_chooser_controller_->OptionAdded( |
| 227 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
211 | 228 |
212 mock_chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | 229 mock_chooser_controller_->OptionUpdated( |
213 base::ASCIIToUTF16("d")); | 230 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), |
| 231 MockChooserController::kSignalStrengthLevel2Bar); |
214 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); | 232 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); |
215 | 233 |
216 EXPECT_EQ(2, table_view_->RowCount()); | 234 EXPECT_EQ(2, table_view_->RowCount()); |
217 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 235 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); |
218 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); | 236 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); |
219 EXPECT_TRUE(table_view_->enabled()); | 237 EXPECT_TRUE(table_view_->enabled()); |
220 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 238 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
221 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 239 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
222 } | 240 } |
223 | 241 |
224 TEST_F(ChooserContentViewTest, SelectAndDeselectAnOption) { | 242 TEST_F(ChooserContentViewTest, SelectAndDeselectAnOption) { |
225 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(4); | 243 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(4); |
226 | 244 |
227 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 245 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
228 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 246 MockChooserController::kNoImage); |
229 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 247 mock_chooser_controller_->OptionAdded( |
| 248 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
| 249 mock_chooser_controller_->OptionAdded( |
| 250 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
230 | 251 |
231 // Select option 0. | 252 // Select option 0. |
232 table_view_->Select(0); | 253 table_view_->Select(0); |
233 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 254 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
234 EXPECT_EQ(0, table_view_->FirstSelectedRow()); | 255 EXPECT_EQ(0, table_view_->FirstSelectedRow()); |
235 | 256 |
236 // Unselect option 0. | 257 // Unselect option 0. |
237 table_view_->Select(-1); | 258 table_view_->Select(-1); |
238 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 259 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
239 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 260 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
240 | 261 |
241 // Select option 1. | 262 // Select option 1. |
242 table_view_->Select(1); | 263 table_view_->Select(1); |
243 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 264 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
244 EXPECT_EQ(1, table_view_->FirstSelectedRow()); | 265 EXPECT_EQ(1, table_view_->FirstSelectedRow()); |
245 | 266 |
246 // Unselect option 1. | 267 // Unselect option 1. |
247 table_view_->Select(-1); | 268 table_view_->Select(-1); |
248 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 269 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
249 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 270 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
250 } | 271 } |
251 | 272 |
252 TEST_F(ChooserContentViewTest, SelectAnOptionAndThenSelectAnotherOption) { | 273 TEST_F(ChooserContentViewTest, SelectAnOptionAndThenSelectAnotherOption) { |
253 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); | 274 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); |
254 | 275 |
255 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 276 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
256 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 277 MockChooserController::kNoImage); |
257 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 278 mock_chooser_controller_->OptionAdded( |
| 279 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
| 280 mock_chooser_controller_->OptionAdded( |
| 281 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
258 | 282 |
259 // Select option 0. | 283 // Select option 0. |
260 table_view_->Select(0); | 284 table_view_->Select(0); |
261 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 285 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
262 EXPECT_EQ(0, table_view_->FirstSelectedRow()); | 286 EXPECT_EQ(0, table_view_->FirstSelectedRow()); |
263 | 287 |
264 // Select option 1. | 288 // Select option 1. |
265 table_view_->Select(1); | 289 table_view_->Select(1); |
266 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 290 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
267 EXPECT_EQ(1, table_view_->FirstSelectedRow()); | 291 EXPECT_EQ(1, table_view_->FirstSelectedRow()); |
268 | 292 |
269 // Select option 2. | 293 // Select option 2. |
270 table_view_->Select(2); | 294 table_view_->Select(2); |
271 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 295 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
272 EXPECT_EQ(2, table_view_->FirstSelectedRow()); | 296 EXPECT_EQ(2, table_view_->FirstSelectedRow()); |
273 } | 297 } |
274 | 298 |
275 TEST_F(ChooserContentViewTest, SelectAnOptionAndRemoveAnotherOption) { | 299 TEST_F(ChooserContentViewTest, SelectAnOptionAndRemoveAnotherOption) { |
276 // Called one time from TableView::Select() and two times from | 300 // Called one time from TableView::Select() and two times from |
277 // TableView::OnItemsRemoved(). | 301 // TableView::OnItemsRemoved(). |
278 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); | 302 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); |
279 | 303 |
280 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 304 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
281 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 305 MockChooserController::kNoImage); |
282 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 306 mock_chooser_controller_->OptionAdded( |
| 307 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
| 308 mock_chooser_controller_->OptionAdded( |
| 309 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
283 | 310 |
284 // Select option 1. | 311 // Select option 1. |
285 table_view_->Select(1); | 312 table_view_->Select(1); |
286 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 313 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
287 EXPECT_EQ(1, table_view_->FirstSelectedRow()); | 314 EXPECT_EQ(1, table_view_->FirstSelectedRow()); |
288 | 315 |
289 // Remove option 0, the list becomes: b c. | 316 // Remove option 0, the list becomes: b c. |
290 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); | 317 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); |
291 EXPECT_EQ(2, table_view_->RowCount()); | 318 EXPECT_EQ(2, table_view_->RowCount()); |
292 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 319 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
293 // Since option 0 is removed, the original selected option 1 becomes | 320 // Since option 0 is removed, the original selected option 1 becomes |
294 // the first option in the list. | 321 // the first option in the list. |
295 EXPECT_EQ(0, table_view_->FirstSelectedRow()); | 322 EXPECT_EQ(0, table_view_->FirstSelectedRow()); |
296 | 323 |
297 // Remove option 1. | 324 // Remove option 1. |
298 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); | 325 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); |
299 EXPECT_EQ(1, table_view_->RowCount()); | 326 EXPECT_EQ(1, table_view_->RowCount()); |
300 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 327 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
301 EXPECT_EQ(0, table_view_->FirstSelectedRow()); | 328 EXPECT_EQ(0, table_view_->FirstSelectedRow()); |
302 } | 329 } |
303 | 330 |
304 TEST_F(ChooserContentViewTest, SelectAnOptionAndRemoveTheSelectedOption) { | 331 TEST_F(ChooserContentViewTest, SelectAnOptionAndRemoveTheSelectedOption) { |
305 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); | 332 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); |
306 | 333 |
307 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 334 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
308 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 335 MockChooserController::kNoImage); |
309 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 336 mock_chooser_controller_->OptionAdded( |
| 337 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
| 338 mock_chooser_controller_->OptionAdded( |
| 339 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
310 | 340 |
311 // Select option 1. | 341 // Select option 1. |
312 table_view_->Select(1); | 342 table_view_->Select(1); |
313 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 343 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
314 EXPECT_EQ(1, table_view_->FirstSelectedRow()); | 344 EXPECT_EQ(1, table_view_->FirstSelectedRow()); |
315 | 345 |
316 // Remove option 1. | 346 // Remove option 1. |
317 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 347 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
318 EXPECT_EQ(2, table_view_->RowCount()); | 348 EXPECT_EQ(2, table_view_->RowCount()); |
319 // No option selected. | 349 // No option selected. |
320 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 350 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
321 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 351 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
322 } | 352 } |
323 | 353 |
324 TEST_F(ChooserContentViewTest, SelectAnOptionAndUpdateTheSelectedOption) { | 354 TEST_F(ChooserContentViewTest, SelectAnOptionAndUpdateTheSelectedOption) { |
325 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1); | 355 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1); |
326 | 356 |
327 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 357 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
328 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 358 MockChooserController::kNoImage); |
329 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 359 mock_chooser_controller_->OptionAdded( |
| 360 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
| 361 mock_chooser_controller_->OptionAdded( |
| 362 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
330 | 363 |
331 // Select option 1. | 364 // Select option 1. |
332 table_view_->Select(1); | 365 table_view_->Select(1); |
333 | 366 |
334 // Update option 1. | 367 // Update option 1. |
335 mock_chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | 368 mock_chooser_controller_->OptionUpdated( |
336 base::ASCIIToUTF16("d")); | 369 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), |
| 370 MockChooserController::kSignalStrengthLevel2Bar); |
337 | 371 |
338 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 372 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
339 EXPECT_EQ(1, table_view_->FirstSelectedRow()); | 373 EXPECT_EQ(1, table_view_->FirstSelectedRow()); |
340 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 374 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); |
341 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0)); | 375 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0)); |
342 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); | 376 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); |
343 } | 377 } |
344 | 378 |
345 TEST_F(ChooserContentViewTest, | 379 TEST_F(ChooserContentViewTest, |
346 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { | 380 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { |
347 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); | 381 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); |
348 | 382 |
349 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 383 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
| 384 MockChooserController::kNoImage); |
350 | 385 |
351 // Select option 0. | 386 // Select option 0. |
352 table_view_->Select(0); | 387 table_view_->Select(0); |
353 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 388 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
354 EXPECT_EQ(0, table_view_->FirstSelectedRow()); | 389 EXPECT_EQ(0, table_view_->FirstSelectedRow()); |
355 | 390 |
356 // Remove option 0. | 391 // Remove option 0. |
357 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); | 392 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); |
358 // There is no option shown now. But since "No devices found." | 393 // There is no option shown now. But since "No devices found." |
359 // needs to be displayed on the |table_view_|, the number of rows is 1. | 394 // needs to be displayed on the |table_view_|, the number of rows is 1. |
(...skipping 23 matching lines...) Expand all Loading... |
383 // |table_view_| should be disabled since there is no option shown. | 418 // |table_view_| should be disabled since there is no option shown. |
384 EXPECT_FALSE(table_view_->enabled()); | 419 EXPECT_FALSE(table_view_->enabled()); |
385 // No option selected. | 420 // No option selected. |
386 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 421 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
387 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 422 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
388 EXPECT_FALSE(throbber_->visible()); | 423 EXPECT_FALSE(throbber_->visible()); |
389 EXPECT_TRUE(discovery_state_->enabled()); | 424 EXPECT_TRUE(discovery_state_->enabled()); |
390 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN), | 425 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN), |
391 discovery_state_->text()); | 426 discovery_state_->text()); |
392 | 427 |
393 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 428 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
394 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 429 MockChooserController::kNoImage); |
395 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 430 mock_chooser_controller_->OptionAdded( |
| 431 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
| 432 mock_chooser_controller_->OptionAdded( |
| 433 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
396 table_view_->Select(1); | 434 table_view_->Select(1); |
397 | 435 |
398 mock_chooser_controller_->OnAdapterPresenceChanged( | 436 mock_chooser_controller_->OnAdapterPresenceChanged( |
399 content::BluetoothChooser::AdapterPresence::POWERED_OFF); | 437 content::BluetoothChooser::AdapterPresence::POWERED_OFF); |
400 EXPECT_EQ(0u, mock_chooser_controller_->NumOptions()); | 438 EXPECT_EQ(0u, mock_chooser_controller_->NumOptions()); |
401 EXPECT_TRUE(table_view_->visible()); | 439 EXPECT_TRUE(table_view_->visible()); |
402 // Since "Bluetooth turned off." needs to be displayed on the |table_view_|, | 440 // Since "Bluetooth turned off." needs to be displayed on the |table_view_|, |
403 // the number of rows is 1. | 441 // the number of rows is 1. |
404 EXPECT_EQ(1, table_view_->RowCount()); | 442 EXPECT_EQ(1, table_view_->RowCount()); |
405 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_ADAPTER_OFF), | 443 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_ADAPTER_OFF), |
(...skipping 20 matching lines...) Expand all Loading... |
426 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 464 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
427 EXPECT_FALSE(throbber_->visible()); | 465 EXPECT_FALSE(throbber_->visible()); |
428 EXPECT_TRUE(discovery_state_->enabled()); | 466 EXPECT_TRUE(discovery_state_->enabled()); |
429 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN), | 467 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN), |
430 discovery_state_->text()); | 468 discovery_state_->text()); |
431 } | 469 } |
432 | 470 |
433 TEST_F(ChooserContentViewTest, DiscoveringAndNoOptionAddedAndIdle) { | 471 TEST_F(ChooserContentViewTest, DiscoveringAndNoOptionAddedAndIdle) { |
434 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); | 472 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); |
435 | 473 |
436 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 474 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
437 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 475 MockChooserController::kNoImage); |
438 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 476 mock_chooser_controller_->OptionAdded( |
| 477 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
| 478 mock_chooser_controller_->OptionAdded( |
| 479 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
439 table_view_->Select(1); | 480 table_view_->Select(1); |
440 | 481 |
441 mock_chooser_controller_->OnDiscoveryStateChanged( | 482 mock_chooser_controller_->OnDiscoveryStateChanged( |
442 content::BluetoothChooser::DiscoveryState::DISCOVERING); | 483 content::BluetoothChooser::DiscoveryState::DISCOVERING); |
443 EXPECT_FALSE(table_view_->visible()); | 484 EXPECT_FALSE(table_view_->visible()); |
444 EXPECT_TRUE(throbber_->visible()); | 485 EXPECT_TRUE(throbber_->visible()); |
445 // |discovery_state_| is disabled and shows a label instead of a link. | 486 // |discovery_state_| is disabled and shows a label instead of a link. |
446 EXPECT_FALSE(discovery_state_->enabled()); | 487 EXPECT_FALSE(discovery_state_->enabled()); |
447 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING), | 488 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING), |
448 discovery_state_->text()); | 489 discovery_state_->text()); |
(...skipping 15 matching lines...) Expand all Loading... |
464 EXPECT_FALSE(throbber_->visible()); | 505 EXPECT_FALSE(throbber_->visible()); |
465 // |discovery_state_| is enabled and shows a link. | 506 // |discovery_state_| is enabled and shows a link. |
466 EXPECT_TRUE(discovery_state_->enabled()); | 507 EXPECT_TRUE(discovery_state_->enabled()); |
467 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN), | 508 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN), |
468 discovery_state_->text()); | 509 discovery_state_->text()); |
469 } | 510 } |
470 | 511 |
471 TEST_F(ChooserContentViewTest, DiscoveringAndOneOptionAddedAndSelectedAndIdle) { | 512 TEST_F(ChooserContentViewTest, DiscoveringAndOneOptionAddedAndSelectedAndIdle) { |
472 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); | 513 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); |
473 | 514 |
474 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 515 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), |
475 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 516 MockChooserController::kNoImage); |
476 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 517 mock_chooser_controller_->OptionAdded( |
| 518 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); |
| 519 mock_chooser_controller_->OptionAdded( |
| 520 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); |
477 table_view_->Select(1); | 521 table_view_->Select(1); |
478 | 522 |
479 mock_chooser_controller_->OnDiscoveryStateChanged( | 523 mock_chooser_controller_->OnDiscoveryStateChanged( |
480 content::BluetoothChooser::DiscoveryState::DISCOVERING); | 524 content::BluetoothChooser::DiscoveryState::DISCOVERING); |
481 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("d")); | 525 mock_chooser_controller_->OptionAdded( |
| 526 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar); |
482 EXPECT_TRUE(table_view_->visible()); | 527 EXPECT_TRUE(table_view_->visible()); |
483 EXPECT_EQ(1, table_view_->RowCount()); | 528 EXPECT_EQ(1, table_view_->RowCount()); |
484 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(0, 0)); | 529 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(0, 0)); |
485 // |table_view_| should be enabled since there is an option. | 530 // |table_view_| should be enabled since there is an option. |
486 EXPECT_TRUE(table_view_->enabled()); | 531 EXPECT_TRUE(table_view_->enabled()); |
487 // No option selected. | 532 // No option selected. |
488 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 533 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
489 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 534 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
490 EXPECT_FALSE(throbber_->visible()); | 535 EXPECT_FALSE(throbber_->visible()); |
491 // |discovery_state_| is disabled and shows a label instead of a link. | 536 // |discovery_state_| is disabled and shows a label instead of a link. |
(...skipping 22 matching lines...) Expand all Loading... |
514 | 559 |
515 TEST_F(ChooserContentViewTest, ClickRescanLink) { | 560 TEST_F(ChooserContentViewTest, ClickRescanLink) { |
516 EXPECT_CALL(*mock_chooser_controller_, RefreshOptions()).Times(1); | 561 EXPECT_CALL(*mock_chooser_controller_, RefreshOptions()).Times(1); |
517 chooser_content_view_->LinkClicked(nullptr, 0); | 562 chooser_content_view_->LinkClicked(nullptr, 0); |
518 } | 563 } |
519 | 564 |
520 TEST_F(ChooserContentViewTest, ClickStyledLabelLink) { | 565 TEST_F(ChooserContentViewTest, ClickStyledLabelLink) { |
521 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); | 566 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); |
522 styled_label_->LinkClicked(nullptr, 0); | 567 styled_label_->LinkClicked(nullptr, 0); |
523 } | 568 } |
OLD | NEW |