Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1661)

Side by Side Diff: chrome/browser/ui/views/chooser_content_view_unittest.cc

Issue 2304213002: Show device connection and paired status in chooser on Mac (Closed)
Patch Set: use vector icons Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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(
98 MockChooserController::kNoImage); 98 base::ASCIIToUTF16("a"),
99 MockChooserController::kNoSignalStrengthLevelImage,
100 MockChooserController::kConnected, MockChooserController::kPaired);
99 EXPECT_EQ(1, table_view_->RowCount()); 101 EXPECT_EQ(1, table_view_->RowCount());
100 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); 102 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0));
101 // |table_view_| should be enabled since there is an option. 103 // |table_view_| should be enabled since there is an option.
102 EXPECT_TRUE(table_view_->enabled()); 104 EXPECT_TRUE(table_view_->enabled());
103 // No option selected. 105 // No option selected.
104 EXPECT_EQ(0, table_view_->SelectedRowCount()); 106 EXPECT_EQ(0, table_view_->SelectedRowCount());
105 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 107 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
106 108
107 mock_chooser_controller_->OptionAdded( 109 mock_chooser_controller_->OptionAdded(
108 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 110 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
111 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
109 EXPECT_EQ(2, table_view_->RowCount()); 112 EXPECT_EQ(2, table_view_->RowCount());
110 EXPECT_EQ(base::ASCIIToUTF16("b"), table_model_->GetText(1, 0)); 113 EXPECT_EQ(base::ASCIIToUTF16("b"), table_model_->GetText(1, 0));
111 EXPECT_TRUE(table_view_->enabled()); 114 EXPECT_TRUE(table_view_->enabled());
112 EXPECT_EQ(0, table_view_->SelectedRowCount()); 115 EXPECT_EQ(0, table_view_->SelectedRowCount());
113 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 116 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
114 117
115 mock_chooser_controller_->OptionAdded( 118 mock_chooser_controller_->OptionAdded(
116 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 119 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
120 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
117 EXPECT_EQ(3, table_view_->RowCount()); 121 EXPECT_EQ(3, table_view_->RowCount());
118 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); 122 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0));
119 EXPECT_TRUE(table_view_->enabled()); 123 EXPECT_TRUE(table_view_->enabled());
120 EXPECT_EQ(0, table_view_->SelectedRowCount()); 124 EXPECT_EQ(0, table_view_->SelectedRowCount());
121 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 125 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
122 } 126 }
123 127
124 TEST_F(ChooserContentViewTest, RemoveOption) { 128 TEST_F(ChooserContentViewTest, RemoveOption) {
125 // Called from TableView::OnItemsRemoved(). 129 // Called from TableView::OnItemsRemoved().
126 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); 130 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3);
127 131
128 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"),
129 MockChooserController::kNoImage);
130 mock_chooser_controller_->OptionAdded( 132 mock_chooser_controller_->OptionAdded(
131 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 133 base::ASCIIToUTF16("a"),
134 MockChooserController::kNoSignalStrengthLevelImage,
135 MockChooserController::kConnected, MockChooserController::kPaired);
132 mock_chooser_controller_->OptionAdded( 136 mock_chooser_controller_->OptionAdded(
133 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 137 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
138 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
139 mock_chooser_controller_->OptionAdded(
140 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
141 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
134 142
135 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); 143 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b"));
136 EXPECT_EQ(2, table_view_->RowCount()); 144 EXPECT_EQ(2, table_view_->RowCount());
137 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); 145 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0));
138 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); 146 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0));
139 EXPECT_TRUE(table_view_->enabled()); 147 EXPECT_TRUE(table_view_->enabled());
140 EXPECT_EQ(0, table_view_->SelectedRowCount()); 148 EXPECT_EQ(0, table_view_->SelectedRowCount());
141 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 149 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
142 150
143 // Remove a non-existent option, the number of rows should not change. 151 // Remove a non-existent option, the number of rows should not change.
(...skipping 21 matching lines...) Expand all
165 table_model_->GetText(0, 0)); 173 table_model_->GetText(0, 0));
166 // |table_view_| should be disabled since all options are removed. 174 // |table_view_| should be disabled since all options are removed.
167 EXPECT_FALSE(table_view_->enabled()); 175 EXPECT_FALSE(table_view_->enabled());
168 EXPECT_EQ(0, table_view_->SelectedRowCount()); 176 EXPECT_EQ(0, table_view_->SelectedRowCount());
169 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 177 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
170 } 178 }
171 179
172 TEST_F(ChooserContentViewTest, UpdateOption) { 180 TEST_F(ChooserContentViewTest, UpdateOption) {
173 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0); 181 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0);
174 182
175 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"),
176 MockChooserController::kNoImage);
177 mock_chooser_controller_->OptionAdded( 183 mock_chooser_controller_->OptionAdded(
178 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 184 base::ASCIIToUTF16("a"),
185 MockChooserController::kNoSignalStrengthLevelImage,
186 MockChooserController::kConnected, MockChooserController::kPaired);
179 mock_chooser_controller_->OptionAdded( 187 mock_chooser_controller_->OptionAdded(
180 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 188 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
189 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
190 mock_chooser_controller_->OptionAdded(
191 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
192 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
181 193
182 mock_chooser_controller_->OptionUpdated( 194 mock_chooser_controller_->OptionUpdated(
183 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), 195 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"),
184 MockChooserController::kSignalStrengthLevel2Bar); 196 MockChooserController::kNoSignalStrengthLevelImage,
197 MockChooserController::kConnected, MockChooserController::kPaired);
185 EXPECT_EQ(3, table_view_->RowCount()); 198 EXPECT_EQ(3, table_view_->RowCount());
186 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); 199 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0));
187 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0)); 200 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0));
188 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); 201 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0));
189 EXPECT_TRUE(table_view_->enabled()); 202 EXPECT_TRUE(table_view_->enabled());
190 EXPECT_EQ(0, table_view_->SelectedRowCount()); 203 EXPECT_EQ(0, table_view_->SelectedRowCount());
191 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 204 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
192 } 205 }
193 206
194 TEST_F(ChooserContentViewTest, AddAndRemoveOption) { 207 TEST_F(ChooserContentViewTest, AddAndRemoveOption) {
195 // Called from TableView::OnItemsRemoved(). 208 // Called from TableView::OnItemsRemoved().
196 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); 209 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3);
197 210
198 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), 211 mock_chooser_controller_->OptionAdded(
199 MockChooserController::kNoImage); 212 base::ASCIIToUTF16("a"),
213 MockChooserController::kNoSignalStrengthLevelImage,
214 MockChooserController::kConnected, MockChooserController::kPaired);
200 EXPECT_EQ(1, table_view_->RowCount()); 215 EXPECT_EQ(1, table_view_->RowCount());
201 mock_chooser_controller_->OptionAdded( 216 mock_chooser_controller_->OptionAdded(
202 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 217 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
218 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
203 EXPECT_EQ(2, table_view_->RowCount()); 219 EXPECT_EQ(2, table_view_->RowCount());
204 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); 220 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b"));
205 EXPECT_EQ(1, table_view_->RowCount()); 221 EXPECT_EQ(1, table_view_->RowCount());
206 mock_chooser_controller_->OptionAdded( 222 mock_chooser_controller_->OptionAdded(
207 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 223 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
224 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
208 EXPECT_EQ(2, table_view_->RowCount()); 225 EXPECT_EQ(2, table_view_->RowCount());
209 mock_chooser_controller_->OptionAdded( 226 mock_chooser_controller_->OptionAdded(
210 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar); 227 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar,
228 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
211 EXPECT_EQ(3, table_view_->RowCount()); 229 EXPECT_EQ(3, table_view_->RowCount());
212 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); 230 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d"));
213 EXPECT_EQ(2, table_view_->RowCount()); 231 EXPECT_EQ(2, table_view_->RowCount());
214 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); 232 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c"));
215 EXPECT_EQ(1, table_view_->RowCount()); 233 EXPECT_EQ(1, table_view_->RowCount());
216 } 234 }
217 235
218 TEST_F(ChooserContentViewTest, UpdateAndRemoveTheUpdatedOption) { 236 TEST_F(ChooserContentViewTest, UpdateAndRemoveTheUpdatedOption) {
219 // Called from TableView::OnItemsRemoved(). 237 // Called from TableView::OnItemsRemoved().
220 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1); 238 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1);
221 239
222 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"),
223 MockChooserController::kNoImage);
224 mock_chooser_controller_->OptionAdded( 240 mock_chooser_controller_->OptionAdded(
225 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 241 base::ASCIIToUTF16("a"),
242 MockChooserController::kNoSignalStrengthLevelImage,
243 MockChooserController::kConnected, MockChooserController::kPaired);
226 mock_chooser_controller_->OptionAdded( 244 mock_chooser_controller_->OptionAdded(
227 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 245 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
246 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
247 mock_chooser_controller_->OptionAdded(
248 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
249 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
228 250
229 mock_chooser_controller_->OptionUpdated( 251 mock_chooser_controller_->OptionUpdated(
230 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), 252 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"),
231 MockChooserController::kSignalStrengthLevel2Bar); 253 MockChooserController::kNoSignalStrengthLevelImage,
254 MockChooserController::kConnected, MockChooserController::kPaired);
232 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); 255 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d"));
233 256
234 EXPECT_EQ(2, table_view_->RowCount()); 257 EXPECT_EQ(2, table_view_->RowCount());
235 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); 258 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0));
236 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); 259 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0));
237 EXPECT_TRUE(table_view_->enabled()); 260 EXPECT_TRUE(table_view_->enabled());
238 EXPECT_EQ(0, table_view_->SelectedRowCount()); 261 EXPECT_EQ(0, table_view_->SelectedRowCount());
239 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 262 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
240 } 263 }
241 264
242 TEST_F(ChooserContentViewTest, SelectAndDeselectAnOption) { 265 TEST_F(ChooserContentViewTest, SelectAndDeselectAnOption) {
243 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(4); 266 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(4);
244 267
245 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"),
246 MockChooserController::kNoImage);
247 mock_chooser_controller_->OptionAdded( 268 mock_chooser_controller_->OptionAdded(
248 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 269 base::ASCIIToUTF16("a"),
270 MockChooserController::kNoSignalStrengthLevelImage,
271 MockChooserController::kConnected, MockChooserController::kPaired);
249 mock_chooser_controller_->OptionAdded( 272 mock_chooser_controller_->OptionAdded(
250 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 273 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
274 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
275 mock_chooser_controller_->OptionAdded(
276 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
277 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
251 278
252 // Select option 0. 279 // Select option 0.
253 table_view_->Select(0); 280 table_view_->Select(0);
254 EXPECT_EQ(1, table_view_->SelectedRowCount()); 281 EXPECT_EQ(1, table_view_->SelectedRowCount());
255 EXPECT_EQ(0, table_view_->FirstSelectedRow()); 282 EXPECT_EQ(0, table_view_->FirstSelectedRow());
256 283
257 // Unselect option 0. 284 // Unselect option 0.
258 table_view_->Select(-1); 285 table_view_->Select(-1);
259 EXPECT_EQ(0, table_view_->SelectedRowCount()); 286 EXPECT_EQ(0, table_view_->SelectedRowCount());
260 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 287 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
261 288
262 // Select option 1. 289 // Select option 1.
263 table_view_->Select(1); 290 table_view_->Select(1);
264 EXPECT_EQ(1, table_view_->SelectedRowCount()); 291 EXPECT_EQ(1, table_view_->SelectedRowCount());
265 EXPECT_EQ(1, table_view_->FirstSelectedRow()); 292 EXPECT_EQ(1, table_view_->FirstSelectedRow());
266 293
267 // Unselect option 1. 294 // Unselect option 1.
268 table_view_->Select(-1); 295 table_view_->Select(-1);
269 EXPECT_EQ(0, table_view_->SelectedRowCount()); 296 EXPECT_EQ(0, table_view_->SelectedRowCount());
270 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 297 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
271 } 298 }
272 299
273 TEST_F(ChooserContentViewTest, SelectAnOptionAndThenSelectAnotherOption) { 300 TEST_F(ChooserContentViewTest, SelectAnOptionAndThenSelectAnotherOption) {
274 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); 301 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3);
275 302
276 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"),
277 MockChooserController::kNoImage);
278 mock_chooser_controller_->OptionAdded( 303 mock_chooser_controller_->OptionAdded(
279 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 304 base::ASCIIToUTF16("a"),
305 MockChooserController::kNoSignalStrengthLevelImage,
306 MockChooserController::kConnected, MockChooserController::kPaired);
280 mock_chooser_controller_->OptionAdded( 307 mock_chooser_controller_->OptionAdded(
281 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 308 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
309 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
310 mock_chooser_controller_->OptionAdded(
311 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
312 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
282 313
283 // Select option 0. 314 // Select option 0.
284 table_view_->Select(0); 315 table_view_->Select(0);
285 EXPECT_EQ(1, table_view_->SelectedRowCount()); 316 EXPECT_EQ(1, table_view_->SelectedRowCount());
286 EXPECT_EQ(0, table_view_->FirstSelectedRow()); 317 EXPECT_EQ(0, table_view_->FirstSelectedRow());
287 318
288 // Select option 1. 319 // Select option 1.
289 table_view_->Select(1); 320 table_view_->Select(1);
290 EXPECT_EQ(1, table_view_->SelectedRowCount()); 321 EXPECT_EQ(1, table_view_->SelectedRowCount());
291 EXPECT_EQ(1, table_view_->FirstSelectedRow()); 322 EXPECT_EQ(1, table_view_->FirstSelectedRow());
292 323
293 // Select option 2. 324 // Select option 2.
294 table_view_->Select(2); 325 table_view_->Select(2);
295 EXPECT_EQ(1, table_view_->SelectedRowCount()); 326 EXPECT_EQ(1, table_view_->SelectedRowCount());
296 EXPECT_EQ(2, table_view_->FirstSelectedRow()); 327 EXPECT_EQ(2, table_view_->FirstSelectedRow());
297 } 328 }
298 329
299 TEST_F(ChooserContentViewTest, SelectAnOptionAndRemoveAnotherOption) { 330 TEST_F(ChooserContentViewTest, SelectAnOptionAndRemoveAnotherOption) {
300 // Called one time from TableView::Select() and two times from 331 // Called one time from TableView::Select() and two times from
301 // TableView::OnItemsRemoved(). 332 // TableView::OnItemsRemoved().
302 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); 333 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3);
303 334
304 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"),
305 MockChooserController::kNoImage);
306 mock_chooser_controller_->OptionAdded( 335 mock_chooser_controller_->OptionAdded(
307 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 336 base::ASCIIToUTF16("a"),
337 MockChooserController::kNoSignalStrengthLevelImage,
338 MockChooserController::kConnected, MockChooserController::kPaired);
308 mock_chooser_controller_->OptionAdded( 339 mock_chooser_controller_->OptionAdded(
309 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 340 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
341 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
342 mock_chooser_controller_->OptionAdded(
343 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
344 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
310 345
311 // Select option 1. 346 // Select option 1.
312 table_view_->Select(1); 347 table_view_->Select(1);
313 EXPECT_EQ(1, table_view_->SelectedRowCount()); 348 EXPECT_EQ(1, table_view_->SelectedRowCount());
314 EXPECT_EQ(1, table_view_->FirstSelectedRow()); 349 EXPECT_EQ(1, table_view_->FirstSelectedRow());
315 350
316 // Remove option 0, the list becomes: b c. 351 // Remove option 0, the list becomes: b c.
317 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); 352 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a"));
318 EXPECT_EQ(2, table_view_->RowCount()); 353 EXPECT_EQ(2, table_view_->RowCount());
319 EXPECT_EQ(1, table_view_->SelectedRowCount()); 354 EXPECT_EQ(1, table_view_->SelectedRowCount());
320 // Since option 0 is removed, the original selected option 1 becomes 355 // Since option 0 is removed, the original selected option 1 becomes
321 // the first option in the list. 356 // the first option in the list.
322 EXPECT_EQ(0, table_view_->FirstSelectedRow()); 357 EXPECT_EQ(0, table_view_->FirstSelectedRow());
323 358
324 // Remove option 1. 359 // Remove option 1.
325 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); 360 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c"));
326 EXPECT_EQ(1, table_view_->RowCount()); 361 EXPECT_EQ(1, table_view_->RowCount());
327 EXPECT_EQ(1, table_view_->SelectedRowCount()); 362 EXPECT_EQ(1, table_view_->SelectedRowCount());
328 EXPECT_EQ(0, table_view_->FirstSelectedRow()); 363 EXPECT_EQ(0, table_view_->FirstSelectedRow());
329 } 364 }
330 365
331 TEST_F(ChooserContentViewTest, SelectAnOptionAndRemoveTheSelectedOption) { 366 TEST_F(ChooserContentViewTest, SelectAnOptionAndRemoveTheSelectedOption) {
332 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); 367 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2);
333 368
334 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"),
335 MockChooserController::kNoImage);
336 mock_chooser_controller_->OptionAdded( 369 mock_chooser_controller_->OptionAdded(
337 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 370 base::ASCIIToUTF16("a"),
371 MockChooserController::kNoSignalStrengthLevelImage,
372 MockChooserController::kConnected, MockChooserController::kPaired);
338 mock_chooser_controller_->OptionAdded( 373 mock_chooser_controller_->OptionAdded(
339 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 374 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
375 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
376 mock_chooser_controller_->OptionAdded(
377 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
378 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
340 379
341 // Select option 1. 380 // Select option 1.
342 table_view_->Select(1); 381 table_view_->Select(1);
343 EXPECT_EQ(1, table_view_->SelectedRowCount()); 382 EXPECT_EQ(1, table_view_->SelectedRowCount());
344 EXPECT_EQ(1, table_view_->FirstSelectedRow()); 383 EXPECT_EQ(1, table_view_->FirstSelectedRow());
345 384
346 // Remove option 1. 385 // Remove option 1.
347 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); 386 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b"));
348 EXPECT_EQ(2, table_view_->RowCount()); 387 EXPECT_EQ(2, table_view_->RowCount());
349 // No option selected. 388 // No option selected.
350 EXPECT_EQ(0, table_view_->SelectedRowCount()); 389 EXPECT_EQ(0, table_view_->SelectedRowCount());
351 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 390 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
352 } 391 }
353 392
354 TEST_F(ChooserContentViewTest, SelectAnOptionAndUpdateTheSelectedOption) { 393 TEST_F(ChooserContentViewTest, SelectAnOptionAndUpdateTheSelectedOption) {
355 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1); 394 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1);
356 395
357 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"),
358 MockChooserController::kNoImage);
359 mock_chooser_controller_->OptionAdded( 396 mock_chooser_controller_->OptionAdded(
360 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 397 base::ASCIIToUTF16("a"),
398 MockChooserController::kNoSignalStrengthLevelImage,
399 MockChooserController::kConnected, MockChooserController::kPaired);
361 mock_chooser_controller_->OptionAdded( 400 mock_chooser_controller_->OptionAdded(
362 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 401 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
402 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
403 mock_chooser_controller_->OptionAdded(
404 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
405 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
363 406
364 // Select option 1. 407 // Select option 1.
365 table_view_->Select(1); 408 table_view_->Select(1);
366 409
367 // Update option 1. 410 // Update option 1.
368 mock_chooser_controller_->OptionUpdated( 411 mock_chooser_controller_->OptionUpdated(
369 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), 412 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"),
370 MockChooserController::kSignalStrengthLevel2Bar); 413 MockChooserController::kNoSignalStrengthLevelImage,
414 MockChooserController::kConnected, MockChooserController::kPaired);
371 415
372 EXPECT_EQ(1, table_view_->SelectedRowCount()); 416 EXPECT_EQ(1, table_view_->SelectedRowCount());
373 EXPECT_EQ(1, table_view_->FirstSelectedRow()); 417 EXPECT_EQ(1, table_view_->FirstSelectedRow());
374 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); 418 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0));
375 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0)); 419 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0));
376 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); 420 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0));
377 } 421 }
378 422
379 TEST_F(ChooserContentViewTest, 423 TEST_F(ChooserContentViewTest,
380 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { 424 AddAnOptionAndSelectItAndRemoveTheSelectedOption) {
381 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); 425 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2);
382 426
383 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"), 427 mock_chooser_controller_->OptionAdded(
384 MockChooserController::kNoImage); 428 base::ASCIIToUTF16("a"),
429 MockChooserController::kNoSignalStrengthLevelImage,
430 MockChooserController::kConnected, MockChooserController::kPaired);
385 431
386 // Select option 0. 432 // Select option 0.
387 table_view_->Select(0); 433 table_view_->Select(0);
388 EXPECT_EQ(1, table_view_->SelectedRowCount()); 434 EXPECT_EQ(1, table_view_->SelectedRowCount());
389 EXPECT_EQ(0, table_view_->FirstSelectedRow()); 435 EXPECT_EQ(0, table_view_->FirstSelectedRow());
390 436
391 // Remove option 0. 437 // Remove option 0.
392 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); 438 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a"));
393 // There is no option shown now. But since "No devices found." 439 // There is no option shown now. But since "No devices found."
394 // needs to be displayed on the |table_view_|, the number of rows is 1. 440 // needs to be displayed on the |table_view_|, the number of rows is 1.
(...skipping 23 matching lines...) Expand all
418 // |table_view_| should be disabled since there is no option shown. 464 // |table_view_| should be disabled since there is no option shown.
419 EXPECT_FALSE(table_view_->enabled()); 465 EXPECT_FALSE(table_view_->enabled());
420 // No option selected. 466 // No option selected.
421 EXPECT_EQ(0, table_view_->SelectedRowCount()); 467 EXPECT_EQ(0, table_view_->SelectedRowCount());
422 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 468 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
423 EXPECT_FALSE(throbber_->visible()); 469 EXPECT_FALSE(throbber_->visible());
424 EXPECT_TRUE(discovery_state_->enabled()); 470 EXPECT_TRUE(discovery_state_->enabled());
425 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN), 471 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN),
426 discovery_state_->text()); 472 discovery_state_->text());
427 473
428 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"),
429 MockChooserController::kNoImage);
430 mock_chooser_controller_->OptionAdded( 474 mock_chooser_controller_->OptionAdded(
431 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 475 base::ASCIIToUTF16("a"),
476 MockChooserController::kNoSignalStrengthLevelImage,
477 MockChooserController::kConnected, MockChooserController::kPaired);
432 mock_chooser_controller_->OptionAdded( 478 mock_chooser_controller_->OptionAdded(
433 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 479 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
480 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
481 mock_chooser_controller_->OptionAdded(
482 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
483 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
484
434 table_view_->Select(1); 485 table_view_->Select(1);
435 486
436 mock_chooser_controller_->OnAdapterPresenceChanged( 487 mock_chooser_controller_->OnAdapterPresenceChanged(
437 content::BluetoothChooser::AdapterPresence::POWERED_OFF); 488 content::BluetoothChooser::AdapterPresence::POWERED_OFF);
438 EXPECT_EQ(0u, mock_chooser_controller_->NumOptions()); 489 EXPECT_EQ(0u, mock_chooser_controller_->NumOptions());
439 EXPECT_TRUE(table_view_->visible()); 490 EXPECT_TRUE(table_view_->visible());
440 // Since "Bluetooth turned off." needs to be displayed on the |table_view_|, 491 // Since "Bluetooth turned off." needs to be displayed on the |table_view_|,
441 // the number of rows is 1. 492 // the number of rows is 1.
442 EXPECT_EQ(1, table_view_->RowCount()); 493 EXPECT_EQ(1, table_view_->RowCount());
443 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_ADAPTER_OFF), 494 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_ADAPTER_OFF),
(...skipping 20 matching lines...) Expand all
464 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 515 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
465 EXPECT_FALSE(throbber_->visible()); 516 EXPECT_FALSE(throbber_->visible());
466 EXPECT_TRUE(discovery_state_->enabled()); 517 EXPECT_TRUE(discovery_state_->enabled());
467 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN), 518 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN),
468 discovery_state_->text()); 519 discovery_state_->text());
469 } 520 }
470 521
471 TEST_F(ChooserContentViewTest, DiscoveringAndNoOptionAddedAndIdle) { 522 TEST_F(ChooserContentViewTest, DiscoveringAndNoOptionAddedAndIdle) {
472 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); 523 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2);
473 524
474 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"),
475 MockChooserController::kNoImage);
476 mock_chooser_controller_->OptionAdded( 525 mock_chooser_controller_->OptionAdded(
477 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 526 base::ASCIIToUTF16("a"),
527 MockChooserController::kNoSignalStrengthLevelImage,
528 MockChooserController::kConnected, MockChooserController::kPaired);
478 mock_chooser_controller_->OptionAdded( 529 mock_chooser_controller_->OptionAdded(
479 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 530 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
531 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
532 mock_chooser_controller_->OptionAdded(
533 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
534 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
480 table_view_->Select(1); 535 table_view_->Select(1);
481 536
482 mock_chooser_controller_->OnDiscoveryStateChanged( 537 mock_chooser_controller_->OnDiscoveryStateChanged(
483 content::BluetoothChooser::DiscoveryState::DISCOVERING); 538 content::BluetoothChooser::DiscoveryState::DISCOVERING);
484 EXPECT_FALSE(table_view_->visible()); 539 EXPECT_FALSE(table_view_->visible());
485 EXPECT_TRUE(throbber_->visible()); 540 EXPECT_TRUE(throbber_->visible());
486 // |discovery_state_| is disabled and shows a label instead of a link. 541 // |discovery_state_| is disabled and shows a label instead of a link.
487 EXPECT_FALSE(discovery_state_->enabled()); 542 EXPECT_FALSE(discovery_state_->enabled());
488 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING), 543 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING),
489 discovery_state_->text()); 544 discovery_state_->text());
(...skipping 15 matching lines...) Expand all
505 EXPECT_FALSE(throbber_->visible()); 560 EXPECT_FALSE(throbber_->visible());
506 // |discovery_state_| is enabled and shows a link. 561 // |discovery_state_| is enabled and shows a link.
507 EXPECT_TRUE(discovery_state_->enabled()); 562 EXPECT_TRUE(discovery_state_->enabled());
508 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN), 563 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN),
509 discovery_state_->text()); 564 discovery_state_->text());
510 } 565 }
511 566
512 TEST_F(ChooserContentViewTest, DiscoveringAndOneOptionAddedAndSelectedAndIdle) { 567 TEST_F(ChooserContentViewTest, DiscoveringAndOneOptionAddedAndSelectedAndIdle) {
513 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); 568 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3);
514 569
515 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a"),
516 MockChooserController::kNoImage);
517 mock_chooser_controller_->OptionAdded( 570 mock_chooser_controller_->OptionAdded(
518 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar); 571 base::ASCIIToUTF16("a"),
572 MockChooserController::kNoSignalStrengthLevelImage,
573 MockChooserController::kConnected, MockChooserController::kPaired);
519 mock_chooser_controller_->OptionAdded( 574 mock_chooser_controller_->OptionAdded(
520 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar); 575 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
576 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
577 mock_chooser_controller_->OptionAdded(
578 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar,
579 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
521 table_view_->Select(1); 580 table_view_->Select(1);
522 581
523 mock_chooser_controller_->OnDiscoveryStateChanged( 582 mock_chooser_controller_->OnDiscoveryStateChanged(
524 content::BluetoothChooser::DiscoveryState::DISCOVERING); 583 content::BluetoothChooser::DiscoveryState::DISCOVERING);
525 mock_chooser_controller_->OptionAdded( 584 mock_chooser_controller_->OptionAdded(
526 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar); 585 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar,
586 MockChooserController::kNotConnected, MockChooserController::kNotPaired);
527 EXPECT_TRUE(table_view_->visible()); 587 EXPECT_TRUE(table_view_->visible());
528 EXPECT_EQ(1, table_view_->RowCount()); 588 EXPECT_EQ(1, table_view_->RowCount());
529 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(0, 0)); 589 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(0, 0));
530 // |table_view_| should be enabled since there is an option. 590 // |table_view_| should be enabled since there is an option.
531 EXPECT_TRUE(table_view_->enabled()); 591 EXPECT_TRUE(table_view_->enabled());
532 // No option selected. 592 // No option selected.
533 EXPECT_EQ(0, table_view_->SelectedRowCount()); 593 EXPECT_EQ(0, table_view_->SelectedRowCount());
534 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); 594 EXPECT_EQ(-1, table_view_->FirstSelectedRow());
535 EXPECT_FALSE(throbber_->visible()); 595 EXPECT_FALSE(throbber_->visible());
536 // |discovery_state_| is disabled and shows a label instead of a link. 596 // |discovery_state_| is disabled and shows a label instead of a link.
(...skipping 22 matching lines...) Expand all
559 619
560 TEST_F(ChooserContentViewTest, ClickRescanLink) { 620 TEST_F(ChooserContentViewTest, ClickRescanLink) {
561 EXPECT_CALL(*mock_chooser_controller_, RefreshOptions()).Times(1); 621 EXPECT_CALL(*mock_chooser_controller_, RefreshOptions()).Times(1);
562 chooser_content_view_->LinkClicked(nullptr, 0); 622 chooser_content_view_->LinkClicked(nullptr, 0);
563 } 623 }
564 624
565 TEST_F(ChooserContentViewTest, ClickStyledLabelLink) { 625 TEST_F(ChooserContentViewTest, ClickStyledLabelLink) {
566 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); 626 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1);
567 styled_label_->LinkClicked(nullptr, 0); 627 styled_label_->LinkClicked(nullptr, 0);
568 } 628 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698