| 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 |