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

Unified Diff: gin/test/file_runner.cc

Issue 62333018: Implement Asynchronous Module Definition API for Mojo (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moar testing 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
Index: gin/test/file_runner.cc
diff --git a/gin/test/file_runner.cc b/gin/test/file_runner.cc
new file mode 100644
index 0000000000000000000000000000000000000000..a8d0cc213a66306f9e43b316d9eeb9f1baff3929
--- /dev/null
+++ b/gin/test/file_runner.cc
@@ -0,0 +1,64 @@
+// Copyright 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "gin/test/file_runner.h"
+
+#include "base/file_util.h"
+#include "gin/converter.h"
+#include "gin/modules/module_registry.h"
+#include "gin/test/gtest.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;
+}
+
+} // namespace
+
+FileRunnerDelegate::FileRunnerDelegate() {
+}
+
+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) {
+ v8::Handle<v8::Context> context = runner->context();
+ ModuleRegistry* registry = ModuleRegistry::From(context);
+
+ registry->AddBuiltinModule(runner->isolate(), "gtest",
+ GetGTestTemplate(runner->isolate()));
+}
+
+void RunTestFromFile(const base::FilePath& path, RunnerDelegate* delegate) {
+ ASSERT_TRUE(base::PathExists(path)) << path.LossyDisplayName();
+ std::string source;
+ ASSERT_TRUE(ReadFileToString(path, &source));
+ 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);
+
+ v8::Handle<v8::Value> result = runner.context()->Global()->Get(
+ StringToSymbol(runner.isolate(), "result"));
+ std::string result_string;
+ ASSERT_TRUE(ConvertFromV8(result, &result_string));
+ EXPECT_EQ("PASS", result_string);
+}
+
+} // namespace gin

Powered by Google App Engine
This is Rietveld 408576698