Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(806)

Unified Diff: Source/core/dom/ScriptRunnerTest.cpp

Issue 1087203002: Patch 2/3 to get WebScheduler via WebThread (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Style nits Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/dom/ScriptRunner.cpp ('k') | Source/core/html/parser/BackgroundHTMLParser.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/dom/ScriptRunnerTest.cpp
diff --git a/Source/core/dom/ScriptRunnerTest.cpp b/Source/core/dom/ScriptRunnerTest.cpp
index 6a82fffb9ead723fc5aa1ea94860af2a89b330af..2b53191785af2d0334503922cc37aba285271a11 100644
--- a/Source/core/dom/ScriptRunnerTest.cpp
+++ b/Source/core/dom/ScriptRunnerTest.cpp
@@ -8,7 +8,6 @@
#include "core/dom/Document.h"
#include "core/dom/Element.h"
#include "core/dom/ScriptLoader.h"
-#include "platform/scheduler/Scheduler.h"
#include "public/platform/Platform.h"
#include <gmock/gmock.h>
#include <gtest/gtest.h>
@@ -29,15 +28,42 @@ public:
MOCK_CONST_METHOD0(isReady, bool());
};
-class MockPlatform : public Platform, private WebScheduler {
+class MockWebThread : public WebThread {
public:
- MockPlatform() : m_shouldYield(false), m_shouldYieldEveryOtherTime(false) { }
+ explicit MockWebThread(WebScheduler* webScheduler) : m_webScheduler(webScheduler) { }
+ ~MockWebThread() override { }
+
+ void postTask(const WebTraceLocation&, Task*) override { ASSERT_NOT_REACHED(); }
+ void postDelayedTask(const WebTraceLocation&, Task*, long long) override { ASSERT_NOT_REACHED(); }
+
+ bool isCurrentThread() const override
+ {
+ ASSERT_NOT_REACHED();
+ return false;
+ }
- WebScheduler* scheduler() override
+ PlatformThreadId threadId() const override
{
- return this;
+ ASSERT_NOT_REACHED();
+ return 0;
}
+ void addTaskObserver(TaskObserver*) override { ASSERT_NOT_REACHED(); }
+ void removeTaskObserver(TaskObserver*) override { ASSERT_NOT_REACHED(); }
+
+ WebScheduler* scheduler() const override { return m_webScheduler; }
+
+ void enterRunLoop() override { ASSERT_NOT_REACHED(); }
+ void exitRunLoop() override { ASSERT_NOT_REACHED(); }
+
+private:
+ WebScheduler* m_webScheduler;
+};
+
+class MockPlatform : public Platform, private WebScheduler {
+public:
+ MockPlatform() : m_mockWebThread(this), m_shouldYield(false), m_shouldYieldEveryOtherTime(false) { }
+
void postLoadingTask(const WebTraceLocation&, WebThread::Task* task) override
{
m_tasks.append(adoptPtr(task));
@@ -45,6 +71,8 @@ public:
void cryptographicallyRandomValues(unsigned char* buffer, size_t length) override { }
+ WebThread* currentThread() override { return &m_mockWebThread; }
+
void runSingleTask()
{
if (m_tasks.isEmpty())
@@ -77,6 +105,7 @@ public:
}
private:
+ MockWebThread m_mockWebThread;
Deque<OwnPtr<WebThread::Task>> m_tasks;
bool m_shouldYield;
bool m_shouldYieldEveryOtherTime;
@@ -91,10 +120,8 @@ public:
m_scriptRunner = ScriptRunner::create(m_document.get());
m_oldPlatform = Platform::current();
- m_oldScheduler = Scheduler::shared();
// Force Platform::initialize to create a new one pointing at MockPlatform.
- Scheduler::setForTesting(nullptr);
Platform::initialize(&m_platform);
m_platform.setShouldYield(false);
m_platform.setShouldYieldEveryOtherTime(false);
@@ -103,8 +130,6 @@ public:
void TearDown() override
{
m_scriptRunner.release();
- Scheduler::shutdown();
- Scheduler::setForTesting(m_oldScheduler);
Platform::initialize(m_oldPlatform);
}
@@ -114,7 +139,6 @@ public:
std::vector<int> m_order; // gmock matchers don't work nicely with WTF::Vector
MockPlatform m_platform;
Platform* m_oldPlatform; // NOT OWNED
- Scheduler* m_oldScheduler; // NOT OWNED
};
TEST_F(ScriptRunnerTest, QueueSingleScript_Async)
« no previous file with comments | « Source/core/dom/ScriptRunner.cpp ('k') | Source/core/html/parser/BackgroundHTMLParser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698