Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(124)

Side by Side Diff: chrome/browser/ui/views/media_router/media_router_ui_browsertest.cc

Issue 1228223002: Close wrench menu when Media Router Action clicked in Views. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix browser test. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/bind.h"
6 #include "base/thread_task_runner_handle.h"
5 #include "chrome/browser/ui/browser.h" 7 #include "chrome/browser/ui/browser.h"
6 #include "chrome/browser/ui/browser_commands.h" 8 #include "chrome/browser/ui/browser_commands.h"
7 #include "chrome/browser/ui/tabs/tab_strip_model.h" 9 #include "chrome/browser/ui/tabs/tab_strip_model.h"
8 #include "chrome/browser/ui/toolbar/media_router_action.h" 10 #include "chrome/browser/ui/toolbar/media_router_action.h"
9 #include "chrome/browser/ui/toolbar/toolbar_action_view_delegate.h" 11 #include "chrome/browser/ui/toolbar/toolbar_action_view_delegate.h"
10 #include "chrome/browser/ui/views/frame/browser_view.h" 12 #include "chrome/browser/ui/views/frame/browser_view.h"
11 #include "chrome/browser/ui/views/toolbar/browser_actions_container.h" 13 #include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
12 #include "chrome/browser/ui/views/toolbar/toolbar_action_view.h" 14 #include "chrome/browser/ui/views/toolbar/toolbar_action_view.h"
13 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" 15 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
14 #include "chrome/test/base/in_process_browser_test.h" 16 #include "chrome/test/base/in_process_browser_test.h"
(...skipping 11 matching lines...) Expand all
26 28
27 void SetUpOnMainThread() override { 29 void SetUpOnMainThread() override {
28 InProcessBrowserTest::SetUpOnMainThread(); 30 InProcessBrowserTest::SetUpOnMainThread();
29 31
30 BrowserActionsContainer* browser_actions_container = 32 BrowserActionsContainer* browser_actions_container =
31 BrowserView::GetBrowserViewForBrowser(browser()) 33 BrowserView::GetBrowserViewForBrowser(browser())
32 ->toolbar() 34 ->toolbar()
33 ->browser_actions(); 35 ->browser_actions();
34 ASSERT_TRUE(browser_actions_container); 36 ASSERT_TRUE(browser_actions_container);
35 37
36 media_router_action_.reset(new MediaRouterAction); 38 media_router_action_.reset(new MediaRouterAction(browser()));
37 39
38 // Sets delegate on |media_router_action_|. 40 // Sets delegate on |media_router_action_|.
39 toolbar_action_view_.reset( 41 toolbar_action_view_.reset(
40 new ToolbarActionView(media_router_action_.get(), browser()->profile(), 42 new ToolbarActionView(media_router_action_.get(), browser()->profile(),
41 browser_actions_container)); 43 browser_actions_container));
42 } 44 }
43 45
44 void OpenMediaRouterDialogAndWaitForNewWebContents() { 46 void OpenMediaRouterDialogAndWaitForNewWebContents() {
45 content::TestNavigationObserver nav_observer(NULL); 47 content::TestNavigationObserver nav_observer(NULL);
46 nav_observer.StartWatchingNewWebContents(); 48 nav_observer.StartWatchingNewWebContents();
47 media_router_action_->ExecuteAction(true); 49
50 ToolbarView* toolbar =
Devlin 2015/07/16 17:17:37 Just by looking at this test, it's not immediately
apacible 2015/07/16 18:13:13 Done.
51 BrowserView::GetBrowserViewForBrowser(browser())->toolbar();
52 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
53 base::Bind(&MediaRouterUIBrowserTest::ExecuteMediaRouterAction,
54 this,
55 toolbar));
56 toolbar->ShowAppMenu(false);
57
58 ASSERT_FALSE(toolbar->IsWrenchMenuShowing());
Devlin 2015/07/16 17:17:37 nit: This (and the assert in ExecuteMediaRouterAct
apacible 2015/07/16 18:13:13 Done.
59
48 nav_observer.Wait(); 60 nav_observer.Wait();
49 nav_observer.StopWatchingNewWebContents(); 61 nav_observer.StopWatchingNewWebContents();
50 } 62 }
51 63
64 void ExecuteMediaRouterAction(ToolbarView* toolbar) {
65 ASSERT_TRUE(toolbar->IsWrenchMenuShowing());
66 media_router_action_->ExecuteAction(true);
67 }
68
52 protected: 69 protected:
53 // Must be initialized after |InProcessBrowserTest::SetUpOnMainThread|. 70 // Must be initialized after |InProcessBrowserTest::SetUpOnMainThread|.
54 scoped_ptr<MediaRouterAction> media_router_action_; 71 scoped_ptr<MediaRouterAction> media_router_action_;
55 72
56 // ToolbarActionView constructed to set the delegate on |mr_action|. 73 // ToolbarActionView constructed to set the delegate on |mr_action|.
57 scoped_ptr<ToolbarActionView> toolbar_action_view_; 74 scoped_ptr<ToolbarActionView> toolbar_action_view_;
58 }; 75 };
59 76
60 IN_PROC_BROWSER_TEST_F(MediaRouterUIBrowserTest, 77 IN_PROC_BROWSER_TEST_F(MediaRouterUIBrowserTest,
61 OpenDialogWithMediaRouterAction) { 78 OpenDialogWithMediaRouterAction) {
62 // We start off at about:blank page. 79 // We start off at about:blank page.
63 // Make sure there is 1 tab and media router is enabled. 80 // Make sure there is 1 tab and media router is enabled.
64 ASSERT_EQ(1, browser()->tab_strip_model()->count()); 81 ASSERT_EQ(1, browser()->tab_strip_model()->count());
65 82
66 OpenMediaRouterDialogAndWaitForNewWebContents(); 83 OpenMediaRouterDialogAndWaitForNewWebContents();
67 84
68 // Reload the browser and wait. 85 // Reload the browser and wait.
69 content::TestNavigationObserver reload_observer( 86 content::TestNavigationObserver reload_observer(
70 browser()->tab_strip_model()->GetActiveWebContents()); 87 browser()->tab_strip_model()->GetActiveWebContents());
71 chrome::Reload(browser(), CURRENT_TAB); 88 chrome::Reload(browser(), CURRENT_TAB);
72 reload_observer.Wait(); 89 reload_observer.Wait();
73 90
74 // The reload should have removed the previously created dialog. 91 // The reload should have removed the previously created dialog.
75 // We expect a new dialog WebContents to be created by calling this. 92 // We expect a new dialog WebContents to be created by calling this.
76 OpenMediaRouterDialogAndWaitForNewWebContents(); 93 OpenMediaRouterDialogAndWaitForNewWebContents();
77 94
78 // Navigate away and wait. 95 // Navigate away and wait.
79 content::TestNavigationObserver nav_observer( 96 content::TestNavigationObserver nav_observer(
Devlin 2015/07/16 17:17:37 nit: NavigateToURL() is actually synchronous, so t
apacible 2015/07/16 18:13:13 Done.
80 browser()->tab_strip_model()->GetActiveWebContents(), 1); 97 browser()->tab_strip_model()->GetActiveWebContents(), 1);
81 ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); 98 ui_test_utils::NavigateToURL(browser(), GURL("about:blank"));
82 nav_observer.Wait(); 99 nav_observer.Wait();
83 100
84 // The navigation should have removed the previously created dialog. 101 // The navigation should have removed the previously created dialog.
85 // We expect a new dialog WebContents to be created by calling this. 102 // We expect a new dialog WebContents to be created by calling this.
86 OpenMediaRouterDialogAndWaitForNewWebContents(); 103 OpenMediaRouterDialogAndWaitForNewWebContents();
87 } 104 }
88 105
89 } // namespace media_router 106 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698