Index: ash/system/chromeos/tray_display_unittest.cc |
diff --git a/ash/system/chromeos/tray_display_unittest.cc b/ash/system/chromeos/tray_display_unittest.cc |
deleted file mode 100644 |
index 1b6a69a22241444fa3af175c7dfcaa38070d7769..0000000000000000000000000000000000000000 |
--- a/ash/system/chromeos/tray_display_unittest.cc |
+++ /dev/null |
@@ -1,617 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "ash/system/chromeos/tray_display.h" |
- |
-#include "ash/common/system/chromeos/devicetype_utils.h" |
-#include "ash/common/system/tray/system_tray.h" |
-#include "ash/display/display_manager.h" |
-#include "ash/screen_util.h" |
-#include "ash/shell.h" |
-#include "ash/test/ash_test_base.h" |
-#include "ash/test/display_manager_test_api.h" |
-#include "ash/test/test_system_tray_delegate.h" |
-#include "base/strings/string16.h" |
-#include "base/strings/string_util.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "grit/ash_strings.h" |
-#include "ui/accessibility/ax_view_state.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/display/display.h" |
-#include "ui/message_center/message_center.h" |
-#include "ui/message_center/notification.h" |
-#include "ui/message_center/notification_list.h" |
-#include "ui/views/controls/label.h" |
- |
-namespace ash { |
- |
-base::string16 GetTooltipText(const base::string16& headline, |
- const base::string16& name1, |
- const std::string& data1, |
- const base::string16& name2, |
- const std::string& data2) { |
- std::vector<base::string16> lines; |
- lines.push_back(headline); |
- if (data1.empty()) { |
- lines.push_back(name1); |
- } else { |
- lines.push_back( |
- l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, |
- name1, base::UTF8ToUTF16(data1))); |
- } |
- if (!name2.empty()) { |
- lines.push_back( |
- l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, |
- name2, base::UTF8ToUTF16(data2))); |
- } |
- return base::JoinString(lines, base::ASCIIToUTF16("\n")); |
-} |
- |
-base::string16 GetMirroredTooltipText(const base::string16& headline, |
- const base::string16& name, |
- const std::string& data) { |
- return GetTooltipText(headline, name, data, base::string16(), ""); |
-} |
- |
-base::string16 GetFirstDisplayName() { |
- DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
- return base::UTF8ToUTF16(display_manager->GetDisplayNameForId( |
- display_manager->first_display_id())); |
-} |
- |
-base::string16 GetSecondDisplayName() { |
- return base::UTF8ToUTF16( |
- Shell::GetInstance()->display_manager()->GetDisplayNameForId( |
- ScreenUtil::GetSecondaryDisplay().id())); |
-} |
- |
-base::string16 GetMirroringDisplayName() { |
- DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
- return base::UTF8ToUTF16(display_manager->GetDisplayNameForId( |
- display_manager->mirroring_display_id())); |
-} |
- |
-class TrayDisplayTest : public ash::test::AshTestBase { |
- public: |
- TrayDisplayTest(); |
- ~TrayDisplayTest() override; |
- |
- void SetUp() override; |
- |
- protected: |
- SystemTray* GetTray(); |
- TrayDisplay* GetTrayDisplay(); |
- void CheckUpdate(); |
- |
- void CloseNotification(); |
- bool IsDisplayVisibleInTray() const; |
- base::string16 GetTrayDisplayText() const; |
- void CheckAccessibleName() const; |
- base::string16 GetTrayDisplayTooltipText() const; |
- base::string16 GetDisplayNotificationText() const; |
- base::string16 GetDisplayNotificationAdditionalText() const; |
- |
- private: |
- const message_center::Notification* GetDisplayNotification() const; |
- |
- // Weak reference, owned by Shell. |
- SystemTray* tray_; |
- |
- // Weak reference, owned by |tray_|. |
- TrayDisplay* tray_display_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TrayDisplayTest); |
-}; |
- |
-TrayDisplayTest::TrayDisplayTest() : tray_(NULL), tray_display_(NULL) {} |
- |
-TrayDisplayTest::~TrayDisplayTest() {} |
- |
-void TrayDisplayTest::SetUp() { |
- ash::test::AshTestBase::SetUp(); |
- // Populate tray_ and tray_display_. |
- CheckUpdate(); |
-} |
- |
-SystemTray* TrayDisplayTest::GetTray() { |
- CheckUpdate(); |
- return tray_; |
-} |
- |
-TrayDisplay* TrayDisplayTest::GetTrayDisplay() { |
- CheckUpdate(); |
- return tray_display_; |
-} |
- |
-void TrayDisplayTest::CheckUpdate() { |
- SystemTray* current = GetPrimarySystemTray(); |
- if (tray_ != current) { |
- tray_ = current; |
- tray_display_ = new TrayDisplay(tray_); |
- tray_->AddTrayItem(tray_display_); |
- } |
-} |
- |
-void TrayDisplayTest::CloseNotification() { |
- message_center::MessageCenter::Get()->RemoveNotification( |
- TrayDisplay::kNotificationId, false); |
- RunAllPendingInMessageLoop(); |
-} |
- |
-bool TrayDisplayTest::IsDisplayVisibleInTray() const { |
- return tray_->HasSystemBubble() && tray_display_->default_view() && |
- tray_display_->default_view()->visible(); |
-} |
- |
-base::string16 TrayDisplayTest::GetTrayDisplayText() const { |
- return tray_display_->GetDefaultViewMessage(); |
-} |
- |
-void TrayDisplayTest::CheckAccessibleName() const { |
- ui::AXViewState state; |
- if (tray_display_->GetAccessibleStateForTesting(&state)) { |
- base::string16 expected = tray_display_->GetDefaultViewMessage(); |
- EXPECT_EQ(expected, state.name); |
- } |
-} |
- |
-base::string16 TrayDisplayTest::GetTrayDisplayTooltipText() const { |
- if (!tray_display_->default_view()) |
- return base::string16(); |
- |
- base::string16 tooltip; |
- if (!tray_display_->default_view()->GetTooltipText(gfx::Point(), &tooltip)) |
- return base::string16(); |
- return tooltip; |
-} |
- |
-base::string16 TrayDisplayTest::GetDisplayNotificationText() const { |
- const message_center::Notification* notification = GetDisplayNotification(); |
- return notification ? notification->title() : base::string16(); |
-} |
- |
-base::string16 TrayDisplayTest::GetDisplayNotificationAdditionalText() const { |
- const message_center::Notification* notification = GetDisplayNotification(); |
- return notification ? notification->message() : base::string16(); |
-} |
- |
-const message_center::Notification* TrayDisplayTest::GetDisplayNotification() |
- const { |
- const message_center::NotificationList::Notifications notifications = |
- message_center::MessageCenter::Get()->GetVisibleNotifications(); |
- for (message_center::NotificationList::Notifications::const_iterator iter = |
- notifications.begin(); |
- iter != notifications.end(); ++iter) { |
- if ((*iter)->id() == TrayDisplay::kNotificationId) |
- return *iter; |
- } |
- |
- return NULL; |
-} |
- |
-TEST_F(TrayDisplayTest, NoInternalDisplay) { |
- UpdateDisplay("400x400"); |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_FALSE(IsDisplayVisibleInTray()); |
- |
- UpdateDisplay("400x400,200x200"); |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- base::string16 expected = l10n_util::GetStringUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL); |
- base::string16 first_name = GetFirstDisplayName(); |
- EXPECT_EQ(expected, GetTrayDisplayText()); |
- EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", |
- GetSecondDisplayName(), "200x200"), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
- |
- // mirroring |
- Shell::GetInstance()->display_manager()->SetSoftwareMirroring(true); |
- UpdateDisplay("400x400,200x200"); |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- expected = l10n_util::GetStringUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING_NO_INTERNAL); |
- EXPECT_EQ(expected, GetTrayDisplayText()); |
- EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "400x400"), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
-} |
- |
-TEST_F(TrayDisplayTest, InternalDisplay) { |
- UpdateDisplay("400x400"); |
- DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
- display::Display::SetInternalDisplayId(display_manager->first_display_id()); |
- |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_FALSE(IsDisplayVisibleInTray()); |
- |
- // Extended |
- UpdateDisplay("400x400,200x200"); |
- base::string16 expected = l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, GetSecondDisplayName()); |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- EXPECT_EQ(expected, GetTrayDisplayText()); |
- EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", |
- GetSecondDisplayName(), "200x200"), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
- |
- // Mirroring |
- display_manager->SetSoftwareMirroring(true); |
- UpdateDisplay("400x400,200x200"); |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- |
- expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, |
- GetMirroringDisplayName()); |
- EXPECT_EQ(expected, GetTrayDisplayText()); |
- EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "400x400"), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
-} |
- |
-TEST_F(TrayDisplayTest, InternalDisplayResized) { |
- UpdateDisplay("400x400@1.5"); |
- DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
- display::Display::SetInternalDisplayId(display_manager->first_display_id()); |
- |
- // Shows the tray_display even though there's a single-display. |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- base::string16 internal_info = l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, GetFirstDisplayName(), |
- base::UTF8ToUTF16("600x600")); |
- EXPECT_EQ(internal_info, GetTrayDisplayText()); |
- EXPECT_EQ(GetTooltipText(base::string16(), GetFirstDisplayName(), "600x600", |
- base::string16(), std::string()), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
- |
- // Extended |
- UpdateDisplay("400x400@1.5,200x200"); |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- base::string16 expected = l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, GetSecondDisplayName()); |
- EXPECT_EQ(expected, GetTrayDisplayText()); |
- EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "600x600", |
- GetSecondDisplayName(), "200x200"), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
- |
- // Mirroring |
- display_manager->SetSoftwareMirroring(true); |
- UpdateDisplay("400x400@1.5,200x200"); |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, |
- GetMirroringDisplayName()); |
- EXPECT_EQ(expected, GetTrayDisplayText()); |
- EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "600x600"), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
- |
- // Closed lid mode. |
- display_manager->SetSoftwareMirroring(false); |
- UpdateDisplay("400x400@1.5,200x200"); |
- display::Display::SetInternalDisplayId( |
- ScreenUtil::GetSecondaryDisplay().id()); |
- UpdateDisplay("400x400@1.5"); |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- expected = l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED); |
- EXPECT_EQ(expected, GetTrayDisplayText()); |
- EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "600x600", |
- base::string16(), ""), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
- |
- // Unified mode |
- display_manager->SetUnifiedDesktopEnabled(true); |
- UpdateDisplay("300x200,400x500"); |
- // Update the cache variables as the primary root window changed. |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- expected = l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_UNIFIED); |
- EXPECT_EQ(expected, GetTrayDisplayText()); |
-} |
- |
-TEST_F(TrayDisplayTest, ExternalDisplayResized) { |
- UpdateDisplay("400x400"); |
- DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
- display::Display::SetInternalDisplayId(display_manager->first_display_id()); |
- |
- // Shows the tray_display even though there's a single-display. |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_FALSE(IsDisplayVisibleInTray()); |
- |
- // Extended |
- UpdateDisplay("400x400,200x200@1.5"); |
- const display::Display& secondary_display = ScreenUtil::GetSecondaryDisplay(); |
- |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- base::string16 expected = l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
- l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, GetSecondDisplayName(), |
- base::UTF8ToUTF16(secondary_display.size().ToString()))); |
- EXPECT_EQ(expected, GetTrayDisplayText()); |
- EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", |
- GetSecondDisplayName(), "300x300"), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
- |
- // Mirroring |
- display_manager->SetSoftwareMirroring(true); |
- UpdateDisplay("400x400,200x200@1.5"); |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, |
- GetMirroringDisplayName()); |
- EXPECT_EQ(expected, GetTrayDisplayText()); |
- EXPECT_EQ(GetMirroredTooltipText(expected, GetFirstDisplayName(), "400x400"), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
-} |
- |
-TEST_F(TrayDisplayTest, OverscanDisplay) { |
- UpdateDisplay("400x400,300x300/o"); |
- DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
- display::Display::SetInternalDisplayId(display_manager->first_display_id()); |
- |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- |
- // /o creates the default overscan, and if overscan is set, the annotation |
- // should be the size. |
- base::string16 overscan = l10n_util::GetStringUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION_OVERSCAN); |
- base::string16 headline = l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
- l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, |
- GetSecondDisplayName(), |
- base::UTF8ToUTF16("286x286"))); |
- std::string second_data = |
- l10n_util::GetStringFUTF8(IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION, |
- base::UTF8ToUTF16("286x286"), overscan); |
- EXPECT_EQ(GetTooltipText(headline, GetFirstDisplayName(), "400x400", |
- GetSecondDisplayName(), second_data), |
- GetTrayDisplayTooltipText()); |
- |
- // reset the overscan. |
- display_manager->SetOverscanInsets(ScreenUtil::GetSecondaryDisplay().id(), |
- gfx::Insets()); |
- headline = l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
- l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATED_NAME, |
- GetSecondDisplayName(), overscan)); |
- second_data = |
- l10n_util::GetStringFUTF8(IDS_ASH_STATUS_TRAY_DISPLAY_ANNOTATION, |
- base::UTF8ToUTF16("300x300"), overscan); |
- EXPECT_EQ(GetTooltipText(headline, GetFirstDisplayName(), "400x400", |
- GetSecondDisplayName(), second_data), |
- GetTrayDisplayTooltipText()); |
-} |
- |
-TEST_F(TrayDisplayTest, UpdateDuringDisplayConfigurationChange) { |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_FALSE(IsDisplayVisibleInTray()); |
- |
- UpdateDisplay("400x400@1.5"); |
- EXPECT_TRUE(GetTray()->HasSystemBubble()); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- base::string16 internal_info = l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY, GetFirstDisplayName(), |
- base::UTF8ToUTF16("600x600")); |
- EXPECT_EQ(internal_info, GetTrayDisplayText()); |
- EXPECT_EQ(GetTooltipText(base::string16(), GetFirstDisplayName(), "600x600", |
- base::string16(), std::string()), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
- |
- UpdateDisplay("400x400,200x200"); |
- EXPECT_TRUE(GetTray()->HasSystemBubble()); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- base::string16 expected = l10n_util::GetStringUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL); |
- base::string16 first_name = GetFirstDisplayName(); |
- EXPECT_EQ(expected, GetTrayDisplayText()); |
- EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400", |
- GetSecondDisplayName(), "200x200"), |
- GetTrayDisplayTooltipText()); |
- CheckAccessibleName(); |
- |
- UpdateDisplay("400x400@1.5"); |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- |
- // Back to the default state, the display tray item should disappear. |
- UpdateDisplay("400x400"); |
- EXPECT_TRUE(GetTray()->HasSystemBubble()); |
- EXPECT_FALSE(IsDisplayVisibleInTray()); |
-} |
- |
-TEST_F(TrayDisplayTest, DisplayNotifications) { |
- test::TestSystemTrayDelegate* tray_delegate = GetSystemTrayDelegate(); |
- tray_delegate->set_should_show_display_notification(true); |
- |
- UpdateDisplay("400x400"); |
- DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
- display::Display::SetInternalDisplayId(display_manager->first_display_id()); |
- EXPECT_TRUE(GetDisplayNotificationText().empty()); |
- |
- // rotation. |
- UpdateDisplay("400x400/r"); |
- EXPECT_EQ(l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_ROTATED, GetFirstDisplayName(), |
- l10n_util::GetStringUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_ORIENTATION_90)), |
- GetDisplayNotificationAdditionalText()); |
- EXPECT_TRUE(GetDisplayNotificationText().empty()); |
- |
- CloseNotification(); |
- UpdateDisplay("400x400"); |
- EXPECT_EQ(l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_ROTATED, GetFirstDisplayName(), |
- l10n_util::GetStringUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_STANDARD_ORIENTATION)), |
- GetDisplayNotificationAdditionalText()); |
- EXPECT_TRUE(GetDisplayNotificationText().empty()); |
- |
- // UI-scale |
- CloseNotification(); |
- UpdateDisplay("400x400@1.5"); |
- EXPECT_EQ(l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_RESOLUTION_CHANGED, |
- GetFirstDisplayName(), base::UTF8ToUTF16("600x600")), |
- GetDisplayNotificationAdditionalText()); |
- EXPECT_TRUE(GetDisplayNotificationText().empty()); |
- |
- // UI-scale to 1.0 |
- CloseNotification(); |
- UpdateDisplay("400x400"); |
- EXPECT_EQ(l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_RESOLUTION_CHANGED, |
- GetFirstDisplayName(), base::UTF8ToUTF16("400x400")), |
- GetDisplayNotificationAdditionalText()); |
- EXPECT_TRUE(GetDisplayNotificationText().empty()); |
- |
- // No-update |
- CloseNotification(); |
- UpdateDisplay("400x400"); |
- EXPECT_TRUE(GetDisplayNotificationText().empty()); |
- EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); |
- |
- // Extended. |
- CloseNotification(); |
- UpdateDisplay("400x400,200x200"); |
- EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
- GetSecondDisplayName()), |
- GetDisplayNotificationText()); |
- EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); |
- |
- // Mirroring. |
- CloseNotification(); |
- display_manager->SetSoftwareMirroring(true); |
- UpdateDisplay("400x400,200x200"); |
- EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING, |
- GetMirroringDisplayName()), |
- GetDisplayNotificationText()); |
- EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); |
- |
- // Back to extended. |
- CloseNotification(); |
- display_manager->SetSoftwareMirroring(false); |
- UpdateDisplay("400x400,200x200"); |
- EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, |
- GetSecondDisplayName()), |
- GetDisplayNotificationText()); |
- EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty()); |
- |
- // Resize the first display. |
- UpdateDisplay("400x400@1.5,200x200"); |
- EXPECT_EQ(l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_RESOLUTION_CHANGED, |
- GetFirstDisplayName(), base::UTF8ToUTF16("600x600")), |
- GetDisplayNotificationAdditionalText()); |
- EXPECT_TRUE(GetDisplayNotificationText().empty()); |
- |
- // Rotate the second. |
- UpdateDisplay("400x400@1.5,200x200/r"); |
- EXPECT_EQ(l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_ROTATED, GetSecondDisplayName(), |
- l10n_util::GetStringUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_ORIENTATION_90)), |
- GetDisplayNotificationAdditionalText()); |
- EXPECT_TRUE(GetDisplayNotificationText().empty()); |
- |
- // Enters closed lid mode. |
- UpdateDisplay("400x400@1.5,200x200"); |
- display::Display::SetInternalDisplayId( |
- ScreenUtil::GetSecondaryDisplay().id()); |
- UpdateDisplay("400x400@1.5"); |
- EXPECT_EQ(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED), |
- GetDisplayNotificationText()); |
- EXPECT_EQ(ash::SubstituteChromeOSDeviceType( |
- IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED_DESCRIPTION), |
- GetDisplayNotificationAdditionalText()); |
-} |
- |
-TEST_F(TrayDisplayTest, DisplayConfigurationChangedTwice) { |
- test::TestSystemTrayDelegate* tray_delegate = GetSystemTrayDelegate(); |
- tray_delegate->set_should_show_display_notification(true); |
- |
- UpdateDisplay("400x400,200x200"); |
- EXPECT_EQ(l10n_util::GetStringUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL), |
- GetDisplayNotificationText()); |
- |
- // OnDisplayConfigurationChanged() may be called more than once for a single |
- // update display in case of primary is swapped or recovered from dock mode. |
- // Should not remove the notification in such case. |
- GetTrayDisplay()->OnDisplayConfigurationChanged(); |
- EXPECT_EQ(l10n_util::GetStringUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL), |
- GetDisplayNotificationText()); |
- |
- // Back to the single display. It SHOULD remove the notification since the |
- // information is stale. |
- UpdateDisplay("400x400"); |
- EXPECT_TRUE(GetDisplayNotificationText().empty()); |
-} |
- |
-TEST_F(TrayDisplayTest, UpdateAfterSuppressDisplayNotification) { |
- UpdateDisplay("400x400,200x200"); |
- |
- test::TestSystemTrayDelegate* tray_delegate = GetSystemTrayDelegate(); |
- tray_delegate->set_should_show_display_notification(true); |
- |
- // rotate the second. |
- UpdateDisplay("400x400,200x200/r"); |
- EXPECT_EQ(l10n_util::GetStringFUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_ROTATED, GetSecondDisplayName(), |
- l10n_util::GetStringUTF16( |
- IDS_ASH_STATUS_TRAY_DISPLAY_ORIENTATION_90)), |
- GetDisplayNotificationAdditionalText()); |
-} |
- |
-// Tests that when the only change is rotation, that it is only displayed when |
-// caused by user changes, and not by accelerometers. |
-TEST_F(TrayDisplayTest, RotationOnInternalDisplay) { |
- UpdateDisplay("400x400"); |
- DisplayManager* display_manager = Shell::GetInstance()->display_manager(); |
- const int64_t display_id = display_manager->first_display_id(); |
- display::Display::SetInternalDisplayId(display_id); |
- |
- GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING); |
- EXPECT_FALSE(IsDisplayVisibleInTray()); |
- |
- // Accelerometer change does not display. |
- display_manager->SetDisplayRotation( |
- display_id, display::Display::ROTATE_90, |
- display::Display::ROTATION_SOURCE_ACCELEROMETER); |
- EXPECT_FALSE(IsDisplayVisibleInTray()); |
- |
- // User change does. |
- display_manager->SetDisplayRotation(display_id, display::Display::ROTATE_180, |
- display::Display::ROTATION_SOURCE_USER); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
- |
- // If a user setting matches the accelerometer, do not display if caused by |
- // the accelerometer. |
- display_manager->SetDisplayRotation( |
- display_id, display::Display::ROTATE_180, |
- display::Display::ROTATION_SOURCE_ACCELEROMETER); |
- EXPECT_FALSE(IsDisplayVisibleInTray()); |
- |
- // If a non-rotation setting is changed, display regardless of the source of |
- // rotation so that the full message is shown. |
- UpdateDisplay("400x400@1.5"); |
- EXPECT_TRUE(IsDisplayVisibleInTray()); |
-} |
- |
-} // namespace ash |