Index: Source/bindings/v8/ScriptPromiseTest.cpp |
diff --git a/Source/bindings/v8/ScriptPromiseTest.cpp b/Source/bindings/v8/ScriptPromiseTest.cpp |
index 07153f1a96d0b9be2679f14438845efc2cf1dc79..8020ed6f443d9485ac731bd46f6a8ea9dc8af749 100644 |
--- a/Source/bindings/v8/ScriptPromiseTest.cpp |
+++ b/Source/bindings/v8/ScriptPromiseTest.cpp |
@@ -43,6 +43,8 @@ namespace WebCore { |
namespace { |
+void callback(const v8::FunctionCallbackInfo<v8::Value>& info) { } |
+ |
class ScriptPromiseTest : public testing::Test { |
public: |
ScriptPromiseTest() |
@@ -51,19 +53,16 @@ public: |
, m_context(m_isolate, v8::Context::New(m_isolate)) |
, m_contextScope(m_context.newLocal(m_isolate)) |
{ |
- } |
- |
- void SetUp() |
- { |
v8::Handle<v8::Context> context(m_context.newLocal(m_isolate)); |
V8PerContextDataHolder::install(context, DOMWrapperWorld::current(m_isolate)); |
m_perContextData = V8PerContextData::create(context); |
m_perContextData->init(); |
} |
- void TearDown() |
+ ~ScriptPromiseTest() |
{ |
- m_perContextData.clear(); |
+ // FIXME: We put this statement here to clear an exception from the isolate. |
+ createClosure(callback, v8::Undefined(m_isolate), m_isolate); |
} |
V8PromiseCustom::PromiseState state(ScriptPromise promise) |
@@ -79,10 +78,18 @@ protected: |
OwnPtr<V8PerContextData> m_perContextData; |
}; |
+TEST_F(ScriptPromiseTest, constructFromNonPromise) |
+{ |
+ v8::TryCatch trycatch; |
+ ScriptPromise promise(v8::Undefined(m_isolate), m_isolate); |
+ ASSERT_TRUE(trycatch.HasCaught()); |
+ ASSERT_TRUE(promise.hasNoValue()); |
+} |
+ |
TEST_F(ScriptPromiseTest, castPromise) |
{ |
ScriptPromise promise = ScriptPromise::createPending(); |
- ScriptPromise newPromise(ScriptValue(promise.v8Value(), m_isolate)); |
+ ScriptPromise newPromise = ScriptPromise::cast(ScriptValue(promise.v8Value(), m_isolate)); |
ASSERT_FALSE(promise.hasNoValue()); |
EXPECT_EQ(V8PromiseCustom::Pending, state(promise)); |
@@ -92,8 +99,8 @@ TEST_F(ScriptPromiseTest, castPromise) |
TEST_F(ScriptPromiseTest, castNonPromise) |
{ |
ScriptValue value = ScriptValue(v8String(m_isolate, "hello"), m_isolate); |
- ScriptPromise promise1(ScriptValue(value.v8Value(), m_isolate)); |
- ScriptPromise promise2(ScriptValue(value.v8Value(), m_isolate)); |
+ ScriptPromise promise1 = ScriptPromise::cast(ScriptValue(value.v8Value(), m_isolate)); |
+ ScriptPromise promise2 = ScriptPromise::cast(ScriptValue(value.v8Value(), m_isolate)); |
ASSERT_FALSE(promise1.hasNoValue()); |
ASSERT_FALSE(promise2.hasNoValue()); |