Chromium Code Reviews| Index: chrome/browser/extensions/api/tabs/tabs_interactive_test.cc |
| diff --git a/chrome/browser/extensions/api/tabs/tabs_interactive_test.cc b/chrome/browser/extensions/api/tabs/tabs_interactive_test.cc |
| index 879acfef8deb27f36afc7027309d4be2237b7ae1..c04fac7aff3dcf0f88c3c2d4ae1379a5602a3f1b 100644 |
| --- a/chrome/browser/extensions/api/tabs/tabs_interactive_test.cc |
| +++ b/chrome/browser/extensions/api/tabs/tabs_interactive_test.cc |
| @@ -14,10 +14,10 @@ |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_window.h" |
| #include "chrome/test/base/in_process_browser_test.h" |
| -#include "chrome/test/base/interactive_test_utils.h" |
| #include "chrome/test/base/ui_test_utils.h" |
| #include "extensions/browser/api_test_utils.h" |
| #include "extensions/common/test_util.h" |
| +#include "ui/views/test/widget_test.h" |
| namespace api_test_utils = extensions::api_test_utils; |
| namespace keys = extensions::tabs_constants; |
| @@ -69,32 +69,36 @@ IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, MAYBE_GetLastFocusedWindow) { |
| EXPECT_TRUE(result.get()->GetList(keys::kTabsKey, &tabs)); |
| } |
| -// Flaky: http://crbug.com/136562 |
| -IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, DISABLED_QueryLastFocusedWindowTabs) { |
| +// Activating a browser window and waiting for the activation to happen requires |
| +// views::Widget which is not available on MACOSX. Deactivate for now. |
| +#if defined(OS_MACOSX) |
| +#define MAYBE_QueryLastFocusedWindowTabs DISABLED_QueryLastFocusedWindowTabs |
| +#else |
| +#define MAYBE_QueryLastFocusedWindowTabs QueryLastFocusedWindowTabs |
| +#endif |
| +IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, MAYBE_QueryLastFocusedWindowTabs) { |
| const size_t kExtraWindows = 2; |
| for (size_t i = 0; i < kExtraWindows; ++i) |
| CreateBrowser(browser()->profile()); |
| - Browser* focused_window = CreateBrowser(browser()->profile()); |
| -#if defined(OS_MACOSX) |
| - // See BrowserWindowCocoa::Show. In tests, Browser::window()->IsActive won't |
| - // work unless we fake the browser being launched by the user. |
| - ASSERT_TRUE(ui_test_utils::ShowAndFocusNativeWindow( |
| - focused_window->window()->GetNativeWindow())); |
| -#endif |
| - |
| - // Needed on Mac and Linux so that the BrowserWindow::IsActive calls work. |
| - content::RunAllPendingInMessageLoop(); |
| + Browser* focused_browser = CreateBrowser(browser()->profile()); |
| + gfx::NativeWindow window = focused_browser->window()->GetNativeWindow(); |
| + views::Widget* widget = views::Widget::GetWidgetForNativeWindow(window); |
| + views::test::WidgetActivationWaiter waiter(widget, true); |
| + waiter.Wait(); |
| - GURL url; |
| - AddTabAtIndexToBrowser(focused_window, 0, url, ui::PAGE_TRANSITION_LINK, |
| + GURL url("chrome://settings"); |
|
asargent_no_longer_on_chrome
2016/10/17 20:33:14
Out of curiosity, any particular reason you used c
Qiang(Joe) Xu
2016/10/21 22:29:22
Done.
|
| + AddTabAtIndexToBrowser(focused_browser, 0, url, ui::PAGE_TRANSITION_LINK, |
| true); |
| int focused_window_id = |
| - extensions::ExtensionTabUtil::GetWindowId(focused_window); |
| + extensions::ExtensionTabUtil::GetWindowId(focused_browser); |
| // Get tabs in the 'last focused' window called from non-focused browser. |
| scoped_refptr<extensions::TabsQueryFunction> function = |
| new extensions::TabsQueryFunction(); |
| + scoped_refptr<extensions::Extension> extension( |
| + extensions::test_util::CreateEmptyExtension()); |
| + function->set_extension(extension.get()); |
| std::unique_ptr<base::ListValue> result( |
| utils::ToList(utils::RunFunctionAndReturnSingleResult( |
| function.get(), "[{\"lastFocusedWindow\":true}]", browser()))); |
| @@ -111,6 +115,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, DISABLED_QueryLastFocusedWindowTabs) { |
| // Get tabs NOT in the 'last focused' window called from the focused browser. |
| function = new extensions::TabsQueryFunction(); |
| + function->set_extension(extension.get()); |
| result.reset(utils::ToList( |
| utils::RunFunctionAndReturnSingleResult(function.get(), |
| "[{\"lastFocusedWindow\":false}]", |