| OLD | NEW |
| 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/system/chromeos/tray_display.h" | 5 #include "ash/system/chromeos/tray_display.h" |
| 6 | 6 |
| 7 #include "ash/common/system/chromeos/devicetype_utils.h" | 7 #include "ash/common/system/chromeos/devicetype_utils.h" |
| 8 #include "ash/display/display_manager.h" | 8 #include "ash/display/display_manager.h" |
| 9 #include "ash/root_window_controller.h" | 9 #include "ash/root_window_controller.h" |
| 10 #include "ash/screen_util.h" | 10 #include "ash/screen_util.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 base::string16 GetTooltipText(const base::string16& headline, | 30 base::string16 GetTooltipText(const base::string16& headline, |
| 31 const base::string16& name1, | 31 const base::string16& name1, |
| 32 const std::string& data1, | 32 const std::string& data1, |
| 33 const base::string16& name2, | 33 const base::string16& name2, |
| 34 const std::string& data2) { | 34 const std::string& data2) { |
| 35 std::vector<base::string16> lines; | 35 std::vector<base::string16> lines; |
| 36 lines.push_back(headline); | 36 lines.push_back(headline); |
| 37 if (data1.empty()) { | 37 if (data1.empty()) { |
| 38 lines.push_back(name1); | 38 lines.push_back(name1); |
| 39 } else { | 39 } else { |
| 40 lines.push_back(l10n_util::GetStringFUTF16( | 40 lines.push_back( |
| 41 IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, | 41 l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, |
| 42 name1, base::UTF8ToUTF16(data1))); | 42 name1, base::UTF8ToUTF16(data1))); |
| 43 } | 43 } |
| 44 if (!name2.empty()) { | 44 if (!name2.empty()) { |
| 45 lines.push_back(l10n_util::GetStringFUTF16( | 45 lines.push_back( |
| 46 IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, | 46 l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, |
| 47 name2, base::UTF8ToUTF16(data2))); | 47 name2, base::UTF8ToUTF16(data2))); |
| 48 } | 48 } |
| 49 return base::JoinString(lines, base::ASCIIToUTF16("\n")); | 49 return base::JoinString(lines, base::ASCIIToUTF16("\n")); |
| 50 } | 50 } |
| 51 | 51 |
| 52 base::string16 GetMirroredTooltipText(const base::string16& headline, | 52 base::string16 GetMirroredTooltipText(const base::string16& headline, |
| 53 const base::string16& name, | 53 const base::string16& name, |
| 54 const std::string& data) { | 54 const std::string& data) { |
| 55 return GetTooltipText(headline, name, data, base::string16(), ""); | 55 return GetTooltipText(headline, name, data, base::string16(), ""); |
| 56 } | 56 } |
| 57 | 57 |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 | 98 |
| 99 // Weak reference, owned by Shell. | 99 // Weak reference, owned by Shell. |
| 100 SystemTray* tray_; | 100 SystemTray* tray_; |
| 101 | 101 |
| 102 // Weak reference, owned by |tray_|. | 102 // Weak reference, owned by |tray_|. |
| 103 TrayDisplay* tray_display_; | 103 TrayDisplay* tray_display_; |
| 104 | 104 |
| 105 DISALLOW_COPY_AND_ASSIGN(TrayDisplayTest); | 105 DISALLOW_COPY_AND_ASSIGN(TrayDisplayTest); |
| 106 }; | 106 }; |
| 107 | 107 |
| 108 TrayDisplayTest::TrayDisplayTest() : tray_(NULL), tray_display_(NULL) { | 108 TrayDisplayTest::TrayDisplayTest() : tray_(NULL), tray_display_(NULL) {} |
| 109 } | |
| 110 | 109 |
| 111 TrayDisplayTest::~TrayDisplayTest() { | 110 TrayDisplayTest::~TrayDisplayTest() {} |
| 112 } | |
| 113 | 111 |
| 114 void TrayDisplayTest::SetUp() { | 112 void TrayDisplayTest::SetUp() { |
| 115 ash::test::AshTestBase::SetUp(); | 113 ash::test::AshTestBase::SetUp(); |
| 116 // Populate tray_ and tray_display_. | 114 // Populate tray_ and tray_display_. |
| 117 CheckUpdate(); | 115 CheckUpdate(); |
| 118 } | 116 } |
| 119 | 117 |
| 120 SystemTray* TrayDisplayTest::GetTray() { | 118 SystemTray* TrayDisplayTest::GetTray() { |
| 121 CheckUpdate(); | 119 CheckUpdate(); |
| 122 return tray_; | 120 return tray_; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 137 } | 135 } |
| 138 } | 136 } |
| 139 | 137 |
| 140 void TrayDisplayTest::CloseNotification() { | 138 void TrayDisplayTest::CloseNotification() { |
| 141 message_center::MessageCenter::Get()->RemoveNotification( | 139 message_center::MessageCenter::Get()->RemoveNotification( |
| 142 TrayDisplay::kNotificationId, false); | 140 TrayDisplay::kNotificationId, false); |
| 143 RunAllPendingInMessageLoop(); | 141 RunAllPendingInMessageLoop(); |
| 144 } | 142 } |
| 145 | 143 |
| 146 bool TrayDisplayTest::IsDisplayVisibleInTray() const { | 144 bool TrayDisplayTest::IsDisplayVisibleInTray() const { |
| 147 return tray_->HasSystemBubble() && | 145 return tray_->HasSystemBubble() && tray_display_->default_view() && |
| 148 tray_display_->default_view() && | 146 tray_display_->default_view()->visible(); |
| 149 tray_display_->default_view()->visible(); | |
| 150 } | 147 } |
| 151 | 148 |
| 152 base::string16 TrayDisplayTest::GetTrayDisplayText() const { | 149 base::string16 TrayDisplayTest::GetTrayDisplayText() const { |
| 153 return tray_display_->GetDefaultViewMessage(); | 150 return tray_display_->GetDefaultViewMessage(); |
| 154 } | 151 } |
| 155 | 152 |
| 156 void TrayDisplayTest::CheckAccessibleName() const { | 153 void TrayDisplayTest::CheckAccessibleName() const { |
| 157 ui::AXViewState state; | 154 ui::AXViewState state; |
| 158 if (tray_display_->GetAccessibleStateForTesting(&state)) { | 155 if (tray_display_->GetAccessibleStateForTesting(&state)) { |
| 159 base::string16 expected = tray_display_->GetDefaultViewMessage(); | 156 base::string16 expected = tray_display_->GetDefaultViewMessage(); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 179 base::string16 TrayDisplayTest::GetDisplayNotificationAdditionalText() const { | 176 base::string16 TrayDisplayTest::GetDisplayNotificationAdditionalText() const { |
| 180 const message_center::Notification* notification = GetDisplayNotification(); | 177 const message_center::Notification* notification = GetDisplayNotification(); |
| 181 return notification ? notification->message() : base::string16(); | 178 return notification ? notification->message() : base::string16(); |
| 182 } | 179 } |
| 183 | 180 |
| 184 const message_center::Notification* TrayDisplayTest::GetDisplayNotification() | 181 const message_center::Notification* TrayDisplayTest::GetDisplayNotification() |
| 185 const { | 182 const { |
| 186 const message_center::NotificationList::Notifications notifications = | 183 const message_center::NotificationList::Notifications notifications = |
| 187 message_center::MessageCenter::Get()->GetVisibleNotifications(); | 184 message_center::MessageCenter::Get()->GetVisibleNotifications(); |
| 188 for (message_center::NotificationList::Notifications::const_iterator iter = | 185 for (message_center::NotificationList::Notifications::const_iterator iter = |
| 189 notifications.begin(); iter != notifications.end(); ++iter) { | 186 notifications.begin(); |
| 187 iter != notifications.end(); ++iter) { |
| 190 if ((*iter)->id() == TrayDisplay::kNotificationId) | 188 if ((*iter)->id() == TrayDisplay::kNotificationId) |
| 191 return *iter; | 189 return *iter; |
| 192 } | 190 } |
| 193 | 191 |
| 194 return NULL; | 192 return NULL; |
| 195 } | 193 } |
| 196 | 194 |
| 197 TEST_F(TrayDisplayTest, NoInternalDisplay) { | 195 TEST_F(TrayDisplayTest, NoInternalDisplay) { |
| 198 UpdateDisplay("400x400"); | 196 UpdateDisplay("400x400"); |
| 199 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 197 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 | 258 |
| 261 TEST_F(TrayDisplayTest, InternalDisplayResized) { | 259 TEST_F(TrayDisplayTest, InternalDisplayResized) { |
| 262 UpdateDisplay("400x400@1.5"); | 260 UpdateDisplay("400x400@1.5"); |
| 263 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); | 261 DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
| 264 display::Display::SetInternalDisplayId(display_manager->first_display_id()); | 262 display::Display::SetInternalDisplayId(display_manager->first_display_id()); |
| 265 | 263 |
| 266 // Shows the tray_display even though there's a single-display. | 264 // Shows the tray_display even though there's a single-display. |
| 267 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 265 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 268 EXPECT_TRUE(IsDisplayVisibleInTray()); | 266 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 269 base::string16 internal_info = l10n_util::GetStringFUTF16( | 267 base::string16 internal_info = l10n_util::GetStringFUTF16( |
| 270 IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, | 268 IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, GetFirstDisplayName(), |
| 271 GetFirstDisplayName(), base::UTF8ToUTF16("600x600")); | 269 base::UTF8ToUTF16("600x600")); |
| 272 EXPECT_EQ(internal_info, GetTrayDisplayText()); | 270 EXPECT_EQ(internal_info, GetTrayDisplayText()); |
| 273 EXPECT_EQ(GetTooltipText(base::string16(), GetFirstDisplayName(), "600x600", | 271 EXPECT_EQ(GetTooltipText(base::string16(), GetFirstDisplayName(), "600x600", |
| 274 base::string16(), std::string()), | 272 base::string16(), std::string()), |
| 275 GetTrayDisplayTooltipText()); | 273 GetTrayDisplayTooltipText()); |
| 276 CheckAccessibleName(); | 274 CheckAccessibleName(); |
| 277 | 275 |
| 278 // Extended | 276 // Extended |
| 279 UpdateDisplay("400x400@1.5,200x200"); | 277 UpdateDisplay("400x400@1.5,200x200"); |
| 280 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 278 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 281 EXPECT_TRUE(IsDisplayVisibleInTray()); | 279 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 302 // Closed lid mode. | 300 // Closed lid mode. |
| 303 display_manager->SetSoftwareMirroring(false); | 301 display_manager->SetSoftwareMirroring(false); |
| 304 UpdateDisplay("400x400@1.5,200x200"); | 302 UpdateDisplay("400x400@1.5,200x200"); |
| 305 display::Display::SetInternalDisplayId( | 303 display::Display::SetInternalDisplayId( |
| 306 ScreenUtil::GetSecondaryDisplay().id()); | 304 ScreenUtil::GetSecondaryDisplay().id()); |
| 307 UpdateDisplay("400x400@1.5"); | 305 UpdateDisplay("400x400@1.5"); |
| 308 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 306 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 309 EXPECT_TRUE(IsDisplayVisibleInTray()); | 307 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 310 expected = l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED); | 308 expected = l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED); |
| 311 EXPECT_EQ(expected, GetTrayDisplayText()); | 309 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 312 EXPECT_EQ( | 310 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "600x600", |
| 313 GetTooltipText( | 311 base::string16(), ""), |
| 314 expected, GetFirstDisplayName(), "600x600", base::string16(), ""), | 312 GetTrayDisplayTooltipText()); |
| 315 GetTrayDisplayTooltipText()); | |
| 316 CheckAccessibleName(); | 313 CheckAccessibleName(); |
| 317 | 314 |
| 318 // Unified mode | 315 // Unified mode |
| 319 display_manager->SetUnifiedDesktopEnabled(true); | 316 display_manager->SetUnifiedDesktopEnabled(true); |
| 320 UpdateDisplay("300x200,400x500"); | 317 UpdateDisplay("300x200,400x500"); |
| 321 // Update the cache variables as the primary root window changed. | 318 // Update the cache variables as the primary root window changed. |
| 322 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 319 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 323 EXPECT_TRUE(IsDisplayVisibleInTray()); | 320 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 324 expected = l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_UNIFIED); | 321 expected = l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_UNIFIED); |
| 325 EXPECT_EQ(expected, GetTrayDisplayText()); | 322 EXPECT_EQ(expected, GetTrayDisplayText()); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 336 | 333 |
| 337 // Extended | 334 // Extended |
| 338 UpdateDisplay("400x400,200x200@1.5"); | 335 UpdateDisplay("400x400,200x200@1.5"); |
| 339 const display::Display& secondary_display = ScreenUtil::GetSecondaryDisplay(); | 336 const display::Display& secondary_display = ScreenUtil::GetSecondaryDisplay(); |
| 340 | 337 |
| 341 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 338 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 342 EXPECT_TRUE(IsDisplayVisibleInTray()); | 339 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 343 base::string16 expected = l10n_util::GetStringFUTF16( | 340 base::string16 expected = l10n_util::GetStringFUTF16( |
| 344 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, | 341 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
| 345 l10n_util::GetStringFUTF16( | 342 l10n_util::GetStringFUTF16( |
| 346 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, | 343 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, GetSecondDisplayName(), |
| 347 GetSecondDisplayName(), | |
| 348 base::UTF8ToUTF16(secondary_display.size().ToString()))); | 344 base::UTF8ToUTF16(secondary_display.size().ToString()))); |
| 349 EXPECT_EQ(expected, GetTrayDisplayText()); | 345 EXPECT_EQ(expected, GetTrayDisplayText()); |
| 350 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", | 346 EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", |
| 351 GetSecondDisplayName(), "300x300"), | 347 GetSecondDisplayName(), "300x300"), |
| 352 GetTrayDisplayTooltipText()); | 348 GetTrayDisplayTooltipText()); |
| 353 CheckAccessibleName(); | 349 CheckAccessibleName(); |
| 354 | 350 |
| 355 // Mirroring | 351 // Mirroring |
| 356 display_manager->SetSoftwareMirroring(true); | 352 display_manager->SetSoftwareMirroring(true); |
| 357 UpdateDisplay("400x400,200x200@1.5"); | 353 UpdateDisplay("400x400,200x200@1.5"); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 372 | 368 |
| 373 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 369 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 374 EXPECT_TRUE(IsDisplayVisibleInTray()); | 370 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 375 | 371 |
| 376 // /o creates the default overscan, and if overscan is set, the annotation | 372 // /o creates the default overscan, and if overscan is set, the annotation |
| 377 // should be the size. | 373 // should be the size. |
| 378 base::string16 overscan = l10n_util::GetStringUTF16( | 374 base::string16 overscan = l10n_util::GetStringUTF16( |
| 379 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION_OVERSCAN); | 375 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION_OVERSCAN); |
| 380 base::string16 headline = l10n_util::GetStringFUTF16( | 376 base::string16 headline = l10n_util::GetStringFUTF16( |
| 381 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, | 377 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
| 382 l10n_util::GetStringFUTF16( | 378 l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, |
| 383 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, | 379 GetSecondDisplayName(), |
| 384 GetSecondDisplayName(), base::UTF8ToUTF16("286x286"))); | 380 base::UTF8ToUTF16("286x286"))); |
| 385 std::string second_data = l10n_util::GetStringFUTF8( | 381 std::string second_data = |
| 386 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION, | 382 l10n_util::GetStringFUTF8(IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION, |
| 387 base::UTF8ToUTF16("286x286"), overscan); | 383 base::UTF8ToUTF16("286x286"), overscan); |
| 388 EXPECT_EQ(GetTooltipText(headline, GetFirstDisplayName(), "400x400", | 384 EXPECT_EQ(GetTooltipText(headline, GetFirstDisplayName(), "400x400", |
| 389 GetSecondDisplayName(), second_data), | 385 GetSecondDisplayName(), second_data), |
| 390 GetTrayDisplayTooltipText()); | 386 GetTrayDisplayTooltipText()); |
| 391 | 387 |
| 392 // reset the overscan. | 388 // reset the overscan. |
| 393 display_manager->SetOverscanInsets( | 389 display_manager->SetOverscanInsets(ScreenUtil::GetSecondaryDisplay().id(), |
| 394 ScreenUtil::GetSecondaryDisplay().id(), gfx::Insets()); | 390 gfx::Insets()); |
| 395 headline = l10n_util::GetStringFUTF16( | 391 headline = l10n_util::GetStringFUTF16( |
| 396 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, | 392 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
| 397 l10n_util::GetStringFUTF16( | 393 l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, |
| 398 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, | 394 GetSecondDisplayName(), overscan)); |
| 399 GetSecondDisplayName(), overscan)); | 395 second_data = |
| 400 second_data = l10n_util::GetStringFUTF8( | 396 l10n_util::GetStringFUTF8(IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION, |
| 401 IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION, | 397 base::UTF8ToUTF16("300x300"), overscan); |
| 402 base::UTF8ToUTF16("300x300"), overscan); | |
| 403 EXPECT_EQ(GetTooltipText(headline, GetFirstDisplayName(), "400x400", | 398 EXPECT_EQ(GetTooltipText(headline, GetFirstDisplayName(), "400x400", |
| 404 GetSecondDisplayName(), second_data), | 399 GetSecondDisplayName(), second_data), |
| 405 GetTrayDisplayTooltipText()); | 400 GetTrayDisplayTooltipText()); |
| 406 } | 401 } |
| 407 | 402 |
| 408 TEST_F(TrayDisplayTest, UpdateDuringDisplayConfigurationChange) { | 403 TEST_F(TrayDisplayTest, UpdateDuringDisplayConfigurationChange) { |
| 409 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); | 404 GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
| 410 EXPECT_FALSE(IsDisplayVisibleInTray()); | 405 EXPECT_FALSE(IsDisplayVisibleInTray()); |
| 411 | 406 |
| 412 UpdateDisplay("400x400@1.5"); | 407 UpdateDisplay("400x400@1.5"); |
| 413 EXPECT_TRUE(GetTray()->HasSystemBubble()); | 408 EXPECT_TRUE(GetTray()->HasSystemBubble()); |
| 414 EXPECT_TRUE(IsDisplayVisibleInTray()); | 409 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 415 base::string16 internal_info = l10n_util::GetStringFUTF16( | 410 base::string16 internal_info = l10n_util::GetStringFUTF16( |
| 416 IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, | 411 IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, GetFirstDisplayName(), |
| 417 GetFirstDisplayName(), base::UTF8ToUTF16("600x600")); | 412 base::UTF8ToUTF16("600x600")); |
| 418 EXPECT_EQ(internal_info, GetTrayDisplayText()); | 413 EXPECT_EQ(internal_info, GetTrayDisplayText()); |
| 419 EXPECT_EQ(GetTooltipText(base::string16(), GetFirstDisplayName(), "600x600", | 414 EXPECT_EQ(GetTooltipText(base::string16(), GetFirstDisplayName(), "600x600", |
| 420 base::string16(), std::string()), | 415 base::string16(), std::string()), |
| 421 GetTrayDisplayTooltipText()); | 416 GetTrayDisplayTooltipText()); |
| 422 CheckAccessibleName(); | 417 CheckAccessibleName(); |
| 423 | 418 |
| 424 UpdateDisplay("400x400,200x200"); | 419 UpdateDisplay("400x400,200x200"); |
| 425 EXPECT_TRUE(GetTray()->HasSystemBubble()); | 420 EXPECT_TRUE(GetTray()->HasSystemBubble()); |
| 426 EXPECT_TRUE(IsDisplayVisibleInTray()); | 421 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 427 base::string16 expected = l10n_util::GetStringUTF16( | 422 base::string16 expected = l10n_util::GetStringUTF16( |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 | 484 |
| 490 // No-update | 485 // No-update |
| 491 CloseNotification(); | 486 CloseNotification(); |
| 492 UpdateDisplay("400x400"); | 487 UpdateDisplay("400x400"); |
| 493 EXPECT_TRUE(GetDisplayNotificationText().empty()); | 488 EXPECT_TRUE(GetDisplayNotificationText().empty()); |
| 494 EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); | 489 EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); |
| 495 | 490 |
| 496 // Extended. | 491 // Extended. |
| 497 CloseNotification(); | 492 CloseNotification(); |
| 498 UpdateDisplay("400x400,200x200"); | 493 UpdateDisplay("400x400,200x200"); |
| 499 EXPECT_EQ( | 494 EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
| 500 l10n_util::GetStringFUTF16( | 495 GetSecondDisplayName()), |
| 501 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, GetSecondDisplayName()), | 496 GetDisplayNotificationText()); |
| 502 GetDisplayNotificationText()); | |
| 503 EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); | 497 EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); |
| 504 | 498 |
| 505 // Mirroring. | 499 // Mirroring. |
| 506 CloseNotification(); | 500 CloseNotification(); |
| 507 display_manager->SetSoftwareMirroring(true); | 501 display_manager->SetSoftwareMirroring(true); |
| 508 UpdateDisplay("400x400,200x200"); | 502 UpdateDisplay("400x400,200x200"); |
| 509 EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, | 503 EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, |
| 510 GetMirroringDisplayName()), | 504 GetMirroringDisplayName()), |
| 511 GetDisplayNotificationText()); | 505 GetDisplayNotificationText()); |
| 512 EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); | 506 EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); |
| 513 | 507 |
| 514 // Back to extended. | 508 // Back to extended. |
| 515 CloseNotification(); | 509 CloseNotification(); |
| 516 display_manager->SetSoftwareMirroring(false); | 510 display_manager->SetSoftwareMirroring(false); |
| 517 UpdateDisplay("400x400,200x200"); | 511 UpdateDisplay("400x400,200x200"); |
| 518 EXPECT_EQ( | 512 EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
| 519 l10n_util::GetStringFUTF16( | 513 GetSecondDisplayName()), |
| 520 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, GetSecondDisplayName()), | 514 GetDisplayNotificationText()); |
| 521 GetDisplayNotificationText()); | |
| 522 EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); | 515 EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); |
| 523 | 516 |
| 524 // Resize the first display. | 517 // Resize the first display. |
| 525 UpdateDisplay("400x400@1.5,200x200"); | 518 UpdateDisplay("400x400@1.5,200x200"); |
| 526 EXPECT_EQ(l10n_util::GetStringFUTF16( | 519 EXPECT_EQ(l10n_util::GetStringFUTF16( |
| 527 IDS_ASH_STATUS_TRAY_DISPLAY_RESOLUTION_CHANGED, | 520 IDS_ASH_STATUS_TRAY_DISPLAY_RESOLUTION_CHANGED, |
| 528 GetFirstDisplayName(), base::UTF8ToUTF16("600x600")), | 521 GetFirstDisplayName(), base::UTF8ToUTF16("600x600")), |
| 529 GetDisplayNotificationAdditionalText()); | 522 GetDisplayNotificationAdditionalText()); |
| 530 EXPECT_TRUE(GetDisplayNotificationText().empty()); | 523 EXPECT_TRUE(GetDisplayNotificationText().empty()); |
| 531 | 524 |
| 532 // Rotate the second. | 525 // Rotate the second. |
| 533 UpdateDisplay("400x400@1.5,200x200/r"); | 526 UpdateDisplay("400x400@1.5,200x200/r"); |
| 534 EXPECT_EQ(l10n_util::GetStringFUTF16( | 527 EXPECT_EQ(l10n_util::GetStringFUTF16( |
| 535 IDS_ASH_STATUS_TRAY_DISPLAY_ROTATED, GetSecondDisplayName(), | 528 IDS_ASH_STATUS_TRAY_DISPLAY_ROTATED, GetSecondDisplayName(), |
| 536 l10n_util::GetStringUTF16( | 529 l10n_util::GetStringUTF16( |
| 537 IDS_ASH_STATUS_TRAY_DISPLAY_ORIENTATION_90)), | 530 IDS_ASH_STATUS_TRAY_DISPLAY_ORIENTATION_90)), |
| 538 GetDisplayNotificationAdditionalText()); | 531 GetDisplayNotificationAdditionalText()); |
| 539 EXPECT_TRUE(GetDisplayNotificationText().empty()); | 532 EXPECT_TRUE(GetDisplayNotificationText().empty()); |
| 540 | 533 |
| 541 // Enters closed lid mode. | 534 // Enters closed lid mode. |
| 542 UpdateDisplay("400x400@1.5,200x200"); | 535 UpdateDisplay("400x400@1.5,200x200"); |
| 543 display::Display::SetInternalDisplayId( | 536 display::Display::SetInternalDisplayId( |
| 544 ScreenUtil::GetSecondaryDisplay().id()); | 537 ScreenUtil::GetSecondaryDisplay().id()); |
| 545 UpdateDisplay("400x400@1.5"); | 538 UpdateDisplay("400x400@1.5"); |
| 546 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED), | 539 EXPECT_EQ(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED), |
| 547 GetDisplayNotificationText()); | 540 GetDisplayNotificationText()); |
| 548 EXPECT_EQ( | 541 EXPECT_EQ(ash::SubstituteChromeOSDeviceType( |
| 549 ash::SubstituteChromeOSDeviceType( | 542 IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED_DESCRIPTION), |
| 550 IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED_DESCRIPTION), | 543 GetDisplayNotificationAdditionalText()); |
| 551 GetDisplayNotificationAdditionalText()); | |
| 552 } | 544 } |
| 553 | 545 |
| 554 TEST_F(TrayDisplayTest, DisplayConfigurationChangedTwice) { | 546 TEST_F(TrayDisplayTest, DisplayConfigurationChangedTwice) { |
| 555 test::TestSystemTrayDelegate* tray_delegate = GetSystemTrayDelegate(); | 547 test::TestSystemTrayDelegate* tray_delegate = GetSystemTrayDelegate(); |
| 556 tray_delegate->set_should_show_display_notification(true); | 548 tray_delegate->set_should_show_display_notification(true); |
| 557 | 549 |
| 558 UpdateDisplay("400x400,200x200"); | 550 UpdateDisplay("400x400,200x200"); |
| 559 EXPECT_EQ( | 551 EXPECT_EQ(l10n_util::GetStringUTF16( |
| 560 l10n_util::GetStringUTF16( | 552 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL), |
| 561 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL), | 553 GetDisplayNotificationText()); |
| 562 GetDisplayNotificationText()); | |
| 563 | 554 |
| 564 // OnDisplayConfigurationChanged() may be called more than once for a single | 555 // OnDisplayConfigurationChanged() may be called more than once for a single |
| 565 // update display in case of primary is swapped or recovered from dock mode. | 556 // update display in case of primary is swapped or recovered from dock mode. |
| 566 // Should not remove the notification in such case. | 557 // Should not remove the notification in such case. |
| 567 GetTrayDisplay()->OnDisplayConfigurationChanged(); | 558 GetTrayDisplay()->OnDisplayConfigurationChanged(); |
| 568 EXPECT_EQ( | 559 EXPECT_EQ(l10n_util::GetStringUTF16( |
| 569 l10n_util::GetStringUTF16( | 560 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL), |
| 570 IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL), | 561 GetDisplayNotificationText()); |
| 571 GetDisplayNotificationText()); | |
| 572 | 562 |
| 573 // Back to the single display. It SHOULD remove the notification since the | 563 // Back to the single display. It SHOULD remove the notification since the |
| 574 // information is stale. | 564 // information is stale. |
| 575 UpdateDisplay("400x400"); | 565 UpdateDisplay("400x400"); |
| 576 EXPECT_TRUE(GetDisplayNotificationText().empty()); | 566 EXPECT_TRUE(GetDisplayNotificationText().empty()); |
| 577 } | 567 } |
| 578 | 568 |
| 579 TEST_F(TrayDisplayTest, UpdateAfterSuppressDisplayNotification) { | 569 TEST_F(TrayDisplayTest, UpdateAfterSuppressDisplayNotification) { |
| 580 UpdateDisplay("400x400,200x200"); | 570 UpdateDisplay("400x400,200x200"); |
| 581 | 571 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 620 display::Display::ROTATION_SOURCE_ACCELEROMETER); | 610 display::Display::ROTATION_SOURCE_ACCELEROMETER); |
| 621 EXPECT_FALSE(IsDisplayVisibleInTray()); | 611 EXPECT_FALSE(IsDisplayVisibleInTray()); |
| 622 | 612 |
| 623 // If a non-rotation setting is changed, display regardless of the source of | 613 // If a non-rotation setting is changed, display regardless of the source of |
| 624 // rotation so that the full message is shown. | 614 // rotation so that the full message is shown. |
| 625 UpdateDisplay("400x400@1.5"); | 615 UpdateDisplay("400x400@1.5"); |
| 626 EXPECT_TRUE(IsDisplayVisibleInTray()); | 616 EXPECT_TRUE(IsDisplayVisibleInTray()); |
| 627 } | 617 } |
| 628 | 618 |
| 629 } // namespace ash | 619 } // namespace ash |
| OLD | NEW |