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 4ceca4b0f8d38eeedbbc4b9429efb91be3892227..fa6848f9df68f268a0f4ac28f0cbf0cd5490b780 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; |
}; |
@@ -111,4 +123,24 @@ TEST_F(PerformanceBaseTest, AddLongTaskTiming) { |
""); |
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 |