diff options
Diffstat (limited to 'test/cctest')
-rw-r--r-- | test/cctest/test_environment.cc | 20 |
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) { |