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

Side by Side Diff: ash/display/resolution_notification_controller_unittest.cc

Issue 1540753002: Switch to standard integer types in ash/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: arraysize Created 5 years 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "ash/display/resolution_notification_controller.h" 5 #include "ash/display/resolution_notification_controller.h"
6 6
7 #include "ash/display/display_manager.h" 7 #include "ash/display/display_manager.h"
8 #include "ash/screen_util.h" 8 #include "ash/screen_util.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/test/ash_test_base.h" 10 #include "ash/test/ash_test_base.h"
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
13 #include "grit/ash_strings.h" 13 #include "grit/ash_strings.h"
14 #include "ui/base/l10n/l10n_util.h" 14 #include "ui/base/l10n/l10n_util.h"
15 #include "ui/gfx/geometry/size.h" 15 #include "ui/gfx/geometry/size.h"
16 #include "ui/message_center/message_center.h" 16 #include "ui/message_center/message_center.h"
17 #include "ui/message_center/notification.h" 17 #include "ui/message_center/notification.h"
18 #include "ui/message_center/notification_list.h" 18 #include "ui/message_center/notification_list.h"
19 19
20 namespace ash { 20 namespace ash {
21 namespace { 21 namespace {
22 22
23 base::string16 ExpectedNotificationMessage(int64 display_id, 23 base::string16 ExpectedNotificationMessage(int64_t display_id,
24 const gfx::Size& new_resolution) { 24 const gfx::Size& new_resolution) {
25 return l10n_util::GetStringFUTF16( 25 return l10n_util::GetStringFUTF16(
26 IDS_ASH_STATUS_TRAY_DISPLAY_RESOLUTION_CHANGED, 26 IDS_ASH_STATUS_TRAY_DISPLAY_RESOLUTION_CHANGED,
27 base::UTF8ToUTF16( 27 base::UTF8ToUTF16(
28 Shell::GetInstance()->display_manager()->GetDisplayNameForId( 28 Shell::GetInstance()->display_manager()->GetDisplayNameForId(
29 display_id)), 29 display_id)),
30 base::UTF8ToUTF16(new_resolution.ToString())); 30 base::UTF8ToUTF16(new_resolution.ToString()));
31 } 31 }
32 32
33 base::string16 ExpectedFallbackNotificationMessage( 33 base::string16 ExpectedFallbackNotificationMessage(
34 int64 display_id, 34 int64_t display_id,
35 const gfx::Size& specified_resolution, 35 const gfx::Size& specified_resolution,
36 const gfx::Size& fallback_resolution) { 36 const gfx::Size& fallback_resolution) {
37 return l10n_util::GetStringFUTF16( 37 return l10n_util::GetStringFUTF16(
38 IDS_ASH_STATUS_TRAY_DISPLAY_RESOLUTION_CHANGED_TO_UNSUPPORTED, 38 IDS_ASH_STATUS_TRAY_DISPLAY_RESOLUTION_CHANGED_TO_UNSUPPORTED,
39 base::UTF8ToUTF16( 39 base::UTF8ToUTF16(
40 Shell::GetInstance()->display_manager()->GetDisplayNameForId( 40 Shell::GetInstance()->display_manager()->GetDisplayNameForId(
41 display_id)), 41 display_id)),
42 base::UTF8ToUTF16(specified_resolution.ToString()), 42 base::UTF8ToUTF16(specified_resolution.ToString()),
43 base::UTF8ToUTF16(fallback_resolution.ToString())); 43 base::UTF8ToUTF16(fallback_resolution.ToString()));
44 } 44 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 old_mode, 79 old_mode,
80 new_mode, 80 new_mode,
81 base::Bind(&ResolutionNotificationControllerTest::OnAccepted, 81 base::Bind(&ResolutionNotificationControllerTest::OnAccepted,
82 base::Unretained(this))); 82 base::Unretained(this)));
83 } 83 }
84 84
85 // OnConfigurationChanged event won't be emitted in the test environment, 85 // OnConfigurationChanged event won't be emitted in the test environment,
86 // so invoke UpdateDisplay() to emit that event explicitly. 86 // so invoke UpdateDisplay() to emit that event explicitly.
87 std::vector<DisplayInfo> info_list; 87 std::vector<DisplayInfo> info_list;
88 for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) { 88 for (size_t i = 0; i < display_manager->GetNumDisplays(); ++i) {
89 int64 id = display_manager->GetDisplayAt(i).id(); 89 int64_t id = display_manager->GetDisplayAt(i).id();
90 DisplayInfo info = display_manager->GetDisplayInfo(id); 90 DisplayInfo info = display_manager->GetDisplayInfo(id);
91 if (display.id() == id) { 91 if (display.id() == id) {
92 gfx::Rect bounds = info.bounds_in_native(); 92 gfx::Rect bounds = info.bounds_in_native();
93 bounds.set_size(actual_new_resolution); 93 bounds.set_size(actual_new_resolution);
94 info.SetBounds(bounds); 94 info.SetBounds(bounds);
95 } 95 }
96 info_list.push_back(info); 96 info_list.push_back(info);
97 } 97 }
98 display_manager->OnNativeDisplaysChanged(info_list); 98 display_manager->OnNativeDisplaysChanged(info_list);
99 RunAllPendingInMessageLoop(); 99 RunAllPendingInMessageLoop();
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 159
160 DISALLOW_COPY_AND_ASSIGN(ResolutionNotificationControllerTest); 160 DISALLOW_COPY_AND_ASSIGN(ResolutionNotificationControllerTest);
161 }; 161 };
162 162
163 // Basic behaviors and verifies it doesn't cause crashes. 163 // Basic behaviors and verifies it doesn't cause crashes.
164 TEST_F(ResolutionNotificationControllerTest, Basic) { 164 TEST_F(ResolutionNotificationControllerTest, Basic) {
165 if (!SupportsMultipleDisplays()) 165 if (!SupportsMultipleDisplays())
166 return; 166 return;
167 167
168 UpdateDisplay("300x300#300x300%57|200x200%58,250x250#250x250%59|200x200%60"); 168 UpdateDisplay("300x300#300x300%57|200x200%58,250x250#250x250%59|200x200%60");
169 int64 id2 = ash::ScreenUtil::GetSecondaryDisplay().id(); 169 int64_t id2 = ash::ScreenUtil::GetSecondaryDisplay().id();
170 ash::DisplayManager* display_manager = 170 ash::DisplayManager* display_manager =
171 ash::Shell::GetInstance()->display_manager(); 171 ash::Shell::GetInstance()->display_manager();
172 ASSERT_EQ(0, accept_count()); 172 ASSERT_EQ(0, accept_count());
173 EXPECT_FALSE(IsNotificationVisible()); 173 EXPECT_FALSE(IsNotificationVisible());
174 174
175 // Changes the resolution and apply the result. 175 // Changes the resolution and apply the result.
176 SetDisplayResolutionAndNotify( 176 SetDisplayResolutionAndNotify(
177 ScreenUtil::GetSecondaryDisplay(), gfx::Size(200, 200)); 177 ScreenUtil::GetSecondaryDisplay(), gfx::Size(200, 200));
178 EXPECT_TRUE(IsNotificationVisible()); 178 EXPECT_TRUE(IsNotificationVisible());
179 EXPECT_FALSE(controller()->DoesNotificationTimeout()); 179 EXPECT_FALSE(controller()->DoesNotificationTimeout());
(...skipping 12 matching lines...) Expand all
192 EXPECT_TRUE(display_manager->GetSelectedModeForDisplayId(id2, &mode)); 192 EXPECT_TRUE(display_manager->GetSelectedModeForDisplayId(id2, &mode));
193 EXPECT_EQ("250x250", mode.size.ToString()); 193 EXPECT_EQ("250x250", mode.size.ToString());
194 EXPECT_EQ(59.0, mode.refresh_rate); 194 EXPECT_EQ(59.0, mode.refresh_rate);
195 } 195 }
196 196
197 TEST_F(ResolutionNotificationControllerTest, ClickMeansAccept) { 197 TEST_F(ResolutionNotificationControllerTest, ClickMeansAccept) {
198 if (!SupportsMultipleDisplays()) 198 if (!SupportsMultipleDisplays())
199 return; 199 return;
200 200
201 UpdateDisplay("300x300#300x300%57|200x200%58,250x250#250x250%59|200x200%60"); 201 UpdateDisplay("300x300#300x300%57|200x200%58,250x250#250x250%59|200x200%60");
202 int64 id2 = ash::ScreenUtil::GetSecondaryDisplay().id(); 202 int64_t id2 = ash::ScreenUtil::GetSecondaryDisplay().id();
203 ash::DisplayManager* display_manager = 203 ash::DisplayManager* display_manager =
204 ash::Shell::GetInstance()->display_manager(); 204 ash::Shell::GetInstance()->display_manager();
205 ASSERT_EQ(0, accept_count()); 205 ASSERT_EQ(0, accept_count());
206 EXPECT_FALSE(IsNotificationVisible()); 206 EXPECT_FALSE(IsNotificationVisible());
207 207
208 // Changes the resolution and apply the result. 208 // Changes the resolution and apply the result.
209 SetDisplayResolutionAndNotify( 209 SetDisplayResolutionAndNotify(
210 ScreenUtil::GetSecondaryDisplay(), gfx::Size(200, 200)); 210 ScreenUtil::GetSecondaryDisplay(), gfx::Size(200, 200));
211 EXPECT_TRUE(IsNotificationVisible()); 211 EXPECT_TRUE(IsNotificationVisible());
212 EXPECT_FALSE(controller()->DoesNotificationTimeout()); 212 EXPECT_FALSE(controller()->DoesNotificationTimeout());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 display_manager->GetSelectedModeForDisplayId(display.id(), &mode)); 262 display_manager->GetSelectedModeForDisplayId(display.id(), &mode));
263 EXPECT_EQ("300x300", mode.size.ToString()); 263 EXPECT_EQ("300x300", mode.size.ToString());
264 EXPECT_EQ(59.0f, mode.refresh_rate); 264 EXPECT_EQ(59.0f, mode.refresh_rate);
265 } 265 }
266 266
267 TEST_F(ResolutionNotificationControllerTest, Close) { 267 TEST_F(ResolutionNotificationControllerTest, Close) {
268 if (!SupportsMultipleDisplays()) 268 if (!SupportsMultipleDisplays())
269 return; 269 return;
270 270
271 UpdateDisplay("100x100,150x150#150x150%59|200x200%60"); 271 UpdateDisplay("100x100,150x150#150x150%59|200x200%60");
272 int64 id2 = ash::ScreenUtil::GetSecondaryDisplay().id(); 272 int64_t id2 = ash::ScreenUtil::GetSecondaryDisplay().id();
273 ash::DisplayManager* display_manager = 273 ash::DisplayManager* display_manager =
274 ash::Shell::GetInstance()->display_manager(); 274 ash::Shell::GetInstance()->display_manager();
275 ASSERT_EQ(0, accept_count()); 275 ASSERT_EQ(0, accept_count());
276 EXPECT_FALSE(IsNotificationVisible()); 276 EXPECT_FALSE(IsNotificationVisible());
277 277
278 // Changes the resolution and apply the result. 278 // Changes the resolution and apply the result.
279 SetDisplayResolutionAndNotify( 279 SetDisplayResolutionAndNotify(
280 ScreenUtil::GetSecondaryDisplay(), gfx::Size(200, 200)); 280 ScreenUtil::GetSecondaryDisplay(), gfx::Size(200, 200));
281 EXPECT_TRUE(IsNotificationVisible()); 281 EXPECT_TRUE(IsNotificationVisible());
282 EXPECT_FALSE(controller()->DoesNotificationTimeout()); 282 EXPECT_FALSE(controller()->DoesNotificationTimeout());
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 EXPECT_EQ("300x300", mode.size.ToString()); 317 EXPECT_EQ("300x300", mode.size.ToString());
318 EXPECT_EQ(59.0f, mode.refresh_rate); 318 EXPECT_EQ(59.0f, mode.refresh_rate);
319 } 319 }
320 320
321 TEST_F(ResolutionNotificationControllerTest, DisplayDisconnected) { 321 TEST_F(ResolutionNotificationControllerTest, DisplayDisconnected) {
322 if (!SupportsMultipleDisplays()) 322 if (!SupportsMultipleDisplays())
323 return; 323 return;
324 324
325 UpdateDisplay("300x300#300x300%56|200x200%57," 325 UpdateDisplay("300x300#300x300%56|200x200%57,"
326 "200x200#250x250%58|200x200%59|100x100%60"); 326 "200x200#250x250%58|200x200%59|100x100%60");
327 int64 id2 = ash::ScreenUtil::GetSecondaryDisplay().id(); 327 int64_t id2 = ash::ScreenUtil::GetSecondaryDisplay().id();
328 ash::DisplayManager* display_manager = 328 ash::DisplayManager* display_manager =
329 ash::Shell::GetInstance()->display_manager(); 329 ash::Shell::GetInstance()->display_manager();
330 SetDisplayResolutionAndNotify( 330 SetDisplayResolutionAndNotify(
331 ScreenUtil::GetSecondaryDisplay(), gfx::Size(100, 100)); 331 ScreenUtil::GetSecondaryDisplay(), gfx::Size(100, 100));
332 ASSERT_TRUE(IsNotificationVisible()); 332 ASSERT_TRUE(IsNotificationVisible());
333 333
334 // Disconnects the secondary display and verifies it doesn't cause crashes. 334 // Disconnects the secondary display and verifies it doesn't cause crashes.
335 UpdateDisplay("300x300#300x300%56|200x200%57"); 335 UpdateDisplay("300x300#300x300%56|200x200%57");
336 RunAllPendingInMessageLoop(); 336 RunAllPendingInMessageLoop();
337 EXPECT_FALSE(IsNotificationVisible()); 337 EXPECT_FALSE(IsNotificationVisible());
338 EXPECT_EQ(0, accept_count()); 338 EXPECT_EQ(0, accept_count());
339 DisplayMode mode; 339 DisplayMode mode;
340 EXPECT_TRUE(display_manager->GetSelectedModeForDisplayId(id2, &mode)); 340 EXPECT_TRUE(display_manager->GetSelectedModeForDisplayId(id2, &mode));
341 gfx::Size resolution; 341 gfx::Size resolution;
342 EXPECT_EQ("200x200", mode.size.ToString()); 342 EXPECT_EQ("200x200", mode.size.ToString());
343 EXPECT_EQ(59.0f, mode.refresh_rate); 343 EXPECT_EQ(59.0f, mode.refresh_rate);
344 } 344 }
345 345
346 TEST_F(ResolutionNotificationControllerTest, MultipleResolutionChange) { 346 TEST_F(ResolutionNotificationControllerTest, MultipleResolutionChange) {
347 if (!SupportsMultipleDisplays()) 347 if (!SupportsMultipleDisplays())
348 return; 348 return;
349 349
350 UpdateDisplay("300x300#300x300%56|200x200%57," 350 UpdateDisplay("300x300#300x300%56|200x200%57,"
351 "250x250#250x250%58|200x200%59"); 351 "250x250#250x250%58|200x200%59");
352 int64 id2 = ash::ScreenUtil::GetSecondaryDisplay().id(); 352 int64_t id2 = ash::ScreenUtil::GetSecondaryDisplay().id();
353 ash::DisplayManager* display_manager = 353 ash::DisplayManager* display_manager =
354 ash::Shell::GetInstance()->display_manager(); 354 ash::Shell::GetInstance()->display_manager();
355 355
356 SetDisplayResolutionAndNotify( 356 SetDisplayResolutionAndNotify(
357 ScreenUtil::GetSecondaryDisplay(), gfx::Size(200, 200)); 357 ScreenUtil::GetSecondaryDisplay(), gfx::Size(200, 200));
358 EXPECT_TRUE(IsNotificationVisible()); 358 EXPECT_TRUE(IsNotificationVisible());
359 EXPECT_FALSE(controller()->DoesNotificationTimeout()); 359 EXPECT_FALSE(controller()->DoesNotificationTimeout());
360 DisplayMode mode; 360 DisplayMode mode;
361 EXPECT_TRUE(display_manager->GetSelectedModeForDisplayId(id2, &mode)); 361 EXPECT_TRUE(display_manager->GetSelectedModeForDisplayId(id2, &mode));
362 EXPECT_EQ("200x200", mode.size.ToString()); 362 EXPECT_EQ("200x200", mode.size.ToString());
(...skipping 18 matching lines...) Expand all
381 EXPECT_EQ("250x250", mode.size.ToString()); 381 EXPECT_EQ("250x250", mode.size.ToString());
382 EXPECT_EQ(58.0f, mode.refresh_rate); 382 EXPECT_EQ(58.0f, mode.refresh_rate);
383 } 383 }
384 384
385 TEST_F(ResolutionNotificationControllerTest, Fallback) { 385 TEST_F(ResolutionNotificationControllerTest, Fallback) {
386 if (!SupportsMultipleDisplays()) 386 if (!SupportsMultipleDisplays())
387 return; 387 return;
388 388
389 UpdateDisplay("300x300#300x300%56|200x200%57," 389 UpdateDisplay("300x300#300x300%56|200x200%57,"
390 "250x250#250x250%58|220x220%59|200x200%60"); 390 "250x250#250x250%58|220x220%59|200x200%60");
391 int64 id2 = ash::ScreenUtil::GetSecondaryDisplay().id(); 391 int64_t id2 = ash::ScreenUtil::GetSecondaryDisplay().id();
392 ash::DisplayManager* display_manager = 392 ash::DisplayManager* display_manager =
393 ash::Shell::GetInstance()->display_manager(); 393 ash::Shell::GetInstance()->display_manager();
394 ASSERT_EQ(0, accept_count()); 394 ASSERT_EQ(0, accept_count());
395 EXPECT_FALSE(IsNotificationVisible()); 395 EXPECT_FALSE(IsNotificationVisible());
396 396
397 // Changes the resolution and apply the result. 397 // Changes the resolution and apply the result.
398 SetDisplayResolutionAndNotifyWithResolution( 398 SetDisplayResolutionAndNotifyWithResolution(
399 ScreenUtil::GetSecondaryDisplay(), 399 ScreenUtil::GetSecondaryDisplay(),
400 gfx::Size(220, 220), 400 gfx::Size(220, 220),
401 gfx::Size(200, 200)); 401 gfx::Size(200, 200));
(...skipping 12 matching lines...) Expand all
414 ClickOnNotificationButton(0); 414 ClickOnNotificationButton(0);
415 RunAllPendingInMessageLoop(); 415 RunAllPendingInMessageLoop();
416 EXPECT_FALSE(IsNotificationVisible()); 416 EXPECT_FALSE(IsNotificationVisible());
417 EXPECT_EQ(0, accept_count()); 417 EXPECT_EQ(0, accept_count());
418 EXPECT_TRUE(display_manager->GetSelectedModeForDisplayId(id2, &mode)); 418 EXPECT_TRUE(display_manager->GetSelectedModeForDisplayId(id2, &mode));
419 EXPECT_EQ("250x250", mode.size.ToString()); 419 EXPECT_EQ("250x250", mode.size.ToString());
420 EXPECT_EQ(58.0f, mode.refresh_rate); 420 EXPECT_EQ(58.0f, mode.refresh_rate);
421 } 421 }
422 422
423 } // namespace ash 423 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/resolution_notification_controller.cc ('k') | ash/display/root_window_transformers.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698