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

Unified Diff: chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc

Issue 127423002: Supports window teleports for notifications. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix wallpaper private api test Created 6 years, 11 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
Index: chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc
diff --git a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc
index 6d0e8e45c4bf9a60c3c1e97be08da56ea8d678e8..dd48b9602565e9d5f7cd1465b14144c9eb245912 100644
--- a/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc
+++ b/chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos_unittest.cc
@@ -11,6 +11,7 @@
#include "base/command_line.h"
#include "base/compiler_specific.h"
#include "base/logging.h"
+#include "base/strings/string_util.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager.h"
#include "chrome/browser/ui/ash/multi_user/multi_user_window_manager_chromeos.h"
#include "chrome/common/chrome_switches.h"
@@ -63,6 +64,9 @@ class MultiUserWindowManagerChromeOSTest : public AshTestBase {
// shown by A, and "D,..." would mean that window#0 is deleted.
std::string GetStatus();
+ // Returns a test-friendly string format of GetOwnersOfVisibleWindows().
+ std::string GetOwnersOfVisibleWindowsAsString();
+
TestSessionStateDelegate* session_state_delegate() {
return session_state_delegate_;
}
@@ -116,8 +120,8 @@ void MultiUserWindowManagerChromeOSTest::TearDown() {
window_.erase(window_.begin());
}
- AshTestBase::TearDown();
chrome::MultiUserWindowManager::DeleteInstance();
+ AshTestBase::TearDown();
}
std::string MultiUserWindowManagerChromeOSTest::GetStatus() {
@@ -144,6 +148,16 @@ std::string MultiUserWindowManagerChromeOSTest::GetStatus() {
return s;
}
+std::string
+MultiUserWindowManagerChromeOSTest::GetOwnersOfVisibleWindowsAsString() {
+ std::set<std::string> owners;
+ multi_user_window_manager_->GetOwnersOfVisibleWindows(&owners);
+
+ std::vector<std::string> owner_list;
+ owner_list.insert(owner_list.begin(), owners.begin(), owners.end());
+ return JoinString(owner_list, ' ');
+}
+
// Testing basic assumptions like default state and existence of manager.
TEST_F(MultiUserWindowManagerChromeOSTest, BasicTests) {
SetUpForThisManyWindows(3);
@@ -226,6 +240,7 @@ TEST_F(MultiUserWindowManagerChromeOSTest, CloseWindowTests) {
multi_user_window_manager()->ShowWindowForUser(window(0), "A");
EXPECT_EQ("S[B,A]", GetStatus());
EXPECT_TRUE(multi_user_window_manager()->AreWindowsSharedAmongUsers());
+ EXPECT_EQ("B", GetOwnersOfVisibleWindowsAsString());
aura::Window* to_be_deleted = window(0);
@@ -240,6 +255,7 @@ TEST_F(MultiUserWindowManagerChromeOSTest, CloseWindowTests) {
delete_window_at(0);
EXPECT_EQ("D", GetStatus());
+ EXPECT_EQ("", GetOwnersOfVisibleWindowsAsString());
// There should be no owner anymore for that window and the shared windows
// should be gone as well.
EXPECT_EQ(std::string(),
@@ -260,6 +276,7 @@ TEST_F(MultiUserWindowManagerChromeOSTest, SharedWindowTests) {
multi_user_window_manager()->SetWindowOwner(window(4), "C");
EXPECT_EQ("S[A], S[A], H[B], H[B], H[C]", GetStatus());
EXPECT_FALSE(multi_user_window_manager()->AreWindowsSharedAmongUsers());
+ EXPECT_EQ("A", GetOwnersOfVisibleWindowsAsString());
// For all following tests we override window 2 to be shown by user B.
multi_user_window_manager()->ShowWindowForUser(window(1), "B");
@@ -269,31 +286,39 @@ TEST_F(MultiUserWindowManagerChromeOSTest, SharedWindowTests) {
multi_user_window_manager()->ShowWindowForUser(window(2), "A");
EXPECT_EQ("S[A], H[A,B], S[B,A], H[B], H[C]", GetStatus());
EXPECT_TRUE(multi_user_window_manager()->AreWindowsSharedAmongUsers());
+ EXPECT_EQ("A B", GetOwnersOfVisibleWindowsAsString());
multi_user_window_manager()->ShowWindowForUser(window(2), "C");
EXPECT_EQ("S[A], H[A,B], H[B,C], H[B], H[C]", GetStatus());
EXPECT_TRUE(multi_user_window_manager()->AreWindowsSharedAmongUsers());
+ EXPECT_EQ("A", GetOwnersOfVisibleWindowsAsString());
// Switch the users and see that the results are correct.
multi_user_window_manager()->ActiveUserChanged("B");
EXPECT_EQ("H[A], S[A,B], H[B,C], S[B], H[C]", GetStatus());
+ EXPECT_EQ("A B", GetOwnersOfVisibleWindowsAsString());
multi_user_window_manager()->ActiveUserChanged("C");
EXPECT_EQ("H[A], H[A,B], S[B,C], H[B], S[C]", GetStatus());
+ EXPECT_EQ("B C", GetOwnersOfVisibleWindowsAsString());
// Showing on the desktop of the already owning user should have no impact.
multi_user_window_manager()->ShowWindowForUser(window(4), "C");
EXPECT_EQ("H[A], H[A,B], S[B,C], H[B], S[C]", GetStatus());
+ EXPECT_EQ("B C", GetOwnersOfVisibleWindowsAsString());
// Changing however a shown window back to the original owner should hide it.
multi_user_window_manager()->ShowWindowForUser(window(2), "B");
EXPECT_EQ("H[A], H[A,B], H[B], H[B], S[C]", GetStatus());
EXPECT_TRUE(multi_user_window_manager()->AreWindowsSharedAmongUsers());
+ EXPECT_EQ("C", GetOwnersOfVisibleWindowsAsString());
// And the change should be "permanent" - switching somewhere else and coming
// back.
multi_user_window_manager()->ActiveUserChanged("B");
EXPECT_EQ("H[A], S[A,B], S[B], S[B], H[C]", GetStatus());
+ EXPECT_EQ("A B", GetOwnersOfVisibleWindowsAsString());
multi_user_window_manager()->ActiveUserChanged("C");
EXPECT_EQ("H[A], H[A,B], H[B], H[B], S[C]", GetStatus());
+ EXPECT_EQ("C", GetOwnersOfVisibleWindowsAsString());
// After switching window 2 back to its original desktop, all desktops should
// be "clean" again.

Powered by Google App Engine
This is Rietveld 408576698