Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(38)

Side by Side Diff: chrome/browser/ui/cocoa/extensions/chooser_dialog_cocoa_controller_unittest.mm

Issue 2342723002: Reland: Update image and text color when row is selected in the chooser on Mac (Closed)
Patch Set: rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698