| 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 10 matching lines...) Expand all Loading... |
| 21 #include "ui/views/test/views_test_base.h" | 21 #include "ui/views/test/views_test_base.h" |
| 22 | 22 |
| 23 namespace { | 23 namespace { |
| 24 | 24 |
| 25 class MockTableViewObserver : public views::TableViewObserver { | 25 class MockTableViewObserver : public views::TableViewObserver { |
| 26 public: | 26 public: |
| 27 // views::TableViewObserver: | 27 // views::TableViewObserver: |
| 28 MOCK_METHOD0(OnSelectionChanged, void()); | 28 MOCK_METHOD0(OnSelectionChanged, void()); |
| 29 }; | 29 }; |
| 30 | 30 |
| 31 base::string16 GetPairedText(const std::string& device_name) { |
| 32 return l10n_util::GetStringFUTF16( |
| 33 IDS_DEVICE_CHOOSER_DEVICE_NAME_AND_PAIRED_STATUS_TEXT, |
| 34 base::ASCIIToUTF16(device_name)); |
| 35 } |
| 36 |
| 31 } // namespace | 37 } // namespace |
| 32 | 38 |
| 33 class ChooserContentViewTest : public views::ViewsTestBase { | 39 class ChooserContentViewTest : public views::ViewsTestBase { |
| 34 public: | 40 public: |
| 35 ChooserContentViewTest() {} | 41 ChooserContentViewTest() {} |
| 36 | 42 |
| 37 // views::ViewsTestBase: | 43 // views::ViewsTestBase: |
| 38 void SetUp() override { | 44 void SetUp() override { |
| 39 views::ViewsTestBase::SetUp(); | 45 views::ViewsTestBase::SetUp(); |
| 40 std::unique_ptr<MockChooserController> mock_chooser_controller( | 46 std::unique_ptr<MockChooserController> mock_chooser_controller( |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 | 99 |
| 94 TEST_F(ChooserContentViewTest, AddOption) { | 100 TEST_F(ChooserContentViewTest, AddOption) { |
| 95 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0); | 101 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(0); |
| 96 | 102 |
| 97 mock_chooser_controller_->OptionAdded( | 103 mock_chooser_controller_->OptionAdded( |
| 98 base::ASCIIToUTF16("a"), | 104 base::ASCIIToUTF16("a"), |
| 99 MockChooserController::kNoSignalStrengthLevelImage, | 105 MockChooserController::kNoSignalStrengthLevelImage, |
| 100 MockChooserController::ConnectedPairedStatus::CONNECTED | | 106 MockChooserController::ConnectedPairedStatus::CONNECTED | |
| 101 MockChooserController::ConnectedPairedStatus::PAIRED); | 107 MockChooserController::ConnectedPairedStatus::PAIRED); |
| 102 EXPECT_EQ(1, table_view_->RowCount()); | 108 EXPECT_EQ(1, table_view_->RowCount()); |
| 103 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 109 EXPECT_EQ(GetPairedText("a"), table_model_->GetText(0, 0)); |
| 104 // |table_view_| should be enabled since there is an option. | 110 // |table_view_| should be enabled since there is an option. |
| 105 EXPECT_TRUE(table_view_->enabled()); | 111 EXPECT_TRUE(table_view_->enabled()); |
| 106 // No option selected. | 112 // No option selected. |
| 107 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 113 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
| 108 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 114 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
| 109 | 115 |
| 110 mock_chooser_controller_->OptionAdded( | 116 mock_chooser_controller_->OptionAdded( |
| 111 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, | 117 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, |
| 112 MockChooserController::ConnectedPairedStatus::NONE); | 118 MockChooserController::ConnectedPairedStatus::NONE); |
| 113 EXPECT_EQ(2, table_view_->RowCount()); | 119 EXPECT_EQ(2, table_view_->RowCount()); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 137 MockChooserController::ConnectedPairedStatus::PAIRED); | 143 MockChooserController::ConnectedPairedStatus::PAIRED); |
| 138 mock_chooser_controller_->OptionAdded( | 144 mock_chooser_controller_->OptionAdded( |
| 139 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, | 145 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, |
| 140 MockChooserController::ConnectedPairedStatus::NONE); | 146 MockChooserController::ConnectedPairedStatus::NONE); |
| 141 mock_chooser_controller_->OptionAdded( | 147 mock_chooser_controller_->OptionAdded( |
| 142 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, | 148 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, |
| 143 MockChooserController::ConnectedPairedStatus::NONE); | 149 MockChooserController::ConnectedPairedStatus::NONE); |
| 144 | 150 |
| 145 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 151 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
| 146 EXPECT_EQ(2, table_view_->RowCount()); | 152 EXPECT_EQ(2, table_view_->RowCount()); |
| 147 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 153 EXPECT_EQ(GetPairedText("a"), table_model_->GetText(0, 0)); |
| 148 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); | 154 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); |
| 149 EXPECT_TRUE(table_view_->enabled()); | 155 EXPECT_TRUE(table_view_->enabled()); |
| 150 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 156 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
| 151 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 157 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
| 152 | 158 |
| 153 // Remove a non-existent option, the number of rows should not change. | 159 // Remove a non-existent option, the number of rows should not change. |
| 154 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("non-existent")); | 160 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("non-existent")); |
| 155 EXPECT_EQ(2, table_view_->RowCount()); | 161 EXPECT_EQ(2, table_view_->RowCount()); |
| 156 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 162 EXPECT_EQ(GetPairedText("a"), table_model_->GetText(0, 0)); |
| 157 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); | 163 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); |
| 158 EXPECT_TRUE(table_view_->enabled()); | 164 EXPECT_TRUE(table_view_->enabled()); |
| 159 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 165 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
| 160 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 166 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
| 161 | 167 |
| 162 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); | 168 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); |
| 163 EXPECT_EQ(1, table_view_->RowCount()); | 169 EXPECT_EQ(1, table_view_->RowCount()); |
| 164 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 170 EXPECT_EQ(GetPairedText("a"), table_model_->GetText(0, 0)); |
| 165 EXPECT_TRUE(table_view_->enabled()); | 171 EXPECT_TRUE(table_view_->enabled()); |
| 166 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 172 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
| 167 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 173 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
| 168 | 174 |
| 169 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); | 175 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); |
| 170 // There is no option shown now. But since "No devices found." | 176 // There is no option shown now. But since "No devices found." |
| 171 // needs to be displayed on the |table_view_|, the number of rows is 1. | 177 // needs to be displayed on the |table_view_|, the number of rows is 1. |
| 172 EXPECT_EQ(1, table_view_->RowCount()); | 178 EXPECT_EQ(1, table_view_->RowCount()); |
| 173 EXPECT_EQ( | 179 EXPECT_EQ( |
| 174 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), | 180 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), |
| (...skipping 18 matching lines...) Expand all Loading... |
| 193 mock_chooser_controller_->OptionAdded( | 199 mock_chooser_controller_->OptionAdded( |
| 194 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, | 200 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, |
| 195 MockChooserController::ConnectedPairedStatus::NONE); | 201 MockChooserController::ConnectedPairedStatus::NONE); |
| 196 | 202 |
| 197 mock_chooser_controller_->OptionUpdated( | 203 mock_chooser_controller_->OptionUpdated( |
| 198 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), | 204 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), |
| 199 MockChooserController::kNoSignalStrengthLevelImage, | 205 MockChooserController::kNoSignalStrengthLevelImage, |
| 200 MockChooserController::ConnectedPairedStatus::CONNECTED | | 206 MockChooserController::ConnectedPairedStatus::CONNECTED | |
| 201 MockChooserController::ConnectedPairedStatus::PAIRED); | 207 MockChooserController::ConnectedPairedStatus::PAIRED); |
| 202 EXPECT_EQ(3, table_view_->RowCount()); | 208 EXPECT_EQ(3, table_view_->RowCount()); |
| 203 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 209 EXPECT_EQ(GetPairedText("a"), table_model_->GetText(0, 0)); |
| 204 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0)); | 210 EXPECT_EQ(GetPairedText("d"), table_model_->GetText(1, 0)); |
| 205 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); | 211 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); |
| 206 EXPECT_TRUE(table_view_->enabled()); | 212 EXPECT_TRUE(table_view_->enabled()); |
| 207 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 213 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
| 208 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 214 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
| 209 } | 215 } |
| 210 | 216 |
| 211 TEST_F(ChooserContentViewTest, AddAndRemoveOption) { | 217 TEST_F(ChooserContentViewTest, AddAndRemoveOption) { |
| 212 // Called from TableView::OnItemsRemoved(). | 218 // Called from TableView::OnItemsRemoved(). |
| 213 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); | 219 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(3); |
| 214 | 220 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 | 262 |
| 257 mock_chooser_controller_->OptionUpdated( | 263 mock_chooser_controller_->OptionUpdated( |
| 258 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), | 264 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), |
| 259 MockChooserController::kNoSignalStrengthLevelImage, | 265 MockChooserController::kNoSignalStrengthLevelImage, |
| 260 MockChooserController::ConnectedPairedStatus::CONNECTED | | 266 MockChooserController::ConnectedPairedStatus::CONNECTED | |
| 261 MockChooserController::ConnectedPairedStatus::PAIRED); | 267 MockChooserController::ConnectedPairedStatus::PAIRED); |
| 262 | 268 |
| 263 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); | 269 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); |
| 264 | 270 |
| 265 EXPECT_EQ(2, table_view_->RowCount()); | 271 EXPECT_EQ(2, table_view_->RowCount()); |
| 266 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 272 EXPECT_EQ(GetPairedText("a"), table_model_->GetText(0, 0)); |
| 267 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); | 273 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(1, 0)); |
| 268 EXPECT_TRUE(table_view_->enabled()); | 274 EXPECT_TRUE(table_view_->enabled()); |
| 269 EXPECT_EQ(0, table_view_->SelectedRowCount()); | 275 EXPECT_EQ(0, table_view_->SelectedRowCount()); |
| 270 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); | 276 EXPECT_EQ(-1, table_view_->FirstSelectedRow()); |
| 271 } | 277 } |
| 272 | 278 |
| 273 TEST_F(ChooserContentViewTest, SelectAndDeselectAnOption) { | 279 TEST_F(ChooserContentViewTest, SelectAndDeselectAnOption) { |
| 274 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(4); | 280 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(4); |
| 275 | 281 |
| 276 mock_chooser_controller_->OptionAdded( | 282 mock_chooser_controller_->OptionAdded( |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 422 | 428 |
| 423 // Update option 1. | 429 // Update option 1. |
| 424 mock_chooser_controller_->OptionUpdated( | 430 mock_chooser_controller_->OptionUpdated( |
| 425 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), | 431 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), |
| 426 MockChooserController::kNoSignalStrengthLevelImage, | 432 MockChooserController::kNoSignalStrengthLevelImage, |
| 427 MockChooserController::ConnectedPairedStatus::CONNECTED | | 433 MockChooserController::ConnectedPairedStatus::CONNECTED | |
| 428 MockChooserController::ConnectedPairedStatus::PAIRED); | 434 MockChooserController::ConnectedPairedStatus::PAIRED); |
| 429 | 435 |
| 430 EXPECT_EQ(1, table_view_->SelectedRowCount()); | 436 EXPECT_EQ(1, table_view_->SelectedRowCount()); |
| 431 EXPECT_EQ(1, table_view_->FirstSelectedRow()); | 437 EXPECT_EQ(1, table_view_->FirstSelectedRow()); |
| 432 EXPECT_EQ(base::ASCIIToUTF16("a"), table_model_->GetText(0, 0)); | 438 EXPECT_EQ(GetPairedText("a"), table_model_->GetText(0, 0)); |
| 433 EXPECT_EQ(base::ASCIIToUTF16("d"), table_model_->GetText(1, 0)); | 439 EXPECT_EQ(GetPairedText("d"), table_model_->GetText(1, 0)); |
| 434 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); | 440 EXPECT_EQ(base::ASCIIToUTF16("c"), table_model_->GetText(2, 0)); |
| 435 } | 441 } |
| 436 | 442 |
| 437 TEST_F(ChooserContentViewTest, | 443 TEST_F(ChooserContentViewTest, |
| 438 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { | 444 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { |
| 439 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); | 445 EXPECT_CALL(*mock_table_view_observer_, OnSelectionChanged()).Times(2); |
| 440 | 446 |
| 441 mock_chooser_controller_->OptionAdded( | 447 mock_chooser_controller_->OptionAdded( |
| 442 base::ASCIIToUTF16("a"), | 448 base::ASCIIToUTF16("a"), |
| 443 MockChooserController::kNoSignalStrengthLevelImage, | 449 MockChooserController::kNoSignalStrengthLevelImage, |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 637 | 643 |
| 638 TEST_F(ChooserContentViewTest, ClickRescanLink) { | 644 TEST_F(ChooserContentViewTest, ClickRescanLink) { |
| 639 EXPECT_CALL(*mock_chooser_controller_, RefreshOptions()).Times(1); | 645 EXPECT_CALL(*mock_chooser_controller_, RefreshOptions()).Times(1); |
| 640 chooser_content_view_->LinkClicked(nullptr, 0); | 646 chooser_content_view_->LinkClicked(nullptr, 0); |
| 641 } | 647 } |
| 642 | 648 |
| 643 TEST_F(ChooserContentViewTest, ClickStyledLabelLink) { | 649 TEST_F(ChooserContentViewTest, ClickStyledLabelLink) { |
| 644 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); | 650 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); |
| 645 styled_label_->LinkClicked(nullptr, 0); | 651 styled_label_->LinkClicked(nullptr, 0); |
| 646 } | 652 } |
| OLD | NEW |