Index: mojo/public/bindings/js/v8_runner_unittest.cc |
diff --git a/mojo/public/bindings/js/v8_runner_unittest.cc b/mojo/public/bindings/js/v8_runner_unittest.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6d66714765f3fad4b14e1cef171de6c8e09de4ce |
--- /dev/null |
+++ b/mojo/public/bindings/js/v8_runner_unittest.cc |
@@ -0,0 +1,42 @@ |
+// 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 "mojo/public/bindings/js/v8_runner.h" |
+ |
+#include "mojo/public/bindings/js/v8_string.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace mojo { |
+namespace js { |
+namespace { |
+ |
+std::string ReadGlobal(v8::Isolate* isolate, |
+ v8::Handle<v8::Context> context, |
+ std::string property) { |
+ v8::Handle<v8::String> v8_property = |
+ Wrapper<std::string>::ToObject(isolate, property); |
+ return Wrapper<std::string>::ToNative(context->Global()->Get(v8_property)); |
+} |
+ |
+TEST(Runner, Basic) { |
+ std::string source = |
+ "function main(mojo) {\n" |
+ " if (mojo.createMessagePipe)\n" |
+ " this.result = 'PASS';\n" |
+ " else\n" |
+ " this.result = 'FAIL';\n" |
+ "}\n"; |
+ |
+ v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
+ Runner runner(isolate); |
+ Runner::Scope scope(&runner); |
+ runner.Run(v8::Script::New(Wrapper<std::string>::ToObject(isolate, source))); |
+ |
+ std::string result = ReadGlobal(isolate, runner.context(isolate), "result"); |
+ EXPECT_EQ("PASS", result); |
+} |
+ |
+} // namespace |
+} // namespace js |
+} // namespace mojo |