Chromium Code Reviews| Index: chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc |
| diff --git a/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc b/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc |
| index b6abe14f2937e0f0f0ebda4977ec19da568fc9ee..ce8264b0a54bd17a4cf50c542adfcb3ebd57b5e0 100644 |
| --- a/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc |
| +++ b/chrome/browser/media/router/mojo/media_router_mojo_impl_unittest.cc |
| @@ -84,17 +84,13 @@ const int kInvalidTabId = -1; |
| const uint8_t kBinaryMessage[] = {0x01, 0x02, 0x03, 0x04}; |
| const int kTimeoutMillis = 5 * 1000; |
| -mojom::IssuePtr CreateMojoIssue(const std::string& title) { |
| - mojom::IssuePtr mojoIssue = mojom::Issue::New(); |
| - mojoIssue->title = title; |
| - mojoIssue->message = std::string("msg"); |
| - mojoIssue->route_id = std::string(); |
| - mojoIssue->default_action = mojom::Issue::ActionType::DISMISS; |
| - mojoIssue->secondary_actions = std::vector<mojom::Issue::ActionType>(); |
| - mojoIssue->severity = mojom::Issue::Severity::WARNING; |
| - mojoIssue->is_blocking = false; |
| - mojoIssue->help_page_id = -1; |
| - return mojoIssue; |
| +IssueInfo CreateIssueInfo(const std::string& title) { |
| + IssueInfo issue_info; |
| + issue_info.title = title; |
| + issue_info.message = std::string("msg"); |
| + issue_info.default_action = IssueInfo::Action::DISMISS; |
| + issue_info.severity = IssueInfo::Severity::WARNING; |
| + return issue_info; |
| } |
| mojom::MediaRoutePtr CreateMojoRoute() { |
| @@ -646,55 +642,38 @@ TEST_F(MediaRouterMojoImplTest, TerminateRouteFails) { |
| TEST_F(MediaRouterMojoImplTest, HandleIssue) { |
| MockIssuesObserver issue_observer1(router()); |
| MockIssuesObserver issue_observer2(router()); |
| - issue_observer1.RegisterObserver(); |
| - issue_observer2.RegisterObserver(); |
| + issue_observer1.Init(); |
| + issue_observer2.Init(); |
| - mojom::IssuePtr mojo_issue1 = CreateMojoIssue("title 1"); |
| - const Issue& expected_issue1 = mojo_issue1.To<Issue>(); |
| + IssueInfo issue = CreateIssueInfo("title 1"); |
| + |
| + const Issue* issue_from_observer1; |
| + const Issue* issue_from_observer2; |
| + EXPECT_CALL(issue_observer1, OnIssueUpdated(_)) |
| + .WillOnce(SaveArg<0>(&issue_from_observer1)); |
|
mark a. foltz
2016/10/18 21:13:44
Would it be simpler to declare a Matcher for Issue
imcheng
2016/11/18 23:45:13
The pointers should be identical since they are ca
|
| - const Issue* issue; |
| - EXPECT_CALL(issue_observer1, |
| - OnIssueUpdated(Pointee(EqualsIssue(expected_issue1)))) |
| - .WillOnce(SaveArg<0>(&issue)); |
| base::RunLoop run_loop; |
| - EXPECT_CALL(issue_observer2, |
| - OnIssueUpdated(Pointee(EqualsIssue(expected_issue1)))) |
| - .WillOnce(InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); })); |
| - media_router_proxy_->OnIssue(std::move(mojo_issue1)); |
| + EXPECT_CALL(issue_observer2, OnIssueUpdated(_)) |
| + .WillOnce(DoAll(SaveArg<0>(&issue_from_observer2), |
| + InvokeWithoutArgs([&run_loop]() { run_loop.Quit(); }))); |
|
mark a. foltz
2016/10/18 21:13:44
Add run_loop.QuitWhenIdle() after Run() and then t
imcheng
2016/11/18 23:45:13
Done.
|
| + media_router_proxy_->OnIssue(issue); |
| run_loop.Run(); |
| + ASSERT_TRUE(issue_from_observer1); |
| + ASSERT_TRUE(issue_from_observer2); |
| + ASSERT_EQ(issue_from_observer1, issue_from_observer2); |
| + EXPECT_EQ(issue, issue_from_observer1->info()); |
| + |
| EXPECT_TRUE(Mock::VerifyAndClearExpectations(&issue_observer1)); |
| EXPECT_TRUE(Mock::VerifyAndClearExpectations(&issue_observer2)); |
| EXPECT_CALL(issue_observer1, OnIssueUpdated(nullptr)); |
| EXPECT_CALL(issue_observer2, OnIssueUpdated(nullptr)); |
| - router()->ClearIssue(issue->id()); |
| + router()->ClearIssue(issue_from_observer1->id()); |
| EXPECT_TRUE(Mock::VerifyAndClearExpectations(&issue_observer1)); |
| EXPECT_TRUE(Mock::VerifyAndClearExpectations(&issue_observer2)); |
| - router()->UnregisterIssuesObserver(&issue_observer1); |
| - mojom::IssuePtr mojo_issue2 = CreateMojoIssue("title 2"); |
| - const Issue& expected_issue2 = mojo_issue2.To<Issue>(); |
| - |
| - EXPECT_CALL(issue_observer2, |
| - OnIssueUpdated(Pointee(EqualsIssue(expected_issue2)))); |
| - router()->AddIssue(expected_issue2); |
| - EXPECT_TRUE(Mock::VerifyAndClearExpectations(&issue_observer2)); |
| - |
| - EXPECT_CALL(issue_observer2, OnIssueUpdated(nullptr)); |
| - router()->ClearIssue(issue->id()); |
| - EXPECT_TRUE(Mock::VerifyAndClearExpectations(&issue_observer2)); |
| - |
| - base::RunLoop run_loop2; |
| - EXPECT_CALL(issue_observer2, |
| - OnIssueUpdated(Pointee(EqualsIssue(expected_issue2)))) |
| - .WillOnce(InvokeWithoutArgs([&run_loop2]() { run_loop2.Quit(); })); |
| - media_router_proxy_->OnIssue(std::move(mojo_issue2)); |
| - run_loop2.Run(); |
| - |
| - issue_observer1.UnregisterObserver(); |
| - issue_observer2.UnregisterObserver(); |
| } |
| TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaSinksObserver) { |