Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(404)

Unified Diff: Source/bindings/v8/ScriptPromiseTest.cpp

Issue 181173002: ScriptPromise should check the constructor paraemter. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/bindings/v8/ScriptPromise.cpp ('k') | Source/modules/serviceworkers/RespondWithObserver.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/v8/ScriptPromiseTest.cpp
diff --git a/Source/bindings/v8/ScriptPromiseTest.cpp b/Source/bindings/v8/ScriptPromiseTest.cpp
index a33cd0eafe9c0dbb1c16bdc7807fe2e6cdabd6b1..ae9966c75452b6a1d2f7bfba19e52a99b8c3b816 100644
--- a/Source/bindings/v8/ScriptPromiseTest.cpp
+++ b/Source/bindings/v8/ScriptPromiseTest.cpp
@@ -43,21 +43,20 @@ namespace WebCore {
namespace {
+void callback(const v8::FunctionCallbackInfo<v8::Value>& info) { }
+
class ScriptPromiseTest : public testing::Test {
public:
ScriptPromiseTest()
: m_isolate(v8::Isolate::GetCurrent())
{
- }
-
- void SetUp()
- {
m_scope = V8BindingTestScope::create(m_isolate);
}
- void TearDown()
+ ~ScriptPromiseTest()
{
- m_scope.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)
@@ -72,10 +71,18 @@ private:
OwnPtr<V8BindingTestScope> m_scope;
};
+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));
@@ -85,8 +92,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());
« no previous file with comments | « Source/bindings/v8/ScriptPromise.cpp ('k') | Source/modules/serviceworkers/RespondWithObserver.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698