OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "base/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/memory/scoped_vector.h" | 6 #include "base/memory/scoped_vector.h" |
| 7 #include "base/stringprintf.h" |
7 #include "chrome/browser/extensions/extension_apitest.h" | 8 #include "chrome/browser/extensions/extension_apitest.h" |
8 #include "chrome/browser/extensions/extension_test_message_listener.h" | 9 #include "chrome/browser/extensions/extension_test_message_listener.h" |
9 #include "chrome/browser/ui/browser.h" | 10 #include "chrome/browser/ui/browser.h" |
10 #include "chrome/browser/ui/browser_list.h" | 11 #include "chrome/browser/ui/browser_list.h" |
11 #include "chrome/common/chrome_switches.h" | 12 #include "chrome/common/chrome_switches.h" |
12 #include "chrome/common/extensions/extension.h" | 13 #include "chrome/common/extensions/extension.h" |
13 #include "chrome/test/base/ui_test_utils.h" | 14 #include "chrome/test/base/ui_test_utils.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" |
14 #include "net/base/mock_host_resolver.h" | 16 #include "net/base/mock_host_resolver.h" |
15 | 17 |
16 // Disabled, http://crbug.com/64899. | 18 // Disabled, http://crbug.com/64899. |
17 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_WindowOpen) { | 19 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_WindowOpen) { |
18 CommandLine::ForCurrentProcess()->AppendSwitch( | 20 CommandLine::ForCurrentProcess()->AppendSwitch( |
19 switches::kEnableExperimentalExtensionApis); | 21 switches::kEnableExperimentalExtensionApis); |
20 | 22 |
21 ResultCatcher catcher; | 23 ResultCatcher catcher; |
22 ASSERT_TRUE(LoadExtensionIncognito(test_data_dir_ | 24 ASSERT_TRUE(LoadExtensionIncognito(test_data_dir_ |
23 .AppendASCII("window_open").AppendASCII("spanning"))); | 25 .AppendASCII("window_open").AppendASCII("spanning"))); |
24 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); | 26 EXPECT_TRUE(catcher.GetNextResult()) << catcher.message(); |
25 } | 27 } |
26 | 28 |
27 void WaitForTabsAndPopups(Browser* browser, | 29 void WaitForTabsAndPopups(Browser* browser, |
28 int num_tabs, | 30 int num_tabs, |
29 int num_popups, | 31 int num_popups, |
30 int num_panels) { | 32 int num_panels) { |
| 33 SCOPED_TRACE( |
| 34 StringPrintf("WaitForTabsAndPopups tabs:%d, popups:%d, panels:%d", |
| 35 num_tabs, num_popups, num_panels)); |
31 // We start with one tab and one browser already open. | 36 // We start with one tab and one browser already open. |
32 ++num_tabs; | 37 ++num_tabs; |
33 size_t num_browsers = static_cast<size_t>(num_popups + num_panels) + 1; | 38 size_t num_browsers = static_cast<size_t>(num_popups + num_panels) + 1; |
34 | 39 |
35 const base::TimeDelta kWaitTime = base::TimeDelta::FromSeconds(15); | 40 const base::TimeDelta kWaitTime = base::TimeDelta::FromSeconds(15); |
36 base::TimeTicks end_time = base::TimeTicks::Now() + kWaitTime; | 41 base::TimeTicks end_time = base::TimeTicks::Now() + kWaitTime; |
37 while (base::TimeTicks::Now() < end_time) { | 42 while (base::TimeTicks::Now() < end_time) { |
38 if (BrowserList::GetBrowserCount(browser->profile()) == num_browsers && | 43 if (BrowserList::GetBrowserCount(browser->profile()) == num_browsers && |
39 browser->tab_count() == num_tabs) | 44 browser->tab_count() == num_tabs) |
40 break; | 45 break; |
41 | 46 |
42 MessageLoopForUI::current()->RunAllPending(); | 47 ui_test_utils::RunAllPendingInMessageLoop(); |
43 } | 48 } |
44 | 49 |
45 EXPECT_EQ(num_browsers, BrowserList::GetBrowserCount(browser->profile())); | 50 EXPECT_EQ(num_browsers, BrowserList::GetBrowserCount(browser->profile())); |
46 EXPECT_EQ(num_tabs, browser->tab_count()); | 51 EXPECT_EQ(num_tabs, browser->tab_count()); |
47 | 52 |
48 int num_popups_seen = 0; | 53 int num_popups_seen = 0; |
49 int num_panels_seen = 0; | 54 int num_panels_seen = 0; |
50 for (BrowserList::const_iterator iter = BrowserList::begin(); | 55 for (BrowserList::const_iterator iter = BrowserList::begin(); |
51 iter != BrowserList::end(); ++iter) { | 56 iter != BrowserList::end(); ++iter) { |
52 if (*iter == browser) | 57 if (*iter == browser) |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 UninstallExtension(extension->id()); | 227 UninstallExtension(extension->id()); |
223 | 228 |
224 // Wait for one tab and one popup in non-extension domain to stay open. | 229 // Wait for one tab and one popup in non-extension domain to stay open. |
225 // Expect everything else, including panels, to close. | 230 // Expect everything else, including panels, to close. |
226 WaitForTabsAndPopups(browser(), 1, 1, 0); | 231 WaitForTabsAndPopups(browser(), 1, 1, 0); |
227 } | 232 } |
228 | 233 |
229 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, WindowOpener) { | 234 IN_PROC_BROWSER_TEST_F(ExtensionApiTest, WindowOpener) { |
230 ASSERT_TRUE(RunExtensionTest("window_open/opener")) << message_; | 235 ASSERT_TRUE(RunExtensionTest("window_open/opener")) << message_; |
231 } | 236 } |
OLD | NEW |