| 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
|
| index fe761f4577b9eb056c48c2ced65c6409d8c3d21e..32c8182dfe5c5388bb2766feaa9143e0188842ca 100644
|
| --- a/ash/system/chromeos/tray_display_unittest.cc
|
| +++ b/ash/system/chromeos/tray_display_unittest.cc
|
| @@ -79,8 +79,9 @@ class TrayDisplayTest : public ash::test::AshTestBase {
|
| void SetUp() override;
|
|
|
| protected:
|
| - SystemTray* tray() { return tray_; }
|
| - TrayDisplay* tray_display() { return tray_display_; }
|
| + SystemTray* GetTray();
|
| + TrayDisplay* GetTrayDisplay();
|
| + void CheckUpdate();
|
|
|
| void CloseNotification();
|
| bool IsDisplayVisibleInTray() const;
|
| @@ -110,9 +111,28 @@ TrayDisplayTest::~TrayDisplayTest() {
|
|
|
| void TrayDisplayTest::SetUp() {
|
| ash::test::AshTestBase::SetUp();
|
| - tray_ = Shell::GetPrimaryRootWindowController()->GetSystemTray();
|
| - tray_display_ = new TrayDisplay(tray_);
|
| - tray_->AddTrayItem(tray_display_);
|
| + // Populate tray_ and tray_display_.
|
| + CheckUpdate();
|
| +}
|
| +
|
| +SystemTray* TrayDisplayTest::GetTray() {
|
| + CheckUpdate();
|
| + return tray_;
|
| +}
|
| +
|
| +TrayDisplay* TrayDisplayTest::GetTrayDisplay() {
|
| + CheckUpdate();
|
| + return tray_display_;
|
| +}
|
| +
|
| +void TrayDisplayTest::CheckUpdate() {
|
| + SystemTray* current =
|
| + Shell::GetPrimaryRootWindowController()->GetSystemTray();
|
| + if (tray_ != current) {
|
| + tray_ = current;
|
| + tray_display_ = new TrayDisplay(tray_);
|
| + tray_->AddTrayItem(tray_display_);
|
| + }
|
| }
|
|
|
| void TrayDisplayTest::CloseNotification() {
|
| @@ -174,11 +194,11 @@ const message_center::Notification* TrayDisplayTest::GetDisplayNotification()
|
|
|
| TEST_F(TrayDisplayTest, NoInternalDisplay) {
|
| UpdateDisplay("400x400");
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_FALSE(IsDisplayVisibleInTray());
|
|
|
| UpdateDisplay("400x400,200x200");
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
| base::string16 expected = l10n_util::GetStringUTF16(
|
| IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL);
|
| @@ -192,7 +212,7 @@ TEST_F(TrayDisplayTest, NoInternalDisplay) {
|
| // mirroring
|
| Shell::GetInstance()->display_manager()->SetSoftwareMirroring(true);
|
| UpdateDisplay("400x400,200x200");
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
| expected = l10n_util::GetStringUTF16(
|
| IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING_NO_INTERNAL);
|
| @@ -207,14 +227,14 @@ TEST_F(TrayDisplayTest, InternalDisplay) {
|
| DisplayManager* display_manager = Shell::GetInstance()->display_manager();
|
| gfx::Display::SetInternalDisplayId(display_manager->first_display_id());
|
|
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + 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());
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
| EXPECT_EQ(expected, GetTrayDisplayText());
|
| EXPECT_EQ(GetTooltipText(expected, GetFirstDisplayName(), "400x400",
|
| @@ -225,7 +245,7 @@ TEST_F(TrayDisplayTest, InternalDisplay) {
|
| // Mirroring
|
| display_manager->SetSoftwareMirroring(true);
|
| UpdateDisplay("400x400,200x200");
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
|
|
| expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING,
|
| @@ -242,7 +262,7 @@ TEST_F(TrayDisplayTest, InternalDisplayResized) {
|
| gfx::Display::SetInternalDisplayId(display_manager->first_display_id());
|
|
|
| // Shows the tray_display even though there's a single-display.
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
| base::string16 internal_info = l10n_util::GetStringFUTF16(
|
| IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY,
|
| @@ -255,7 +275,7 @@ TEST_F(TrayDisplayTest, InternalDisplayResized) {
|
|
|
| // Extended
|
| UpdateDisplay("400x400@1.5,200x200");
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
| base::string16 expected = l10n_util::GetStringFUTF16(
|
| IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED, GetSecondDisplayName());
|
| @@ -268,7 +288,7 @@ TEST_F(TrayDisplayTest, InternalDisplayResized) {
|
| // Mirroring
|
| display_manager->SetSoftwareMirroring(true);
|
| UpdateDisplay("400x400@1.5,200x200");
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
| expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING,
|
| GetMirroringDisplayName());
|
| @@ -282,7 +302,7 @@ TEST_F(TrayDisplayTest, InternalDisplayResized) {
|
| UpdateDisplay("400x400@1.5,200x200");
|
| gfx::Display::SetInternalDisplayId(ScreenUtil::GetSecondaryDisplay().id());
|
| UpdateDisplay("400x400@1.5");
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
| expected = l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_DOCKED);
|
| EXPECT_EQ(expected, GetTrayDisplayText());
|
| @@ -291,6 +311,16 @@ TEST_F(TrayDisplayTest, InternalDisplayResized) {
|
| expected, GetFirstDisplayName(), "600x600", base::string16(), ""),
|
| GetTrayDisplayTooltipText());
|
| CheckAccessibleName();
|
| +
|
| + // Unified mode
|
| + display_manager->SetDefaultMultiDisplayMode(DisplayManager::UNIFIED);
|
| + display_manager->SetMultiDisplayMode(DisplayManager::UNIFIED);
|
| + 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) {
|
| @@ -299,14 +329,14 @@ TEST_F(TrayDisplayTest, ExternalDisplayResized) {
|
| gfx::Display::SetInternalDisplayId(display_manager->first_display_id());
|
|
|
| // Shows the tray_display even though there's a single-display.
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_FALSE(IsDisplayVisibleInTray());
|
|
|
| // Extended
|
| UpdateDisplay("400x400,200x200@1.5");
|
| const gfx::Display& secondary_display = ScreenUtil::GetSecondaryDisplay();
|
|
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
| base::string16 expected = l10n_util::GetStringFUTF16(
|
| IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED,
|
| @@ -323,7 +353,7 @@ TEST_F(TrayDisplayTest, ExternalDisplayResized) {
|
| // Mirroring
|
| display_manager->SetSoftwareMirroring(true);
|
| UpdateDisplay("400x400,200x200@1.5");
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
| expected = l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING,
|
| GetMirroringDisplayName());
|
| @@ -338,7 +368,7 @@ TEST_F(TrayDisplayTest, OverscanDisplay) {
|
| DisplayManager* display_manager = Shell::GetInstance()->display_manager();
|
| gfx::Display::SetInternalDisplayId(display_manager->first_display_id());
|
|
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
|
|
| // /o creates the default overscan, and if overscan is set, the annotation
|
| @@ -374,11 +404,11 @@ TEST_F(TrayDisplayTest, OverscanDisplay) {
|
| }
|
|
|
| TEST_F(TrayDisplayTest, UpdateDuringDisplayConfigurationChange) {
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| EXPECT_FALSE(IsDisplayVisibleInTray());
|
|
|
| UpdateDisplay("400x400@1.5");
|
| - EXPECT_TRUE(tray()->HasSystemBubble());
|
| + EXPECT_TRUE(GetTray()->HasSystemBubble());
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
| base::string16 internal_info = l10n_util::GetStringFUTF16(
|
| IDS_ASH_STATUS_TRAY_DISPLAY_SINGLE_DISPLAY,
|
| @@ -390,7 +420,7 @@ TEST_F(TrayDisplayTest, UpdateDuringDisplayConfigurationChange) {
|
| CheckAccessibleName();
|
|
|
| UpdateDisplay("400x400,200x200");
|
| - EXPECT_TRUE(tray()->HasSystemBubble());
|
| + EXPECT_TRUE(GetTray()->HasSystemBubble());
|
| EXPECT_TRUE(IsDisplayVisibleInTray());
|
| base::string16 expected = l10n_util::GetStringUTF16(
|
| IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL);
|
| @@ -402,11 +432,11 @@ TEST_F(TrayDisplayTest, UpdateDuringDisplayConfigurationChange) {
|
| CheckAccessibleName();
|
|
|
| UpdateDisplay("400x400@1.5");
|
| - tray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
| + GetTray()->ShowDefaultView(BUBBLE_USE_EXISTING);
|
|
|
| // Back to the default state, the display tray item should disappear.
|
| UpdateDisplay("400x400");
|
| - EXPECT_TRUE(tray()->HasSystemBubble());
|
| + EXPECT_TRUE(GetTray()->HasSystemBubble());
|
| EXPECT_FALSE(IsDisplayVisibleInTray());
|
| }
|
|
|
| @@ -534,7 +564,7 @@ TEST_F(TrayDisplayTest, DisplayConfigurationChangedTwice) {
|
| // 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.
|
| - tray_display()->OnDisplayConfigurationChanged();
|
| + GetTrayDisplay()->OnDisplayConfigurationChanged();
|
| EXPECT_EQ(
|
| l10n_util::GetStringUTF16(
|
| IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL),
|
|
|