Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #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" | 12 #include "base/strings/sys_string_conversions.h" |
| 13 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
| 14 #include "chrome/browser/chooser_controller/mock_chooser_controller.h" | 14 #include "chrome/browser/chooser_controller/mock_chooser_controller.h" |
| 15 #import "chrome/browser/ui/cocoa/chooser_content_view_cocoa.h" | 15 #import "chrome/browser/ui/cocoa/chooser_content_view_cocoa.h" |
| 16 #import "chrome/browser/ui/cocoa/cocoa_profile_test.h" | 16 #import "chrome/browser/ui/cocoa/cocoa_profile_test.h" |
| 17 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h" | 17 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h" |
| 18 #import "chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa.h" | 18 #import "chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa.h" |
| 19 #include "chrome/browser/ui/cocoa/spinner_view.h" | 19 #include "chrome/browser/ui/cocoa/spinner_view.h" |
| 20 #include "chrome/grit/generated_resources.h" | |
| 20 #include "testing/gmock/include/gmock/gmock.h" | 21 #include "testing/gmock/include/gmock/gmock.h" |
| 21 #include "testing/gtest/include/gtest/gtest.h" | 22 #include "testing/gtest/include/gtest/gtest.h" |
| 22 #include "testing/gtest_mac.h" | 23 #include "testing/gtest_mac.h" |
| 24 #include "ui/base/l10n/l10n_util.h" | |
| 23 | 25 |
| 24 class ChooserDialogCocoaControllerTest : public CocoaProfileTest { | 26 class ChooserDialogCocoaControllerTest : public CocoaProfileTest { |
| 25 protected: | 27 protected: |
| 26 ChooserDialogCocoaControllerTest() {} | 28 ChooserDialogCocoaControllerTest() {} |
| 27 ~ChooserDialogCocoaControllerTest() override {} | 29 ~ChooserDialogCocoaControllerTest() override {} |
| 28 | 30 |
| 29 void SetUp() override { | 31 void SetUp() override { |
| 30 CocoaProfileTest::SetUp(); | 32 CocoaProfileTest::SetUp(); |
| 31 ASSERT_TRUE(browser()); | 33 ASSERT_TRUE(browser()); |
| 32 } | 34 } |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 82 DISALLOW_COPY_AND_ASSIGN(ChooserDialogCocoaControllerTest); | 84 DISALLOW_COPY_AND_ASSIGN(ChooserDialogCocoaControllerTest); |
| 83 }; | 85 }; |
| 84 | 86 |
| 85 TEST_F(ChooserDialogCocoaControllerTest, InitialState) { | 87 TEST_F(ChooserDialogCocoaControllerTest, InitialState) { |
| 86 CreateChooserDialog(); | 88 CreateChooserDialog(); |
| 87 | 89 |
| 88 // Since "No devices found." needs to be displayed on the |table_view_|, | 90 // Since "No devices found." needs to be displayed on the |table_view_|, |
| 89 // the number of rows is 1. | 91 // the number of rows is 1. |
| 90 EXPECT_EQ(1, table_view_.numberOfRows); | 92 EXPECT_EQ(1, table_view_.numberOfRows); |
| 91 EXPECT_EQ(1, table_view_.numberOfColumns); | 93 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 94 EXPECT_EQ( | |
|
Robert Sesek
2016/08/16 22:30:17
How about:
EXPECT_NSEQ(l10n_util::GetStringNSStr
juncai
2016/08/16 23:03:21
Done.
| |
| 95 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), | |
| 96 base::SysNSStringToUTF16( | |
| 97 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 92 // |table_view_| should be disabled since there is no option shown. | 98 // |table_view_| should be disabled since there is no option shown. |
| 93 ASSERT_FALSE(table_view_.enabled); | 99 ASSERT_FALSE(table_view_.enabled); |
| 94 // No option selected. | 100 // No option selected. |
| 95 EXPECT_EQ(-1, table_view_.selectedRow); | 101 EXPECT_EQ(-1, table_view_.selectedRow); |
| 96 // |connect_button_| should be disabled since no option selected. | 102 // |connect_button_| should be disabled since no option selected. |
| 97 ASSERT_FALSE(connect_button_.enabled); | 103 ASSERT_FALSE(connect_button_.enabled); |
| 98 ASSERT_TRUE(cancel_button_.enabled); | 104 ASSERT_TRUE(cancel_button_.enabled); |
| 99 ASSERT_TRUE(help_button_.enabled); | 105 ASSERT_TRUE(help_button_.enabled); |
| 100 } | 106 } |
| 101 | 107 |
| 102 TEST_F(ChooserDialogCocoaControllerTest, AddOption) { | 108 TEST_F(ChooserDialogCocoaControllerTest, AddOption) { |
| 103 CreateChooserDialog(); | 109 CreateChooserDialog(); |
| 104 | 110 |
| 105 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 111 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 106 EXPECT_EQ(1, table_view_.numberOfRows); | 112 EXPECT_EQ(1, table_view_.numberOfRows); |
| 107 EXPECT_EQ(1, table_view_.numberOfColumns); | 113 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 108 // |table_view_| should be enabled since there is an option. | 114 // |table_view_| should be enabled since there is an option. |
| 109 ASSERT_TRUE(table_view_.enabled); | 115 ASSERT_TRUE(table_view_.enabled); |
| 110 EXPECT_EQ(-1, table_view_.selectedRow); | 116 EXPECT_EQ(-1, table_view_.selectedRow); |
| 117 EXPECT_EQ(base::ASCIIToUTF16("a"), | |
|
Robert Sesek
2016/08/16 22:30:17
Similarly,
EXPECT_NSEQ(@"a", …);
juncai
2016/08/16 23:03:21
Done.
| |
| 118 base::SysNSStringToUTF16( | |
| 119 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 111 ASSERT_FALSE(connect_button_.enabled); | 120 ASSERT_FALSE(connect_button_.enabled); |
| 112 ASSERT_TRUE(cancel_button_.enabled); | 121 ASSERT_TRUE(cancel_button_.enabled); |
| 113 ASSERT_TRUE(help_button_.enabled); | 122 ASSERT_TRUE(help_button_.enabled); |
| 114 | 123 |
| 115 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 124 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 116 EXPECT_EQ(2, table_view_.numberOfRows); | 125 EXPECT_EQ(2, table_view_.numberOfRows); |
| 117 EXPECT_EQ(1, table_view_.numberOfColumns); | 126 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 118 ASSERT_TRUE(table_view_.enabled); | 127 ASSERT_TRUE(table_view_.enabled); |
| 119 EXPECT_EQ(-1, table_view_.selectedRow); | 128 EXPECT_EQ(-1, table_view_.selectedRow); |
| 129 EXPECT_EQ(base::ASCIIToUTF16("b"), | |
| 130 base::SysNSStringToUTF16( | |
| 131 [[table_view_ preparedCellAtColumn:0 row:1] stringValue])); | |
| 120 | 132 |
| 121 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 133 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 122 EXPECT_EQ(3, table_view_.numberOfRows); | 134 EXPECT_EQ(3, table_view_.numberOfRows); |
| 123 EXPECT_EQ(1, table_view_.numberOfColumns); | 135 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 124 ASSERT_TRUE(table_view_.enabled); | 136 ASSERT_TRUE(table_view_.enabled); |
| 125 EXPECT_EQ(-1, table_view_.selectedRow); | 137 EXPECT_EQ(-1, table_view_.selectedRow); |
| 138 EXPECT_EQ(base::ASCIIToUTF16("c"), | |
| 139 base::SysNSStringToUTF16( | |
| 140 [[table_view_ preparedCellAtColumn:0 row:2] stringValue])); | |
| 126 } | 141 } |
| 127 | 142 |
| 128 TEST_F(ChooserDialogCocoaControllerTest, RemoveOption) { | 143 TEST_F(ChooserDialogCocoaControllerTest, RemoveOption) { |
| 129 CreateChooserDialog(); | 144 CreateChooserDialog(); |
| 130 | 145 |
| 131 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 146 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 132 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 147 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 133 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 148 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 134 | 149 |
| 135 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 150 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
| 136 EXPECT_EQ(2, table_view_.numberOfRows); | 151 EXPECT_EQ(2, table_view_.numberOfRows); |
| 137 EXPECT_EQ(1, table_view_.numberOfColumns); | 152 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 138 ASSERT_TRUE(table_view_.enabled); | 153 ASSERT_TRUE(table_view_.enabled); |
| 139 EXPECT_EQ(-1, table_view_.selectedRow); | 154 EXPECT_EQ(-1, table_view_.selectedRow); |
| 155 EXPECT_EQ(base::ASCIIToUTF16("a"), | |
| 156 base::SysNSStringToUTF16( | |
| 157 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 158 EXPECT_EQ(base::ASCIIToUTF16("c"), | |
| 159 base::SysNSStringToUTF16( | |
| 160 [[table_view_ preparedCellAtColumn:0 row:1] stringValue])); | |
| 140 | 161 |
| 141 // Remove a non-existent option, the number of rows should not change. | 162 // Remove a non-existent option, the number of rows should not change. |
| 142 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("non-existent")); | 163 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("non-existent")); |
| 143 EXPECT_EQ(2, table_view_.numberOfRows); | 164 EXPECT_EQ(2, table_view_.numberOfRows); |
| 144 EXPECT_EQ(1, table_view_.numberOfColumns); | 165 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 145 ASSERT_TRUE(table_view_.enabled); | 166 ASSERT_TRUE(table_view_.enabled); |
| 146 EXPECT_EQ(-1, table_view_.selectedRow); | 167 EXPECT_EQ(-1, table_view_.selectedRow); |
| 168 EXPECT_EQ(base::ASCIIToUTF16("a"), | |
| 169 base::SysNSStringToUTF16( | |
| 170 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 171 EXPECT_EQ(base::ASCIIToUTF16("c"), | |
| 172 base::SysNSStringToUTF16( | |
| 173 [[table_view_ preparedCellAtColumn:0 row:1] stringValue])); | |
| 147 | 174 |
| 148 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); | 175 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("c")); |
| 149 EXPECT_EQ(1, table_view_.numberOfRows); | 176 EXPECT_EQ(1, table_view_.numberOfRows); |
| 150 EXPECT_EQ(1, table_view_.numberOfColumns); | 177 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 151 ASSERT_TRUE(table_view_.enabled); | 178 ASSERT_TRUE(table_view_.enabled); |
| 152 EXPECT_EQ(-1, table_view_.selectedRow); | 179 EXPECT_EQ(-1, table_view_.selectedRow); |
| 180 EXPECT_EQ(base::ASCIIToUTF16("a"), | |
| 181 base::SysNSStringToUTF16( | |
| 182 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 153 | 183 |
| 154 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); | 184 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); |
| 155 // There is no option shown now. But since "No devices found." | 185 // 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. | 186 // needs to be displayed on the |table_view_|, the number of rows is 1. |
| 157 EXPECT_EQ(1, table_view_.numberOfRows); | 187 EXPECT_EQ(1, table_view_.numberOfRows); |
| 158 EXPECT_EQ(1, table_view_.numberOfColumns); | 188 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 159 // |table_view_| should be disabled since all options are removed. | 189 // |table_view_| should be disabled since all options are removed. |
| 160 ASSERT_FALSE(table_view_.enabled); | 190 ASSERT_FALSE(table_view_.enabled); |
| 161 EXPECT_EQ(-1, table_view_.selectedRow); | 191 EXPECT_EQ(-1, table_view_.selectedRow); |
| 192 EXPECT_EQ( | |
| 193 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), | |
| 194 base::SysNSStringToUTF16( | |
| 195 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 162 } | 196 } |
| 163 | 197 |
| 164 TEST_F(ChooserDialogCocoaControllerTest, UpdateOption) { | 198 TEST_F(ChooserDialogCocoaControllerTest, UpdateOption) { |
| 165 CreateChooserDialog(); | 199 CreateChooserDialog(); |
| 166 | 200 |
| 167 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 201 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 168 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 202 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 169 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 203 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 170 | 204 |
| 171 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | 205 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
| 172 base::ASCIIToUTF16("d")); | 206 base::ASCIIToUTF16("d")); |
| 173 | 207 |
| 174 EXPECT_EQ(3, table_view_.numberOfRows); | 208 EXPECT_EQ(3, table_view_.numberOfRows); |
| 175 EXPECT_EQ(1, table_view_.numberOfColumns); | 209 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 176 ASSERT_TRUE(table_view_.enabled); | 210 ASSERT_TRUE(table_view_.enabled); |
| 177 EXPECT_EQ(-1, table_view_.selectedRow); | 211 EXPECT_EQ(-1, table_view_.selectedRow); |
| 178 | 212 EXPECT_EQ(base::ASCIIToUTF16("a"), |
| 179 NSCell* cell = [table_view_ preparedCellAtColumn:0 row:1]; | 213 base::SysNSStringToUTF16( |
| 214 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 180 EXPECT_EQ(base::ASCIIToUTF16("d"), | 215 EXPECT_EQ(base::ASCIIToUTF16("d"), |
| 181 base::SysNSStringToUTF16([cell stringValue])); | 216 base::SysNSStringToUTF16( |
| 217 [[table_view_ preparedCellAtColumn:0 row:1] stringValue])); | |
| 218 EXPECT_EQ(base::ASCIIToUTF16("c"), | |
| 219 base::SysNSStringToUTF16( | |
| 220 [[table_view_ preparedCellAtColumn:0 row:2] stringValue])); | |
| 182 } | 221 } |
| 183 | 222 |
| 184 TEST_F(ChooserDialogCocoaControllerTest, AddAndRemoveOption) { | 223 TEST_F(ChooserDialogCocoaControllerTest, AddAndRemoveOption) { |
| 185 CreateChooserDialog(); | 224 CreateChooserDialog(); |
| 186 | 225 |
| 187 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 226 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 188 EXPECT_EQ(1, table_view_.numberOfRows); | 227 EXPECT_EQ(1, table_view_.numberOfRows); |
| 189 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 228 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 190 EXPECT_EQ(2, table_view_.numberOfRows); | 229 EXPECT_EQ(2, table_view_.numberOfRows); |
| 191 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 230 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 209 | 248 |
| 210 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | 249 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
| 211 base::ASCIIToUTF16("d")); | 250 base::ASCIIToUTF16("d")); |
| 212 | 251 |
| 213 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); | 252 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); |
| 214 | 253 |
| 215 EXPECT_EQ(2, table_view_.numberOfRows); | 254 EXPECT_EQ(2, table_view_.numberOfRows); |
| 216 EXPECT_EQ(1, table_view_.numberOfColumns); | 255 EXPECT_EQ(1, table_view_.numberOfColumns); |
| 217 ASSERT_TRUE(table_view_.enabled); | 256 ASSERT_TRUE(table_view_.enabled); |
| 218 EXPECT_EQ(-1, table_view_.selectedRow); | 257 EXPECT_EQ(-1, table_view_.selectedRow); |
| 219 | |
| 220 NSCell* cell_a = [table_view_ preparedCellAtColumn:0 row:0]; | |
| 221 EXPECT_EQ(base::ASCIIToUTF16("a"), | 258 EXPECT_EQ(base::ASCIIToUTF16("a"), |
| 222 base::SysNSStringToUTF16([cell_a stringValue])); | 259 base::SysNSStringToUTF16( |
| 223 | 260 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); |
| 224 NSCell* cell_c = [table_view_ preparedCellAtColumn:0 row:1]; | |
| 225 EXPECT_EQ(base::ASCIIToUTF16("c"), | 261 EXPECT_EQ(base::ASCIIToUTF16("c"), |
| 226 base::SysNSStringToUTF16([cell_c stringValue])); | 262 base::SysNSStringToUTF16( |
| 263 [[table_view_ preparedCellAtColumn:0 row:1] stringValue])); | |
| 227 } | 264 } |
| 228 | 265 |
| 229 TEST_F(ChooserDialogCocoaControllerTest, SelectAndDeselectAnOption) { | 266 TEST_F(ChooserDialogCocoaControllerTest, SelectAndDeselectAnOption) { |
| 230 CreateChooserDialog(); | 267 CreateChooserDialog(); |
| 231 | 268 |
| 232 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 269 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 233 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 270 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 234 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 271 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 235 | 272 |
| 236 // Select option 0. | 273 // Select option 0. |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 345 | 382 |
| 346 // Select option 1. | 383 // Select option 1. |
| 347 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] | 384 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] |
| 348 byExtendingSelection:NO]; | 385 byExtendingSelection:NO]; |
| 349 | 386 |
| 350 // Update option 1. | 387 // Update option 1. |
| 351 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), | 388 chooser_controller_->OptionUpdated(base::ASCIIToUTF16("b"), |
| 352 base::ASCIIToUTF16("d")); | 389 base::ASCIIToUTF16("d")); |
| 353 | 390 |
| 354 EXPECT_EQ(1, table_view_.selectedRow); | 391 EXPECT_EQ(1, table_view_.selectedRow); |
| 392 EXPECT_EQ(base::ASCIIToUTF16("a"), | |
| 393 base::SysNSStringToUTF16( | |
| 394 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 395 EXPECT_EQ(base::ASCIIToUTF16("d"), | |
| 396 base::SysNSStringToUTF16( | |
| 397 [[table_view_ preparedCellAtColumn:0 row:1] stringValue])); | |
| 398 EXPECT_EQ(base::ASCIIToUTF16("c"), | |
| 399 base::SysNSStringToUTF16( | |
| 400 [[table_view_ preparedCellAtColumn:0 row:2] stringValue])); | |
| 355 ASSERT_TRUE(connect_button_.enabled); | 401 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 } | 402 } |
| 361 | 403 |
| 362 TEST_F(ChooserDialogCocoaControllerTest, | 404 TEST_F(ChooserDialogCocoaControllerTest, |
| 363 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { | 405 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { |
| 364 CreateChooserDialog(); | 406 CreateChooserDialog(); |
| 365 | 407 |
| 366 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 408 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 367 | 409 |
| 368 // Select option 0. | 410 // Select option 0. |
| 369 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] | 411 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
| 370 byExtendingSelection:NO]; | 412 byExtendingSelection:NO]; |
| 371 EXPECT_EQ(1, table_view_.numberOfRows); | 413 EXPECT_EQ(1, table_view_.numberOfRows); |
| 372 EXPECT_EQ(0, table_view_.selectedRow); | 414 EXPECT_EQ(0, table_view_.selectedRow); |
| 373 ASSERT_TRUE(connect_button_.enabled); | 415 ASSERT_TRUE(connect_button_.enabled); |
| 374 | 416 |
| 375 // Remove option 0. | 417 // Remove option 0. |
| 376 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); | 418 chooser_controller_->OptionRemoved(base::ASCIIToUTF16("a")); |
| 377 // There is no option shown now. But since "No devices found." | 419 // 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. | 420 // needs to be displayed on the |table_view_|, the number of rows is 1. |
| 379 EXPECT_EQ(1, table_view_.numberOfRows); | 421 EXPECT_EQ(1, table_view_.numberOfRows); |
| 380 // No option selected. | 422 // No option selected. |
| 381 EXPECT_EQ(-1, table_view_.selectedRow); | 423 EXPECT_EQ(-1, table_view_.selectedRow); |
| 382 // |table_view_| should be disabled since there is no option shown. | 424 // |table_view_| should be disabled since there is no option shown. |
| 383 ASSERT_FALSE(table_view_.enabled); | 425 ASSERT_FALSE(table_view_.enabled); |
| 426 EXPECT_EQ( | |
| 427 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), | |
| 428 base::SysNSStringToUTF16( | |
| 429 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 384 // Since no option selected, the "Connect" button should be disabled. | 430 // Since no option selected, the "Connect" button should be disabled. |
| 385 ASSERT_FALSE(connect_button_.enabled); | 431 ASSERT_FALSE(connect_button_.enabled); |
| 386 } | 432 } |
| 387 | 433 |
| 388 TEST_F(ChooserDialogCocoaControllerTest, NoOptionSelectedAndPressCancelButton) { | 434 TEST_F(ChooserDialogCocoaControllerTest, NoOptionSelectedAndPressCancelButton) { |
| 389 CreateChooserDialog(); | 435 CreateChooserDialog(); |
| 390 | 436 |
| 391 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 437 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 392 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 438 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 393 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 439 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 440 chooser_controller_->OnAdapterPresenceChanged( | 486 chooser_controller_->OnAdapterPresenceChanged( |
| 441 content::BluetoothChooser::AdapterPresence::POWERED_ON); | 487 content::BluetoothChooser::AdapterPresence::POWERED_ON); |
| 442 EXPECT_FALSE(table_view_.hidden); | 488 EXPECT_FALSE(table_view_.hidden); |
| 443 // There is no option shown now. But since "No devices found." | 489 // 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. | 490 // needs to be displayed on the |table_view_|, the number of rows is 1. |
| 445 EXPECT_EQ(1, table_view_.numberOfRows); | 491 EXPECT_EQ(1, table_view_.numberOfRows); |
| 446 // |table_view_| should be disabled since there is no option shown. | 492 // |table_view_| should be disabled since there is no option shown. |
| 447 ASSERT_FALSE(table_view_.enabled); | 493 ASSERT_FALSE(table_view_.enabled); |
| 448 // No option selected. | 494 // No option selected. |
| 449 EXPECT_EQ(-1, table_view_.selectedRow); | 495 EXPECT_EQ(-1, table_view_.selectedRow); |
| 496 EXPECT_EQ( | |
| 497 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), | |
| 498 base::SysNSStringToUTF16( | |
| 499 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 450 EXPECT_TRUE(spinner_.hidden); | 500 EXPECT_TRUE(spinner_.hidden); |
| 451 EXPECT_TRUE(status_.hidden); | 501 EXPECT_TRUE(status_.hidden); |
| 452 EXPECT_FALSE(rescan_button_.hidden); | 502 EXPECT_FALSE(rescan_button_.hidden); |
| 453 ASSERT_FALSE(connect_button_.enabled); | 503 ASSERT_FALSE(connect_button_.enabled); |
| 454 ASSERT_TRUE(cancel_button_.enabled); | 504 ASSERT_TRUE(cancel_button_.enabled); |
| 455 | 505 |
| 456 // Add options | 506 // Add options |
| 457 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 507 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 458 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 508 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 459 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 509 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 460 ASSERT_TRUE(table_view_.enabled); | 510 ASSERT_TRUE(table_view_.enabled); |
| 461 EXPECT_EQ(3, table_view_.numberOfRows); | 511 EXPECT_EQ(3, table_view_.numberOfRows); |
| 462 // Select option 1. | 512 // Select option 1. |
| 463 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] | 513 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] |
| 464 byExtendingSelection:NO]; | 514 byExtendingSelection:NO]; |
| 465 EXPECT_EQ(1, table_view_.selectedRow); | 515 EXPECT_EQ(1, table_view_.selectedRow); |
| 466 ASSERT_TRUE(connect_button_.enabled); | 516 ASSERT_TRUE(connect_button_.enabled); |
| 467 ASSERT_TRUE(cancel_button_.enabled); | 517 ASSERT_TRUE(cancel_button_.enabled); |
| 468 | 518 |
| 469 chooser_controller_->OnAdapterPresenceChanged( | 519 chooser_controller_->OnAdapterPresenceChanged( |
| 470 content::BluetoothChooser::AdapterPresence::POWERED_OFF); | 520 content::BluetoothChooser::AdapterPresence::POWERED_OFF); |
| 471 EXPECT_FALSE(table_view_.hidden); | 521 EXPECT_FALSE(table_view_.hidden); |
| 472 // Since "Bluetooth turned off." needs to be displayed on the |table_view_|, | 522 // Since "Bluetooth turned off." needs to be displayed on the |table_view_|, |
| 473 // the number of rows is 1. | 523 // the number of rows is 1. |
| 474 EXPECT_EQ(1, table_view_.numberOfRows); | 524 EXPECT_EQ(1, table_view_.numberOfRows); |
| 475 // |table_view_| should be disabled since there is no option shown. | 525 // |table_view_| should be disabled since there is no option shown. |
| 476 EXPECT_FALSE(table_view_.enabled); | 526 EXPECT_FALSE(table_view_.enabled); |
| 477 // No option selected. | 527 // No option selected. |
| 478 EXPECT_EQ(-1, table_view_.selectedRow); | 528 EXPECT_EQ(-1, table_view_.selectedRow); |
| 529 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_ADAPTER_OFF), | |
| 530 base::SysNSStringToUTF16( | |
| 531 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 479 EXPECT_TRUE(spinner_.hidden); | 532 EXPECT_TRUE(spinner_.hidden); |
| 480 EXPECT_TRUE(status_.hidden); | 533 EXPECT_TRUE(status_.hidden); |
| 481 EXPECT_TRUE(rescan_button_.hidden); | 534 EXPECT_TRUE(rescan_button_.hidden); |
| 482 // Since the adapter is turned off, the previously selected option | 535 // Since the adapter is turned off, the previously selected option |
| 483 // becomes invalid, the OK button is disabled. | 536 // becomes invalid, the OK button is disabled. |
| 484 EXPECT_EQ(0u, chooser_controller_->NumOptions()); | 537 EXPECT_EQ(0u, chooser_controller_->NumOptions()); |
| 485 ASSERT_FALSE(connect_button_.enabled); | 538 ASSERT_FALSE(connect_button_.enabled); |
| 486 ASSERT_TRUE(cancel_button_.enabled); | 539 ASSERT_TRUE(cancel_button_.enabled); |
| 487 | 540 |
| 488 chooser_controller_->OnAdapterPresenceChanged( | 541 chooser_controller_->OnAdapterPresenceChanged( |
| 489 content::BluetoothChooser::AdapterPresence::POWERED_ON); | 542 content::BluetoothChooser::AdapterPresence::POWERED_ON); |
| 543 EXPECT_EQ( | |
| 544 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), | |
| 545 base::SysNSStringToUTF16( | |
| 546 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 490 EXPECT_EQ(0u, chooser_controller_->NumOptions()); | 547 EXPECT_EQ(0u, chooser_controller_->NumOptions()); |
| 491 ASSERT_FALSE(connect_button_.enabled); | 548 ASSERT_FALSE(connect_button_.enabled); |
| 492 ASSERT_TRUE(cancel_button_.enabled); | 549 ASSERT_TRUE(cancel_button_.enabled); |
| 493 } | 550 } |
| 494 | 551 |
| 495 TEST_F(ChooserDialogCocoaControllerTest, DiscoveringAndNoOptionAddedAndIdle) { | 552 TEST_F(ChooserDialogCocoaControllerTest, DiscoveringAndNoOptionAddedAndIdle) { |
| 496 CreateChooserDialog(); | 553 CreateChooserDialog(); |
| 497 | 554 |
| 498 // Add options | 555 // Add options |
| 499 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 556 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 525 chooser_controller_->OnDiscoveryStateChanged( | 582 chooser_controller_->OnDiscoveryStateChanged( |
| 526 content::BluetoothChooser::DiscoveryState::IDLE); | 583 content::BluetoothChooser::DiscoveryState::IDLE); |
| 527 EXPECT_FALSE(table_view_.hidden); | 584 EXPECT_FALSE(table_view_.hidden); |
| 528 // There is no option shown now. But since "No devices found." | 585 // 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. | 586 // needs to be displayed on the |table_view_|, the number of rows is 1. |
| 530 EXPECT_EQ(1, table_view_.numberOfRows); | 587 EXPECT_EQ(1, table_view_.numberOfRows); |
| 531 // |table_view_| should be disabled since there is no option shown. | 588 // |table_view_| should be disabled since there is no option shown. |
| 532 ASSERT_FALSE(table_view_.enabled); | 589 ASSERT_FALSE(table_view_.enabled); |
| 533 // No option selected. | 590 // No option selected. |
| 534 EXPECT_EQ(-1, table_view_.selectedRow); | 591 EXPECT_EQ(-1, table_view_.selectedRow); |
| 592 EXPECT_EQ( | |
| 593 l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT), | |
| 594 base::SysNSStringToUTF16( | |
| 595 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 535 EXPECT_TRUE(spinner_.hidden); | 596 EXPECT_TRUE(spinner_.hidden); |
| 536 EXPECT_TRUE(status_.hidden); | 597 EXPECT_TRUE(status_.hidden); |
| 537 EXPECT_FALSE(rescan_button_.hidden); | 598 EXPECT_FALSE(rescan_button_.hidden); |
| 538 // OK button is disabled since the chooser refreshed options. | 599 // OK button is disabled since the chooser refreshed options. |
| 539 ASSERT_FALSE(connect_button_.enabled); | 600 ASSERT_FALSE(connect_button_.enabled); |
| 540 ASSERT_TRUE(cancel_button_.enabled); | 601 ASSERT_TRUE(cancel_button_.enabled); |
| 541 } | 602 } |
| 542 | 603 |
| 543 TEST_F(ChooserDialogCocoaControllerTest, | 604 TEST_F(ChooserDialogCocoaControllerTest, |
| 544 DiscoveringAndOneOptionAddedAndSelectedAndIdle) { | 605 DiscoveringAndOneOptionAddedAndSelectedAndIdle) { |
| 545 CreateChooserDialog(); | 606 CreateChooserDialog(); |
| 546 | 607 |
| 547 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 608 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 548 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 609 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 549 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 610 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 550 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] | 611 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] |
| 551 byExtendingSelection:NO]; | 612 byExtendingSelection:NO]; |
| 552 | 613 |
| 553 chooser_controller_->OnDiscoveryStateChanged( | 614 chooser_controller_->OnDiscoveryStateChanged( |
| 554 content::BluetoothChooser::DiscoveryState::DISCOVERING); | 615 content::BluetoothChooser::DiscoveryState::DISCOVERING); |
| 555 chooser_controller_->OptionAdded(base::ASCIIToUTF16("d")); | 616 chooser_controller_->OptionAdded(base::ASCIIToUTF16("d")); |
| 556 EXPECT_FALSE(table_view_.hidden); | 617 EXPECT_FALSE(table_view_.hidden); |
| 557 // |table_view_| should be enabled since there is an option. | 618 // |table_view_| should be enabled since there is an option. |
| 558 ASSERT_TRUE(table_view_.enabled); | 619 ASSERT_TRUE(table_view_.enabled); |
| 559 EXPECT_EQ(1, table_view_.numberOfRows); | 620 EXPECT_EQ(1, table_view_.numberOfRows); |
| 560 // No option selected. | 621 // No option selected. |
| 561 EXPECT_EQ(-1, table_view_.selectedRow); | 622 EXPECT_EQ(-1, table_view_.selectedRow); |
| 623 EXPECT_EQ(base::ASCIIToUTF16("d"), | |
| 624 base::SysNSStringToUTF16( | |
| 625 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 562 EXPECT_TRUE(spinner_.hidden); | 626 EXPECT_TRUE(spinner_.hidden); |
| 563 EXPECT_FALSE(status_.hidden); | 627 EXPECT_FALSE(status_.hidden); |
| 564 EXPECT_TRUE(rescan_button_.hidden); | 628 EXPECT_TRUE(rescan_button_.hidden); |
| 565 // OK button is disabled since no option is selected. | 629 // OK button is disabled since no option is selected. |
| 566 ASSERT_FALSE(connect_button_.enabled); | 630 ASSERT_FALSE(connect_button_.enabled); |
| 567 ASSERT_TRUE(cancel_button_.enabled); | 631 ASSERT_TRUE(cancel_button_.enabled); |
| 568 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] | 632 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
| 569 byExtendingSelection:NO]; | 633 byExtendingSelection:NO]; |
| 570 EXPECT_EQ(0, table_view_.selectedRow); | 634 EXPECT_EQ(0, table_view_.selectedRow); |
| 571 ASSERT_TRUE(connect_button_.enabled); | 635 ASSERT_TRUE(connect_button_.enabled); |
| 572 ASSERT_TRUE(cancel_button_.enabled); | 636 ASSERT_TRUE(cancel_button_.enabled); |
| 573 | 637 |
| 574 chooser_controller_->OnDiscoveryStateChanged( | 638 chooser_controller_->OnDiscoveryStateChanged( |
| 575 content::BluetoothChooser::DiscoveryState::IDLE); | 639 content::BluetoothChooser::DiscoveryState::IDLE); |
| 576 EXPECT_FALSE(table_view_.hidden); | 640 EXPECT_FALSE(table_view_.hidden); |
| 577 ASSERT_TRUE(table_view_.enabled); | 641 ASSERT_TRUE(table_view_.enabled); |
| 578 EXPECT_EQ(1, table_view_.numberOfRows); | 642 EXPECT_EQ(1, table_view_.numberOfRows); |
| 579 EXPECT_EQ(0, table_view_.selectedRow); | 643 EXPECT_EQ(0, table_view_.selectedRow); |
| 644 EXPECT_EQ(base::ASCIIToUTF16("d"), | |
| 645 base::SysNSStringToUTF16( | |
| 646 [[table_view_ preparedCellAtColumn:0 row:0] stringValue])); | |
| 580 EXPECT_TRUE(spinner_.hidden); | 647 EXPECT_TRUE(spinner_.hidden); |
| 581 EXPECT_TRUE(status_.hidden); | 648 EXPECT_TRUE(status_.hidden); |
| 582 EXPECT_FALSE(rescan_button_.hidden); | 649 EXPECT_FALSE(rescan_button_.hidden); |
| 583 ASSERT_TRUE(connect_button_.enabled); | 650 ASSERT_TRUE(connect_button_.enabled); |
| 584 ASSERT_TRUE(cancel_button_.enabled); | 651 ASSERT_TRUE(cancel_button_.enabled); |
| 585 } | 652 } |
| 586 | 653 |
| 587 TEST_F(ChooserDialogCocoaControllerTest, PressRescanButton) { | 654 TEST_F(ChooserDialogCocoaControllerTest, PressRescanButton) { |
| 588 CreateChooserDialog(); | 655 CreateChooserDialog(); |
| 589 | 656 |
| 590 EXPECT_CALL(*chooser_controller_, RefreshOptions()).Times(1); | 657 EXPECT_CALL(*chooser_controller_, RefreshOptions()).Times(1); |
| 591 [rescan_button_ performClick:chooser_dialog_controller_]; | 658 [rescan_button_ performClick:chooser_dialog_controller_]; |
| 592 } | 659 } |
| 593 | 660 |
| 594 TEST_F(ChooserDialogCocoaControllerTest, PressHelpButton) { | 661 TEST_F(ChooserDialogCocoaControllerTest, PressHelpButton) { |
| 595 CreateChooserDialog(); | 662 CreateChooserDialog(); |
| 596 | 663 |
| 597 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); | 664 chooser_controller_->OptionAdded(base::ASCIIToUTF16("a")); |
| 598 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); | 665 chooser_controller_->OptionAdded(base::ASCIIToUTF16("b")); |
| 599 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); | 666 chooser_controller_->OptionAdded(base::ASCIIToUTF16("c")); |
| 600 | 667 |
| 601 // Select option 0 and press "Get help" button. | 668 // Select option 0 and press "Get help" button. |
| 602 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] | 669 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
| 603 byExtendingSelection:NO]; | 670 byExtendingSelection:NO]; |
| 604 EXPECT_CALL(*chooser_controller_, Select(testing::_)).Times(0); | 671 EXPECT_CALL(*chooser_controller_, Select(testing::_)).Times(0); |
| 605 EXPECT_CALL(*chooser_controller_, Cancel()).Times(0); | 672 EXPECT_CALL(*chooser_controller_, Cancel()).Times(0); |
| 606 EXPECT_CALL(*chooser_controller_, OpenHelpCenterUrl()).Times(1); | 673 EXPECT_CALL(*chooser_controller_, OpenHelpCenterUrl()).Times(1); |
| 607 [help_button_ performClick:chooser_dialog_controller_]; | 674 [help_button_ performClick:chooser_dialog_controller_]; |
| 608 } | 675 } |
| OLD | NEW |