Chromium Code Reviews| 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 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 156 EXPECT_EQ(1, table_view_->RowCount()); | 156 EXPECT_EQ(1, table_view_->RowCount()); |
| 157 EXPECT_EQ( | 157 EXPECT_EQ( |
| 158 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), | 158 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), |
| 159 table_model_->GetText(0, 0)); | 159 table_model_->GetText(0, 0)); |
| 160 // |table_view_| should be disabled since all options are removed. | 160 // |table_view_| should be disabled since all options are removed. |
| 161 EXPECT_FALSE(table_view_->enabled()); | 161 EXPECT_FALSE(table_view_->enabled()); |
| 162 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 162 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
| 163 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 163 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
| 164 } | 164 } |
| 165 | 165 |
| 166 TEST_F(ChooserContentViewTest, UpdateOption) { | |
| 167 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0); | |
| 168 | |
| 169 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | |
| 170 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | |
| 171 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | |
| 172 | |
| 173 mock_chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | |
| 174 base::ASCIIToUTF16("d")); | |
| 175 EXPECT_EQ(3, table_view_->RowCount()); | |
| 176 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | |
| 177 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0)); | |
| 178 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); | |
| 179 EXPECT_TRUE(table_view_->enabled()); | |
| 180 EXPECT_EQ(0, table_view_->SelectedRowCount()); | |
| 181 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | |
| 182 } | |
| 183 | |
| 166 TEST_F(ChooserContentViewTest, AddAndRemoveOption) { | 184 TEST_F(ChooserContentViewTest, AddAndRemoveOption) { |
| 167 // Called from TableView::OnItemsRemoved(). | 185 // Called from TableView::OnItemsRemoved(). |
| 168 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); | 186 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); |
| 169 | 187 |
| 170 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 188 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 171 EXPECT_EQ(1, table_view_->RowCount()); | 189 EXPECT_EQ(1, table_view_->RowCount()); |
| 172 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 190 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 173 EXPECT_EQ(2, table_view_->RowCount()); | 191 EXPECT_EQ(2, table_view_->RowCount()); |
| 174 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 192 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
| 175 EXPECT_EQ(1, table_view_->RowCount()); | 193 EXPECT_EQ(1, table_view_->RowCount()); |
| 176 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 194 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 177 EXPECT_EQ(2, table_view_->RowCount()); | 195 EXPECT_EQ(2, table_view_->RowCount()); |
| 178 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("d")); | 196 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("d")); |
| 179 EXPECT_EQ(3, table_view_->RowCount()); | 197 EXPECT_EQ(3, table_view_->RowCount()); |
| 180 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); | 198 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); |
| 181 EXPECT_EQ(2, table_view_->RowCount()); | 199 EXPECT_EQ(2, table_view_->RowCount()); |
| 182 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); | 200 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); |
| 183 EXPECT_EQ(1, table_view_->RowCount()); | 201 EXPECT_EQ(1, table_view_->RowCount()); |
| 184 } | 202 } |
| 185 | 203 |
| 204 TEST_F(ChooserContentViewTest, UpdateAndRemoveTheUpdatedOption) { | |
| 205 // Called from TableView::OnItemsRemoved(). | |
| 206 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1); | |
| 207 | |
| 208 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | |
| 209 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | |
| 210 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | |
| 211 | |
| 212 mock_chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | |
| 213 base::ASCIIToUTF16("d")); | |
| 214 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); | |
| 215 | |
| 216 EXPECT_EQ(2, table_view_->RowCount()); | |
| 217 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | |
| 218 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); | |
| 219 EXPECT_TRUE(table_view_->enabled()); | |
| 220 EXPECT_EQ(0, table_view_->SelectedRowCount()); | |
| 221 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | |
| 222 } | |
| 223 | |
| 186 TEST_F(ChooserContentViewTest, SelectAndDeselectAnOption) { | 224 TEST_F(ChooserContentViewTest, SelectAndDeselectAnOption) { |
| 187 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(4); | 225 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(4); |
| 188 | 226 |
| 189 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 227 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 190 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 228 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 191 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 229 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 192 | 230 |
| 193 // Select option 0. | 231 // Select option 0. |
| 194 table_view_->Select(0); | 232 table_view_->Select(0); |
| 195 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 233 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 276 EXPECT_EQ(1, table_view_->FirstSelectedRow()); | 314 EXPECT_EQ(1, table_view_->FirstSelectedRow()); |
| 277 | 315 |
| 278 // Remove option 1. | 316 // Remove option 1. |
| 279 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 317 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
| 280 EXPECT_EQ(2, table_view_->RowCount()); | 318 EXPECT_EQ(2, table_view_->RowCount()); |
| 281 // No option selected. | 319 // No option selected. |
| 282 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 320 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
| 283 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 321 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
| 284 } | 322 } |
| 285 | 323 |
| 324 TEST_F(ChooserContentViewTest, SelectAnOptionAndUpdateTheSelectedOption) { | |
| 325 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(1); | |
| 326 | |
| 327 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | |
| 328 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | |
| 329 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | |
| 330 | |
| 331 // Select option 1. | |
| 332 table_view_->Select(1); | |
| 333 | |
| 334 // Update option 1. | |
| 335 mock_chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | |
| 336 base::ASCIIToUTF16("d")); | |
| 337 | |
| 338 EXPECT_EQ(1, table_view_->SelectedRowCount()); | |
|
msw
2016/08/12 22:19:34
ditto q: can you check that the selected item's na
juncai
2016/08/15 18:11:19
Done.
| |
| 339 EXPECT_EQ(1, table_view_->FirstSelectedRow()); | |
| 340 } | |
| 341 | |
| 286 TEST_F(ChooserContentViewTest, | 342 TEST_F(ChooserContentViewTest, |
| 287 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { | 343 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { |
| 288 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); | 344 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); |
| 289 | 345 |
| 290 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 346 mock_chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 291 | 347 |
| 292 // Select option 0. | 348 // Select option 0. |
| 293 table_view_->Select(0); | 349 table_view_->Select(0); |
| 294 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 350 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
| 295 EXPECT_EQ(0, table_view_->FirstSelectedRow()); | 351 EXPECT_EQ(0, table_view_->FirstSelectedRow()); |
| (...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 455 | 511 |
| 456 TEST_F(ChooserContentViewTest, ClickRescanLink) { | 512 TEST_F(ChooserContentViewTest, ClickRescanLink) { |
| 457 EXPECT_CALL(*mock_chooser_controller_, RefreshOptions()).Times(1); | 513 EXPECT_CALL(*mock_chooser_controller_, RefreshOptions()).Times(1); |
| 458 chooser_content_view_->LinkClicked(nullptr, 0); | 514 chooser_content_view_->LinkClicked(nullptr, 0); |
| 459 } | 515 } |
| 460 | 516 |
| 461 TEST_F(ChooserContentViewTest, ClickStyledLabelLink) { | 517 TEST_F(ChooserContentViewTest, ClickStyledLabelLink) { |
| 462 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); | 518 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); |
| 463 styled_label_->LinkClicked(nullptr, 0); | 519 styled_label_->LinkClicked(nullptr, 0); |
| 464 } | 520 } |
| OLD | NEW |