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 8b7c6f0b13804d40e1b98648d4a6fb13bda15221..4bbe857941d3358df74ed7fb771842e1b9e5334c 100644 |
--- a/third_party/WebKit/Source/core/timing/PerformanceBaseTest.cpp |
+++ b/third_party/WebKit/Source/core/timing/PerformanceBaseTest.cpp |
@@ -5,8 +5,10 @@ |
#include "core/timing/Performance.h" |
#include "core/timing/PerformanceBase.h" |
+#include "core/timing/PerformanceLongTaskTiming.h" |
#include "core/timing/PerformanceObserver.h" |
#include "core/timing/PerformanceObserverCallback.h" |
+#include "core/timing/PerformanceObserverInit.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace blink { |
@@ -22,6 +24,11 @@ public: |
int numObservers() { return m_observers.size(); } |
+ int numLongTaskTimingEntries() |
+ { |
+ return m_longTaskTimingBuffer.size(); |
+ } |
+ |
DEFINE_INLINE_TRACE() |
{ |
PerformanceBase::trace(visitor); |
@@ -88,4 +95,23 @@ TEST_F(PerformanceBaseTest, Activate) |
EXPECT_EQ(0, m_base->numActiveObservers()); |
} |
+TEST_F(PerformanceBaseTest, AddLongTaskTiming) |
+{ |
+ // Add a long task entry, but no observer registered. |
+ m_base->addLongTaskTiming(1234, 5678, "www.foo.com/bar"); |
+ EXPECT_EQ(0, m_base->numLongTaskTimingEntries()); // has no effect |
+ |
+ // Make an observer for longtask |
+ NonThrowableExceptionState exceptionState; |
+ PerformanceObserverInit options; |
+ Vector<String> entryTypeVec; |
+ entryTypeVec.append("longtask"); |
+ options.setEntryTypes(entryTypeVec); |
+ m_observer->observe(options, exceptionState); |
+ |
+ // Add a long task entry |
+ m_base->addLongTaskTiming(1234, 5678, "www.foo.com/bar"); |
+ EXPECT_EQ(1, m_base->numLongTaskTimingEntries()); // added an entry |
+} |
+ |
} // namespace blink |