Index: third_party/WebKit/Source/core/html/HTMLVideoElementTest.cpp |
diff --git a/third_party/WebKit/Source/core/html/HTMLVideoElementTest.cpp b/third_party/WebKit/Source/core/html/HTMLVideoElementTest.cpp |
index 8d91cf19126c90b69f863225fa993ae83eafbdeb..da60de3ae04685fc2891e98f1f186bbde9a7919e 100644 |
--- a/third_party/WebKit/Source/core/html/HTMLVideoElementTest.cpp |
+++ b/third_party/WebKit/Source/core/html/HTMLVideoElementTest.cpp |
@@ -9,6 +9,7 @@ |
#include "core/loader/EmptyClients.h" |
#include "core/page/NetworkStateNotifier.h" |
#include "core/testing/DummyPageHolder.h" |
+#include "platform/RuntimeEnabledFeatures.h" |
#include "platform/UserGestureIndicator.h" |
#include "platform/testing/UnitTestHelpers.h" |
#include "public/platform/WebMediaPlayer.h" |
@@ -62,6 +63,10 @@ class EmptyWebMediaPlayer : public WebMediaPlayer { |
class MockWebMediaPlayer : public EmptyWebMediaPlayer { |
public: |
MOCK_METHOD1(setBufferingStrategy, void(BufferingStrategy)); |
+ MOCK_METHOD1(selectedVideoTrackChanged, |
+ void(blink::WebMediaPlayer::TrackId*)); |
+ MOCK_CONST_METHOD0(hasAudio, bool()); |
+ MOCK_CONST_METHOD0(hasVideo, bool()); |
}; |
class StubFrameLoaderClient : public EmptyFrameLoaderClient { |
@@ -95,6 +100,14 @@ class HTMLVideoElementTest : public ::testing::Test { |
testing::runPendingTasks(); |
} |
+ void setReadyState(HTMLMediaElement::ReadyState state) { |
+ m_video->setReadyState(state); |
+ } |
+ |
+ void hide() { m_video->hidden(); } |
+ |
+ void show() { m_video->shown(); } |
+ |
MockWebMediaPlayer* webMediaPlayer() { |
return static_cast<MockWebMediaPlayer*>(m_video->webMediaPlayer()); |
} |
@@ -153,4 +166,25 @@ TEST_F(HTMLVideoElementTest, setBufferingStrategy_UserPause) { |
::testing::Mock::VerifyAndClearExpectations(player); |
} |
+TEST_F(HTMLVideoElementTest, unselectSelectVideoTrackWhenHiddenAndShown) { |
+ RuntimeEnabledFeatures::setBackgroundVideoTrackOptimizationEnabled(true); |
+ |
+ setSrc("http://foo.bar/"); |
+ MockWebMediaPlayer* player = webMediaPlayer(); |
+ ASSERT_TRUE(player); |
+ |
+ EXPECT_CALL(*player, hasAudio()).WillRepeatedly(::testing::Return(true)); |
+ EXPECT_CALL(*player, hasVideo()).WillRepeatedly(::testing::Return(true)); |
+ |
+ setReadyState(HTMLMediaElement::kHaveMetadata); |
+ |
+ EXPECT_CALL(*player, selectedVideoTrackChanged(nullptr)); |
+ hide(); |
+ ::testing::Mock::VerifyAndClearExpectations(player); |
+ |
+ EXPECT_CALL(*player, selectedVideoTrackChanged(::testing::_)); |
+ show(); |
+ ::testing::Mock::VerifyAndClearExpectations(player); |
+} |
mlamouri (slow - plz ping)
2016/11/12 23:35:48
tests <3
|
+ |
} // namespace blink |