| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include <list> | 7 #include <list> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 CloseBrowserSynchronously(*iter); | 52 CloseBrowserSynchronously(*iter); |
| 53 browser_list_.erase(iter); | 53 browser_list_.erase(iter); |
| 54 return true; | 54 return true; |
| 55 } | 55 } |
| 56 } | 56 } |
| 57 return false; | 57 return false; |
| 58 } | 58 } |
| 59 | 59 |
| 60 Browser::CreateParams CreateParamsForApp(const std::string name, | 60 Browser::CreateParams CreateParamsForApp(const std::string name, |
| 61 bool trusted) { | 61 bool trusted) { |
| 62 return Browser::CreateParams::CreateForApp( | 62 return Browser::CreateParams::CreateForApp(name, trusted, gfx::Rect(), |
| 63 name, trusted, gfx::Rect(), profile(), chrome::GetActiveDesktop()); | 63 profile()); |
| 64 } | 64 } |
| 65 | 65 |
| 66 // Turn on session restore before we restart. | 66 // Turn on session restore before we restart. |
| 67 void TurnOnSessionRestore() { | 67 void TurnOnSessionRestore() { |
| 68 SessionStartupPref::SetStartupPref( | 68 SessionStartupPref::SetStartupPref( |
| 69 browser()->profile(), SessionStartupPref(SessionStartupPref::LAST)); | 69 browser()->profile(), SessionStartupPref(SessionStartupPref::LAST)); |
| 70 } | 70 } |
| 71 | 71 |
| 72 Profile* profile() { return browser()->profile(); } | 72 Profile* profile() { return browser()->profile(); } |
| 73 | 73 |
| 74 std::list<Browser*> browser_list_; | 74 std::list<Browser*> browser_list_; |
| 75 }; | 75 }; |
| 76 | 76 |
| 77 // Thse tests are in pairs. The PRE_ test creates some browser windows and | 77 // Thse tests are in pairs. The PRE_ test creates some browser windows and |
| 78 // the following test confirms that the correct windows are restored after a | 78 // the following test confirms that the correct windows are restored after a |
| 79 // restart. | 79 // restart. |
| 80 | 80 |
| 81 IN_PROC_BROWSER_TEST_F(SessionRestoreTestChromeOS, PRE_RestoreBrowserWindows) { | 81 IN_PROC_BROWSER_TEST_F(SessionRestoreTestChromeOS, PRE_RestoreBrowserWindows) { |
| 82 // One browser window is always created by default. | 82 // One browser window is always created by default. |
| 83 EXPECT_TRUE(browser()); | 83 EXPECT_TRUE(browser()); |
| 84 // Create a second normal browser window. | 84 // Create a second normal browser window. |
| 85 CreateBrowserWithParams(Browser::CreateParams(profile())); |
| 86 // Create a third incognito browser window which should not get restored. |
| 85 CreateBrowserWithParams( | 87 CreateBrowserWithParams( |
| 86 Browser::CreateParams(profile(), chrome::GetActiveDesktop())); | 88 Browser::CreateParams(profile()->GetOffTheRecordProfile())); |
| 87 // Create a third incognito browser window which should not get restored. | |
| 88 CreateBrowserWithParams(Browser::CreateParams( | |
| 89 profile()->GetOffTheRecordProfile(), chrome::GetActiveDesktop())); | |
| 90 TurnOnSessionRestore(); | 89 TurnOnSessionRestore(); |
| 91 } | 90 } |
| 92 | 91 |
| 93 IN_PROC_BROWSER_TEST_F(SessionRestoreTestChromeOS, RestoreBrowserWindows) { | 92 IN_PROC_BROWSER_TEST_F(SessionRestoreTestChromeOS, RestoreBrowserWindows) { |
| 94 size_t total_count = 0; | 93 size_t total_count = 0; |
| 95 size_t incognito_count = 0; | 94 size_t incognito_count = 0; |
| 96 for (auto* browser : *BrowserList::GetInstance()) { | 95 for (auto* browser : *BrowserList::GetInstance()) { |
| 97 ++total_count; | 96 ++total_count; |
| 98 if (browser->profile()->IsOffTheRecord()) | 97 if (browser->profile()->IsOffTheRecord()) |
| 99 ++incognito_count; | 98 ++incognito_count; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 127 } | 126 } |
| 128 EXPECT_EQ(1u, app1_count); | 127 EXPECT_EQ(1u, app1_count); |
| 129 EXPECT_EQ(2u, app2_count); // Only the trusted app windows are restored. | 128 EXPECT_EQ(2u, app2_count); // Only the trusted app windows are restored. |
| 130 EXPECT_EQ(4u, total_count); // Default browser() + 3 app windows | 129 EXPECT_EQ(4u, total_count); // Default browser() + 3 app windows |
| 131 } | 130 } |
| 132 | 131 |
| 133 IN_PROC_BROWSER_TEST_F(SessionRestoreTestChromeOS, PRE_RestoreMaximized) { | 132 IN_PROC_BROWSER_TEST_F(SessionRestoreTestChromeOS, PRE_RestoreMaximized) { |
| 134 // One browser window is always created by default. | 133 // One browser window is always created by default. |
| 135 ASSERT_TRUE(browser()); | 134 ASSERT_TRUE(browser()); |
| 136 // Create a second browser window and maximize it. | 135 // Create a second browser window and maximize it. |
| 137 Browser* browser2 = CreateBrowserWithParams( | 136 Browser* browser2 = CreateBrowserWithParams(Browser::CreateParams(profile())); |
| 138 Browser::CreateParams(profile(), chrome::GetActiveDesktop())); | |
| 139 browser2->window()->Maximize(); | 137 browser2->window()->Maximize(); |
| 140 | 138 |
| 141 // Create two app popup windows and maximize the second one. | 139 // Create two app popup windows and maximize the second one. |
| 142 Browser* app_browser1 = | 140 Browser* app_browser1 = |
| 143 CreateBrowserWithParams(CreateParamsForApp(test_app_popup_name1, true)); | 141 CreateBrowserWithParams(CreateParamsForApp(test_app_popup_name1, true)); |
| 144 Browser* app_browser2 = | 142 Browser* app_browser2 = |
| 145 CreateBrowserWithParams(CreateParamsForApp(test_app_popup_name1, true)); | 143 CreateBrowserWithParams(CreateParamsForApp(test_app_popup_name1, true)); |
| 146 app_browser2->window()->Maximize(); | 144 app_browser2->window()->Maximize(); |
| 147 | 145 |
| 148 EXPECT_FALSE(browser()->window()->IsMaximized()); | 146 EXPECT_FALSE(browser()->window()->IsMaximized()); |
| 149 EXPECT_TRUE(browser2->window()->IsMaximized()); | 147 EXPECT_TRUE(browser2->window()->IsMaximized()); |
| 150 EXPECT_FALSE(app_browser1->window()->IsMaximized()); | 148 EXPECT_FALSE(app_browser1->window()->IsMaximized()); |
| 151 EXPECT_TRUE(app_browser2->window()->IsMaximized()); | 149 EXPECT_TRUE(app_browser2->window()->IsMaximized()); |
| 152 | 150 |
| 153 TurnOnSessionRestore(); | 151 TurnOnSessionRestore(); |
| 154 } | 152 } |
| 155 | 153 |
| 156 IN_PROC_BROWSER_TEST_F(SessionRestoreTestChromeOS, RestoreMaximized) { | 154 IN_PROC_BROWSER_TEST_F(SessionRestoreTestChromeOS, RestoreMaximized) { |
| 157 size_t total_count = 0; | 155 size_t total_count = 0; |
| 158 size_t maximized_count = 0; | 156 size_t maximized_count = 0; |
| 159 for (auto* browser : *BrowserList::GetInstance()) { | 157 for (auto* browser : *BrowserList::GetInstance()) { |
| 160 ++total_count; | 158 ++total_count; |
| 161 if (browser->window()->IsMaximized()) | 159 if (browser->window()->IsMaximized()) |
| 162 ++maximized_count; | 160 ++maximized_count; |
| 163 } | 161 } |
| 164 EXPECT_EQ(4u, total_count); | 162 EXPECT_EQ(4u, total_count); |
| 165 EXPECT_EQ(2u, maximized_count); | 163 EXPECT_EQ(2u, maximized_count); |
| 166 } | 164 } |
| OLD | NEW |