summaryrefslogtreecommitdiff
path: root/test/cctest
diff options
context:
space:
mode:
Diffstat (limited to 'test/cctest')
-rw-r--r--test/cctest/test_environment.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/cctest/test_environment.cc b/test/cctest/test_environment.cc
index 07170ac267..fa0f94a5ad 100644
--- a/test/cctest/test_environment.cc
+++ b/test/cctest/test_environment.cc
@@ -70,6 +70,26 @@ TEST_F(EnvironmentTest, MultipleEnvironmentsPerIsolate) {
EXPECT_TRUE(called_cb_2);
}
+TEST_F(EnvironmentTest, NonNodeJSContext) {
+ const v8::HandleScope handle_scope(isolate_);
+ const Argv argv;
+ Env test_env {handle_scope, argv};
+
+ EXPECT_EQ(node::Environment::GetCurrent(v8::Local<v8::Context>()), nullptr);
+
+ node::Environment* env = *test_env;
+ EXPECT_EQ(node::Environment::GetCurrent(isolate_), env);
+ EXPECT_EQ(node::Environment::GetCurrent(env->context()), env);
+
+ v8::Local<v8::Context> context = v8::Context::New(isolate_);
+ EXPECT_EQ(node::Environment::GetCurrent(context), nullptr);
+ EXPECT_EQ(node::Environment::GetCurrent(isolate_), env);
+
+ v8::Context::Scope context_scope(context);
+ EXPECT_EQ(node::Environment::GetCurrent(context), nullptr);
+ EXPECT_EQ(node::Environment::GetCurrent(isolate_), nullptr);
+}
+
static void at_exit_callback1(void* arg) {
called_cb_1 = true;
if (arg) {