summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authorskuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-01 07:37:50 +0000
committerskuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-01 07:37:50 +0000
commitaf77b1800f5f07ba8f23867d66b4649886414caf (patch)
treece71511e6513cd2d4559b5dd9ac763f29277b29c /ash
parent416533fe2ca0ad204b736b964c14e336356eccea (diff)
downloadchromium_src-af77b1800f5f07ba8f23867d66b4649886414caf.zip
chromium_src-af77b1800f5f07ba8f23867d66b4649886414caf.tar.gz
chromium_src-af77b1800f5f07ba8f23867d66b4649886414caf.tar.bz2
Adding workspace manager test to verify that crbug/151698 is fixed.
BUG=152826 TEST=unittest Review URL: https://chromiumcodereview.appspot.com/11369008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165308 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/wm/workspace/workspace_manager_unittest.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/ash/wm/workspace/workspace_manager_unittest.cc b/ash/wm/workspace/workspace_manager_unittest.cc
index b9a7dd5..725dc2a 100644
--- a/ash/wm/workspace/workspace_manager_unittest.cc
+++ b/ash/wm/workspace/workspace_manager_unittest.cc
@@ -674,6 +674,34 @@ TEST_F(WorkspaceManagerTest, ShowMinimizedPersistWindow) {
EXPECT_TRUE(w1->IsVisible());
}
+// Test that a persistent window across all workspaces which was first
+// maximized, then got minimized and finally got restored does not crash the
+// system (see http://crbug.com/151698) and restores its maximized workspace
+// instead.
+TEST_F(WorkspaceManagerTest, MaximizeMinimizeRestoreDoesNotCrash) {
+ // We need to create a regular window first so there's an active workspace.
+ scoped_ptr<Window> w1(CreateTestWindow());
+ w1->Show();
+
+ // Create a window that persists across all workspaces.
+ scoped_ptr<Window> w2(CreateTestWindow());
+ SetPersistsAcrossAllWorkspaces(
+ w2.get(),
+ WINDOW_PERSISTS_ACROSS_ALL_WORKSPACES_VALUE_YES);
+ w2->Show();
+ wm::ActivateWindow(w2.get());
+ w2->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MAXIMIZED);
+ w2->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_MINIMIZED);
+ EXPECT_FALSE(w2->IsVisible());
+ // This is the critical call which should switch to the maximized workspace
+ // of that window instead of reparenting it to the other workspace (and
+ // crashing while trying to do so).
+ wm::ActivateWindow(w2.get());
+ EXPECT_EQ(ui::SHOW_STATE_MAXIMIZED,
+ w2->GetProperty(aura::client::kShowStateKey));
+ EXPECT_TRUE(w2->IsVisible());
+}
+
// Test that we report we're in the fullscreen state even if the fullscreen
// window isn't being managed by us (http://crbug.com/123931).
TEST_F(WorkspaceManagerTest, GetWindowStateWithUnmanagedFullscreenWindow) {