diff options
author | skuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-01 07:37:50 +0000 |
---|---|---|
committer | skuhne@chromium.org <skuhne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-01 07:37:50 +0000 |
commit | af77b1800f5f07ba8f23867d66b4649886414caf (patch) | |
tree | ce71511e6513cd2d4559b5dd9ac763f29277b29c /ash | |
parent | 416533fe2ca0ad204b736b964c14e336356eccea (diff) | |
download | chromium_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.cc | 28 |
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) { |