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

Unified Diff: gin/test/file_runner.cc

Issue 74753002: Introduce gin_shell (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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
« gin/gin.gyp ('K') | « gin/test/file_runner.h ('k') | gin/try_catch.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gin/test/file_runner.cc
diff --git a/gin/test/file_runner.cc b/gin/test/file_runner.cc
index a8d0cc213a66306f9e43b316d9eeb9f1baff3929..a343d6483cc33d376111c347cd8074ac3e749b4b 100644
--- a/gin/test/file_runner.cc
+++ b/gin/test/file_runner.cc
@@ -5,37 +5,36 @@
#include "gin/test/file_runner.h"
#include "base/file_util.h"
+#include "base/message_loop/message_loop.h"
+#include "base/path_service.h"
#include "gin/converter.h"
#include "gin/modules/module_registry.h"
#include "gin/test/gtest.h"
+#include "gin/try_catch.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace gin {
namespace {
-std::string GetExceptionInfo(const v8::TryCatch& try_catch) {
- std::string info;
- ConvertFromV8(try_catch.Message()->Get(), &info);
- return info;
+base::FilePath GetModuleBase() {
+ base::FilePath path;
+ PathService::Get(base::DIR_SOURCE_ROOT, &path);
+ return path;
}
} // namespace
-FileRunnerDelegate::FileRunnerDelegate() {
+FileRunnerDelegate::FileRunnerDelegate()
+ : ModuleRunnerDelegate(GetModuleBase()) {
}
FileRunnerDelegate::~FileRunnerDelegate() {
}
-v8::Handle<v8::ObjectTemplate> FileRunnerDelegate::GetGlobalTemplate(
- Runner* runner) {
- v8::Handle<v8::ObjectTemplate> templ = v8::ObjectTemplate::New();
- ModuleRegistry::RegisterGlobals(runner->isolate(), templ);
- return templ;
-}
-
void FileRunnerDelegate::DidCreateContext(Runner* runner) {
+ ModuleRunnerDelegate::DidCreateContext(runner);
+
v8::Handle<v8::Context> context = runner->context();
ModuleRegistry* registry = ModuleRegistry::From(context);
@@ -43,16 +42,24 @@ void FileRunnerDelegate::DidCreateContext(Runner* runner) {
GetGTestTemplate(runner->isolate()));
}
+void FileRunnerDelegate::UnhandledException(Runner* runner,
+ TryCatch& try_catch) {
+ ModuleRunnerDelegate::UnhandledException(runner, try_catch);
+ EXPECT_FALSE(try_catch.HasCaught()) << try_catch.GetPrettyMessage();
+}
+
void RunTestFromFile(const base::FilePath& path, RunnerDelegate* delegate) {
ASSERT_TRUE(base::PathExists(path)) << path.LossyDisplayName();
std::string source;
ASSERT_TRUE(ReadFileToString(path, &source));
+
+ base::MessageLoop message_loop;
+
gin::Runner runner(delegate, v8::Isolate::GetCurrent());
gin::Runner::Scope scope(&runner);
-
- v8::TryCatch try_catch;
runner.Run(source);
- EXPECT_FALSE(try_catch.HasCaught()) << GetExceptionInfo(try_catch);
+
+ message_loop.RunUntilIdle();
v8::Handle<v8::Value> result = runner.context()->Global()->Get(
StringToSymbol(runner.isolate(), "result"));
« gin/gin.gyp ('K') | « gin/test/file_runner.h ('k') | gin/try_catch.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698