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

Side by Side Diff: chrome/browser/media/router/media_controller_impl_unittest.cc

Issue 949293004: Add media router common classes and unittests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Chunkier CL Created 5 years, 9 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
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/media/router/media_controller_impl.h"
6 #include "testing/gmock/include/gmock/gmock.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 using testing::ContainerEq;
10 using testing::Eq;
11 using testing::IsEmpty;
12 using testing::Eq;
13 using testing::Mock;
14
15 namespace media_router {
16
17 class MockMediaControllerObserver : public MediaController::Observer {
18 public:
19 MockMediaControllerObserver() {}
20 virtual ~MockMediaControllerObserver() {}
21
22 MOCK_METHOD2(OnMediaStatusChange, void(
23 const MediaController* controller, const MediaStatus& current_status));
24 MOCK_METHOD2(OnMediaControlsCapabilitiesChange, void(
25 const MediaController* controller,
26 MediaControlsCapabilities current_capabilities));
27 };
28
29 class MediaControllerImplTest : public ::testing::Test {
30 protected:
31 MediaControllerImplTest() : controller_("route0") {}
32 ~MediaControllerImplTest() override {}
33
34 MediaControllerImpl controller_;
35
36 private:
37 DISALLOW_COPY_AND_ASSIGN(MediaControllerImplTest);
38 };
39
40 TEST_F(MediaControllerImplTest, NotifyObserversOnMediaStatusChange) {
41 MockMediaControllerObserver observer1, observer2;
42
43 controller_.AddObserver(&observer1);
44 controller_.AddObserver(&observer2);
45
46 MediaStatus status("route1");
47 EXPECT_CALL(observer1,
48 OnMediaStatusChange(Eq(&controller_), Eq(status))).Times(1);
49 EXPECT_CALL(observer2,
50 OnMediaStatusChange(Eq(&controller_), Eq(status))).Times(1);
51 controller_.set_media_status(status);
52 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer1));
53 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer2));
54
55 controller_.RemoveObserver(&observer2);
56
57 // Only observer1 gets updates since observer2 was removed from controller.
58 MediaStatus status2("route2");
59 EXPECT_CALL(observer1,
60 OnMediaStatusChange(Eq(&controller_), Eq(status2))).Times(1);
61 controller_.set_media_status(status2);
62 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer1));
63
64 // No updates since status did not change.
65 controller_.set_media_status(status2);
66
67 controller_.RemoveObserver(&observer1);
68 }
69
70 TEST_F(MediaControllerImplTest, NotifyObserversOnMediaControlsChange) {
71 MockMediaControllerObserver observer1, observer2;
72
73 controller_.AddObserver(&observer1);
74 controller_.AddObserver(&observer2);
75
76 MediaControlsCapabilities capabilities = MEDIA_COMMAND_PAUSE;
77
78 EXPECT_CALL(observer1, OnMediaControlsCapabilitiesChange(
79 Eq(&controller_), Eq(capabilities)))
80 .Times(1);
81 EXPECT_CALL(observer2, OnMediaControlsCapabilitiesChange(
82 Eq(&controller_), Eq(capabilities)))
83 .Times(1);
84
85 controller_.set_media_controls_capabilities(capabilities);
86
87 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer1));
88 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer2));
89
90 controller_.RemoveObserver(&observer2);
91
92 // Only observer1 gets updates since observer2 was removed from controller.
93 capabilities = MEDIA_COMMAND_PAUSE | MEDIA_COMMAND_PLAY;
94 EXPECT_CALL(observer1, OnMediaControlsCapabilitiesChange(
95 Eq(&controller_), Eq(capabilities)))
96 .Times(1);
97 controller_.set_media_controls_capabilities(capabilities);
98 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&observer1));
99
100 // No updates since status did not change.
101 controller_.set_media_controls_capabilities(capabilities);
102
103 controller_.RemoveObserver(&observer1);
104 }
105
106 } // namespace media_router
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698