Chromium Code Reviews| 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 2659688af8eac7a3cefe52afee8943656836e8b1..670b32ef7a1d27eaaafefec0260d0905810ffff2 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 |
| @@ -5,10 +5,14 @@ |
| #include "base/bind.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "chrome/browser/extensions/browser_action_test_util.h" |
| +#include "chrome/browser/media/router/media_router.h" |
| +#include "chrome/browser/media/router/media_router_ui_service.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_commands.h" |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| +#include "chrome/browser/ui/toolbar/component_toolbar_actions_factory.h" |
| #include "chrome/browser/ui/toolbar/media_router_action.h" |
| +#include "chrome/browser/ui/toolbar/media_router_action_controller.h" |
| #include "chrome/browser/ui/toolbar/toolbar_action_view_delegate.h" |
| #include "chrome/browser/ui/views/frame/browser_view.h" |
| #include "chrome/browser/ui/views/toolbar/app_menu_button.h" |
| @@ -54,6 +58,22 @@ class MediaRouterUIBrowserTest : public InProcessBrowserTest { |
| toolbar_action_view_ = new ToolbarActionView(media_router_action_.get(), |
| browser_actions_container); |
| toolbar_action_view_widget_->SetContentsView(toolbar_action_view_); |
| + |
| + action_controller_ = |
| + MediaRouterUIService::Get(browser()->profile())->GetActionController(); |
| + |
| + issue_.reset(new Issue( |
| + "title notification", |
| + "message notification", |
| + media_router::IssueAction(media_router::IssueAction::TYPE_DISMISS), |
| + std::vector<media_router::IssueAction>(), |
| + "route_id", |
| + media_router::Issue::NOTIFICATION, |
| + false, |
| + -1)); |
| + |
| + routes_ = {MediaRoute("routeId1", MediaSource("sourceId"), "sinkId1", |
| + "description", true, std::string(), true)}; |
| } |
| void TearDownOnMainThread() override { |
| @@ -92,6 +112,11 @@ class MediaRouterUIBrowserTest : public InProcessBrowserTest { |
| media_router_action_->ExecuteAction(true); |
| } |
| + bool ActionExists() { |
| + return ToolbarActionsModel::Get(browser()->profile())->HasComponentAction( |
| + ComponentToolbarActionsFactory::kMediaRouterActionId); |
| + } |
| + |
| protected: |
| // Must be initialized after |InProcessBrowserTest::SetUpOnMainThread|. |
| std::unique_ptr<BrowserActionTestUtil> browser_action_test_util_; |
| @@ -103,6 +128,13 @@ class MediaRouterUIBrowserTest : public InProcessBrowserTest { |
| // Hosts the |toolbar_action_view_|. |
| views::Widget* toolbar_action_view_widget_; |
| + |
| + std::unique_ptr<Issue> issue_; |
| + |
| + // A vector of MediaRoutes that includes a local route. |
| + std::vector<MediaRoute> routes_; |
| + |
| + MediaRouterActionController* action_controller_; |
|
msw
2016/09/16 23:02:43
nit: = nullptr;
takumif
2016/09/20 14:50:47
Done.
|
| }; |
| IN_PROC_BROWSER_TEST_F(MediaRouterUIBrowserTest, |
| @@ -131,4 +163,42 @@ IN_PROC_BROWSER_TEST_F(MediaRouterUIBrowserTest, |
| OpenMediaRouterDialogAndWaitForNewWebContents(); |
| } |
| +IN_PROC_BROWSER_TEST_F(MediaRouterUIBrowserTest, |
| + EphemeralToolbarIcon) { |
|
msw
2016/09/16 23:02:43
nit: fits on line above (git cl format)
takumif
2016/09/20 14:50:47
Done.
|
| + action_controller_->OnIssueUpdated(issue_.get()); |
| + EXPECT_TRUE(ActionExists()); |
| + action_controller_->OnIssueUpdated(nullptr); |
| + EXPECT_FALSE(ActionExists()); |
| + |
| + action_controller_->OnRoutesUpdated(routes_, std::vector<MediaRoute::Id>()); |
| + EXPECT_TRUE(ActionExists()); |
| + action_controller_->OnRoutesUpdated( |
| + std::vector<MediaRoute>(), std::vector<MediaRoute::Id>()); |
| + EXPECT_FALSE(ActionExists()); |
| + |
| + media_router_action_->SetAlwaysShowActionPref(true); |
| + EXPECT_TRUE(ActionExists()); |
| + media_router_action_->SetAlwaysShowActionPref(false); |
| + EXPECT_FALSE(ActionExists()); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(MediaRouterUIBrowserTest, |
| + EphemeralToolbarIconWithMultipleWindows) { |
| + action_controller_->OnRoutesUpdated(routes_, std::vector<MediaRoute::Id>()); |
| + EXPECT_TRUE(ActionExists()); |
| + |
| + // Opening and closing a window shouldn't affect the state of the ephemeral |
| + // icon. Creating and removing the icon with multiple windows open should also |
| + // work. |
| + Browser* browser2 = CreateBrowser(browser()->profile()); |
| + EXPECT_TRUE(ActionExists()); |
| + action_controller_->OnRoutesUpdated( |
| + std::vector<MediaRoute>(), std::vector<MediaRoute::Id>()); |
| + EXPECT_FALSE(ActionExists()); |
| + action_controller_->OnRoutesUpdated(routes_, std::vector<MediaRoute::Id>()); |
| + EXPECT_TRUE(ActionExists()); |
| + browser2->window()->Close(); |
| + EXPECT_TRUE(ActionExists()); |
| +} |
| + |
| } // namespace media_router |