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

Side by Side Diff: third_party/WebKit/Source/platform/testing/UnitTestHelpers.cpp

Issue 2654933003: platform/testing/{URL|Unit}TestHelpers improvements (Closed)
Patch Set: header changes Created 3 years, 10 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 26 matching lines...) Expand all
37 #include "public/platform/FilePathConversion.h" 37 #include "public/platform/FilePathConversion.h"
38 #include "public/platform/Platform.h" 38 #include "public/platform/Platform.h"
39 #include "public/platform/WebString.h" 39 #include "public/platform/WebString.h"
40 #include "public/platform/WebThread.h" 40 #include "public/platform/WebThread.h"
41 #include "public/platform/WebTraceLocation.h" 41 #include "public/platform/WebTraceLocation.h"
42 #include "wtf/text/StringUTF8Adaptor.h" 42 #include "wtf/text/StringUTF8Adaptor.h"
43 43
44 namespace blink { 44 namespace blink {
45 namespace testing { 45 namespace testing {
46 46
47 namespace {
48
49 base::FilePath blinkRootFilePath() {
50 base::FilePath path;
51 base::PathService::Get(base::DIR_SOURCE_ROOT, &path);
52 return base::MakeAbsoluteFilePath(
53 path.Append(FILE_PATH_LITERAL("third_party/WebKit")));
54 }
55
56 } // namespace
57
47 void runPendingTasks() { 58 void runPendingTasks() {
48 Platform::current()->currentThread()->getWebTaskRunner()->postTask( 59 Platform::current()->currentThread()->getWebTaskRunner()->postTask(
49 BLINK_FROM_HERE, WTF::bind(&exitRunLoop)); 60 BLINK_FROM_HERE, WTF::bind(&exitRunLoop));
50 61
51 // We forbid GC in the tasks. Otherwise the registered GCTaskObserver tries 62 // We forbid GC in the tasks. Otherwise the registered GCTaskObserver tries
52 // to run GC with NoHeapPointerOnStack. 63 // to run GC with NoHeapPointerOnStack.
53 ThreadState::current()->enterGCForbiddenScope(); 64 ThreadState::current()->enterGCForbiddenScope();
54 enterRunLoop(); 65 enterRunLoop();
55 ThreadState::current()->leaveGCForbiddenScope(); 66 ThreadState::current()->leaveGCForbiddenScope();
56 } 67 }
57 68
58 void runDelayedTasks(double delayMs) { 69 void runDelayedTasks(double delayMs) {
59 Platform::current()->currentThread()->getWebTaskRunner()->postDelayedTask( 70 Platform::current()->currentThread()->getWebTaskRunner()->postDelayedTask(
60 BLINK_FROM_HERE, WTF::bind(&exitRunLoop), delayMs); 71 BLINK_FROM_HERE, WTF::bind(&exitRunLoop), delayMs);
61 enterRunLoop(); 72 enterRunLoop();
62 } 73 }
63 74
64 String blinkRootDir() {
65 base::FilePath path;
66 base::PathService::Get(base::DIR_SOURCE_ROOT, &path);
67 path = path.Append(FILE_PATH_LITERAL("third_party/WebKit"));
68 path = base::MakeAbsoluteFilePath(path);
69 return String::fromUTF8(path.MaybeAsASCII().c_str());
70 }
71
72 PassRefPtr<SharedBuffer> readFromFile(const String& path) {
73 base::FilePath filePath = blink::WebStringToFilePath(path);
74 std::string buffer;
75 base::ReadFileToString(filePath, &buffer);
76 return SharedBuffer::create(buffer.data(), buffer.size());
77 }
78
79 void enterRunLoop() { 75 void enterRunLoop() {
80 base::RunLoop().Run(); 76 base::RunLoop().Run();
81 } 77 }
82 78
83 void exitRunLoop() { 79 void exitRunLoop() {
84 base::MessageLoop::current()->QuitWhenIdle(); 80 base::MessageLoop::current()->QuitWhenIdle();
85 } 81 }
86 82
87 void yieldCurrentThread() { 83 void yieldCurrentThread() {
88 base::PlatformThread::YieldCurrentThread(); 84 base::PlatformThread::YieldCurrentThread();
89 } 85 }
90 86
87 String blinkRootDir() {
88 return FilePathToWebString(blinkRootFilePath());
89 }
90
91 String webTestDataPath(const String& relativePath) {
92 return FilePathToWebString(
93 blinkRootFilePath()
94 .Append(FILE_PATH_LITERAL("Source/web/tests/data"))
95 .Append(WebStringToFilePath(relativePath)));
96 }
97
98 String platformTestDataPath(const String& relativePath) {
99 return FilePathToWebString(
100 blinkRootFilePath()
101 .Append(FILE_PATH_LITERAL("Source/platform/testing/data"))
102 .Append(WebStringToFilePath(relativePath)));
103 }
104
105 PassRefPtr<SharedBuffer> readFromFile(const String& path) {
106 base::FilePath filePath = blink::WebStringToFilePath(path);
107 std::string buffer;
108 base::ReadFileToString(filePath, &buffer);
109 return SharedBuffer::create(buffer.data(), buffer.size());
110 }
111
91 } // namespace testing 112 } // namespace testing
92 } // namespace blink 113 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698