OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/timing/PerformanceObserver.h" | 5 #include "core/timing/PerformanceObserver.h" |
6 | 6 |
| 7 #include "bindings/core/v8/PerformanceObserverCallback.h" |
7 #include "bindings/core/v8/V8BindingForTesting.h" | 8 #include "bindings/core/v8/V8BindingForTesting.h" |
8 #include "bindings/core/v8/V8PerformanceObserverCallback.h" | |
9 #include "core/timing/Performance.h" | 9 #include "core/timing/Performance.h" |
10 #include "core/timing/PerformanceBase.h" | 10 #include "core/timing/PerformanceBase.h" |
11 #include "core/timing/PerformanceMark.h" | 11 #include "core/timing/PerformanceMark.h" |
12 #include "core/timing/PerformanceObserverInit.h" | 12 #include "core/timing/PerformanceObserverInit.h" |
13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
14 | 14 |
15 namespace blink { | 15 namespace blink { |
16 | 16 |
17 class MockPerformanceBase : public PerformanceBase { | 17 class MockPerformanceBase : public PerformanceBase { |
18 public: | 18 public: |
19 MockPerformanceBase() : PerformanceBase(0) {} | 19 MockPerformanceBase() : PerformanceBase(0) {} |
20 ~MockPerformanceBase() {} | 20 ~MockPerformanceBase() {} |
21 | 21 |
22 ExecutionContext* getExecutionContext() const override { return nullptr; } | 22 ExecutionContext* getExecutionContext() const override { return nullptr; } |
23 }; | 23 }; |
24 | 24 |
25 class PerformanceObserverTest : public ::testing::Test { | 25 class PerformanceObserverTest : public ::testing::Test { |
26 protected: | 26 protected: |
27 void initialize(ScriptState* scriptState) { | 27 void initialize(ScriptState* scriptState) { |
28 v8::Local<v8::Function> callback = | 28 v8::Local<v8::Function> callback = |
29 v8::Function::New(scriptState->context(), nullptr).ToLocalChecked(); | 29 v8::Function::New(scriptState->context(), nullptr).ToLocalChecked(); |
30 m_base = new MockPerformanceBase(); | 30 m_base = new MockPerformanceBase(); |
31 m_cb = | 31 m_cb = |
32 V8PerformanceObserverCallback::create(scriptState->isolate(), callback); | 32 PerformanceObserverCallback::create(scriptState->isolate(), callback); |
33 m_observer = PerformanceObserver::create(scriptState, m_base, m_cb); | 33 m_observer = PerformanceObserver::create(scriptState, m_base, m_cb); |
34 } | 34 } |
35 | 35 |
36 bool isRegistered() { return m_observer->m_isRegistered; } | 36 bool isRegistered() { return m_observer->m_isRegistered; } |
37 int numPerformanceEntries() { | 37 int numPerformanceEntries() { |
38 return m_observer->m_performanceEntries.size(); | 38 return m_observer->m_performanceEntries.size(); |
39 } | 39 } |
40 void deliver() { m_observer->deliver(); } | 40 void deliver() { m_observer->deliver(); } |
41 | 41 |
42 Persistent<MockPerformanceBase> m_base; | 42 Persistent<MockPerformanceBase> m_base; |
43 Persistent<V8PerformanceObserverCallback> m_cb; | 43 Persistent<PerformanceObserverCallback> m_cb; |
44 Persistent<PerformanceObserver> m_observer; | 44 Persistent<PerformanceObserver> m_observer; |
45 }; | 45 }; |
46 | 46 |
47 TEST_F(PerformanceObserverTest, Observe) { | 47 TEST_F(PerformanceObserverTest, Observe) { |
48 V8TestingScope scope; | 48 V8TestingScope scope; |
49 initialize(scope.getScriptState()); | 49 initialize(scope.getScriptState()); |
50 | 50 |
51 NonThrowableExceptionState exceptionState; | 51 NonThrowableExceptionState exceptionState; |
52 PerformanceObserverInit options; | 52 PerformanceObserverInit options; |
53 Vector<String> entryTypeVec; | 53 Vector<String> entryTypeVec; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 EXPECT_EQ(0, numPerformanceEntries()); | 91 EXPECT_EQ(0, numPerformanceEntries()); |
92 | 92 |
93 m_observer->enqueuePerformanceEntry(*entry); | 93 m_observer->enqueuePerformanceEntry(*entry); |
94 EXPECT_EQ(1, numPerformanceEntries()); | 94 EXPECT_EQ(1, numPerformanceEntries()); |
95 | 95 |
96 m_observer->disconnect(); | 96 m_observer->disconnect(); |
97 EXPECT_FALSE(isRegistered()); | 97 EXPECT_FALSE(isRegistered()); |
98 EXPECT_EQ(0, numPerformanceEntries()); | 98 EXPECT_EQ(0, numPerformanceEntries()); |
99 } | 99 } |
100 } | 100 } |
OLD | NEW |