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" | |
21 #include "testing/gmock/include/gmock/gmock.h" | 20 #include "testing/gmock/include/gmock/gmock.h" |
22 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
23 #include "testing/gtest_mac.h" | 22 #include "testing/gtest_mac.h" |
24 #include "ui/base/l10n/l10n_util_mac.h" | 23 #include "ui/base/l10n/l10n_util_mac.h" |
25 #include "ui/base/resource/resource_bundle.h" | 24 #include "ui/base/resource/resource_bundle.h" |
26 #include "ui/gfx/color_palette.h" | 25 #include "ui/gfx/color_palette.h" |
27 #include "ui/gfx/image/image.h" | 26 #include "ui/gfx/image/image.h" |
28 #include "ui/gfx/image/image_unittest_util.h" | 27 #include "ui/gfx/image/image_unittest_util.h" |
29 #include "ui/gfx/paint_vector_icon.h" | 28 #include "ui/gfx/paint_vector_icon.h" |
30 #include "ui/gfx/vector_icons_public.h" | 29 #include "ui/gfx/vector_icons_public.h" |
31 #include "ui/resources/grit/ui_resources.h" | 30 #include "ui/resources/grit/ui_resources.h" |
32 | 31 |
33 namespace { | 32 namespace { |
34 | 33 |
35 // The lookup table for signal strength level image. | 34 // The lookup table for signal strength level image. |
36 const int kSignalStrengthLevelImageIds[5] = {IDR_SIGNAL_0_BAR, IDR_SIGNAL_1_BAR, | 35 const int kSignalStrengthLevelImageIds[5] = {IDR_SIGNAL_0_BAR, IDR_SIGNAL_1_BAR, |
37 IDR_SIGNAL_2_BAR, IDR_SIGNAL_3_BAR, | 36 IDR_SIGNAL_2_BAR, IDR_SIGNAL_3_BAR, |
38 IDR_SIGNAL_4_BAR}; | 37 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}; | |
43 | 38 |
44 } // namespace | 39 } // namespace |
45 | 40 |
46 class ChooserDialogCocoaControllerTest : public CocoaProfileTest { | 41 class ChooserDialogCocoaControllerTest : public CocoaProfileTest { |
47 protected: | 42 protected: |
48 ChooserDialogCocoaControllerTest() | 43 ChooserDialogCocoaControllerTest() |
49 : rb_(ui::ResourceBundle::GetSharedInstance()) {} | 44 : rb_(ui::ResourceBundle::GetSharedInstance()) {} |
50 ~ChooserDialogCocoaControllerTest() override {} | 45 ~ChooserDialogCocoaControllerTest() override {} |
51 | 46 |
52 void SetUp() override { | 47 void SetUp() override { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 help_button_ = [chooser_content_view_ helpButton]; | 82 help_button_ = [chooser_content_view_ helpButton]; |
88 ASSERT_TRUE(help_button_); | 83 ASSERT_TRUE(help_button_); |
89 } | 84 } |
90 | 85 |
91 void ExpectNoRowImage(int row) { | 86 void ExpectNoRowImage(int row) { |
92 ASSERT_FALSE( | 87 ASSERT_FALSE( |
93 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]); | 88 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]); |
94 } | 89 } |
95 | 90 |
96 void ExpectSignalStrengthLevelImageIs(int row, | 91 void ExpectSignalStrengthLevelImageIs(int row, |
97 int expected_signal_strength_level, | 92 int expected_signal_strength_level) { |
98 int expected_color) { | |
99 NSImageView* image_view = | 93 NSImageView* image_view = |
100 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]; | 94 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]; |
101 ASSERT_TRUE(image_view); | 95 ASSERT_TRUE(image_view); |
102 int image_id = | 96 EXPECT_NSEQ( |
103 expected_color == MockChooserController::kImageColorUnselected | 97 rb_.GetNativeImageNamed( |
104 ? kSignalStrengthLevelImageIds[expected_signal_strength_level] | 98 kSignalStrengthLevelImageIds[expected_signal_strength_level]) |
105 : kSignalStrengthLevelImageSelectedIds | 99 .ToNSImage(), |
106 [expected_signal_strength_level]; | 100 [image_view image]); |
107 EXPECT_NSEQ(rb_.GetNativeImageNamed(image_id).ToNSImage(), | |
108 [image_view image]); | |
109 } | 101 } |
110 | 102 |
111 void ExpectRowImageIsConnectedImage(int row, SkColor expected_color) { | 103 void ExpectRowImageIsConnectedImage(int row) { |
112 NSImageView* image_view = | 104 NSImageView* image_view = |
113 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]; | 105 [chooser_content_view_ tableRowViewImage:static_cast<NSInteger>(row)]; |
114 ASSERT_TRUE(image_view); | 106 ASSERT_TRUE(image_view); |
115 EXPECT_TRUE(gfx::test::AreImagesEqual( | 107 EXPECT_TRUE(gfx::test::AreImagesEqual( |
116 gfx::Image(gfx::CreateVectorIcon(gfx::VectorIconId::BLUETOOTH_CONNECTED, | 108 gfx::Image(gfx::CreateVectorIcon(gfx::VectorIconId::BLUETOOTH_CONNECTED, |
117 expected_color)), | 109 gfx::kChromeIconGrey)), |
118 gfx::Image([[image_view image] copy]))); | 110 gfx::Image([[image_view image] copy]))); |
119 } | 111 } |
120 | 112 |
121 void ExpectRowTextIs(int row, NSString* expected_text) { | 113 void ExpectRowTextIs(int row, NSString* expected_text) { |
122 EXPECT_NSEQ(expected_text, | 114 EXPECT_NSEQ(expected_text, |
123 [[chooser_content_view_ | 115 [[chooser_content_view_ |
124 tableRowViewText:static_cast<NSInteger>(row)] stringValue]); | 116 tableRowViewText:static_cast<NSInteger>(row)] stringValue]); |
125 } | 117 } |
126 | 118 |
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 | |
133 bool IsRowPaired(int row) { | 119 bool IsRowPaired(int row) { |
134 NSTextField* paired_status = [chooser_content_view_ | 120 NSTextField* paired_status = [chooser_content_view_ |
135 tableRowViewPairedStatus:static_cast<NSInteger>(row)]; | 121 tableRowViewPairedStatus:static_cast<NSInteger>(row)]; |
136 if (paired_status) { | 122 if (paired_status) { |
137 EXPECT_NSEQ(l10n_util::GetNSString(IDS_DEVICE_CHOOSER_PAIRED_STATUS_TEXT), | 123 EXPECT_NSEQ(l10n_util::GetNSString(IDS_DEVICE_CHOOSER_PAIRED_STATUS_TEXT), |
138 [paired_status stringValue]); | 124 [paired_status stringValue]); |
139 return true; | 125 return true; |
140 } else { | 126 } else { |
141 return false; | 127 return false; |
142 } | 128 } |
143 } | 129 } |
144 | 130 |
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 | |
152 ui::ResourceBundle& rb_; | 131 ui::ResourceBundle& rb_; |
153 | 132 |
154 std::unique_ptr<ChooserDialogCocoa> chooser_dialog_; | 133 std::unique_ptr<ChooserDialogCocoa> chooser_dialog_; |
155 | 134 |
156 MockChooserController* mock_chooser_controller_; | 135 MockChooserController* mock_chooser_controller_; |
157 ChooserDialogCocoaController* chooser_dialog_controller_; | 136 ChooserDialogCocoaController* chooser_dialog_controller_; |
158 ChooserContentViewCocoa* chooser_content_view_; | 137 ChooserContentViewCocoa* chooser_content_view_; |
159 NSTableView* table_view_; | 138 NSTableView* table_view_; |
160 SpinnerView* spinner_; | 139 SpinnerView* spinner_; |
161 NSTextField* status_; | 140 NSTextField* status_; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 mock_chooser_controller_->OptionAdded( | 175 mock_chooser_controller_->OptionAdded( |
197 base::ASCIIToUTF16("a"), | 176 base::ASCIIToUTF16("a"), |
198 MockChooserController::kNoSignalStrengthLevelImage, | 177 MockChooserController::kNoSignalStrengthLevelImage, |
199 MockChooserController::ConnectedPairedStatus::CONNECTED | | 178 MockChooserController::ConnectedPairedStatus::CONNECTED | |
200 MockChooserController::ConnectedPairedStatus::PAIRED); | 179 MockChooserController::ConnectedPairedStatus::PAIRED); |
201 EXPECT_EQ(1, table_view_.numberOfRows); | 180 EXPECT_EQ(1, table_view_.numberOfRows); |
202 EXPECT_EQ(1, table_view_.numberOfColumns); | 181 EXPECT_EQ(1, table_view_.numberOfColumns); |
203 // |table_view_| should be enabled since there is an option. | 182 // |table_view_| should be enabled since there is an option. |
204 EXPECT_TRUE(table_view_.enabled); | 183 EXPECT_TRUE(table_view_.enabled); |
205 EXPECT_EQ(-1, table_view_.selectedRow); | 184 EXPECT_EQ(-1, table_view_.selectedRow); |
206 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); | 185 ExpectRowImageIsConnectedImage(0); |
207 ExpectRowTextIs(0, @"a"); | 186 ExpectRowTextIs(0, @"a"); |
208 EXPECT_TRUE(IsRowPaired(0)); | 187 EXPECT_TRUE(IsRowPaired(0)); |
209 EXPECT_FALSE(connect_button_.enabled); | 188 EXPECT_FALSE(connect_button_.enabled); |
210 EXPECT_TRUE(cancel_button_.enabled); | 189 EXPECT_TRUE(cancel_button_.enabled); |
211 EXPECT_TRUE(help_button_.enabled); | 190 EXPECT_TRUE(help_button_.enabled); |
212 | 191 |
213 mock_chooser_controller_->OptionAdded( | 192 mock_chooser_controller_->OptionAdded( |
214 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, | 193 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, |
215 MockChooserController::ConnectedPairedStatus::NONE); | 194 MockChooserController::ConnectedPairedStatus::NONE); |
216 EXPECT_EQ(2, table_view_.numberOfRows); | 195 EXPECT_EQ(2, table_view_.numberOfRows); |
217 EXPECT_EQ(1, table_view_.numberOfColumns); | 196 EXPECT_EQ(1, table_view_.numberOfColumns); |
218 EXPECT_TRUE(table_view_.enabled); | 197 EXPECT_TRUE(table_view_.enabled); |
219 EXPECT_EQ(-1, table_view_.selectedRow); | 198 EXPECT_EQ(-1, table_view_.selectedRow); |
220 ExpectSignalStrengthLevelImageIs( | 199 ExpectSignalStrengthLevelImageIs( |
221 1, MockChooserController::kSignalStrengthLevel0Bar, | 200 1, MockChooserController::kSignalStrengthLevel0Bar); |
222 MockChooserController::kImageColorUnselected); | |
223 ExpectRowTextIs(1, @"b"); | 201 ExpectRowTextIs(1, @"b"); |
224 EXPECT_FALSE(IsRowPaired(1)); | 202 EXPECT_FALSE(IsRowPaired(1)); |
225 | 203 |
226 mock_chooser_controller_->OptionAdded( | 204 mock_chooser_controller_->OptionAdded( |
227 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, | 205 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, |
228 MockChooserController::ConnectedPairedStatus::NONE); | 206 MockChooserController::ConnectedPairedStatus::NONE); |
229 EXPECT_EQ(3, table_view_.numberOfRows); | 207 EXPECT_EQ(3, table_view_.numberOfRows); |
230 EXPECT_EQ(1, table_view_.numberOfColumns); | 208 EXPECT_EQ(1, table_view_.numberOfColumns); |
231 EXPECT_TRUE(table_view_.enabled); | 209 EXPECT_TRUE(table_view_.enabled); |
232 EXPECT_EQ(-1, table_view_.selectedRow); | 210 EXPECT_EQ(-1, table_view_.selectedRow); |
233 ExpectSignalStrengthLevelImageIs( | 211 ExpectSignalStrengthLevelImageIs( |
234 2, MockChooserController::kSignalStrengthLevel1Bar, | 212 2, MockChooserController::kSignalStrengthLevel1Bar); |
235 MockChooserController::kImageColorUnselected); | |
236 ExpectRowTextIs(2, @"c"); | 213 ExpectRowTextIs(2, @"c"); |
237 EXPECT_FALSE(IsRowPaired(2)); | 214 EXPECT_FALSE(IsRowPaired(2)); |
238 | 215 |
239 mock_chooser_controller_->OptionAdded( | 216 mock_chooser_controller_->OptionAdded( |
240 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar, | 217 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar, |
241 MockChooserController::ConnectedPairedStatus::NONE); | 218 MockChooserController::ConnectedPairedStatus::NONE); |
242 ExpectSignalStrengthLevelImageIs( | 219 ExpectSignalStrengthLevelImageIs( |
243 3, MockChooserController::kSignalStrengthLevel2Bar, | 220 3, MockChooserController::kSignalStrengthLevel2Bar); |
244 MockChooserController::kImageColorUnselected); | |
245 ExpectRowTextIs(3, @"d"); | 221 ExpectRowTextIs(3, @"d"); |
246 EXPECT_FALSE(IsRowPaired(3)); | 222 EXPECT_FALSE(IsRowPaired(3)); |
247 | 223 |
248 mock_chooser_controller_->OptionAdded( | 224 mock_chooser_controller_->OptionAdded( |
249 base::ASCIIToUTF16("e"), MockChooserController::kSignalStrengthLevel3Bar, | 225 base::ASCIIToUTF16("e"), MockChooserController::kSignalStrengthLevel3Bar, |
250 MockChooserController::ConnectedPairedStatus::NONE); | 226 MockChooserController::ConnectedPairedStatus::NONE); |
251 ExpectSignalStrengthLevelImageIs( | 227 ExpectSignalStrengthLevelImageIs( |
252 4, MockChooserController::kSignalStrengthLevel3Bar, | 228 4, MockChooserController::kSignalStrengthLevel3Bar); |
253 MockChooserController::kImageColorUnselected); | |
254 ExpectRowTextIs(4, @"e"); | 229 ExpectRowTextIs(4, @"e"); |
255 EXPECT_FALSE(IsRowPaired(4)); | 230 EXPECT_FALSE(IsRowPaired(4)); |
256 | 231 |
257 mock_chooser_controller_->OptionAdded( | 232 mock_chooser_controller_->OptionAdded( |
258 base::ASCIIToUTF16("f"), MockChooserController::kSignalStrengthLevel4Bar, | 233 base::ASCIIToUTF16("f"), MockChooserController::kSignalStrengthLevel4Bar, |
259 MockChooserController::ConnectedPairedStatus::NONE); | 234 MockChooserController::ConnectedPairedStatus::NONE); |
260 ExpectSignalStrengthLevelImageIs( | 235 ExpectSignalStrengthLevelImageIs( |
261 5, MockChooserController::kSignalStrengthLevel4Bar, | 236 5, MockChooserController::kSignalStrengthLevel4Bar); |
262 MockChooserController::kImageColorUnselected); | |
263 ExpectRowTextIs(5, @"f"); | 237 ExpectRowTextIs(5, @"f"); |
264 EXPECT_FALSE(IsRowPaired(5)); | 238 EXPECT_FALSE(IsRowPaired(5)); |
265 } | 239 } |
266 | 240 |
267 TEST_F(ChooserDialogCocoaControllerTest, RemoveOption) { | 241 TEST_F(ChooserDialogCocoaControllerTest, RemoveOption) { |
268 CreateChooserDialog(); | 242 CreateChooserDialog(); |
269 | 243 |
270 mock_chooser_controller_->OptionAdded( | 244 mock_chooser_controller_->OptionAdded( |
271 base::ASCIIToUTF16("a"), | 245 base::ASCIIToUTF16("a"), |
272 MockChooserController::kNoSignalStrengthLevelImage, | 246 MockChooserController::kNoSignalStrengthLevelImage, |
273 MockChooserController::ConnectedPairedStatus::CONNECTED | | 247 MockChooserController::ConnectedPairedStatus::CONNECTED | |
274 MockChooserController::ConnectedPairedStatus::PAIRED); | 248 MockChooserController::ConnectedPairedStatus::PAIRED); |
275 mock_chooser_controller_->OptionAdded( | 249 mock_chooser_controller_->OptionAdded( |
276 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, | 250 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, |
277 MockChooserController::ConnectedPairedStatus::NONE); | 251 MockChooserController::ConnectedPairedStatus::NONE); |
278 mock_chooser_controller_->OptionAdded( | 252 mock_chooser_controller_->OptionAdded( |
279 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, | 253 base::ASCIIToUTF16("c"), MockChooserController::kSignalStrengthLevel1Bar, |
280 MockChooserController::ConnectedPairedStatus::NONE); | 254 MockChooserController::ConnectedPairedStatus::NONE); |
281 | 255 |
282 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); | 256 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("b")); |
283 EXPECT_EQ(2, table_view_.numberOfRows); | 257 EXPECT_EQ(2, table_view_.numberOfRows); |
284 EXPECT_EQ(1, table_view_.numberOfColumns); | 258 EXPECT_EQ(1, table_view_.numberOfColumns); |
285 EXPECT_TRUE(table_view_.enabled); | 259 EXPECT_TRUE(table_view_.enabled); |
286 EXPECT_EQ(-1, table_view_.selectedRow); | 260 EXPECT_EQ(-1, table_view_.selectedRow); |
287 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); | 261 ExpectRowImageIsConnectedImage(0); |
288 ExpectRowTextIs(0, @"a"); | 262 ExpectRowTextIs(0, @"a"); |
289 EXPECT_TRUE(IsRowPaired(0)); | 263 EXPECT_TRUE(IsRowPaired(0)); |
290 ExpectSignalStrengthLevelImageIs( | 264 ExpectSignalStrengthLevelImageIs( |
291 1, MockChooserController::kSignalStrengthLevel1Bar, | 265 1, MockChooserController::kSignalStrengthLevel1Bar); |
292 MockChooserController::kImageColorUnselected); | |
293 ExpectRowTextIs(1, @"c"); | 266 ExpectRowTextIs(1, @"c"); |
294 EXPECT_FALSE(IsRowPaired(1)); | 267 EXPECT_FALSE(IsRowPaired(1)); |
295 | 268 |
296 // Remove a non-existent option, the number of rows should not change. | 269 // Remove a non-existent option, the number of rows should not change. |
297 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("non-existent")); | 270 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("non-existent")); |
298 EXPECT_EQ(2, table_view_.numberOfRows); | 271 EXPECT_EQ(2, table_view_.numberOfRows); |
299 EXPECT_EQ(1, table_view_.numberOfColumns); | 272 EXPECT_EQ(1, table_view_.numberOfColumns); |
300 EXPECT_TRUE(table_view_.enabled); | 273 EXPECT_TRUE(table_view_.enabled); |
301 EXPECT_EQ(-1, table_view_.selectedRow); | 274 EXPECT_EQ(-1, table_view_.selectedRow); |
302 ExpectRowTextIs(0, @"a"); | 275 ExpectRowTextIs(0, @"a"); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
341 mock_chooser_controller_->OptionUpdated( | 314 mock_chooser_controller_->OptionUpdated( |
342 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), | 315 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), |
343 MockChooserController::kNoSignalStrengthLevelImage, | 316 MockChooserController::kNoSignalStrengthLevelImage, |
344 MockChooserController::ConnectedPairedStatus::CONNECTED | | 317 MockChooserController::ConnectedPairedStatus::CONNECTED | |
345 MockChooserController::ConnectedPairedStatus::PAIRED); | 318 MockChooserController::ConnectedPairedStatus::PAIRED); |
346 | 319 |
347 EXPECT_EQ(3, table_view_.numberOfRows); | 320 EXPECT_EQ(3, table_view_.numberOfRows); |
348 EXPECT_EQ(1, table_view_.numberOfColumns); | 321 EXPECT_EQ(1, table_view_.numberOfColumns); |
349 EXPECT_TRUE(table_view_.enabled); | 322 EXPECT_TRUE(table_view_.enabled); |
350 EXPECT_EQ(-1, table_view_.selectedRow); | 323 EXPECT_EQ(-1, table_view_.selectedRow); |
351 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); | 324 ExpectRowImageIsConnectedImage(0); |
352 ExpectRowTextIs(0, @"a"); | 325 ExpectRowTextIs(0, @"a"); |
353 EXPECT_TRUE(IsRowPaired(0)); | 326 EXPECT_TRUE(IsRowPaired(0)); |
354 ExpectRowImageIsConnectedImage(1, gfx::kChromeIconGrey); | 327 ExpectRowImageIsConnectedImage(1); |
355 ExpectRowTextIs(1, @"d"); | 328 ExpectRowTextIs(1, @"d"); |
356 EXPECT_TRUE(IsRowPaired(1)); | 329 EXPECT_TRUE(IsRowPaired(1)); |
357 ExpectSignalStrengthLevelImageIs( | 330 ExpectSignalStrengthLevelImageIs( |
358 2, MockChooserController::kSignalStrengthLevel1Bar, | 331 2, MockChooserController::kSignalStrengthLevel1Bar); |
359 MockChooserController::kImageColorUnselected); | |
360 ExpectRowTextIs(2, @"c"); | 332 ExpectRowTextIs(2, @"c"); |
361 EXPECT_FALSE(IsRowPaired(2)); | 333 EXPECT_FALSE(IsRowPaired(2)); |
362 } | 334 } |
363 | 335 |
364 TEST_F(ChooserDialogCocoaControllerTest, AddAndRemoveOption) { | 336 TEST_F(ChooserDialogCocoaControllerTest, AddAndRemoveOption) { |
365 CreateChooserDialog(); | 337 CreateChooserDialog(); |
366 | 338 |
367 mock_chooser_controller_->OptionAdded( | 339 mock_chooser_controller_->OptionAdded( |
368 base::ASCIIToUTF16("a"), | 340 base::ASCIIToUTF16("a"), |
369 MockChooserController::kNoSignalStrengthLevelImage, | 341 MockChooserController::kNoSignalStrengthLevelImage, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 MockChooserController::kNoSignalStrengthLevelImage, | 382 MockChooserController::kNoSignalStrengthLevelImage, |
411 MockChooserController::ConnectedPairedStatus::CONNECTED | | 383 MockChooserController::ConnectedPairedStatus::CONNECTED | |
412 MockChooserController::ConnectedPairedStatus::PAIRED); | 384 MockChooserController::ConnectedPairedStatus::PAIRED); |
413 | 385 |
414 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); | 386 mock_chooser_controller_->OptionRemoved(base::ASCIIToUTF16("d")); |
415 | 387 |
416 EXPECT_EQ(2, table_view_.numberOfRows); | 388 EXPECT_EQ(2, table_view_.numberOfRows); |
417 EXPECT_EQ(1, table_view_.numberOfColumns); | 389 EXPECT_EQ(1, table_view_.numberOfColumns); |
418 EXPECT_TRUE(table_view_.enabled); | 390 EXPECT_TRUE(table_view_.enabled); |
419 EXPECT_EQ(-1, table_view_.selectedRow); | 391 EXPECT_EQ(-1, table_view_.selectedRow); |
420 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); | 392 ExpectRowImageIsConnectedImage(0); |
421 ExpectRowTextIs(0, @"a"); | 393 ExpectRowTextIs(0, @"a"); |
422 EXPECT_TRUE(IsRowPaired(0)); | 394 EXPECT_TRUE(IsRowPaired(0)); |
423 ExpectSignalStrengthLevelImageIs( | 395 ExpectSignalStrengthLevelImageIs( |
424 1, MockChooserController::kSignalStrengthLevel1Bar, | 396 1, MockChooserController::kSignalStrengthLevel1Bar); |
425 MockChooserController::kImageColorUnselected); | |
426 ExpectRowTextIs(1, @"c"); | 397 ExpectRowTextIs(1, @"c"); |
427 EXPECT_FALSE(IsRowPaired(1)); | 398 EXPECT_FALSE(IsRowPaired(1)); |
428 } | 399 } |
429 | 400 |
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 without deselecting the first. | |
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 // The following code tests the color of the image and text of a selected | |
555 // option when it is updated. | |
556 // Select option 2. | |
557 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:2] | |
558 byExtendingSelection:NO]; | |
559 | |
560 // Update option 2 from one signal strength to another. | |
561 mock_chooser_controller_->OptionUpdated( | |
562 base::ASCIIToUTF16("c"), base::ASCIIToUTF16("e"), | |
563 MockChooserController::kSignalStrengthLevel2Bar, | |
564 MockChooserController::ConnectedPairedStatus::NONE); | |
565 ExpectSignalStrengthLevelImageIs( | |
566 2, MockChooserController::kSignalStrengthLevel2Bar, | |
567 MockChooserController::kImageColorSelected); | |
568 ExpectRowTextColorIs(0, [NSColor blackColor]); | |
569 ExpectRowTextColorIs(1, [NSColor blackColor]); | |
570 ExpectRowTextColorIs(2, [NSColor whiteColor]); | |
571 | |
572 // Update option 2 again from non-connected and non-paired to connected | |
573 // and paired. | |
574 mock_chooser_controller_->OptionUpdated( | |
575 base::ASCIIToUTF16("e"), base::ASCIIToUTF16("f"), | |
576 MockChooserController::kNoSignalStrengthLevelImage, | |
577 MockChooserController::ConnectedPairedStatus::CONNECTED | | |
578 MockChooserController::ConnectedPairedStatus::PAIRED); | |
579 ExpectRowImageIsConnectedImage(2, SK_ColorWHITE); | |
580 ExpectRowTextColorIs(0, [NSColor blackColor]); | |
581 ExpectRowTextColorIs(1, [NSColor blackColor]); | |
582 ExpectRowTextColorIs(2, [NSColor whiteColor]); | |
583 ExpectPairedTextColorIs( | |
584 2, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen300)); | |
585 } | |
586 | |
587 TEST_F(ChooserDialogCocoaControllerTest, SelectAndDeselectAnOption) { | 401 TEST_F(ChooserDialogCocoaControllerTest, SelectAndDeselectAnOption) { |
588 CreateChooserDialog(); | 402 CreateChooserDialog(); |
589 | 403 |
590 mock_chooser_controller_->OptionAdded( | 404 mock_chooser_controller_->OptionAdded( |
591 base::ASCIIToUTF16("a"), | 405 base::ASCIIToUTF16("a"), |
592 MockChooserController::kNoSignalStrengthLevelImage, | 406 MockChooserController::kNoSignalStrengthLevelImage, |
593 MockChooserController::ConnectedPairedStatus::CONNECTED | | 407 MockChooserController::ConnectedPairedStatus::CONNECTED | |
594 MockChooserController::ConnectedPairedStatus::PAIRED); | 408 MockChooserController::ConnectedPairedStatus::PAIRED); |
595 mock_chooser_controller_->OptionAdded( | 409 mock_chooser_controller_->OptionAdded( |
596 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, | 410 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
746 byExtendingSelection:NO]; | 560 byExtendingSelection:NO]; |
747 | 561 |
748 // Update option 1. | 562 // Update option 1. |
749 mock_chooser_controller_->OptionUpdated( | 563 mock_chooser_controller_->OptionUpdated( |
750 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), | 564 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), |
751 MockChooserController::kNoSignalStrengthLevelImage, | 565 MockChooserController::kNoSignalStrengthLevelImage, |
752 MockChooserController::ConnectedPairedStatus::CONNECTED | | 566 MockChooserController::ConnectedPairedStatus::CONNECTED | |
753 MockChooserController::ConnectedPairedStatus::PAIRED); | 567 MockChooserController::ConnectedPairedStatus::PAIRED); |
754 | 568 |
755 EXPECT_EQ(1, table_view_.selectedRow); | 569 EXPECT_EQ(1, table_view_.selectedRow); |
756 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey); | 570 ExpectRowImageIsConnectedImage(0); |
757 ExpectRowTextIs(0, @"a"); | 571 ExpectRowTextIs(0, @"a"); |
758 EXPECT_TRUE(IsRowPaired(0)); | 572 EXPECT_TRUE(IsRowPaired(0)); |
759 ExpectRowImageIsConnectedImage(1, SK_ColorWHITE); | 573 ExpectRowImageIsConnectedImage(1); |
760 ExpectRowTextIs(1, @"d"); | 574 ExpectRowTextIs(1, @"d"); |
761 EXPECT_TRUE(IsRowPaired(1)); | 575 EXPECT_TRUE(IsRowPaired(1)); |
762 ExpectSignalStrengthLevelImageIs( | 576 ExpectSignalStrengthLevelImageIs( |
763 2, MockChooserController::kSignalStrengthLevel1Bar, | 577 2, MockChooserController::kSignalStrengthLevel1Bar); |
764 MockChooserController::kImageColorUnselected); | |
765 ExpectRowTextIs(2, @"c"); | 578 ExpectRowTextIs(2, @"c"); |
766 EXPECT_FALSE(IsRowPaired(2)); | 579 EXPECT_FALSE(IsRowPaired(2)); |
767 EXPECT_TRUE(connect_button_.enabled); | 580 EXPECT_TRUE(connect_button_.enabled); |
768 } | 581 } |
769 | 582 |
770 TEST_F(ChooserDialogCocoaControllerTest, | 583 TEST_F(ChooserDialogCocoaControllerTest, |
771 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { | 584 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { |
772 CreateChooserDialog(); | 585 CreateChooserDialog(); |
773 | 586 |
774 mock_chooser_controller_->OptionAdded( | 587 mock_chooser_controller_->OptionAdded( |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1035 mock_chooser_controller_->OptionAdded( | 848 mock_chooser_controller_->OptionAdded( |
1036 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar, | 849 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar, |
1037 MockChooserController::ConnectedPairedStatus::NONE); | 850 MockChooserController::ConnectedPairedStatus::NONE); |
1038 EXPECT_FALSE(table_view_.hidden); | 851 EXPECT_FALSE(table_view_.hidden); |
1039 // |table_view_| should be enabled since there is an option. | 852 // |table_view_| should be enabled since there is an option. |
1040 EXPECT_TRUE(table_view_.enabled); | 853 EXPECT_TRUE(table_view_.enabled); |
1041 EXPECT_EQ(1, table_view_.numberOfRows); | 854 EXPECT_EQ(1, table_view_.numberOfRows); |
1042 // No option selected. | 855 // No option selected. |
1043 EXPECT_EQ(-1, table_view_.selectedRow); | 856 EXPECT_EQ(-1, table_view_.selectedRow); |
1044 ExpectSignalStrengthLevelImageIs( | 857 ExpectSignalStrengthLevelImageIs( |
1045 0, MockChooserController::kSignalStrengthLevel2Bar, | 858 0, MockChooserController::kSignalStrengthLevel2Bar); |
1046 MockChooserController::kImageColorUnselected); | |
1047 ExpectRowTextIs(0, @"d"); | 859 ExpectRowTextIs(0, @"d"); |
1048 EXPECT_FALSE(IsRowPaired(0)); | 860 EXPECT_FALSE(IsRowPaired(0)); |
1049 EXPECT_TRUE(spinner_.hidden); | 861 EXPECT_TRUE(spinner_.hidden); |
1050 EXPECT_FALSE(status_.hidden); | 862 EXPECT_FALSE(status_.hidden); |
1051 EXPECT_TRUE(rescan_button_.hidden); | 863 EXPECT_TRUE(rescan_button_.hidden); |
1052 // OK button is disabled since no option is selected. | 864 // OK button is disabled since no option is selected. |
1053 EXPECT_FALSE(connect_button_.enabled); | 865 EXPECT_FALSE(connect_button_.enabled); |
1054 EXPECT_TRUE(cancel_button_.enabled); | 866 EXPECT_TRUE(cancel_button_.enabled); |
1055 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] | 867 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
1056 byExtendingSelection:NO]; | 868 byExtendingSelection:NO]; |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1096 MockChooserController::ConnectedPairedStatus::NONE); | 908 MockChooserController::ConnectedPairedStatus::NONE); |
1097 | 909 |
1098 // Select option 0 and press "Get help" button. | 910 // Select option 0 and press "Get help" button. |
1099 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] | 911 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] |
1100 byExtendingSelection:NO]; | 912 byExtendingSelection:NO]; |
1101 EXPECT_CALL(*mock_chooser_controller_, Select(testing::_)).Times(0); | 913 EXPECT_CALL(*mock_chooser_controller_, Select(testing::_)).Times(0); |
1102 EXPECT_CALL(*mock_chooser_controller_, Cancel()).Times(0); | 914 EXPECT_CALL(*mock_chooser_controller_, Cancel()).Times(0); |
1103 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); | 915 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); |
1104 [help_button_ performClick:chooser_dialog_controller_]; | 916 [help_button_ performClick:chooser_dialog_controller_]; |
1105 } | 917 } |
OLD | NEW |