Chromium Code Reviews| Index: third_party/WebKit/Source/modules/mediasession/MediaSessionTest.cpp |
| diff --git a/third_party/WebKit/Source/modules/mediasession/MediaSessionTest.cpp b/third_party/WebKit/Source/modules/mediasession/MediaSessionTest.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..daa138901977a01f7d5c7213e1404c174fb5c8d8 |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/modules/mediasession/MediaSessionTest.cpp |
| @@ -0,0 +1,71 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "config.h" |
| +#include "modules/mediasession/MediaSession.h" |
| + |
| +#include "core/dom/Document.h" |
| +#include "core/testing/DummyPageHolder.h" |
| +#include "public/platform/modules/mediasession/WebMediaSession.h" |
| +#include <gmock/gmock.h> |
| +#include <gtest/gtest.h> |
| + |
| +using testing::_; |
| + |
| +namespace blink { |
| +namespace { |
| + |
| +class MockWebMediaSession : public WebMediaSession { |
| +public: |
| + MOCK_METHOD1(activate, void(WebMediaSessionCommandCallback*)); |
| + MOCK_METHOD1(deactivate, void(WebMediaSessionCommandCallback*)); |
| +}; |
| + |
| +class MediaSessionTest : public ::testing::Test { |
| +protected: |
| + MediaSessionTest() |
| + : m_page(DummyPageHolder::create(IntSize(1, 1))) |
| + {} |
| + |
| + MediaSession* createMediaSession(WebMediaSession* webMediaSession) |
| + { |
| + // The MediaSession takes ownership of the WebMediaSession, and the |
| + // caller must take care to not end up with a stale pointer. |
| + return MediaSession::createForTesting(adoptPtr(webMediaSession)); |
| + } |
| + |
| + Document& document() { return m_page->document(); } |
| + ScriptState* mainScriptState() { return ScriptState::forMainWorld(document().frame()); } |
| +private: |
| + OwnPtr<DummyPageHolder> m_page; |
| +}; |
| + |
| +#if OS(ANDROID) |
|
philipj_slow
2015/10/07 14:37:12
This ought not be necessary in this test, we have
davve
2015/10/08 09:17:35
Done.
|
| +#define MAYBE_Activate Activate |
| +#define MAYBE_Deactivate Deactivate |
| +#else |
| +#define MAYBE_Activate DISABLED_Activate |
| +#define MAYBE_Deactivate DISABLED_Deactivate |
| +#endif |
| + |
| +TEST_F(MediaSessionTest, MAYBE_Activate) |
| +{ |
| + MockWebMediaSession* mockWebMediaSession = new MockWebMediaSession; |
| + MediaSession* mediaSession = createMediaSession(mockWebMediaSession); |
| + |
| + EXPECT_CALL(*mockWebMediaSession, activate(_)); |
| + mediaSession->activate(mainScriptState()); |
| +} |
| + |
| +TEST_F(MediaSessionTest, MAYBE_Deactivate) |
| +{ |
| + MockWebMediaSession* mockWebMediaSession = new MockWebMediaSession; |
| + MediaSession* mediaSession = createMediaSession(mockWebMediaSession); |
| + |
| + EXPECT_CALL(*mockWebMediaSession, deactivate(_)); |
| + mediaSession->deactivate(mainScriptState()); |
| +} |
| + |
| +} // namespace |
| +} // namespace blink |