Commit 8906ce8b authored by zqzhang's avatar zqzhang Committed by Commit bot

Fix gmock leak issue in AutoplayUmaHelperTest

AutoplayUmaHelperTest currently uses GMock for mock
AutoplayUmaHelper in order to check if events are correctly
received. However this will make the test flaky since
MockAutoplyUmaHelper is garbage-collected but GMock expect it to
be destroyed when the test finishes.

This CL marks MockAutoplayUmaHelper as AllowLeak which fixes the
issue.

BUG=672831

Review-Url: https://codereview.chromium.org/2562683004
Cr-Commit-Position: refs/heads/master@{#437939}
parent f6b3c2da
......@@ -45,37 +45,34 @@ class AutoplayUmaHelperTest : public testing::Test {
return toHTMLVideoElement(*element);
}
MockAutoplayUmaHelper& umaHelper() {
return *(static_cast<MockAutoplayUmaHelper*>(
mediaElement().m_autoplayUmaHelper.get()));
}
MockAutoplayUmaHelper& umaHelper() { return *m_umaHelper; }
std::unique_ptr<DummyPageHolder>& pageHolder() { return m_pageHolder; }
MOCK_METHOD0(TestEnded, void());
private:
void SetUp() override {
m_pageHolder = DummyPageHolder::create(IntSize(800, 600));
document().documentElement()->setInnerHTML("<video id=video></video>",
ASSERT_NO_EXCEPTION);
HTMLMediaElement& element = mediaElement();
element.m_autoplayUmaHelper = new MockAutoplayUmaHelper(&element);
m_umaHelper = new MockAutoplayUmaHelper(&element);
element.m_autoplayUmaHelper = m_umaHelper;
}
void TearDown() override { m_umaHelper.clear(); }
std::unique_ptr<DummyPageHolder> m_pageHolder;
Persistent<MockAutoplayUmaHelper> m_umaHelper;
};
TEST_F(AutoplayUmaHelperTest, VisibilityChangeWhenUnload) {
// This is to avoid handleContextDestroyed() to be called during TearDown().
EXPECT_CALL(*this, TestEnded())
.After(EXPECT_CALL(umaHelper(), handleContextDestroyed()));
EXPECT_CALL(umaHelper(), handleContextDestroyed());
mediaElement().setMuted(true);
umaHelper().onAutoplayInitiated(AutoplaySource::Attribute);
umaHelper().handlePlayingEvent();
pageHolder().reset();
TestEnded();
::testing::Mock::VerifyAndClear(&umaHelper());
}
} // namespace blink
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment