| 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 #import "chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa_controller.h" | 5 #import "chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa_controller.h" |
| 6 | 6 |
| 7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 #include <vector> | 10 #include <vector> |
| 11 | 11 |
| 12 #include "base/strings/sys_string_conversions.h" | |
| 13 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
| 14 #include "chrome/browser/chooser_controller/mock_chooser_controller.h" | 13 #include "chrome/browser/chooser_controller/mock_chooser_controller.h" |
| 15 #import "chrome/browser/ui/cocoa/chooser_content_view_cocoa.h" | 14 #import "chrome/browser/ui/cocoa/chooser_content_view_cocoa.h" |
| 16 #import "chrome/browser/ui/cocoa/cocoa_profile_test.h" | 15 #import "chrome/browser/ui/cocoa/cocoa_profile_test.h" |
| 17 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h" | 16 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h" |
| 18 #import "chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa.h" | 17 #import "chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa.h" |
| 19 #include "chrome/browser/ui/cocoa/spinner_view.h" | 18 #include "chrome/browser/ui/cocoa/spinner_view.h" |
| 19 #include "chrome/grit/generated_resources.h" |
| 20 #include "testing/gmock/include/gmock/gmock.h" | 20 #include "testing/gmock/include/gmock/gmock.h" |
| 21 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
| 22 #include "testing/gtest_mac.h" | 22 #include "testing/gtest_mac.h" |
| 23 #include "ui/base/l10n/l10n_util_mac.h" |
| 23 | 24 |
| 24 class ChooserDialogCocoaControllerTest : public CocoaProfileTest { | 25 class ChooserDialogCocoaControllerTest : public CocoaProfileTest { |
| 25 protected: | 26 protected: |
| 26 ChooserDialogCocoaControllerTest() {} | 27 ChooserDialogCocoaControllerTest() {} |
| 27 ~ChooserDialogCocoaControllerTest() override {} | 28 ~ChooserDialogCocoaControllerTest() override {} |
| 28 | 29 |
| 29 void SetUp() override { | 30 void SetUp() override { |
| 30 CocoaProfileTest::SetUp(); | 31 CocoaProfileTest::SetUp(); |
| 31 ASSERT_TRUE(browser()); | 32 ASSERT_TRUE(browser()); |
| 32 } | 33 } |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 DISALLOW_COPY_AND_ASSIGN(ChooserDialogCocoaControllerTest); | 83 DISALLOW_COPY_AND_ASSIGN(ChooserDialogCocoaControllerTest); |
| 83 }; | 84 }; |
| 84 | 85 |
| 85 TEST_F(ChooserDialogCocoaControllerTest, InitialState) { | 86 TEST_F(ChooserDialogCocoaControllerTest, InitialState) { |
| 86 CreateChooserDialog(); | 87 CreateChooserDialog(); |
| 87 | 88 |
| 88 // Since "No devices found." needs to be displayed on the |table_view_|, | 89 // Since "No devices found." needs to be displayed on the |table_view_|, |
| 89 // the number of rows is 1. | 90 // the number of rows is 1. |
| 90 EXPECT_EQ(1, table_view_.numberOfRows); | 91 EXPECT_EQ(1, table_view_.numberOfRows); |
| 91 EXPECT_EQ(1, table_view_.numberOfColumns); | 92 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 93 EXPECT_NSEQ( |
| 94 l10n_util::GetNSString(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), |
| 95 [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 92 // |table_view_| should be disabled since there is no option shown. | 96 // |table_view_| should be disabled since there is no option shown. |
| 93 ASSERT_FALSE(table_view_.enabled); | 97 ASSERT_FALSE(table_view_.enabled); |
| 94 // No option selected. | 98 // No option selected. |
| 95 EXPECT_EQ(-1, table_view_.selectedRow); | 99 EXPECT_EQ(-1, table_view_.selectedRow); |
| 96 // |connect_button_| should be disabled since no option selected. | 100 // |connect_button_| should be disabled since no option selected. |
| 97 ASSERT_FALSE(connect_button_.enabled); | 101 ASSERT_FALSE(connect_button_.enabled); |
| 98 ASSERT_TRUE(cancel_button_.enabled); | 102 ASSERT_TRUE(cancel_button_.enabled); |
| 99 ASSERT_TRUE(help_button_.enabled); | 103 ASSERT_TRUE(help_button_.enabled); |
| 100 } | 104 } |
| 101 | 105 |
| 102 TEST_F(ChooserDialogCocoaControllerTest, AddOption) { | 106 TEST_F(ChooserDialogCocoaControllerTest, AddOption) { |
| 103 CreateChooserDialog(); | 107 CreateChooserDialog(); |
| 104 | 108 |
| 105 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 109 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 106 EXPECT_EQ(1, table_view_.numberOfRows); | 110 EXPECT_EQ(1, table_view_.numberOfRows); |
| 107 EXPECT_EQ(1, table_view_.numberOfColumns); | 111 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 108 // |table_view_| should be enabled since there is an option. | 112 // |table_view_| should be enabled since there is an option. |
| 109 ASSERT_TRUE(table_view_.enabled); | 113 ASSERT_TRUE(table_view_.enabled); |
| 110 EXPECT_EQ(-1, table_view_.selectedRow); | 114 EXPECT_EQ(-1, table_view_.selectedRow); |
| 115 EXPECT_NSEQ(@"a", [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 111 ASSERT_FALSE(connect_button_.enabled); | 116 ASSERT_FALSE(connect_button_.enabled); |
| 112 ASSERT_TRUE(cancel_button_.enabled); | 117 ASSERT_TRUE(cancel_button_.enabled); |
| 113 ASSERT_TRUE(help_button_.enabled); | 118 ASSERT_TRUE(help_button_.enabled); |
| 114 | 119 |
| 115 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 120 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 116 EXPECT_EQ(2, table_view_.numberOfRows); | 121 EXPECT_EQ(2, table_view_.numberOfRows); |
| 117 EXPECT_EQ(1, table_view_.numberOfColumns); | 122 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 118 ASSERT_TRUE(table_view_.enabled); | 123 ASSERT_TRUE(table_view_.enabled); |
| 119 EXPECT_EQ(-1, table_view_.selectedRow); | 124 EXPECT_EQ(-1, table_view_.selectedRow); |
| 125 EXPECT_NSEQ(@"b", [[table_view_ preparedCellAtColumn:0 row:1] stringValue]); |
| 120 | 126 |
| 121 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 127 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 122 EXPECT_EQ(3, table_view_.numberOfRows); | 128 EXPECT_EQ(3, table_view_.numberOfRows); |
| 123 EXPECT_EQ(1, table_view_.numberOfColumns); | 129 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 124 ASSERT_TRUE(table_view_.enabled); | 130 ASSERT_TRUE(table_view_.enabled); |
| 125 EXPECT_EQ(-1, table_view_.selectedRow); | 131 EXPECT_EQ(-1, table_view_.selectedRow); |
| 132 EXPECT_NSEQ(@"c", [[table_view_ preparedCellAtColumn:0 row:2] stringValue]); |
| 126 } | 133 } |
| 127 | 134 |
| 128 TEST_F(ChooserDialogCocoaControllerTest, RemoveOption) { | 135 TEST_F(ChooserDialogCocoaControllerTest, RemoveOption) { |
| 129 CreateChooserDialog(); | 136 CreateChooserDialog(); |
| 130 | 137 |
| 131 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 138 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 132 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 139 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 133 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 140 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 134 | 141 |
| 135 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 142 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
| 136 EXPECT_EQ(2, table_view_.numberOfRows); | 143 EXPECT_EQ(2, table_view_.numberOfRows); |
| 137 EXPECT_EQ(1, table_view_.numberOfColumns); | 144 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 138 ASSERT_TRUE(table_view_.enabled); | 145 ASSERT_TRUE(table_view_.enabled); |
| 139 EXPECT_EQ(-1, table_view_.selectedRow); | 146 EXPECT_EQ(-1, table_view_.selectedRow); |
| 147 EXPECT_NSEQ(@"a", [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 148 EXPECT_NSEQ(@"c", [[table_view_ preparedCellAtColumn:0 row:1] stringValue]); |
| 140 | 149 |
| 141 // Remove a non-existent option, the number of rows should not change. | 150 // Remove a non-existent option, the number of rows should not change. |
| 142 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("non-existent")); | 151 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("non-existent")); |
| 143 EXPECT_EQ(2, table_view_.numberOfRows); | 152 EXPECT_EQ(2, table_view_.numberOfRows); |
| 144 EXPECT_EQ(1, table_view_.numberOfColumns); | 153 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 145 ASSERT_TRUE(table_view_.enabled); | 154 ASSERT_TRUE(table_view_.enabled); |
| 146 EXPECT_EQ(-1, table_view_.selectedRow); | 155 EXPECT_EQ(-1, table_view_.selectedRow); |
| 156 EXPECT_NSEQ(@"a", [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 157 EXPECT_NSEQ(@"c", [[table_view_ preparedCellAtColumn:0 row:1] stringValue]); |
| 147 | 158 |
| 148 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); | 159 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); |
| 149 EXPECT_EQ(1, table_view_.numberOfRows); | 160 EXPECT_EQ(1, table_view_.numberOfRows); |
| 150 EXPECT_EQ(1, table_view_.numberOfColumns); | 161 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 151 ASSERT_TRUE(table_view_.enabled); | 162 ASSERT_TRUE(table_view_.enabled); |
| 152 EXPECT_EQ(-1, table_view_.selectedRow); | 163 EXPECT_EQ(-1, table_view_.selectedRow); |
| 164 EXPECT_NSEQ(@"a", [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 153 | 165 |
| 154 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); | 166 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); |
| 155 // There is no option shown now. But since "No devices found." | 167 // There is no option shown now. But since "No devices found." |
| 156 // needs to be displayed on the |table_view_|, the number of rows is 1. | 168 // needs to be displayed on the |table_view_|, the number of rows is 1. |
| 157 EXPECT_EQ(1, table_view_.numberOfRows); | 169 EXPECT_EQ(1, table_view_.numberOfRows); |
| 158 EXPECT_EQ(1, table_view_.numberOfColumns); | 170 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 159 // |table_view_| should be disabled since all options are removed. | 171 // |table_view_| should be disabled since all options are removed. |
| 160 ASSERT_FALSE(table_view_.enabled); | 172 ASSERT_FALSE(table_view_.enabled); |
| 161 EXPECT_EQ(-1, table_view_.selectedRow); | 173 EXPECT_EQ(-1, table_view_.selectedRow); |
| 174 EXPECT_NSEQ( |
| 175 l10n_util::GetNSString(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), |
| 176 [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 162 } | 177 } |
| 163 | 178 |
| 164 TEST_F(ChooserDialogCocoaControllerTest, UpdateOption) { | 179 TEST_F(ChooserDialogCocoaControllerTest, UpdateOption) { |
| 165 CreateChooserDialog(); | 180 CreateChooserDialog(); |
| 166 | 181 |
| 167 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 182 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 168 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 183 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 169 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 184 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 170 | 185 |
| 171 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | 186 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
| 172 base::ASCIIToUTF16("d")); | 187 base::ASCIIToUTF16("d")); |
| 173 | 188 |
| 174 EXPECT_EQ(3, table_view_.numberOfRows); | 189 EXPECT_EQ(3, table_view_.numberOfRows); |
| 175 EXPECT_EQ(1, table_view_.numberOfColumns); | 190 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 176 ASSERT_TRUE(table_view_.enabled); | 191 ASSERT_TRUE(table_view_.enabled); |
| 177 EXPECT_EQ(-1, table_view_.selectedRow); | 192 EXPECT_EQ(-1, table_view_.selectedRow); |
| 178 | 193 EXPECT_NSEQ(@"a", [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 179 NSCell* cell = [table_view_ preparedCellAtColumn:0 row:1]; | 194 EXPECT_NSEQ(@"d", [[table_view_ preparedCellAtColumn:0 row:1] stringValue]); |
| 180 EXPECT_EQ(base::ASCIIToUTF16("d"), | 195 EXPECT_NSEQ(@"c", [[table_view_ preparedCellAtColumn:0 row:2] stringValue]); |
| 181 base::SysNSStringToUTF16([cell stringValue])); | |
| 182 } | 196 } |
| 183 | 197 |
| 184 TEST_F(ChooserDialogCocoaControllerTest, AddAndRemoveOption) { | 198 TEST_F(ChooserDialogCocoaControllerTest, AddAndRemoveOption) { |
| 185 CreateChooserDialog(); | 199 CreateChooserDialog(); |
| 186 | 200 |
| 187 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 201 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 188 EXPECT_EQ(1, table_view_.numberOfRows); | 202 EXPECT_EQ(1, table_view_.numberOfRows); |
| 189 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 203 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 190 EXPECT_EQ(2, table_view_.numberOfRows); | 204 EXPECT_EQ(2, table_view_.numberOfRows); |
| 191 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 205 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 209 | 223 |
| 210 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | 224 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
| 211 base::ASCIIToUTF16("d")); | 225 base::ASCIIToUTF16("d")); |
| 212 | 226 |
| 213 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); | 227 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); |
| 214 | 228 |
| 215 EXPECT_EQ(2, table_view_.numberOfRows); | 229 EXPECT_EQ(2, table_view_.numberOfRows); |
| 216 EXPECT_EQ(1, table_view_.numberOfColumns); | 230 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 217 ASSERT_TRUE(table_view_.enabled); | 231 ASSERT_TRUE(table_view_.enabled); |
| 218 EXPECT_EQ(-1, table_view_.selectedRow); | 232 EXPECT_EQ(-1, table_view_.selectedRow); |
| 219 | 233 EXPECT_NSEQ(@"a", [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 220 NSCell* cell_a = [table_view_ preparedCellAtColumn:0 row:0]; | 234 EXPECT_NSEQ(@"c", [[table_view_ preparedCellAtColumn:0 row:1] stringValue]); |
| 221 EXPECT_EQ(base::ASCIIToUTF16("a"), | |
| 222 base::SysNSStringToUTF16([cell_a stringValue])); | |
| 223 | |
| 224 NSCell* cell_c = [table_view_ preparedCellAtColumn:0 row:1]; | |
| 225 EXPECT_EQ(base::ASCIIToUTF16("c"), | |
| 226 base::SysNSStringToUTF16([cell_c stringValue])); | |
| 227 } | 235 } |
| 228 | 236 |
| 229 TEST_F(ChooserDialogCocoaControllerTest, SelectAndDeselectAnOption) { | 237 TEST_F(ChooserDialogCocoaControllerTest, SelectAndDeselectAnOption) { |
| 230 CreateChooserDialog(); | 238 CreateChooserDialog(); |
| 231 | 239 |
| 232 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 240 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 233 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 241 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 234 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 242 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 235 | 243 |
| 236 // Select option 0. | 244 // Select option 0. |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 | 353 |
| 346 // Select option 1. | 354 // Select option 1. |
| 347 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] | 355 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] |
| 348 byExtendingSelection:NO]; | 356 byExtendingSelection:NO]; |
| 349 | 357 |
| 350 // Update option 1. | 358 // Update option 1. |
| 351 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | 359 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
| 352 base::ASCIIToUTF16("d")); | 360 base::ASCIIToUTF16("d")); |
| 353 | 361 |
| 354 EXPECT_EQ(1, table_view_.selectedRow); | 362 EXPECT_EQ(1, table_view_.selectedRow); |
| 363 EXPECT_NSEQ(@"a", [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 364 EXPECT_NSEQ(@"d", [[table_view_ preparedCellAtColumn:0 row:1] stringValue]); |
| 365 EXPECT_NSEQ(@"c", [[table_view_ preparedCellAtColumn:0 row:2] stringValue]); |
| 355 ASSERT_TRUE(connect_button_.enabled); | 366 ASSERT_TRUE(connect_button_.enabled); |
| 356 | |
| 357 NSCell* cell = [table_view_ preparedCellAtColumn:0 row:1]; | |
| 358 EXPECT_EQ(base::ASCIIToUTF16("d"), | |
| 359 base::SysNSStringToUTF16([cell stringValue])); | |
| 360 } | 367 } |
| 361 | 368 |
| 362 TEST_F(ChooserDialogCocoaControllerTest, | 369 TEST_F(ChooserDialogCocoaControllerTest, |
| 363 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { | 370 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { |
| 364 CreateChooserDialog(); | 371 CreateChooserDialog(); |
| 365 | 372 |
| 366 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 373 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 367 | 374 |
| 368 // Select option 0. | 375 // Select option 0. |
| 369 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] | 376 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
| 370 byExtendingSelection:NO]; | 377 byExtendingSelection:NO]; |
| 371 EXPECT_EQ(1, table_view_.numberOfRows); | 378 EXPECT_EQ(1, table_view_.numberOfRows); |
| 372 EXPECT_EQ(0, table_view_.selectedRow); | 379 EXPECT_EQ(0, table_view_.selectedRow); |
| 373 ASSERT_TRUE(connect_button_.enabled); | 380 ASSERT_TRUE(connect_button_.enabled); |
| 374 | 381 |
| 375 // Remove option 0. | 382 // Remove option 0. |
| 376 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); | 383 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); |
| 377 // There is no option shown now. But since "No devices found." | 384 // There is no option shown now. But since "No devices found." |
| 378 // needs to be displayed on the |table_view_|, the number of rows is 1. | 385 // needs to be displayed on the |table_view_|, the number of rows is 1. |
| 379 EXPECT_EQ(1, table_view_.numberOfRows); | 386 EXPECT_EQ(1, table_view_.numberOfRows); |
| 380 // No option selected. | 387 // No option selected. |
| 381 EXPECT_EQ(-1, table_view_.selectedRow); | 388 EXPECT_EQ(-1, table_view_.selectedRow); |
| 382 // |table_view_| should be disabled since there is no option shown. | 389 // |table_view_| should be disabled since there is no option shown. |
| 383 ASSERT_FALSE(table_view_.enabled); | 390 ASSERT_FALSE(table_view_.enabled); |
| 391 EXPECT_NSEQ( |
| 392 l10n_util::GetNSString(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), |
| 393 [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 384 // Since no option selected, the "Connect" button should be disabled. | 394 // Since no option selected, the "Connect" button should be disabled. |
| 385 ASSERT_FALSE(connect_button_.enabled); | 395 ASSERT_FALSE(connect_button_.enabled); |
| 386 } | 396 } |
| 387 | 397 |
| 388 TEST_F(ChooserDialogCocoaControllerTest, NoOptionSelectedAndPressCancelButton) { | 398 TEST_F(ChooserDialogCocoaControllerTest, NoOptionSelectedAndPressCancelButton) { |
| 389 CreateChooserDialog(); | 399 CreateChooserDialog(); |
| 390 | 400 |
| 391 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 401 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 392 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 402 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 393 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 403 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 chooser_controller_->OnAdapterPresenceChanged( | 450 chooser_controller_->OnAdapterPresenceChanged( |
| 441 content::BluetoothChooser::AdapterPresence::POWERED_ON); | 451 content::BluetoothChooser::AdapterPresence::POWERED_ON); |
| 442 EXPECT_FALSE(table_view_.hidden); | 452 EXPECT_FALSE(table_view_.hidden); |
| 443 // There is no option shown now. But since "No devices found." | 453 // There is no option shown now. But since "No devices found." |
| 444 // needs to be displayed on the |table_view_|, the number of rows is 1. | 454 // needs to be displayed on the |table_view_|, the number of rows is 1. |
| 445 EXPECT_EQ(1, table_view_.numberOfRows); | 455 EXPECT_EQ(1, table_view_.numberOfRows); |
| 446 // |table_view_| should be disabled since there is no option shown. | 456 // |table_view_| should be disabled since there is no option shown. |
| 447 ASSERT_FALSE(table_view_.enabled); | 457 ASSERT_FALSE(table_view_.enabled); |
| 448 // No option selected. | 458 // No option selected. |
| 449 EXPECT_EQ(-1, table_view_.selectedRow); | 459 EXPECT_EQ(-1, table_view_.selectedRow); |
| 460 EXPECT_NSEQ( |
| 461 l10n_util::GetNSString(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), |
| 462 [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 450 EXPECT_TRUE(spinner_.hidden); | 463 EXPECT_TRUE(spinner_.hidden); |
| 451 EXPECT_TRUE(status_.hidden); | 464 EXPECT_TRUE(status_.hidden); |
| 452 EXPECT_FALSE(rescan_button_.hidden); | 465 EXPECT_FALSE(rescan_button_.hidden); |
| 453 ASSERT_FALSE(connect_button_.enabled); | 466 ASSERT_FALSE(connect_button_.enabled); |
| 454 ASSERT_TRUE(cancel_button_.enabled); | 467 ASSERT_TRUE(cancel_button_.enabled); |
| 455 | 468 |
| 456 // Add options | 469 // Add options |
| 457 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 470 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 458 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 471 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 459 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 472 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 460 ASSERT_TRUE(table_view_.enabled); | 473 ASSERT_TRUE(table_view_.enabled); |
| 461 EXPECT_EQ(3, table_view_.numberOfRows); | 474 EXPECT_EQ(3, table_view_.numberOfRows); |
| 462 // Select option 1. | 475 // Select option 1. |
| 463 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] | 476 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] |
| 464 byExtendingSelection:NO]; | 477 byExtendingSelection:NO]; |
| 465 EXPECT_EQ(1, table_view_.selectedRow); | 478 EXPECT_EQ(1, table_view_.selectedRow); |
| 466 ASSERT_TRUE(connect_button_.enabled); | 479 ASSERT_TRUE(connect_button_.enabled); |
| 467 ASSERT_TRUE(cancel_button_.enabled); | 480 ASSERT_TRUE(cancel_button_.enabled); |
| 468 | 481 |
| 469 chooser_controller_->OnAdapterPresenceChanged( | 482 chooser_controller_->OnAdapterPresenceChanged( |
| 470 content::BluetoothChooser::AdapterPresence::POWERED_OFF); | 483 content::BluetoothChooser::AdapterPresence::POWERED_OFF); |
| 471 EXPECT_FALSE(table_view_.hidden); | 484 EXPECT_FALSE(table_view_.hidden); |
| 472 // Since "Bluetooth turned off." needs to be displayed on the |table_view_|, | 485 // Since "Bluetooth turned off." needs to be displayed on the |table_view_|, |
| 473 // the number of rows is 1. | 486 // the number of rows is 1. |
| 474 EXPECT_EQ(1, table_view_.numberOfRows); | 487 EXPECT_EQ(1, table_view_.numberOfRows); |
| 475 // |table_view_| should be disabled since there is no option shown. | 488 // |table_view_| should be disabled since there is no option shown. |
| 476 EXPECT_FALSE(table_view_.enabled); | 489 EXPECT_FALSE(table_view_.enabled); |
| 477 // No option selected. | 490 // No option selected. |
| 478 EXPECT_EQ(-1, table_view_.selectedRow); | 491 EXPECT_EQ(-1, table_view_.selectedRow); |
| 492 EXPECT_NSEQ(l10n_util::GetNSString(IDS_BLUETOOTH_DEVICE_CHOOSER_ADAPTER_OFF), |
| 493 [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 479 EXPECT_TRUE(spinner_.hidden); | 494 EXPECT_TRUE(spinner_.hidden); |
| 480 EXPECT_TRUE(status_.hidden); | 495 EXPECT_TRUE(status_.hidden); |
| 481 EXPECT_TRUE(rescan_button_.hidden); | 496 EXPECT_TRUE(rescan_button_.hidden); |
| 482 // Since the adapter is turned off, the previously selected option | 497 // Since the adapter is turned off, the previously selected option |
| 483 // becomes invalid, the OK button is disabled. | 498 // becomes invalid, the OK button is disabled. |
| 484 EXPECT_EQ(0u, chooser_controller_->NumOptions()); | 499 EXPECT_EQ(0u, chooser_controller_->NumOptions()); |
| 485 ASSERT_FALSE(connect_button_.enabled); | 500 ASSERT_FALSE(connect_button_.enabled); |
| 486 ASSERT_TRUE(cancel_button_.enabled); | 501 ASSERT_TRUE(cancel_button_.enabled); |
| 487 | 502 |
| 488 chooser_controller_->OnAdapterPresenceChanged( | 503 chooser_controller_->OnAdapterPresenceChanged( |
| 489 content::BluetoothChooser::AdapterPresence::POWERED_ON); | 504 content::BluetoothChooser::AdapterPresence::POWERED_ON); |
| 505 EXPECT_NSEQ( |
| 506 l10n_util::GetNSString(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), |
| 507 [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 490 EXPECT_EQ(0u, chooser_controller_->NumOptions()); | 508 EXPECT_EQ(0u, chooser_controller_->NumOptions()); |
| 491 ASSERT_FALSE(connect_button_.enabled); | 509 ASSERT_FALSE(connect_button_.enabled); |
| 492 ASSERT_TRUE(cancel_button_.enabled); | 510 ASSERT_TRUE(cancel_button_.enabled); |
| 493 } | 511 } |
| 494 | 512 |
| 495 TEST_F(ChooserDialogCocoaControllerTest, DiscoveringAndNoOptionAddedAndIdle) { | 513 TEST_F(ChooserDialogCocoaControllerTest, DiscoveringAndNoOptionAddedAndIdle) { |
| 496 CreateChooserDialog(); | 514 CreateChooserDialog(); |
| 497 | 515 |
| 498 // Add options | 516 // Add options |
| 499 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 517 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 525 chooser_controller_->OnDiscoveryStateChanged( | 543 chooser_controller_->OnDiscoveryStateChanged( |
| 526 content::BluetoothChooser::DiscoveryState::IDLE); | 544 content::BluetoothChooser::DiscoveryState::IDLE); |
| 527 EXPECT_FALSE(table_view_.hidden); | 545 EXPECT_FALSE(table_view_.hidden); |
| 528 // There is no option shown now. But since "No devices found." | 546 // There is no option shown now. But since "No devices found." |
| 529 // needs to be displayed on the |table_view_|, the number of rows is 1. | 547 // needs to be displayed on the |table_view_|, the number of rows is 1. |
| 530 EXPECT_EQ(1, table_view_.numberOfRows); | 548 EXPECT_EQ(1, table_view_.numberOfRows); |
| 531 // |table_view_| should be disabled since there is no option shown. | 549 // |table_view_| should be disabled since there is no option shown. |
| 532 ASSERT_FALSE(table_view_.enabled); | 550 ASSERT_FALSE(table_view_.enabled); |
| 533 // No option selected. | 551 // No option selected. |
| 534 EXPECT_EQ(-1, table_view_.selectedRow); | 552 EXPECT_EQ(-1, table_view_.selectedRow); |
| 553 EXPECT_NSEQ( |
| 554 l10n_util::GetNSString(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), |
| 555 [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 535 EXPECT_TRUE(spinner_.hidden); | 556 EXPECT_TRUE(spinner_.hidden); |
| 536 EXPECT_TRUE(status_.hidden); | 557 EXPECT_TRUE(status_.hidden); |
| 537 EXPECT_FALSE(rescan_button_.hidden); | 558 EXPECT_FALSE(rescan_button_.hidden); |
| 538 // OK button is disabled since the chooser refreshed options. | 559 // OK button is disabled since the chooser refreshed options. |
| 539 ASSERT_FALSE(connect_button_.enabled); | 560 ASSERT_FALSE(connect_button_.enabled); |
| 540 ASSERT_TRUE(cancel_button_.enabled); | 561 ASSERT_TRUE(cancel_button_.enabled); |
| 541 } | 562 } |
| 542 | 563 |
| 543 TEST_F(ChooserDialogCocoaControllerTest, | 564 TEST_F(ChooserDialogCocoaControllerTest, |
| 544 DiscoveringAndOneOptionAddedAndSelectedAndIdle) { | 565 DiscoveringAndOneOptionAddedAndSelectedAndIdle) { |
| 545 CreateChooserDialog(); | 566 CreateChooserDialog(); |
| 546 | 567 |
| 547 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 568 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 548 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 569 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 549 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 570 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 550 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] | 571 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] |
| 551 byExtendingSelection:NO]; | 572 byExtendingSelection:NO]; |
| 552 | 573 |
| 553 chooser_controller_->OnDiscoveryStateChanged( | 574 chooser_controller_->OnDiscoveryStateChanged( |
| 554 content::BluetoothChooser::DiscoveryState::DISCOVERING); | 575 content::BluetoothChooser::DiscoveryState::DISCOVERING); |
| 555 chooser_controller_->OptionAdded(base::ASCIIToUTF16("d")); | 576 chooser_controller_->OptionAdded(base::ASCIIToUTF16("d")); |
| 556 EXPECT_FALSE(table_view_.hidden); | 577 EXPECT_FALSE(table_view_.hidden); |
| 557 // |table_view_| should be enabled since there is an option. | 578 // |table_view_| should be enabled since there is an option. |
| 558 ASSERT_TRUE(table_view_.enabled); | 579 ASSERT_TRUE(table_view_.enabled); |
| 559 EXPECT_EQ(1, table_view_.numberOfRows); | 580 EXPECT_EQ(1, table_view_.numberOfRows); |
| 560 // No option selected. | 581 // No option selected. |
| 561 EXPECT_EQ(-1, table_view_.selectedRow); | 582 EXPECT_EQ(-1, table_view_.selectedRow); |
| 583 EXPECT_NSEQ(@"d", [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 562 EXPECT_TRUE(spinner_.hidden); | 584 EXPECT_TRUE(spinner_.hidden); |
| 563 EXPECT_FALSE(status_.hidden); | 585 EXPECT_FALSE(status_.hidden); |
| 564 EXPECT_TRUE(rescan_button_.hidden); | 586 EXPECT_TRUE(rescan_button_.hidden); |
| 565 // OK button is disabled since no option is selected. | 587 // OK button is disabled since no option is selected. |
| 566 ASSERT_FALSE(connect_button_.enabled); | 588 ASSERT_FALSE(connect_button_.enabled); |
| 567 ASSERT_TRUE(cancel_button_.enabled); | 589 ASSERT_TRUE(cancel_button_.enabled); |
| 568 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] | 590 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
| 569 byExtendingSelection:NO]; | 591 byExtendingSelection:NO]; |
| 570 EXPECT_EQ(0, table_view_.selectedRow); | 592 EXPECT_EQ(0, table_view_.selectedRow); |
| 571 ASSERT_TRUE(connect_button_.enabled); | 593 ASSERT_TRUE(connect_button_.enabled); |
| 572 ASSERT_TRUE(cancel_button_.enabled); | 594 ASSERT_TRUE(cancel_button_.enabled); |
| 573 | 595 |
| 574 chooser_controller_->OnDiscoveryStateChanged( | 596 chooser_controller_->OnDiscoveryStateChanged( |
| 575 content::BluetoothChooser::DiscoveryState::IDLE); | 597 content::BluetoothChooser::DiscoveryState::IDLE); |
| 576 EXPECT_FALSE(table_view_.hidden); | 598 EXPECT_FALSE(table_view_.hidden); |
| 577 ASSERT_TRUE(table_view_.enabled); | 599 ASSERT_TRUE(table_view_.enabled); |
| 578 EXPECT_EQ(1, table_view_.numberOfRows); | 600 EXPECT_EQ(1, table_view_.numberOfRows); |
| 579 EXPECT_EQ(0, table_view_.selectedRow); | 601 EXPECT_EQ(0, table_view_.selectedRow); |
| 602 EXPECT_NSEQ(@"d", [[table_view_ preparedCellAtColumn:0 row:0] stringValue]); |
| 580 EXPECT_TRUE(spinner_.hidden); | 603 EXPECT_TRUE(spinner_.hidden); |
| 581 EXPECT_TRUE(status_.hidden); | 604 EXPECT_TRUE(status_.hidden); |
| 582 EXPECT_FALSE(rescan_button_.hidden); | 605 EXPECT_FALSE(rescan_button_.hidden); |
| 583 ASSERT_TRUE(connect_button_.enabled); | 606 ASSERT_TRUE(connect_button_.enabled); |
| 584 ASSERT_TRUE(cancel_button_.enabled); | 607 ASSERT_TRUE(cancel_button_.enabled); |
| 585 } | 608 } |
| 586 | 609 |
| 587 TEST_F(ChooserDialogCocoaControllerTest, PressRescanButton) { | 610 TEST_F(ChooserDialogCocoaControllerTest, PressRescanButton) { |
| 588 CreateChooserDialog(); | 611 CreateChooserDialog(); |
| 589 | 612 |
| 590 EXPECT_CALL(*chooser_controller_, RefreshOptions()).Times(1); | 613 EXPECT_CALL(*chooser_controller_, RefreshOptions()).Times(1); |
| 591 [rescan_button_ performClick:chooser_dialog_controller_]; | 614 [rescan_button_ performClick:chooser_dialog_controller_]; |
| 592 } | 615 } |
| 593 | 616 |
| 594 TEST_F(ChooserDialogCocoaControllerTest, PressHelpButton) { | 617 TEST_F(ChooserDialogCocoaControllerTest, PressHelpButton) { |
| 595 CreateChooserDialog(); | 618 CreateChooserDialog(); |
| 596 | 619 |
| 597 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 620 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 598 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 621 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 599 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 622 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 600 | 623 |
| 601 // Select option 0 and press "Get help" button. | 624 // Select option 0 and press "Get help" button. |
| 602 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] | 625 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
| 603 byExtendingSelection:NO]; | 626 byExtendingSelection:NO]; |
| 604 EXPECT_CALL(*chooser_controller_, Select(testing::_)).Times(0); | 627 EXPECT_CALL(*chooser_controller_, Select(testing::_)).Times(0); |
| 605 EXPECT_CALL(*chooser_controller_, Cancel()).Times(0); | 628 EXPECT_CALL(*chooser_controller_, Cancel()).Times(0); |
| 606 EXPECT_CALL(*chooser_controller_, OpenHelpCenterUrl()).Times(1); | 629 EXPECT_CALL(*chooser_controller_, OpenHelpCenterUrl()).Times(1); |
| 607 [help_button_ performClick:chooser_dialog_controller_]; | 630 [help_button_ performClick:chooser_dialog_controller_]; |
| 608 } | 631 } |
| OLD | NEW |