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

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: address comments 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 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
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::kImageColorBlack
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
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::kImageColorBlack);
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::kImageColorBlack);
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::kImageColorBlack);
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::kImageColorBlack);
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::kImageColorBlack);
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::kImageColorBlack);
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
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::kImageColorBlack);
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
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::kImageColorBlack);
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::kImageColorBlack);
450 ExpectSignalStrengthLevelImageIs(
451 2, MockChooserController::kSignalStrengthLevel1Bar,
452 MockChooserController::kImageColorBlack);
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 // Select option 0.
460 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0]
461 byExtendingSelection:NO];
462 EXPECT_EQ(0, table_view_.selectedRow);
463 ExpectRowImageIsConnectedImage(0, SK_ColorWHITE);
464 ExpectSignalStrengthLevelImageIs(
465 1, MockChooserController::kSignalStrengthLevel0Bar,
466 MockChooserController::kImageColorBlack);
467 ExpectSignalStrengthLevelImageIs(
468 2, MockChooserController::kSignalStrengthLevel1Bar,
469 MockChooserController::kImageColorBlack);
470 ExpectRowTextColorIs(0, [NSColor whiteColor]);
471 ExpectRowTextColorIs(1, [NSColor blackColor]);
472 ExpectRowTextColorIs(2, [NSColor blackColor]);
473 ExpectPairedTextColorIs(
474 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen300));
475
476 // Deselect option 0.
477 [table_view_ deselectRow:0];
478 EXPECT_EQ(-1, table_view_.selectedRow);
479 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey);
480 ExpectSignalStrengthLevelImageIs(
481 1, MockChooserController::kSignalStrengthLevel0Bar,
482 MockChooserController::kImageColorBlack);
483 ExpectSignalStrengthLevelImageIs(
484 2, MockChooserController::kSignalStrengthLevel1Bar,
485 MockChooserController::kImageColorBlack);
486 ExpectRowTextColorIs(0, [NSColor blackColor]);
487 ExpectRowTextColorIs(1, [NSColor blackColor]);
488 ExpectRowTextColorIs(2, [NSColor blackColor]);
489 ExpectPairedTextColorIs(
490 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen700));
491
492 // Select option 1.
Jeffrey Yasskin 2016/09/26 22:25:46 In these comments, say why you're doing the operat
juncai 2016/09/27 22:10:48 Since option 0 shows a Bluetooth connected image a
493 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1]
494 byExtendingSelection:NO];
495 EXPECT_EQ(1, table_view_.selectedRow);
496 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey);
497 ExpectSignalStrengthLevelImageIs(
498 1, MockChooserController::kSignalStrengthLevel0Bar,
499 MockChooserController::kImageColorWhite);
500 ExpectSignalStrengthLevelImageIs(
501 2, MockChooserController::kSignalStrengthLevel1Bar,
502 MockChooserController::kImageColorBlack);
503 ExpectRowTextColorIs(0, [NSColor blackColor]);
504 ExpectRowTextColorIs(1, [NSColor whiteColor]);
505 ExpectRowTextColorIs(2, [NSColor blackColor]);
506 ExpectPairedTextColorIs(
507 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen700));
508
509 // Deselect option 1.
510 [table_view_ deselectRow:1];
511 EXPECT_EQ(-1, table_view_.selectedRow);
512 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey);
513 ExpectSignalStrengthLevelImageIs(
514 1, MockChooserController::kSignalStrengthLevel0Bar,
515 MockChooserController::kImageColorBlack);
516 ExpectSignalStrengthLevelImageIs(
517 2, MockChooserController::kSignalStrengthLevel1Bar,
518 MockChooserController::kImageColorBlack);
519 ExpectRowTextColorIs(0, [NSColor blackColor]);
520 ExpectRowTextColorIs(1, [NSColor blackColor]);
521 ExpectRowTextColorIs(2, [NSColor blackColor]);
522 ExpectPairedTextColorIs(
523 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen700));
524
525 // Select option 0.
Jeffrey Yasskin 2016/09/26 22:25:46 You already tested that selecting option 0 has the
juncai 2016/09/27 22:10:48 Done.
526 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0]
527 byExtendingSelection:NO];
528 EXPECT_EQ(0, table_view_.selectedRow);
529 ExpectRowImageIsConnectedImage(0, SK_ColorWHITE);
530 ExpectSignalStrengthLevelImageIs(
531 1, MockChooserController::kSignalStrengthLevel0Bar,
532 MockChooserController::kImageColorBlack);
533 ExpectSignalStrengthLevelImageIs(
534 2, MockChooserController::kSignalStrengthLevel1Bar,
535 MockChooserController::kImageColorBlack);
536 ExpectRowTextColorIs(0, [NSColor whiteColor]);
537 ExpectRowTextColorIs(1, [NSColor blackColor]);
538 ExpectRowTextColorIs(2, [NSColor blackColor]);
539 ExpectPairedTextColorIs(
540 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen300));
541
542 // Select option 1.
543 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:1]
544 byExtendingSelection:NO];
545 EXPECT_EQ(1, table_view_.selectedRow);
546 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey);
547 ExpectSignalStrengthLevelImageIs(
548 1, MockChooserController::kSignalStrengthLevel0Bar,
549 MockChooserController::kImageColorWhite);
550 ExpectSignalStrengthLevelImageIs(
551 2, MockChooserController::kSignalStrengthLevel1Bar,
552 MockChooserController::kImageColorBlack);
553 ExpectRowTextColorIs(0, [NSColor blackColor]);
554 ExpectRowTextColorIs(1, [NSColor whiteColor]);
555 ExpectRowTextColorIs(2, [NSColor blackColor]);
556 ExpectPairedTextColorIs(
557 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen700));
558
559 // Select option 2.
560 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:2]
561 byExtendingSelection:NO];
562 EXPECT_EQ(2, table_view_.selectedRow);
563 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey);
564 ExpectSignalStrengthLevelImageIs(
565 1, MockChooserController::kSignalStrengthLevel0Bar,
566 MockChooserController::kImageColorBlack);
567 ExpectSignalStrengthLevelImageIs(
568 2, MockChooserController::kSignalStrengthLevel1Bar,
569 MockChooserController::kImageColorWhite);
570 ExpectRowTextColorIs(0, [NSColor blackColor]);
571 ExpectRowTextColorIs(1, [NSColor blackColor]);
572 ExpectRowTextColorIs(2, [NSColor whiteColor]);
573 ExpectPairedTextColorIs(
574 0, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen700));
575
576 // Update option 2.
577 mock_chooser_controller_->OptionUpdated(
578 base::ASCIIToUTF16("c"), base::ASCIIToUTF16("e"),
579 MockChooserController::kSignalStrengthLevel2Bar,
580 MockChooserController::ConnectedPairedStatus::NONE);
581 ExpectSignalStrengthLevelImageIs(
582 2, MockChooserController::kSignalStrengthLevel2Bar,
583 MockChooserController::kImageColorWhite);
584 ExpectRowTextColorIs(0, [NSColor blackColor]);
585 ExpectRowTextColorIs(1, [NSColor blackColor]);
586 ExpectRowTextColorIs(2, [NSColor whiteColor]);
587
588 // Update option 2 again.
589 mock_chooser_controller_->OptionUpdated(
590 base::ASCIIToUTF16("e"), base::ASCIIToUTF16("f"),
591 MockChooserController::kNoSignalStrengthLevelImage,
592 MockChooserController::ConnectedPairedStatus::CONNECTED |
593 MockChooserController::ConnectedPairedStatus::PAIRED);
594 ExpectRowImageIsConnectedImage(2, SK_ColorWHITE);
595 ExpectRowTextColorIs(0, [NSColor blackColor]);
596 ExpectRowTextColorIs(1, [NSColor blackColor]);
597 ExpectRowTextColorIs(2, [NSColor whiteColor]);
598 ExpectPairedTextColorIs(
599 2, skia::SkColorToCalibratedNSColor(gfx::kGoogleGreen300));
600 }
601
401 TEST_F(ChooserDialogCocoaControllerTest, SelectAndDeselectAnOption) { 602 TEST_F(ChooserDialogCocoaControllerTest, SelectAndDeselectAnOption) {
402 CreateChooserDialog(); 603 CreateChooserDialog();
403 604
404 mock_chooser_controller_->OptionAdded( 605 mock_chooser_controller_->OptionAdded(
405 base::ASCIIToUTF16("a"), 606 base::ASCIIToUTF16("a"),
406 MockChooserController::kNoSignalStrengthLevelImage, 607 MockChooserController::kNoSignalStrengthLevelImage,
407 MockChooserController::ConnectedPairedStatus::CONNECTED | 608 MockChooserController::ConnectedPairedStatus::CONNECTED |
408 MockChooserController::ConnectedPairedStatus::PAIRED); 609 MockChooserController::ConnectedPairedStatus::PAIRED);
409 mock_chooser_controller_->OptionAdded( 610 mock_chooser_controller_->OptionAdded(
410 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar, 611 base::ASCIIToUTF16("b"), MockChooserController::kSignalStrengthLevel0Bar,
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 byExtendingSelection:NO]; 761 byExtendingSelection:NO];
561 762
562 // Update option 1. 763 // Update option 1.
563 mock_chooser_controller_->OptionUpdated( 764 mock_chooser_controller_->OptionUpdated(
564 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"), 765 base::ASCIIToUTF16("b"), base::ASCIIToUTF16("d"),
565 MockChooserController::kNoSignalStrengthLevelImage, 766 MockChooserController::kNoSignalStrengthLevelImage,
566 MockChooserController::ConnectedPairedStatus::CONNECTED | 767 MockChooserController::ConnectedPairedStatus::CONNECTED |
567 MockChooserController::ConnectedPairedStatus::PAIRED); 768 MockChooserController::ConnectedPairedStatus::PAIRED);
568 769
569 EXPECT_EQ(1, table_view_.selectedRow); 770 EXPECT_EQ(1, table_view_.selectedRow);
570 ExpectRowImageIsConnectedImage(0); 771 ExpectRowImageIsConnectedImage(0, gfx::kChromeIconGrey);
571 ExpectRowTextIs(0, @"a"); 772 ExpectRowTextIs(0, @"a");
572 EXPECT_TRUE(IsRowPaired(0)); 773 EXPECT_TRUE(IsRowPaired(0));
573 ExpectRowImageIsConnectedImage(1); 774 ExpectRowImageIsConnectedImage(1, SK_ColorWHITE);
574 ExpectRowTextIs(1, @"d"); 775 ExpectRowTextIs(1, @"d");
575 EXPECT_TRUE(IsRowPaired(1)); 776 EXPECT_TRUE(IsRowPaired(1));
576 ExpectSignalStrengthLevelImageIs( 777 ExpectSignalStrengthLevelImageIs(
577 2, MockChooserController::kSignalStrengthLevel1Bar); 778 2, MockChooserController::kSignalStrengthLevel1Bar,
779 MockChooserController::kImageColorBlack);
578 ExpectRowTextIs(2, @"c"); 780 ExpectRowTextIs(2, @"c");
579 EXPECT_FALSE(IsRowPaired(2)); 781 EXPECT_FALSE(IsRowPaired(2));
580 EXPECT_TRUE(connect_button_.enabled); 782 EXPECT_TRUE(connect_button_.enabled);
581 } 783 }
582 784
583 TEST_F(ChooserDialogCocoaControllerTest, 785 TEST_F(ChooserDialogCocoaControllerTest,
584 AddAnOptionAndSelectItAndRemoveTheSelectedOption) { 786 AddAnOptionAndSelectItAndRemoveTheSelectedOption) {
585 CreateChooserDialog(); 787 CreateChooserDialog();
586 788
587 mock_chooser_controller_->OptionAdded( 789 mock_chooser_controller_->OptionAdded(
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
848 mock_chooser_controller_->OptionAdded( 1050 mock_chooser_controller_->OptionAdded(
849 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar, 1051 base::ASCIIToUTF16("d"), MockChooserController::kSignalStrengthLevel2Bar,
850 MockChooserController::ConnectedPairedStatus::NONE); 1052 MockChooserController::ConnectedPairedStatus::NONE);
851 EXPECT_FALSE(table_view_.hidden); 1053 EXPECT_FALSE(table_view_.hidden);
852 // |table_view_| should be enabled since there is an option. 1054 // |table_view_| should be enabled since there is an option.
853 EXPECT_TRUE(table_view_.enabled); 1055 EXPECT_TRUE(table_view_.enabled);
854 EXPECT_EQ(1, table_view_.numberOfRows); 1056 EXPECT_EQ(1, table_view_.numberOfRows);
855 // No option selected. 1057 // No option selected.
856 EXPECT_EQ(-1, table_view_.selectedRow); 1058 EXPECT_EQ(-1, table_view_.selectedRow);
857 ExpectSignalStrengthLevelImageIs( 1059 ExpectSignalStrengthLevelImageIs(
858 0, MockChooserController::kSignalStrengthLevel2Bar); 1060 0, MockChooserController::kSignalStrengthLevel2Bar,
1061 MockChooserController::kImageColorBlack);
859 ExpectRowTextIs(0, @"d"); 1062 ExpectRowTextIs(0, @"d");
860 EXPECT_FALSE(IsRowPaired(0)); 1063 EXPECT_FALSE(IsRowPaired(0));
861 EXPECT_TRUE(spinner_.hidden); 1064 EXPECT_TRUE(spinner_.hidden);
862 EXPECT_FALSE(status_.hidden); 1065 EXPECT_FALSE(status_.hidden);
863 EXPECT_TRUE(rescan_button_.hidden); 1066 EXPECT_TRUE(rescan_button_.hidden);
864 // OK button is disabled since no option is selected. 1067 // OK button is disabled since no option is selected.
865 EXPECT_FALSE(connect_button_.enabled); 1068 EXPECT_FALSE(connect_button_.enabled);
866 EXPECT_TRUE(cancel_button_.enabled); 1069 EXPECT_TRUE(cancel_button_.enabled);
867 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] 1070 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0]
868 byExtendingSelection:NO]; 1071 byExtendingSelection:NO];
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 MockChooserController::ConnectedPairedStatus::NONE); 1111 MockChooserController::ConnectedPairedStatus::NONE);
909 1112
910 // Select option 0 and press "Get help" button. 1113 // Select option 0 and press "Get help" button.
911 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0] 1114 [table_view_ selectRowIndexes:[NSIndexSet indexSetWithIndex:0]
912 byExtendingSelection:NO]; 1115 byExtendingSelection:NO];
913 EXPECT_CALL(*mock_chooser_controller_, Select(testing::_)).Times(0); 1116 EXPECT_CALL(*mock_chooser_controller_, Select(testing::_)).Times(0);
914 EXPECT_CALL(*mock_chooser_controller_, Cancel()).Times(0); 1117 EXPECT_CALL(*mock_chooser_controller_, Cancel()).Times(0);
915 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1); 1118 EXPECT_CALL(*mock_chooser_controller_, OpenHelpCenterUrl()).Times(1);
916 [help_button_ performClick:chooser_dialog_controller_]; 1119 [help_button_ performClick:chooser_dialog_controller_];
917 } 1120 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698