| Index: chrome/browser/ui/views/media_router/media_router_ui_browsertest.cc
|
| diff --git a/chrome/browser/ui/views/media_router/media_router_ui_browsertest.cc b/chrome/browser/ui/views/media_router/media_router_ui_browsertest.cc
|
| index 249042b03c39315d87a1cb9901c8b54b95f20bf8..0b17ab564db4f5d4c8520eeb86be523b2d1d2aa3 100644
|
| --- a/chrome/browser/ui/views/media_router/media_router_ui_browsertest.cc
|
| +++ b/chrome/browser/ui/views/media_router/media_router_ui_browsertest.cc
|
| @@ -2,6 +2,8 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/bind.h"
|
| +#include "base/thread_task_runner_handle.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_commands.h"
|
| #include "chrome/browser/ui/tabs/tab_strip_model.h"
|
| @@ -11,6 +13,7 @@
|
| #include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
|
| #include "chrome/browser/ui/views/toolbar/toolbar_action_view.h"
|
| #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
|
| +#include "chrome/common/url_constants.h"
|
| #include "chrome/test/base/in_process_browser_test.h"
|
| #include "chrome/test/base/ui_test_utils.h"
|
| #include "content/public/browser/web_contents.h"
|
| @@ -33,7 +36,7 @@ class MediaRouterUIBrowserTest : public InProcessBrowserTest {
|
| ->browser_actions();
|
| ASSERT_TRUE(browser_actions_container);
|
|
|
| - media_router_action_.reset(new MediaRouterAction);
|
| + media_router_action_.reset(new MediaRouterAction(browser()));
|
|
|
| // Sets delegate on |media_router_action_|.
|
| toolbar_action_view_.reset(
|
| @@ -44,11 +47,30 @@ class MediaRouterUIBrowserTest : public InProcessBrowserTest {
|
| void OpenMediaRouterDialogAndWaitForNewWebContents() {
|
| content::TestNavigationObserver nav_observer(NULL);
|
| nav_observer.StartWatchingNewWebContents();
|
| - media_router_action_->ExecuteAction(true);
|
| +
|
| + ToolbarView* toolbar =
|
| + BrowserView::GetBrowserViewForBrowser(browser())->toolbar();
|
| +
|
| + // When the Media Router Action executes, it opens a dialog with web
|
| + // contents to chrome://media-router.
|
| + base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
|
| + base::Bind(&MediaRouterUIBrowserTest::ExecuteMediaRouterAction,
|
| + this,
|
| + toolbar));
|
| + toolbar->ShowAppMenu(false);
|
| +
|
| + EXPECT_FALSE(toolbar->IsWrenchMenuShowing());
|
| nav_observer.Wait();
|
| + ASSERT_EQ(chrome::kChromeUIMediaRouterURL,
|
| + nav_observer.last_navigation_url().spec());
|
| nav_observer.StopWatchingNewWebContents();
|
| }
|
|
|
| + void ExecuteMediaRouterAction(ToolbarView* toolbar) {
|
| + EXPECT_TRUE(toolbar->IsWrenchMenuShowing());
|
| + media_router_action_->ExecuteAction(true);
|
| + }
|
| +
|
| protected:
|
| // Must be initialized after |InProcessBrowserTest::SetUpOnMainThread|.
|
| scoped_ptr<MediaRouterAction> media_router_action_;
|
| @@ -75,11 +97,8 @@ IN_PROC_BROWSER_TEST_F(MediaRouterUIBrowserTest,
|
| // We expect a new dialog WebContents to be created by calling this.
|
| OpenMediaRouterDialogAndWaitForNewWebContents();
|
|
|
| - // Navigate away and wait.
|
| - content::TestNavigationObserver nav_observer(
|
| - browser()->tab_strip_model()->GetActiveWebContents(), 1);
|
| + // Navigate away.
|
| ui_test_utils::NavigateToURL(browser(), GURL("about:blank"));
|
| - nav_observer.Wait();
|
|
|
| // The navigation should have removed the previously created dialog.
|
| // We expect a new dialog WebContents to be created by calling this.
|
|
|