| Index: third_party/WebKit/Source/core/timing/PerformanceBaseTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/timing/PerformanceBaseTest.cpp b/third_party/WebKit/Source/core/timing/PerformanceBaseTest.cpp
|
| index 2ea1b664788ccbc49b6f1201a02c665833156a4e..8e427fb96f51fb063a73b5f977b084bea0189803 100644
|
| --- a/third_party/WebKit/Source/core/timing/PerformanceBaseTest.cpp
|
| +++ b/third_party/WebKit/Source/core/timing/PerformanceBaseTest.cpp
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "bindings/core/v8/PerformanceObserverCallback.h"
|
| #include "bindings/core/v8/V8BindingForTesting.h"
|
| +#include "core/testing/DummyPageHolder.h"
|
| #include "core/timing/PerformanceBase.h"
|
| #include "core/timing/PerformanceLongTaskTiming.h"
|
| #include "core/timing/PerformanceObserver.h"
|
| @@ -42,12 +43,23 @@ class PerformanceBaseTest : public ::testing::Test {
|
| m_observer = PerformanceObserver::create(scriptState, m_base, m_cb);
|
| }
|
|
|
| + void SetUp() override {
|
| + m_pageHolder = DummyPageHolder::create(IntSize(800, 600));
|
| + }
|
| +
|
| int numPerformanceEntriesInObserver() {
|
| return m_observer->m_performanceEntries.size();
|
| }
|
|
|
| + PerformanceNavigationTiming::NavigationType getNavigationType(
|
| + NavigationType type,
|
| + Document* document) {
|
| + return PerformanceBase::getNavigationType(type, document);
|
| + }
|
| +
|
| Persistent<TestPerformanceBase> m_base;
|
| Persistent<PerformanceObserver> m_observer;
|
| + std::unique_ptr<DummyPageHolder> m_pageHolder;
|
| Persistent<PerformanceObserverCallback> m_cb;
|
| };
|
|
|
| @@ -109,4 +121,24 @@ TEST_F(PerformanceBaseTest, AddLongTaskTiming) {
|
| m_base->addLongTaskTiming(1234, 5678, "www.foo.com/bar", nullptr);
|
| EXPECT_EQ(1, numPerformanceEntriesInObserver()); // added an entry
|
| }
|
| +
|
| +TEST_F(PerformanceBaseTest, GetNavigationType) {
|
| + m_pageHolder->page().setVisibilityState(PageVisibilityStatePrerender, false);
|
| + PerformanceNavigationTiming::NavigationType returnedType =
|
| + getNavigationType(NavigationTypeBackForward, &m_pageHolder->document());
|
| + EXPECT_EQ(returnedType,
|
| + PerformanceNavigationTiming::NavigationType::Prerender);
|
| +
|
| + m_pageHolder->page().setVisibilityState(PageVisibilityStateHidden, false);
|
| + returnedType =
|
| + getNavigationType(NavigationTypeBackForward, &m_pageHolder->document());
|
| + EXPECT_EQ(returnedType,
|
| + PerformanceNavigationTiming::NavigationType::BackForward);
|
| +
|
| + m_pageHolder->page().setVisibilityState(PageVisibilityStateVisible, false);
|
| + returnedType = getNavigationType(NavigationTypeFormResubmitted,
|
| + &m_pageHolder->document());
|
| + EXPECT_EQ(returnedType,
|
| + PerformanceNavigationTiming::NavigationType::Navigate);
|
| +}
|
| } // namespace blink
|
|
|