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 |