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