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

Unified Diff: ash/system/chromeos/screen_layout_observer_unittest.cc

Issue 2732813002: chromeos: Move files in //ash/common to //ash, part 1 (Closed)
Patch Set: rebase Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/system/chromeos/screen_layout_observer.cc ('k') | ash/system/date/clock_observer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/chromeos/screen_layout_observer_unittest.cc
diff --git a/ash/system/chromeos/screen_layout_observer_unittest.cc b/ash/system/chromeos/screen_layout_observer_unittest.cc
deleted file mode 100644
index 193b254cf5e10d2fffd00509945dab3cb06b9a12..0000000000000000000000000000000000000000
--- a/ash/system/chromeos/screen_layout_observer_unittest.cc
+++ /dev/null
@@ -1,443 +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/screen_layout_observer.h"
-
-#include "ash/common/system/chromeos/devicetype_utils.h"
-#include "ash/common/system/tray/system_tray.h"
-#include "ash/common/test/test_system_tray_delegate.h"
-#include "ash/shell.h"
-#include "ash/strings/grit/ash_strings.h"
-#include "ash/test/ash_test_base.h"
-#include "base/strings/string16.h"
-#include "base/strings/string_util.h"
-#include "base/strings/utf_string_conversions.h"
-#include "ui/accessibility/ax_node_data.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/display/display.h"
-#include "ui/display/display_layout_builder.h"
-#include "ui/display/manager/display_manager.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 {
-
-class ScreenLayoutObserverTest : public test::AshTestBase {
- public:
- ScreenLayoutObserverTest();
- ~ScreenLayoutObserverTest() override;
-
- protected:
- ScreenLayoutObserver* GetScreenLayoutObserver();
- void CheckUpdate();
-
- void CloseNotification();
- base::string16 GetDisplayNotificationText() const;
- base::string16 GetDisplayNotificationAdditionalText() const;
-
- base::string16 GetFirstDisplayName();
-
- base::string16 GetSecondDisplayName();
-
- base::string16 GetMirroringDisplayName();
-
- private:
- const message_center::Notification* GetDisplayNotification() const;
-
- DISALLOW_COPY_AND_ASSIGN(ScreenLayoutObserverTest);
-};
-
-ScreenLayoutObserverTest::ScreenLayoutObserverTest() {}
-
-ScreenLayoutObserverTest::~ScreenLayoutObserverTest() {}
-
-ScreenLayoutObserver* ScreenLayoutObserverTest::GetScreenLayoutObserver() {
- return Shell::GetInstance()->screen_layout_observer();
-}
-
-void ScreenLayoutObserverTest::CloseNotification() {
- message_center::MessageCenter::Get()->RemoveNotification(
- ScreenLayoutObserver::kNotificationId, false);
- RunAllPendingInMessageLoop();
-}
-
-base::string16 ScreenLayoutObserverTest::GetDisplayNotificationText() const {
- const message_center::Notification* notification = GetDisplayNotification();
- return notification ? notification->title() : base::string16();
-}
-
-base::string16 ScreenLayoutObserverTest::GetDisplayNotificationAdditionalText()
- const {
- const message_center::Notification* notification = GetDisplayNotification();
- return notification ? notification->message() : base::string16();
-}
-
-base::string16 ScreenLayoutObserverTest::GetFirstDisplayName() {
- return base::UTF8ToUTF16(display_manager()->GetDisplayNameForId(
- display_manager()->first_display_id()));
-}
-
-base::string16 ScreenLayoutObserverTest::GetSecondDisplayName() {
- return base::UTF8ToUTF16(display_manager()->GetDisplayNameForId(
- display_manager()->GetSecondaryDisplay().id()));
-}
-
-base::string16 ScreenLayoutObserverTest::GetMirroringDisplayName() {
- return base::UTF8ToUTF16(display_manager()->GetDisplayNameForId(
- display_manager()->mirroring_display_id()));
-}
-
-const message_center::Notification*
-ScreenLayoutObserverTest::GetDisplayNotification() const {
- const message_center::NotificationList::Notifications notifications =
- message_center::MessageCenter::Get()->GetVisibleNotifications();
- for (const auto* notification : notifications) {
- if (notification->id() == ScreenLayoutObserver::kNotificationId)
- return notification;
- }
-
- return nullptr;
-}
-
-TEST_F(ScreenLayoutObserverTest, DisplayNotifications) {
- Shell::GetInstance()
- ->screen_layout_observer()
- ->set_show_notifications_for_testing(true);
-
- UpdateDisplay("400x400");
- 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(
- display_manager()->GetSecondaryDisplay().id());
- UpdateDisplay("400x400@1.5");
- EXPECT_TRUE(GetDisplayNotificationText().empty());
-}
-
-// Verify that notification shows up when display is switched from dock mode to
-// extend mode.
-TEST_F(ScreenLayoutObserverTest, DisplayConfigurationChangedTwice) {
- Shell::GetInstance()
- ->screen_layout_observer()
- ->set_show_notifications_for_testing(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.
- GetScreenLayoutObserver()->OnDisplayConfigurationChanged();
- EXPECT_EQ(l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL),
- GetDisplayNotificationText());
-
- // Back to the single display. It should show that a display was removed.
- UpdateDisplay("400x400");
- EXPECT_TRUE(base::StartsWith(
- GetDisplayNotificationText(),
- l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_REMOVED,
- base::UTF8ToUTF16("")),
- base::CompareCase::SENSITIVE));
-}
-
-// Verify the notification message content when one of the 2 displays that
-// connected to the device is rotated.
-TEST_F(ScreenLayoutObserverTest, UpdateAfterSuppressDisplayNotification) {
- UpdateDisplay("400x400,200x200");
-
- Shell::GetInstance()
- ->screen_layout_observer()
- ->set_show_notifications_for_testing(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());
-}
-
-// Verify that no notification is shown when overscan of a screen is changed.
-TEST_F(ScreenLayoutObserverTest, OverscanDisplay) {
- UpdateDisplay("400x400, 300x300");
- Shell::GetInstance()
- ->screen_layout_observer()
- ->set_show_notifications_for_testing(true);
- display::Display::SetInternalDisplayId(display_manager()->first_display_id());
-
- // /o creates the default overscan.
- UpdateDisplay("400x400, 300x300/o");
- EXPECT_TRUE(GetDisplayNotificationText().empty());
- EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty());
-
- // Reset the overscan.
- Shell::GetInstance()->display_manager()->SetOverscanInsets(
- display_manager()->GetSecondaryDisplay().id(), gfx::Insets());
- EXPECT_TRUE(GetDisplayNotificationText().empty());
- EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty());
-}
-
-// Tests that exiting mirror mode by closing the lid shows the correct "exiting
-// mirror mode" message.
-TEST_F(ScreenLayoutObserverTest, ExitMirrorModeBecauseOfDockedModeMessage) {
- Shell::GetInstance()
- ->screen_layout_observer()
- ->set_show_notifications_for_testing(true);
- UpdateDisplay("400x400,200x200");
- display::Display::SetInternalDisplayId(
- display_manager()->GetSecondaryDisplay().id());
-
- // Mirroring.
- display_manager()->SetSoftwareMirroring(true);
- UpdateDisplay("400x400,200x200");
- EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING,
- GetMirroringDisplayName()),
- GetDisplayNotificationText());
-
- // Docked.
- CloseNotification();
- display_manager()->SetSoftwareMirroring(false);
- display::Display::SetInternalDisplayId(display_manager()->first_display_id());
- UpdateDisplay("200x200");
- EXPECT_EQ(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRROR_EXIT),
- GetDisplayNotificationText());
-}
-
-// Tests that exiting mirror mode because of adding a third display shows the
-// correct "3+ displays mirror mode is not supported" message.
-TEST_F(ScreenLayoutObserverTest, ExitMirrorModeBecauseOfThirdDisplayMessage) {
- Shell::GetInstance()
- ->screen_layout_observer()
- ->set_show_notifications_for_testing(true);
- UpdateDisplay("400x400,200x200");
- display::Display::SetInternalDisplayId(
- display_manager()->GetSecondaryDisplay().id());
-
- // Mirroring.
- display_manager()->SetSoftwareMirroring(true);
- UpdateDisplay("400x400,200x200");
- EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING,
- GetMirroringDisplayName()),
- GetDisplayNotificationText());
-
- // Adding a third display. Mirror mode for 3+ displays is not supported.
- CloseNotification();
- display_manager()->SetSoftwareMirroring(false);
- UpdateDisplay("400x400,200x200,100x100");
- EXPECT_EQ(l10n_util::GetStringUTF16(IDS_ASH_DISPLAY_MIRRORING_NOT_SUPPORTED),
- GetDisplayNotificationText());
-}
-
-// Special case: tests that exiting mirror mode by removing a display shows the
-// correct message.
-TEST_F(ScreenLayoutObserverTest,
- ExitMirrorModeNoInternalDisplayBecauseOfDisplayRemovedMessage) {
- Shell::GetInstance()
- ->screen_layout_observer()
- ->set_show_notifications_for_testing(true);
- UpdateDisplay("400x400,200x200");
- display::Display::SetInternalDisplayId(
- display_manager()->GetSecondaryDisplay().id());
-
- // Mirroring.
- display_manager()->SetSoftwareMirroring(true);
- UpdateDisplay("400x400,200x200");
- EXPECT_EQ(l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRRORING,
- GetMirroringDisplayName()),
- GetDisplayNotificationText());
-
- // Removing one of the displays. We show that we exited mirror mode.
- CloseNotification();
- display_manager()->SetSoftwareMirroring(false);
- UpdateDisplay("400x400");
- EXPECT_EQ(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_MIRROR_EXIT),
- GetDisplayNotificationText());
-}
-
-// Tests notification messages shown when adding and removing displays in
-// extended mode.
-TEST_F(ScreenLayoutObserverTest, AddingRemovingDisplayExtendedModeMessage) {
- Shell::GetInstance()
- ->screen_layout_observer()
- ->set_show_notifications_for_testing(true);
- UpdateDisplay("400x400");
- EXPECT_TRUE(GetDisplayNotificationText().empty());
-
- // Adding a display in extended mode.
- UpdateDisplay("400x400,200x200");
- EXPECT_EQ(l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL),
- GetDisplayNotificationText());
-
- // Removing a display.
- CloseNotification();
- UpdateDisplay("400x400");
- EXPECT_TRUE(base::StartsWith(
- GetDisplayNotificationText(),
- l10n_util::GetStringFUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_REMOVED,
- base::UTF8ToUTF16("")),
- base::CompareCase::SENSITIVE));
-}
-
-// Tests notification messages shown when entering and exiting unified desktop
-// mode.
-TEST_F(ScreenLayoutObserverTest, EnteringExitingUnifiedModeMessage) {
- Shell::GetInstance()
- ->screen_layout_observer()
- ->set_show_notifications_for_testing(true);
- UpdateDisplay("400x400");
- EXPECT_TRUE(GetDisplayNotificationText().empty());
-
- // Adding a display in extended mode.
- UpdateDisplay("400x400,200x200");
- EXPECT_EQ(l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL),
- GetDisplayNotificationText());
-
- // Enter unified mode.
- display_manager()->SetUnifiedDesktopEnabled(true);
- EXPECT_EQ(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_UNIFIED),
- GetDisplayNotificationText());
-
- // Exit unified mode.
- display_manager()->SetUnifiedDesktopEnabled(false);
- EXPECT_EQ(
- l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_UNIFIED_EXITING),
- GetDisplayNotificationText());
-
- // Enter unified mode again and exit via closing the lid. The message "Exiting
- // unified mode" should be shown.
- display_manager()->SetUnifiedDesktopEnabled(true);
- EXPECT_EQ(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_UNIFIED),
- GetDisplayNotificationText());
-
- // Close the lid.
- display::Display::SetInternalDisplayId(display_manager()->first_display_id());
- UpdateDisplay("200x200");
- display_manager()->SetUnifiedDesktopEnabled(false);
- EXPECT_EQ(
- l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_DISPLAY_UNIFIED_EXITING),
- GetDisplayNotificationText());
-}
-
-// Special case: Tests notification messages shown when entering docked mode
-// by closing the lid and the internal display is the secondary display.
-TEST_F(ScreenLayoutObserverTest, DockedModeWithExternalPrimaryDisplayMessage) {
- Shell::GetInstance()
- ->screen_layout_observer()
- ->set_show_notifications_for_testing(true);
- UpdateDisplay("400x400,200x200");
- EXPECT_EQ(l10n_util::GetStringUTF16(
- IDS_ASH_STATUS_TRAY_DISPLAY_EXTENDED_NO_INTERNAL),
- GetDisplayNotificationText());
- CloseNotification();
-
- const int64_t primary_id = display_manager()->GetDisplayAt(0).id();
- const int64_t internal_secondary_id = display_manager()->GetDisplayAt(1).id();
- display::Display::SetInternalDisplayId(internal_secondary_id);
- display::DisplayLayoutBuilder builder(primary_id);
- builder.AddDisplayPlacement(internal_secondary_id, primary_id,
- display::DisplayPlacement::LEFT, 0);
- display_manager()->SetLayoutForCurrentDisplays(builder.Build());
- EXPECT_TRUE(GetDisplayNotificationText().empty());
-
- // Close the lid. We go to docked mode, but we show no notifications.
- UpdateDisplay("400x400");
- EXPECT_TRUE(GetDisplayNotificationText().empty());
- EXPECT_TRUE(GetDisplayNotificationAdditionalText().empty());
-}
-
-} // namespace ash
« no previous file with comments | « ash/system/chromeos/screen_layout_observer.cc ('k') | ash/system/date/clock_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698