| 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 |