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

Unified Diff: chrome/browser/ui/toolbar/media_router_action_unittest.cc

Issue 2579613002: [Media Router Action] Hide action back in the overflow menu after popping it out (Closed)
Patch Set: Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/toolbar/media_router_action_unittest.cc
diff --git a/chrome/browser/ui/toolbar/media_router_action_unittest.cc b/chrome/browser/ui/toolbar/media_router_action_unittest.cc
index 6040eade26819d52c0121ac28e06ff3df977dd7a..d6ff7d8ecd66b3bf1dd8993250585dc3ef138cc7 100644
--- a/chrome/browser/ui/toolbar/media_router_action_unittest.cc
+++ b/chrome/browser/ui/toolbar/media_router_action_unittest.cc
@@ -22,6 +22,17 @@
using content::WebContents;
using media_router::MediaRouterDialogControllerImpl;
+using testing::Return;
+
+class MockToolbarActionsBar : public ToolbarActionsBar {
+ public:
+ MockToolbarActionsBar(ToolbarActionsBarDelegate* delegate, Browser* browser)
+ : ToolbarActionsBar(delegate, browser, nullptr) {}
+ ~MockToolbarActionsBar() override {}
+
+ MOCK_METHOD0(UndoPopOut, void());
+ MOCK_METHOD0(popped_out_action, ToolbarActionViewController*());
+};
class MockToolbarActionViewDelegate : public ToolbarActionViewDelegate {
public:
@@ -113,10 +124,7 @@ class MediaRouterActionUnitTest : public MediaRouterWebUITest {
// has run.
browser_action_test_util_.reset(
new BrowserActionTestUtil(browser(), false));
- action_.reset(
- new TestMediaRouterAction(
- browser(),
- browser_action_test_util_->GetToolbarActionsBar()));
+ action_.reset(new TestMediaRouterAction(browser(), GetActionsBar()));
local_display_route_list_.push_back(
media_router::MediaRoute("routeId1", fake_source1_, "sinkId1",
@@ -140,7 +148,12 @@ class MediaRouterActionUnitTest : public MediaRouterWebUITest {
icon_id, MediaRouterAction::GetIconColor(icon_id)));
}
+ ToolbarActionsBar* GetActionsBar() {
+ return browser_action_test_util_->GetToolbarActionsBar();
+ }
+
TestMediaRouterAction* action() { return action_.get(); }
+ ToolbarActionsModel* toolbar_model() { return toolbar_model_; }
const media_router::Issue& fake_issue_notification() {
return fake_issue_notification_;
}
@@ -352,3 +365,21 @@ TEST_F(MediaRouterActionUnitTest, IconPressedState) {
EXPECT_CALL(*mock_delegate, OnPopupClosed()).Times(1);
dialog_controller->HideMediaRouterDialog();
}
+
+TEST_F(MediaRouterActionUnitTest, UndoPopOutOnContextMenuClosed) {
+ MockToolbarActionsBar mock_actions_bar(GetActionsBar()->delegate_for_test(),
+ browser());
+ TestMediaRouterAction media_router_action(browser(), &mock_actions_bar);
+ chrome::NewTab(browser());
+ MediaRouterDialogControllerImpl* dialog_controller =
+ MediaRouterDialogControllerImpl::GetOrCreateForWebContents(
+ browser()->tab_strip_model()->GetActiveWebContents());
+ media_router_action.SetMediaRouterDialogController(dialog_controller);
+
+ // If the media router action is popped out when closing its context menu,
+ // then it should go back into the overflow menu.
+ EXPECT_CALL(mock_actions_bar, popped_out_action())
Devlin 2016/12/15 22:25:26 I'm not a big fan of using mocks like this, becaus
+ .WillOnce(Return(&media_router_action));
+ EXPECT_CALL(mock_actions_bar, UndoPopOut()).Times(1);
+ media_router_action.OnContextMenuClosed();
+}

Powered by Google App Engine
This is Rietveld 408576698