OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "modules/mediasession/MediaSession.h" | 6 #include "modules/mediasession/MediaSession.h" |
7 | 7 |
8 #include "core/dom/Document.h" | 8 #include "core/dom/Document.h" |
9 #include "core/testing/DummyPageHolder.h" | 9 #include "core/testing/DummyPageHolder.h" |
10 #include "public/platform/modules/mediasession/WebMediaSession.h" | 10 #include "public/platform/modules/mediasession/WebMediaSession.h" |
11 #include "testing/gmock/include/gmock/gmock.h" | 11 #include "testing/gmock/include/gmock/gmock.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
13 | 13 |
14 using ::testing::_; | 14 using ::testing::_; |
15 using ::testing::Invoke; | 15 using ::testing::Invoke; |
16 | 16 |
17 namespace blink { | 17 namespace blink { |
18 | 18 |
19 class MediaSessionTest : public ::testing::Test { | 19 class MediaSessionTest : public ::testing::Test { |
20 protected: | 20 protected: |
21 MediaSessionTest() | 21 MediaSessionTest() |
22 : m_page(DummyPageHolder::create(IntSize(1, 1))) | 22 : m_page(DummyPageHolder::create(IntSize(1, 1))) |
23 {} | 23 {} |
24 | 24 |
25 MediaSession* createMediaSession(WebMediaSession* webMediaSession) | 25 MediaSession* createMediaSession(WebMediaSession* webMediaSession) |
26 { | 26 { |
27 // The MediaSession takes ownership of the WebMediaSession, and the | 27 // The MediaSession takes ownership of the WebMediaSession, and the |
28 // caller must take care to not end up with a stale pointer. | 28 // caller must take care to not end up with a stale pointer. |
29 return new MediaSession(adoptPtr(webMediaSession)); | 29 return new MediaSession(&document(), adoptPtr(webMediaSession)); |
30 } | 30 } |
31 | 31 |
32 Document& document() { return m_page->document(); } | 32 Document& document() { return m_page->document(); } |
33 ScriptState* mainScriptState() { return ScriptState::forMainWorld(document()
.frame()); } | 33 ScriptState* mainScriptState() { return ScriptState::forMainWorld(document()
.frame()); } |
34 private: | 34 private: |
35 OwnPtr<DummyPageHolder> m_page; | 35 OwnPtr<DummyPageHolder> m_page; |
36 }; | 36 }; |
37 | 37 |
38 namespace { | 38 namespace { |
39 | 39 |
40 class MockWebMediaSession : public WebMediaSession { | 40 class MockWebMediaSession : public WebMediaSession { |
41 public: | 41 public: |
42 MOCK_METHOD1(activate, void(WebMediaSessionActivateCallback*)); | 42 MOCK_METHOD1(activate, void(WebMediaSessionActivateCallback*)); |
43 MOCK_METHOD1(deactivate, void(WebMediaSessionDeactivateCallback*)); | 43 MOCK_METHOD1(deactivate, void(WebMediaSessionDeactivateCallback*)); |
| 44 bool hasPendingCallbacks() override { return false; } |
44 }; | 45 }; |
45 | 46 |
46 class Helper { | 47 class Helper { |
47 public: | 48 public: |
48 void activate(WebMediaSessionActivateCallback* cb) { delete cb; } | 49 void activate(WebMediaSessionActivateCallback* cb) { delete cb; } |
49 void deactivate(WebMediaSessionDeactivateCallback* cb) { delete cb; } | 50 void deactivate(WebMediaSessionDeactivateCallback* cb) { delete cb; } |
50 }; | 51 }; |
51 | 52 |
52 TEST_F(MediaSessionTest, Activate) | 53 TEST_F(MediaSessionTest, Activate) |
53 { | 54 { |
(...skipping 12 matching lines...) Expand all Loading... |
66 MockWebMediaSession* mockWebMediaSession = new MockWebMediaSession; | 67 MockWebMediaSession* mockWebMediaSession = new MockWebMediaSession; |
67 MediaSession* mediaSession = createMediaSession(mockWebMediaSession); | 68 MediaSession* mediaSession = createMediaSession(mockWebMediaSession); |
68 | 69 |
69 Helper helper; | 70 Helper helper; |
70 EXPECT_CALL(*mockWebMediaSession, deactivate(_)).WillOnce(Invoke(&helper, &H
elper::deactivate)); | 71 EXPECT_CALL(*mockWebMediaSession, deactivate(_)).WillOnce(Invoke(&helper, &H
elper::deactivate)); |
71 mediaSession->deactivate(mainScriptState()); | 72 mediaSession->deactivate(mainScriptState()); |
72 } | 73 } |
73 | 74 |
74 } // namespace | 75 } // namespace |
75 } // namespace blink | 76 } // namespace blink |
OLD | NEW |