Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / bindings / v8 / ScriptPromiseTest.cpp
index c40fa5e..b46e527 100644 (file)
@@ -31,6 +31,7 @@
 #include "config.h"
 #include "bindings/v8/ScriptPromise.h"
 
+#include "RuntimeEnabledFeatures.h"
 #include "bindings/v8/DOMWrapperWorld.h"
 #include "bindings/v8/ScriptPromiseResolver.h"
 #include "bindings/v8/ScriptValue.h"
@@ -49,15 +50,14 @@ void callback(const v8::FunctionCallbackInfo<v8::Value>& info) { }
 class ScriptPromiseTest : public testing::Test {
 public:
     ScriptPromiseTest()
-        : m_isolate(v8::Isolate::GetCurrent())
+        : m_scope(V8ExecutionScope::create(v8::Isolate::GetCurrent()))
     {
-        m_scope = V8ExecutionScope::create(m_isolate);
     }
 
     ~ScriptPromiseTest()
     {
         // FIXME: We put this statement here to clear an exception from the isolate.
-        createClosure(callback, v8::Undefined(m_isolate), m_isolate);
+        createClosure(callback, v8::Undefined(m_scope->isolate()), m_scope->isolate());
     }
 
     V8PromiseCustom::PromiseState state(ScriptPromise promise)
@@ -66,41 +66,42 @@ public:
     }
 
 protected:
-    v8::Isolate* m_isolate;
-
-private:
     OwnPtr<V8ExecutionScope> m_scope;
 };
 
 TEST_F(ScriptPromiseTest, constructFromNonPromise)
 {
     v8::TryCatch trycatch;
-    ScriptPromise promise(v8::Undefined(m_isolate), m_isolate);
+    ScriptPromise promise(m_scope->scriptState(), v8::Undefined(m_scope->isolate()));
     ASSERT_TRUE(trycatch.HasCaught());
-    ASSERT_TRUE(promise.hasNoValue());
+    ASSERT_TRUE(promise.isEmpty());
 }
 
 TEST_F(ScriptPromiseTest, castPromise)
 {
-    ScriptPromise promise = ScriptPromiseResolver::create(m_isolate)->promise();
-    ScriptPromise newPromise = ScriptPromise::cast(ScriptValue(promise.v8Value(), m_isolate));
+    if (RuntimeEnabledFeatures::scriptPromiseOnV8PromiseEnabled())
+        return;
+    ScriptPromise promise = ScriptPromiseResolver::create(m_scope->scriptState())->promise();
+    ScriptPromise newPromise = ScriptPromise::cast(ScriptValue(m_scope->scriptState(), promise.v8Value()));
 
-    ASSERT_FALSE(promise.hasNoValue());
+    ASSERT_FALSE(promise.isEmpty());
     EXPECT_EQ(V8PromiseCustom::Pending, state(promise));
     EXPECT_EQ(promise.v8Value(), newPromise.v8Value());
 }
 
 TEST_F(ScriptPromiseTest, castNonPromise)
 {
-    ScriptValue value = ScriptValue(v8String(m_isolate, "hello"), m_isolate);
-    ScriptPromise promise1 = ScriptPromise::cast(ScriptValue(value.v8Value(), m_isolate));
-    ScriptPromise promise2 = ScriptPromise::cast(ScriptValue(value.v8Value(), m_isolate));
+    if (RuntimeEnabledFeatures::scriptPromiseOnV8PromiseEnabled())
+        return;
+    ScriptValue value = ScriptValue(m_scope->scriptState(), v8String(m_scope->isolate(), "hello"));
+    ScriptPromise promise1 = ScriptPromise::cast(ScriptValue(value));
+    ScriptPromise promise2 = ScriptPromise::cast(ScriptValue(value));
 
-    ASSERT_FALSE(promise1.hasNoValue());
-    ASSERT_FALSE(promise2.hasNoValue());
+    ASSERT_FALSE(promise1.isEmpty());
+    ASSERT_FALSE(promise2.isEmpty());
 
-    ASSERT_TRUE(V8PromiseCustom::isPromise(promise1.v8Value(), m_isolate));
-    ASSERT_TRUE(V8PromiseCustom::isPromise(promise2.v8Value(), m_isolate));
+    ASSERT_TRUE(V8PromiseCustom::isPromise(promise1.v8Value(), m_scope->isolate()));
+    ASSERT_TRUE(V8PromiseCustom::isPromise(promise2.v8Value(), m_scope->isolate()));
 
     EXPECT_EQ(V8PromiseCustom::Fulfilled, state(promise1));
     EXPECT_EQ(V8PromiseCustom::Fulfilled, state(promise2));