Chromium Code Reviews| Index: chrome/browser/media/router/media_router_mojo_impl_unittest.cc |
| diff --git a/chrome/browser/media/router/media_router_mojo_impl_unittest.cc b/chrome/browser/media/router/media_router_mojo_impl_unittest.cc |
| index eb51e8381ce3cae9bd6bd39bfe552bdea9c72c9d..5af3a1a8a49d67e63d346f4c24946f3d8037a592 100644 |
| --- a/chrome/browser/media/router/media_router_mojo_impl_unittest.cc |
| +++ b/chrome/browser/media/router/media_router_mojo_impl_unittest.cc |
| @@ -9,8 +9,10 @@ |
| #include "base/memory/scoped_ptr.h" |
| #include "base/run_loop.h" |
| #include "base/synchronization/waitable_event.h" |
| +#include "chrome/browser/media/router/issue.h" |
| #include "chrome/browser/media/router/media_route.h" |
| #include "chrome/browser/media/router/media_router_mojo_test.h" |
| +#include "chrome/browser/media/router/media_router_type_converters.h" |
| #include "chrome/browser/media/router/mock_media_router.h" |
| #include "chrome/browser/media/router/test_helper.h" |
| #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
| @@ -25,6 +27,7 @@ |
| using testing::_; |
| using testing::Eq; |
| using testing::Invoke; |
| +using testing::Mock; |
| using testing::Pointee; |
| using testing::Return; |
| using testing::ReturnRef; |
| @@ -61,6 +64,20 @@ bool ArePresentationSessionMessagesEqual( |
| : *(expected->message) == *(actual->message); |
| } |
| +interfaces::IssuePtr CreateMojoIssue() { |
| + interfaces::IssuePtr mojoIssue = interfaces::Issue::New(); |
| + mojoIssue->title = "title"; |
| + mojoIssue->message = "msg"; |
| + mojoIssue->route_id = ""; |
| + mojoIssue->default_action = interfaces::Issue::ActionType::ACTION_TYPE_OK; |
| + mojoIssue->secondary_actions = |
| + mojo::Array<interfaces::Issue::ActionType>::New(0); |
| + mojoIssue->severity = interfaces::Issue::Severity::SEVERITY_WARNING; |
| + mojoIssue->is_blocking = false; |
| + mojoIssue->help_url = ""; |
| + return mojoIssue.Pass(); |
| +} |
| + |
| } // namespace |
| class RouteResponseCallbackHandler { |
| @@ -258,6 +275,26 @@ TEST_F(MediaRouterMojoImplTest, CloseRoute) { |
| ProcessEventLoop(); |
| } |
| +TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterIssuesObserver) { |
|
Kevin M
2015/07/29 17:41:49
This is testing more than just registration/unregi
haibinlu
2015/07/29 18:46:07
Changed name to 'HandleIssue'
|
| + MockIssuesObserver issue_observer1(router()); |
|
Kevin M
2015/07/29 17:41:49
Add an IssueManager mock
haibinlu
2015/07/29 18:46:07
In order to make the mock, we need to mark IssueMa
|
| + MockIssuesObserver issue_observer2(router()); |
| + const Issue* issue; |
| + EXPECT_CALL(issue_observer1, OnIssueUpdated(_)) |
| + .WillRepeatedly(SaveArg<0>(&issue)); |
|
Kevin M
2015/07/29 17:41:49
Be explicit with the # of Times()
haibinlu
2015/07/29 18:46:07
Done.
|
| + EXPECT_CALL(issue_observer2, OnIssueUpdated(_)); |
| + media_router_proxy_->OnIssue(CreateMojoIssue().Pass()); |
| + ProcessEventLoop(); |
| + |
| + EXPECT_TRUE(Mock::VerifyAndClearExpectations(&issue_observer1)); |
| + EXPECT_TRUE(Mock::VerifyAndClearExpectations(&issue_observer2)); |
| + |
| + router()->ClearIssue(issue->id()); |
| + router()->UnregisterIssuesObserver(&issue_observer1); |
| + EXPECT_CALL(issue_observer2, OnIssueUpdated(_)); |
| + media_router_proxy_->OnIssue(CreateMojoIssue().Pass()); |
| + ProcessEventLoop(); |
| +} |
| + |
| TEST_F(MediaRouterMojoImplTest, RegisterAndUnregisterMediaSinksObserver) { |
| MediaSource media_source(kSource); |