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/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
13 #include "chrome/browser/chooser_controller/mock_chooser_controller.h" | 13 #include "chrome/browser/chooser_controller/mock_chooser_controller.h" |
14 #import "chrome/browser/ui/cocoa/chooser_content_view_cocoa.h" | 14 #import "chrome/browser/ui/cocoa/chooser_content_view_cocoa.h" |
15 #import "chrome/browser/ui/cocoa/cocoa_profile_test.h" | 15 #import "chrome/browser/ui/cocoa/cocoa_profile_test.h" |
16 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h" | 16 #include "chrome/browser/ui/cocoa/cocoa_test_helper.h" |
17 #import "chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa.h" | 17 #import "chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa.h" |
18 #include "chrome/browser/ui/cocoa/spinner_view.h" | 18 #include "chrome/browser/ui/cocoa/spinner_view.h" |
19 #include "chrome/grit/generated_resources.h" | 19 #include "chrome/grit/generated_resources.h" |
| 20 #include "skia/ext/skia_utils_mac.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" |
23 #include "ui/base/l10n/l10n_util_mac.h" | 24 #include "ui/base/l10n/l10n_util_mac.h" |
24 #include "ui/base/resource/resource_bundle.h" | 25 #include "ui/base/resource/resource_bundle.h" |
25 #include "ui/gfx/color_palette.h" | 26 #include "ui/gfx/color_palette.h" |
26 #include "ui/gfx/image/image.h" | 27 #include "ui/gfx/image/image.h" |
27 #include "ui/gfx/image/image_unittest_util.h" | 28 #include "ui/gfx/image/image_unittest_util.h" |
28 #include "ui/gfx/paint_vector_icon.h" | 29 #include "ui/gfx/paint_vector_icon.h" |
29 #include "ui/gfx/vector_icons_public.h" | 30 #include "ui/gfx/vector_icons_public.h" |
30 #include "ui/resources/grit/ui_resources.h" | 31 #include "ui/resources/grit/ui_resources.h" |
31 | 32 |
32 namespace { | 33 namespace { |
33 | 34 |
34 // The lookup table for signal strength level image. | 35 // The lookup table for signal strength level image. |
35 const int kSignalStrengthLevelImageIds[5] = {IDR_SIGNAL_0_BAR, IDR_SIGNAL_1_BAR, | 36 const int kSignalStrengthLevelBlackImageIds[5] = { |
36 IDR_SIGNAL_2_BAR, IDR_SIGNAL_3_BAR, | 37 IDR_SIGNAL_0_BAR_BLACK, IDR_SIGNAL_1_BAR_BLACK, IDR_SIGNAL_2_BAR_BLACK, |
37 IDR_SIGNAL_4_BAR}; | 38 IDR_SIGNAL_3_BAR_BLACK, IDR_SIGNAL_4_BAR_BLACK}; |
| 39 const int kSignalStrengthLevelWhiteImageIds[5] = { |
| 40 IDR_SIGNAL_0_BAR_WHITE, IDR_SIGNAL_1_BAR_WHITE, IDR_SIGNAL_2_BAR_WHITE, |
| 41 IDR_SIGNAL_3_BAR_WHITE, IDR_SIGNAL_4_BAR_WHITE}; |
38 | 42 |
39 } // namespace | 43 } // namespace |
40 | 44 |
41 class ChooserDialogCocoaControllerTest : public CocoaProfileTest { | 45 class ChooserDialogCocoaControllerTest : public CocoaProfileTest { |
42 protected: | 46 protected: |
43 ChooserDialogCocoaControllerTest() | 47 ChooserDialogCocoaControllerTest() |
44 : rb_(ui::ResourceBundle::GetSharedInstance()) {} | 48 : rb_(ui::ResourceBundle::GetSharedInstance()) {} |
45 ~ChooserDialogCocoaControllerTest() override {} | 49 ~ChooserDialogCocoaControllerTest() override {} |
46 | 50 |
47 void SetUp() override { | 51 void SetUp() override { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 help_button_ = [chooser_content_view_ helpButton]; | 86 help_button_ = [chooser_content_view_ helpButton]; |
83 ASSERT_TRUE(help_button_); | 87 ASSERT_TRUE(help_button_); |
84 } | 88 } |
85 | 89 |
86 void ExpectNoRowImage(int row) { | 90 void ExpectNoRowImage(int row) { |
87 ASSERT_FALSE( | 91 ASSERT_FALSE( |
88 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]); | 92 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]); |
89 } | 93 } |
90 | 94 |
91 void ExpectSignalStrengthLevelImageIs(int row, | 95 void ExpectSignalStrengthLevelImageIs(int row, |
92 int expected_signal_strength_level) { | 96 int expected_signal_strength_level, |
| 97 int expected_color) { |
93 NSImageView* image_view = | 98 NSImageView* image_view = |
94 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]; | 99 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]; |
95 ASSERT_TRUE(image_view); | 100 ASSERT_TRUE(image_view); |
96 EXPECT_NSEQ( | 101 int image_id = |
97 rb_.GetNativeImageNamed( | 102 expected_color == MockChooserController::kImageColorBlack |
98 kSignalStrengthLevelImageIds[expected_signal_strength_level]) | 103 ? kSignalStrengthLevelBlackImageIds[expected_signal_strength_level] |
99 .ToNSImage(), | 104 : kSignalStrengthLevelWhiteImageIds[expected_signal_strength_level]; |
100 [image_view image]); | 105 EXPECT_NSEQ(rb_.GetNativeImageNamed(image_id).ToNSImage(), |
| 106 [image_view image]); |
101 } | 107 } |
102 | 108 |
103 void ExpectRowImageIsConnectedImage(int row) { | 109 void ExpectRowImageIsConnectedImage(int row, SkColor expected_color) { |
104 NSImageView* image_view = | 110 NSImageView* image_view = |
105 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]; | 111 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]; |
106 ASSERT_TRUE(image_view); | 112 ASSERT_TRUE(image_view); |
107 EXPECT_TRUE(gfx::test::AreImagesEqual( | 113 EXPECT_TRUE(gfx::test::AreImagesEqual( |
108 gfx::Image(gfx::CreateVectorIcon(gfx::VectorIconId::BLUETOOTH_CONNECTED, | 114 gfx::Image(gfx::CreateVectorIcon(gfx::VectorIconId::BLUETOOTH_CONNECTED, |
109 gfx::kChromeIconGrey)), | 115 expected_color)), |
110 gfx::Image([[image_view image] copy]))); | 116 gfx::Image([[image_view image] copy]))); |
111 } | 117 } |
112 | 118 |
113 void ExpectRowTextIs(int row, NSString* expected_text) { | 119 void ExpectRowTextIs(int row, NSString* expected_text) { |
114 EXPECT_NSEQ(expected_text, | 120 EXPECT_NSEQ(expected_text, |
115 [[chooser_content_view_ | 121 [[chooser_content_view_ |
116 tableRowViewText:static_cast<NSInteger>(row)] stringValue]); | 122 tableRowViewText:static_cast<NSInteger>(row)] stringValue]); |
117 } | 123 } |
118 | 124 |
| 125 void ExpectRowTextColorIs(int row, NSColor* expected_color) { |
| 126 EXPECT_NSEQ(expected_color, |
| 127 [[chooser_content_view_ |
| 128 tableRowViewText:static_cast<NSInteger>(row)] textColor]); |
| 129 } |
| 130 |
119 bool IsRowPaired(int row) { | 131 bool IsRowPaired(int row) { |
120 NSTextField* paired_status = [chooser_content_view_ | 132 NSTextField* paired_status = [chooser_content_view_ |
121 tableRowViewPairedStatus:static_cast<NSInteger>(row)]; | 133 tableRowViewPairedStatus:static_cast<NSInteger>(row)]; |
122 if (paired_status) { | 134 if (paired_status) { |
123 EXPECT_NSEQ(l10n_util::GetNSString(IDS_DEVICE_CHOOSER_PAIRED_STATUS_TEXT), | 135 EXPECT_NSEQ(l10n_util::GetNSString(IDS_DEVICE_CHOOSER_PAIRED_STATUS_TEXT), |
124 [paired_status stringValue]); | 136 [paired_status stringValue]); |
125 return true; | 137 return true; |
126 } else { | 138 } else { |
127 return false; | 139 return false; |
128 } | 140 } |
129 } | 141 } |
130 | 142 |
| 143 void ExpectPairedTextColorIs(int row, NSColor* expected_color) { |
| 144 EXPECT_NSEQ( |
| 145 expected_color, |
| 146 [[chooser_content_view_ |
| 147 tableRowViewPairedStatus:static_cast<NSInteger>(row)] textColor]); |
| 148 } |
| 149 |
131 ui::ResourceBundle& rb_; | 150 ui::ResourceBundle& rb_; |
132 | 151 |
133 std::unique_ptr<ChooserDialogCocoa> chooser_dialog_; | 152 std::unique_ptr<ChooserDialogCocoa> chooser_dialog_; |
134 | 153 |
135 MockChooserController* mock_chooser_controller_; | 154 MockChooserController* mock_chooser_controller_; |
136 ChooserDialogCocoaController* chooser_dialog_controller_; | 155 ChooserDialogCocoaController* chooser_dialog_controller_; |
137 ChooserContentViewCocoa* chooser_content_view_; | 156 ChooserContentViewCocoa* chooser_content_view_; |
138 NSTableView* table_view_; | 157 NSTableView* table_view_; |
139 SpinnerView* spinner_; | 158 SpinnerView* spinner_; |
140 NSTextField* status_; | 159 NSTextField* status_; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 mock_chooser_controller_->OptionAdded( | 194 mock_chooser_controller_->OptionAdded( |
176 base::ASCIIToUTF16("a"), | 195 base::ASCIIToUTF16("a"), |
177 MockChooserController::kNoSignalStrengthLevelImage, | 196 MockChooserController::kNoSignalStrengthLevelImage, |
178 MockChooserController::ConnectedPairedStatus::CONNECTED | | 197 MockChooserController::ConnectedPairedStatus::CONNECTED | |
179 MockChooserController::ConnectedPairedStatus::PAIRED); | 198 MockChooserController::ConnectedPairedStatus::PAIRED); |
180 EXPECT_EQ(1, table_view_.numberOfRows); | 199 EXPECT_EQ(1, table_view_.numberOfRows); |
181 EXPECT_EQ(1, table_view_.numberOfColumns); | 200 EXPECT_EQ(1, table_view_.numberOfColumns); |
182 // |table_view_| should be enabled since there is an option. | 201 // |table_view_| should be enabled since there is an option. |
183 EXPECT_TRUE(table_view_.enabled); | 202 EXPECT_TRUE(table_view_.enabled); |
184 EXPECT_EQ(-1, table_view_.selectedRow); | 203 EXPECT_EQ(-1, table_view_.selectedRow); |
185 ExpectRowImageIsConnectedImage(0); | 204 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); |
186 ExpectRowTextIs(0, @"a"); | 205 ExpectRowTextIs(0, @"a"); |
187 EXPECT_TRUE(IsRowPaired(0)); | 206 EXPECT_TRUE(IsRowPaired(0)); |
188 EXPECT_FALSE(connect_button_.enabled); | 207 EXPECT_FALSE(connect_button_.enabled); |
189 EXPECT_TRUE(cancel_button_.enabled); | 208 EXPECT_TRUE(cancel_button_.enabled); |
190 EXPECT_TRUE(help_button_.enabled); | 209 EXPECT_TRUE(help_button_.enabled); |
191 | 210 |
192 mock_chooser_controller_->OptionAdded( | 211 mock_chooser_controller_->OptionAdded( |
193 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, | 212 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, |
194 MockChooserController::ConnectedPairedStatus::NONE); | 213 MockChooserController::ConnectedPairedStatus::NONE); |
195 EXPECT_EQ(2, table_view_.numberOfRows); | 214 EXPECT_EQ(2, table_view_.numberOfRows); |
196 EXPECT_EQ(1, table_view_.numberOfColumns); | 215 EXPECT_EQ(1, table_view_.numberOfColumns); |
197 EXPECT_TRUE(table_view_.enabled); | 216 EXPECT_TRUE(table_view_.enabled); |
198 EXPECT_EQ(-1, table_view_.selectedRow); | 217 EXPECT_EQ(-1, table_view_.selectedRow); |
199 ExpectSignalStrengthLevelImageIs( | 218 ExpectSignalStrengthLevelImageIs( |
200 1, MockChooserController::kSignalStrengthLevel0Bar); | 219 1, MockChooserController::kSignalStrengthLevel0Bar, |
| 220 MockChooserController::kImageColorBlack); |
201 ExpectRowTextIs(1, @"b"); | 221 ExpectRowTextIs(1, @"b"); |
202 EXPECT_FALSE(IsRowPaired(1)); | 222 EXPECT_FALSE(IsRowPaired(1)); |
203 | 223 |
204 mock_chooser_controller_->OptionAdded( | 224 mock_chooser_controller_->OptionAdded( |
205 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, | 225 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, |
206 MockChooserController::ConnectedPairedStatus::NONE); | 226 MockChooserController::ConnectedPairedStatus::NONE); |
207 EXPECT_EQ(3, table_view_.numberOfRows); | 227 EXPECT_EQ(3, table_view_.numberOfRows); |
208 EXPECT_EQ(1, table_view_.numberOfColumns); | 228 EXPECT_EQ(1, table_view_.numberOfColumns); |
209 EXPECT_TRUE(table_view_.enabled); | 229 EXPECT_TRUE(table_view_.enabled); |
210 EXPECT_EQ(-1, table_view_.selectedRow); | 230 EXPECT_EQ(-1, table_view_.selectedRow); |
211 ExpectSignalStrengthLevelImageIs( | 231 ExpectSignalStrengthLevelImageIs( |
212 2, MockChooserController::kSignalStrengthLevel1Bar); | 232 2, MockChooserController::kSignalStrengthLevel1Bar, |
| 233 MockChooserController::kImageColorBlack); |
213 ExpectRowTextIs(2, @"c"); | 234 ExpectRowTextIs(2, @"c"); |
214 EXPECT_FALSE(IsRowPaired(2)); | 235 EXPECT_FALSE(IsRowPaired(2)); |
215 | 236 |
216 mock_chooser_controller_->OptionAdded( | 237 mock_chooser_controller_->OptionAdded( |
217 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar, | 238 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar, |
218 MockChooserController::ConnectedPairedStatus::NONE); | 239 MockChooserController::ConnectedPairedStatus::NONE); |
219 ExpectSignalStrengthLevelImageIs( | 240 ExpectSignalStrengthLevelImageIs( |
220 3, MockChooserController::kSignalStrengthLevel2Bar); | 241 3, MockChooserController::kSignalStrengthLevel2Bar, |
| 242 MockChooserController::kImageColorBlack); |
221 ExpectRowTextIs(3, @"d"); | 243 ExpectRowTextIs(3, @"d"); |
222 EXPECT_FALSE(IsRowPaired(3)); | 244 EXPECT_FALSE(IsRowPaired(3)); |
223 | 245 |
224 mock_chooser_controller_->OptionAdded( | 246 mock_chooser_controller_->OptionAdded( |
225 base::ASCIIToUTF16("e"), MockChooserController::kSignalStrengthLevel3Bar, | 247 base::ASCIIToUTF16("e"), MockChooserController::kSignalStrengthLevel3Bar, |
226 MockChooserController::ConnectedPairedStatus::NONE); | 248 MockChooserController::ConnectedPairedStatus::NONE); |
227 ExpectSignalStrengthLevelImageIs( | 249 ExpectSignalStrengthLevelImageIs( |
228 4, MockChooserController::kSignalStrengthLevel3Bar); | 250 4, MockChooserController::kSignalStrengthLevel3Bar, |
| 251 MockChooserController::kImageColorBlack); |
229 ExpectRowTextIs(4, @"e"); | 252 ExpectRowTextIs(4, @"e"); |
230 EXPECT_FALSE(IsRowPaired(4)); | 253 EXPECT_FALSE(IsRowPaired(4)); |
231 | 254 |
232 mock_chooser_controller_->OptionAdded( | 255 mock_chooser_controller_->OptionAdded( |
233 base::ASCIIToUTF16("f"), MockChooserController::kSignalStrengthLevel4Bar, | 256 base::ASCIIToUTF16("f"), MockChooserController::kSignalStrengthLevel4Bar, |
234 MockChooserController::ConnectedPairedStatus::NONE); | 257 MockChooserController::ConnectedPairedStatus::NONE); |
235 ExpectSignalStrengthLevelImageIs( | 258 ExpectSignalStrengthLevelImageIs( |
236 5, MockChooserController::kSignalStrengthLevel4Bar); | 259 5, MockChooserController::kSignalStrengthLevel4Bar, |
| 260 MockChooserController::kImageColorBlack); |
237 ExpectRowTextIs(5, @"f"); | 261 ExpectRowTextIs(5, @"f"); |
238 EXPECT_FALSE(IsRowPaired(5)); | 262 EXPECT_FALSE(IsRowPaired(5)); |
239 } | 263 } |
240 | 264 |
241 TEST_F(ChooserDialogCocoaControllerTest, RemoveOption) { | 265 TEST_F(ChooserDialogCocoaControllerTest, RemoveOption) { |
242 CreateChooserDialog(); | 266 CreateChooserDialog(); |
243 | 267 |
244 mock_chooser_controller_->OptionAdded( | 268 mock_chooser_controller_->OptionAdded( |
245 base::ASCIIToUTF16("a"), | 269 base::ASCIIToUTF16("a"), |
246 MockChooserController::kNoSignalStrengthLevelImage, | 270 MockChooserController::kNoSignalStrengthLevelImage, |
247 MockChooserController::ConnectedPairedStatus::CONNECTED | | 271 MockChooserController::ConnectedPairedStatus::CONNECTED | |
248 MockChooserController::ConnectedPairedStatus::PAIRED); | 272 MockChooserController::ConnectedPairedStatus::PAIRED); |
249 mock_chooser_controller_->OptionAdded( | 273 mock_chooser_controller_->OptionAdded( |
250 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, | 274 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, |
251 MockChooserController::ConnectedPairedStatus::NONE); | 275 MockChooserController::ConnectedPairedStatus::NONE); |
252 mock_chooser_controller_->OptionAdded( | 276 mock_chooser_controller_->OptionAdded( |
253 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, | 277 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, |
254 MockChooserController::ConnectedPairedStatus::NONE); | 278 MockChooserController::ConnectedPairedStatus::NONE); |
255 | 279 |
256 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 280 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
257 EXPECT_EQ(2, table_view_.numberOfRows); | 281 EXPECT_EQ(2, table_view_.numberOfRows); |
258 EXPECT_EQ(1, table_view_.numberOfColumns); | 282 EXPECT_EQ(1, table_view_.numberOfColumns); |
259 EXPECT_TRUE(table_view_.enabled); | 283 EXPECT_TRUE(table_view_.enabled); |
260 EXPECT_EQ(-1, table_view_.selectedRow); | 284 EXPECT_EQ(-1, table_view_.selectedRow); |
261 ExpectRowImageIsConnectedImage(0); | 285 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); |
262 ExpectRowTextIs(0, @"a"); | 286 ExpectRowTextIs(0, @"a"); |
263 EXPECT_TRUE(IsRowPaired(0)); | 287 EXPECT_TRUE(IsRowPaired(0)); |
264 ExpectSignalStrengthLevelImageIs( | 288 ExpectSignalStrengthLevelImageIs( |
265 1, MockChooserController::kSignalStrengthLevel1Bar); | 289 1, MockChooserController::kSignalStrengthLevel1Bar, |
| 290 MockChooserController::kImageColorBlack); |
266 ExpectRowTextIs(1, @"c"); | 291 ExpectRowTextIs(1, @"c"); |
267 EXPECT_FALSE(IsRowPaired(1)); | 292 EXPECT_FALSE(IsRowPaired(1)); |
268 | 293 |
269 // Remove a non-existent option, the number of rows should not change. | 294 // Remove a non-existent option, the number of rows should not change. |
270 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("non-existent")); | 295 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("non-existent")); |
271 EXPECT_EQ(2, table_view_.numberOfRows); | 296 EXPECT_EQ(2, table_view_.numberOfRows); |
272 EXPECT_EQ(1, table_view_.numberOfColumns); | 297 EXPECT_EQ(1, table_view_.numberOfColumns); |
273 EXPECT_TRUE(table_view_.enabled); | 298 EXPECT_TRUE(table_view_.enabled); |
274 EXPECT_EQ(-1, table_view_.selectedRow); | 299 EXPECT_EQ(-1, table_view_.selectedRow); |
275 ExpectRowTextIs(0, @"a"); | 300 ExpectRowTextIs(0, @"a"); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 mock_chooser_controller_->OptionUpdated( | 339 mock_chooser_controller_->OptionUpdated( |
315 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), | 340 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), |
316 MockChooserController::kNoSignalStrengthLevelImage, | 341 MockChooserController::kNoSignalStrengthLevelImage, |
317 MockChooserController::ConnectedPairedStatus::CONNECTED | | 342 MockChooserController::ConnectedPairedStatus::CONNECTED | |
318 MockChooserController::ConnectedPairedStatus::PAIRED); | 343 MockChooserController::ConnectedPairedStatus::PAIRED); |
319 | 344 |
320 EXPECT_EQ(3, table_view_.numberOfRows); | 345 EXPECT_EQ(3, table_view_.numberOfRows); |
321 EXPECT_EQ(1, table_view_.numberOfColumns); | 346 EXPECT_EQ(1, table_view_.numberOfColumns); |
322 EXPECT_TRUE(table_view_.enabled); | 347 EXPECT_TRUE(table_view_.enabled); |
323 EXPECT_EQ(-1, table_view_.selectedRow); | 348 EXPECT_EQ(-1, table_view_.selectedRow); |
324 ExpectRowImageIsConnectedImage(0); | 349 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); |
325 ExpectRowTextIs(0, @"a"); | 350 ExpectRowTextIs(0, @"a"); |
326 EXPECT_TRUE(IsRowPaired(0)); | 351 EXPECT_TRUE(IsRowPaired(0)); |
327 ExpectRowImageIsConnectedImage(1); | 352 ExpectRowImageIsConnectedImage(1, gfx::kChromeIconGrey); |
328 ExpectRowTextIs(1, @"d"); | 353 ExpectRowTextIs(1, @"d"); |
329 EXPECT_TRUE(IsRowPaired(1)); | 354 EXPECT_TRUE(IsRowPaired(1)); |
330 ExpectSignalStrengthLevelImageIs( | 355 ExpectSignalStrengthLevelImageIs( |
331 2, MockChooserController::kSignalStrengthLevel1Bar); | 356 2, MockChooserController::kSignalStrengthLevel1Bar, |
| 357 MockChooserController::kImageColorBlack); |
332 ExpectRowTextIs(2, @"c"); | 358 ExpectRowTextIs(2, @"c"); |
333 EXPECT_FALSE(IsRowPaired(2)); | 359 EXPECT_FALSE(IsRowPaired(2)); |
334 } | 360 } |
335 | 361 |
336 TEST_F(ChooserDialogCocoaControllerTest, AddAndRemoveOption) { | 362 TEST_F(ChooserDialogCocoaControllerTest, AddAndRemoveOption) { |
337 CreateChooserDialog(); | 363 CreateChooserDialog(); |
338 | 364 |
339 mock_chooser_controller_->OptionAdded( | 365 mock_chooser_controller_->OptionAdded( |
340 base::ASCIIToUTF16("a"), | 366 base::ASCIIToUTF16("a"), |
341 MockChooserController::kNoSignalStrengthLevelImage, | 367 MockChooserController::kNoSignalStrengthLevelImage, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
382 MockChooserController::kNoSignalStrengthLevelImage, | 408 MockChooserController::kNoSignalStrengthLevelImage, |
383 MockChooserController::ConnectedPairedStatus::CONNECTED | | 409 MockChooserController::ConnectedPairedStatus::CONNECTED | |
384 MockChooserController::ConnectedPairedStatus::PAIRED); | 410 MockChooserController::ConnectedPairedStatus::PAIRED); |
385 | 411 |
386 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); | 412 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); |
387 | 413 |
388 EXPECT_EQ(2, table_view_.numberOfRows); | 414 EXPECT_EQ(2, table_view_.numberOfRows); |
389 EXPECT_EQ(1, table_view_.numberOfColumns); | 415 EXPECT_EQ(1, table_view_.numberOfColumns); |
390 EXPECT_TRUE(table_view_.enabled); | 416 EXPECT_TRUE(table_view_.enabled); |
391 EXPECT_EQ(-1, table_view_.selectedRow); | 417 EXPECT_EQ(-1, table_view_.selectedRow); |
392 ExpectRowImageIsConnectedImage(0); | 418 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); |
393 ExpectRowTextIs(0, @"a"); | 419 ExpectRowTextIs(0, @"a"); |
394 EXPECT_TRUE(IsRowPaired(0)); | 420 EXPECT_TRUE(IsRowPaired(0)); |
395 ExpectSignalStrengthLevelImageIs( | 421 ExpectSignalStrengthLevelImageIs( |
396 1, MockChooserController::kSignalStrengthLevel1Bar); | 422 1, MockChooserController::kSignalStrengthLevel1Bar, |
| 423 MockChooserController::kImageColorBlack); |
397 ExpectRowTextIs(1, @"c"); | 424 ExpectRowTextIs(1, @"c"); |
398 EXPECT_FALSE(IsRowPaired(1)); | 425 EXPECT_FALSE(IsRowPaired(1)); |
399 } | 426 } |
400 | 427 |
| 428 TEST_F(ChooserDialogCocoaControllerTest, |
| 429 RowImageAndTextChangeColorWhenSelectionChanges) { |
| 430 CreateChooserDialog(); |
| 431 |
| 432 mock_chooser_controller_->OptionAdded( |
| 433 base::ASCIIToUTF16("a"), |
| 434 MockChooserController::kNoSignalStrengthLevelImage, |
| 435 MockChooserController::ConnectedPairedStatus::CONNECTED | |
| 436 MockChooserController::ConnectedPairedStatus::PAIRED); |
| 437 mock_chooser_controller_->OptionAdded( |
| 438 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, |
| 439 MockChooserController::ConnectedPairedStatus::NONE); |
| 440 mock_chooser_controller_->OptionAdded( |
| 441 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, |
| 442 MockChooserController::ConnectedPairedStatus::NONE); |
| 443 |
| 444 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); |
| 445 ExpectSignalStrengthLevelImageIs( |
| 446 1, MockChooserController::kSignalStrengthLevel0Bar, |
| 447 MockChooserController::kImageColorBlack); |
| 448 ExpectSignalStrengthLevelImageIs( |
| 449 2, MockChooserController::kSignalStrengthLevel1Bar, |
| 450 MockChooserController::kImageColorBlack); |
| 451 ExpectRowTextColorIs(0, [NSColor blackColor]); |
| 452 ExpectRowTextColorIs(1, [NSColor blackColor]); |
| 453 ExpectRowTextColorIs(2, [NSColor blackColor]); |
| 454 ExpectPairedTextColorIs( |
| 455 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen700)); |
| 456 |
| 457 // Select option 0. |
| 458 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
| 459 byExtendingSelection:NO]; |
| 460 EXPECT_EQ(0, table_view_.selectedRow); |
| 461 ExpectRowImageIsConnectedImage(0, SK_ColorWHITE); |
| 462 ExpectSignalStrengthLevelImageIs( |
| 463 1, MockChooserController::kSignalStrengthLevel0Bar, |
| 464 MockChooserController::kImageColorBlack); |
| 465 ExpectSignalStrengthLevelImageIs( |
| 466 2, MockChooserController::kSignalStrengthLevel1Bar, |
| 467 MockChooserController::kImageColorBlack); |
| 468 ExpectRowTextColorIs(0, [NSColor whiteColor]); |
| 469 ExpectRowTextColorIs(1, [NSColor blackColor]); |
| 470 ExpectRowTextColorIs(2, [NSColor blackColor]); |
| 471 ExpectPairedTextColorIs( |
| 472 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen300)); |
| 473 |
| 474 // Deselect option 0. |
| 475 [table_view_ deselectRow:0]; |
| 476 EXPECT_EQ(-1, table_view_.selectedRow); |
| 477 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); |
| 478 ExpectSignalStrengthLevelImageIs( |
| 479 1, MockChooserController::kSignalStrengthLevel0Bar, |
| 480 MockChooserController::kImageColorBlack); |
| 481 ExpectSignalStrengthLevelImageIs( |
| 482 2, MockChooserController::kSignalStrengthLevel1Bar, |
| 483 MockChooserController::kImageColorBlack); |
| 484 ExpectRowTextColorIs(0, [NSColor blackColor]); |
| 485 ExpectRowTextColorIs(1, [NSColor blackColor]); |
| 486 ExpectRowTextColorIs(2, [NSColor blackColor]); |
| 487 ExpectPairedTextColorIs( |
| 488 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen700)); |
| 489 |
| 490 // Select option 1. |
| 491 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] |
| 492 byExtendingSelection:NO]; |
| 493 EXPECT_EQ(1, table_view_.selectedRow); |
| 494 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); |
| 495 ExpectSignalStrengthLevelImageIs( |
| 496 1, MockChooserController::kSignalStrengthLevel0Bar, |
| 497 MockChooserController::kImageColorWhite); |
| 498 ExpectSignalStrengthLevelImageIs( |
| 499 2, MockChooserController::kSignalStrengthLevel1Bar, |
| 500 MockChooserController::kImageColorBlack); |
| 501 ExpectRowTextColorIs(0, [NSColor blackColor]); |
| 502 ExpectRowTextColorIs(1, [NSColor whiteColor]); |
| 503 ExpectRowTextColorIs(2, [NSColor blackColor]); |
| 504 ExpectPairedTextColorIs( |
| 505 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen700)); |
| 506 |
| 507 // Deselect option 1. |
| 508 [table_view_ deselectRow:1]; |
| 509 EXPECT_EQ(-1, table_view_.selectedRow); |
| 510 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); |
| 511 ExpectSignalStrengthLevelImageIs( |
| 512 1, MockChooserController::kSignalStrengthLevel0Bar, |
| 513 MockChooserController::kImageColorBlack); |
| 514 ExpectSignalStrengthLevelImageIs( |
| 515 2, MockChooserController::kSignalStrengthLevel1Bar, |
| 516 MockChooserController::kImageColorBlack); |
| 517 ExpectRowTextColorIs(0, [NSColor blackColor]); |
| 518 ExpectRowTextColorIs(1, [NSColor blackColor]); |
| 519 ExpectRowTextColorIs(2, [NSColor blackColor]); |
| 520 ExpectPairedTextColorIs( |
| 521 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen700)); |
| 522 |
| 523 // Select option 0. |
| 524 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
| 525 byExtendingSelection:NO]; |
| 526 EXPECT_EQ(0, table_view_.selectedRow); |
| 527 ExpectRowImageIsConnectedImage(0, SK_ColorWHITE); |
| 528 ExpectSignalStrengthLevelImageIs( |
| 529 1, MockChooserController::kSignalStrengthLevel0Bar, |
| 530 MockChooserController::kImageColorBlack); |
| 531 ExpectSignalStrengthLevelImageIs( |
| 532 2, MockChooserController::kSignalStrengthLevel1Bar, |
| 533 MockChooserController::kImageColorBlack); |
| 534 ExpectRowTextColorIs(0, [NSColor whiteColor]); |
| 535 ExpectRowTextColorIs(1, [NSColor blackColor]); |
| 536 ExpectRowTextColorIs(2, [NSColor blackColor]); |
| 537 ExpectPairedTextColorIs( |
| 538 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen300)); |
| 539 |
| 540 // Select option 1. |
| 541 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1] |
| 542 byExtendingSelection:NO]; |
| 543 EXPECT_EQ(1, table_view_.selectedRow); |
| 544 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); |
| 545 ExpectSignalStrengthLevelImageIs( |
| 546 1, MockChooserController::kSignalStrengthLevel0Bar, |
| 547 MockChooserController::kImageColorWhite); |
| 548 ExpectSignalStrengthLevelImageIs( |
| 549 2, MockChooserController::kSignalStrengthLevel1Bar, |
| 550 MockChooserController::kImageColorBlack); |
| 551 ExpectRowTextColorIs(0, [NSColor blackColor]); |
| 552 ExpectRowTextColorIs(1, [NSColor whiteColor]); |
| 553 ExpectRowTextColorIs(2, [NSColor blackColor]); |
| 554 ExpectPairedTextColorIs( |
| 555 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen700)); |
| 556 |
| 557 // Select option 2. |
| 558 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:2] |
| 559 byExtendingSelection:NO]; |
| 560 EXPECT_EQ(2, table_view_.selectedRow); |
| 561 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); |
| 562 ExpectSignalStrengthLevelImageIs( |
| 563 1, MockChooserController::kSignalStrengthLevel0Bar, |
| 564 MockChooserController::kImageColorBlack); |
| 565 ExpectSignalStrengthLevelImageIs( |
| 566 2, MockChooserController::kSignalStrengthLevel1Bar, |
| 567 MockChooserController::kImageColorWhite); |
| 568 ExpectRowTextColorIs(0, [NSColor blackColor]); |
| 569 ExpectRowTextColorIs(1, [NSColor blackColor]); |
| 570 ExpectRowTextColorIs(2, [NSColor whiteColor]); |
| 571 ExpectPairedTextColorIs( |
| 572 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen700)); |
| 573 |
| 574 // Update option 2. |
| 575 mock_chooser_controller_->OptionUpdated( |
| 576 base::ASCIIToUTF16("c"), base::ASCIIToUTF16("e"), |
| 577 MockChooserController::kSignalStrengthLevel2Bar, |
| 578 MockChooserController::ConnectedPairedStatus::NONE); |
| 579 ExpectSignalStrengthLevelImageIs( |
| 580 2, MockChooserController::kSignalStrengthLevel2Bar, |
| 581 MockChooserController::kImageColorWhite); |
| 582 ExpectRowTextColorIs(0, [NSColor blackColor]); |
| 583 ExpectRowTextColorIs(1, [NSColor blackColor]); |
| 584 ExpectRowTextColorIs(2, [NSColor whiteColor]); |
| 585 |
| 586 // Update option 2 again. |
| 587 mock_chooser_controller_->OptionUpdated( |
| 588 base::ASCIIToUTF16("e"), base::ASCIIToUTF16("f"), |
| 589 MockChooserController::kNoSignalStrengthLevelImage, |
| 590 MockChooserController::ConnectedPairedStatus::CONNECTED | |
| 591 MockChooserController::ConnectedPairedStatus::PAIRED); |
| 592 ExpectRowImageIsConnectedImage(2, SK_ColorWHITE); |
| 593 ExpectRowTextColorIs(0, [NSColor blackColor]); |
| 594 ExpectRowTextColorIs(1, [NSColor blackColor]); |
| 595 ExpectRowTextColorIs(2, [NSColor whiteColor]); |
| 596 ExpectPairedTextColorIs( |
| 597 2, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen300)); |
| 598 } |
| 599 |
401 TEST_F(ChooserDialogCocoaControllerTest, SelectAndDeselectAnOption) { | 600 TEST_F(ChooserDialogCocoaControllerTest, SelectAndDeselectAnOption) { |
402 CreateChooserDialog(); | 601 CreateChooserDialog(); |
403 | 602 |
404 mock_chooser_controller_->OptionAdded( | 603 mock_chooser_controller_->OptionAdded( |
405 base::ASCIIToUTF16("a"), | 604 base::ASCIIToUTF16("a"), |
406 MockChooserController::kNoSignalStrengthLevelImage, | 605 MockChooserController::kNoSignalStrengthLevelImage, |
407 MockChooserController::ConnectedPairedStatus::CONNECTED | | 606 MockChooserController::ConnectedPairedStatus::CONNECTED | |
408 MockChooserController::ConnectedPairedStatus::PAIRED); | 607 MockChooserController::ConnectedPairedStatus::PAIRED); |
409 mock_chooser_controller_->OptionAdded( | 608 mock_chooser_controller_->OptionAdded( |
410 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, | 609 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
560 byExtendingSelection:NO]; | 759 byExtendingSelection:NO]; |
561 | 760 |
562 // Update option 1. | 761 // Update option 1. |
563 mock_chooser_controller_->OptionUpdated( | 762 mock_chooser_controller_->OptionUpdated( |
564 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), | 763 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), |
565 MockChooserController::kNoSignalStrengthLevelImage, | 764 MockChooserController::kNoSignalStrengthLevelImage, |
566 MockChooserController::ConnectedPairedStatus::CONNECTED | | 765 MockChooserController::ConnectedPairedStatus::CONNECTED | |
567 MockChooserController::ConnectedPairedStatus::PAIRED); | 766 MockChooserController::ConnectedPairedStatus::PAIRED); |
568 | 767 |
569 EXPECT_EQ(1, table_view_.selectedRow); | 768 EXPECT_EQ(1, table_view_.selectedRow); |
570 ExpectRowImageIsConnectedImage(0); | 769 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); |
571 ExpectRowTextIs(0, @"a"); | 770 ExpectRowTextIs(0, @"a"); |
572 EXPECT_TRUE(IsRowPaired(0)); | 771 EXPECT_TRUE(IsRowPaired(0)); |
573 ExpectRowImageIsConnectedImage(1); | 772 ExpectRowImageIsConnectedImage(1, SK_ColorWHITE); |
574 ExpectRowTextIs(1, @"d"); | 773 ExpectRowTextIs(1, @"d"); |
575 EXPECT_TRUE(IsRowPaired(1)); | 774 EXPECT_TRUE(IsRowPaired(1)); |
576 ExpectSignalStrengthLevelImageIs( | 775 ExpectSignalStrengthLevelImageIs( |
577 2, MockChooserController::kSignalStrengthLevel1Bar); | 776 2, MockChooserController::kSignalStrengthLevel1Bar, |
| 777 MockChooserController::kImageColorBlack); |
578 ExpectRowTextIs(2, @"c"); | 778 ExpectRowTextIs(2, @"c"); |
579 EXPECT_FALSE(IsRowPaired(2)); | 779 EXPECT_FALSE(IsRowPaired(2)); |
580 EXPECT_TRUE(connect_button_.enabled); | 780 EXPECT_TRUE(connect_button_.enabled); |
581 } | 781 } |
582 | 782 |
583 TEST_F(ChooserDialogCocoaControllerTest, | 783 TEST_F(ChooserDialogCocoaControllerTest, |
584 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { | 784 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { |
585 CreateChooserDialog(); | 785 CreateChooserDialog(); |
586 | 786 |
587 mock_chooser_controller_->OptionAdded( | 787 mock_chooser_controller_->OptionAdded( |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
848 mock_chooser_controller_->OptionAdded( | 1048 mock_chooser_controller_->OptionAdded( |
849 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar, | 1049 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar, |
850 MockChooserController::ConnectedPairedStatus::NONE); | 1050 MockChooserController::ConnectedPairedStatus::NONE); |
851 EXPECT_FALSE(table_view_.hidden); | 1051 EXPECT_FALSE(table_view_.hidden); |
852 // |table_view_| should be enabled since there is an option. | 1052 // |table_view_| should be enabled since there is an option. |
853 EXPECT_TRUE(table_view_.enabled); | 1053 EXPECT_TRUE(table_view_.enabled); |
854 EXPECT_EQ(1, table_view_.numberOfRows); | 1054 EXPECT_EQ(1, table_view_.numberOfRows); |
855 // No option selected. | 1055 // No option selected. |
856 EXPECT_EQ(-1, table_view_.selectedRow); | 1056 EXPECT_EQ(-1, table_view_.selectedRow); |
857 ExpectSignalStrengthLevelImageIs( | 1057 ExpectSignalStrengthLevelImageIs( |
858 0, MockChooserController::kSignalStrengthLevel2Bar); | 1058 0, MockChooserController::kSignalStrengthLevel2Bar, |
| 1059 MockChooserController::kImageColorBlack); |
859 ExpectRowTextIs(0, @"d"); | 1060 ExpectRowTextIs(0, @"d"); |
860 EXPECT_FALSE(IsRowPaired(0)); | 1061 EXPECT_FALSE(IsRowPaired(0)); |
861 EXPECT_TRUE(spinner_.hidden); | 1062 EXPECT_TRUE(spinner_.hidden); |
862 EXPECT_FALSE(status_.hidden); | 1063 EXPECT_FALSE(status_.hidden); |
863 EXPECT_TRUE(rescan_button_.hidden); | 1064 EXPECT_TRUE(rescan_button_.hidden); |
864 // OK button is disabled since no option is selected. | 1065 // OK button is disabled since no option is selected. |
865 EXPECT_FALSE(connect_button_.enabled); | 1066 EXPECT_FALSE(connect_button_.enabled); |
866 EXPECT_TRUE(cancel_button_.enabled); | 1067 EXPECT_TRUE(cancel_button_.enabled); |
867 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] | 1068 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
868 byExtendingSelection:NO]; | 1069 byExtendingSelection:NO]; |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
908 MockChooserController::ConnectedPairedStatus::NONE); | 1109 MockChooserController::ConnectedPairedStatus::NONE); |
909 | 1110 |
910 // Select option 0 and press "Get help" button. | 1111 // Select option 0 and press "Get help" button. |
911 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] | 1112 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
912 byExtendingSelection:NO]; | 1113 byExtendingSelection:NO]; |
913 EXPECT_CALL(*mock_chooser_controller_, Select(testing::_)).Times(0); | 1114 EXPECT_CALL(*mock_chooser_controller_, Select(testing::_)).Times(0); |
914 EXPECT_CALL(*mock_chooser_controller_, Cancel()).Times(0); | 1115 EXPECT_CALL(*mock_chooser_controller_, Cancel()).Times(0); |
915 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); | 1116 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); |
916 [help_button_ performClick:chooser_dialog_controller_]; | 1117 [help_button_ performClick:chooser_dialog_controller_]; |
917 } | 1118 } |
OLD | NEW |