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

Side by Side Diff: Source/bindings/v8/ScriptPromiseResolverTest.cpp

Issue 26004002: Decouple ScriptPromise creation from ScriptPromiseResolver. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: rebase Created 7 years, 2 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 , m_handleScope(m_isolate) 49 , m_handleScope(m_isolate)
50 , m_context(m_isolate, v8::Context::New(m_isolate)) 50 , m_context(m_isolate, v8::Context::New(m_isolate))
51 , m_contextScope(m_context.newLocal(m_isolate)) 51 , m_contextScope(m_context.newLocal(m_isolate))
52 { 52 {
53 } 53 }
54 54
55 void SetUp() 55 void SetUp()
56 { 56 {
57 m_perContextData = V8PerContextData::create(m_context.newLocal(m_isolate )); 57 m_perContextData = V8PerContextData::create(m_context.newLocal(m_isolate ));
58 m_perContextData->init(); 58 m_perContextData->init();
59 m_resolver = ScriptPromiseResolver::create(); 59 m_promise = ScriptPromise::createPending();
60 m_promise = m_resolver->promise(); 60 m_resolver = ScriptPromiseResolver::create(m_promise);
61 } 61 }
62 62
63 void TearDown() 63 void TearDown()
64 { 64 {
65 m_resolver = 0; 65 m_resolver = 0;
66 m_promise.clear(); 66 m_promise.clear();
67 m_perContextData.clear(); 67 m_perContextData.clear();
68 } 68 }
69 69
70 V8PromiseCustom::PromiseState state() 70 V8PromiseCustom::PromiseState state()
(...skipping 22 matching lines...) Expand all
93 OwnPtr<V8PerContextData> m_perContextData; 93 OwnPtr<V8PerContextData> m_perContextData;
94 }; 94 };
95 95
96 TEST_F(ScriptPromiseResolverTest, initialState) 96 TEST_F(ScriptPromiseResolverTest, initialState)
97 { 97 {
98 EXPECT_TRUE(m_resolver->isPending()); 98 EXPECT_TRUE(m_resolver->isPending());
99 EXPECT_EQ(V8PromiseCustom::Pending, state()); 99 EXPECT_EQ(V8PromiseCustom::Pending, state());
100 EXPECT_TRUE(result()->IsUndefined()); 100 EXPECT_TRUE(result()->IsUndefined());
101 } 101 }
102 102
103 TEST_F(ScriptPromiseResolverTest, fulfill)
104 {
105 EXPECT_TRUE(m_resolver->isPending());
106 EXPECT_EQ(V8PromiseCustom::Pending, state());
107 EXPECT_TRUE(result()->IsUndefined());
108
109 m_resolver->fulfill(ScriptValue(v8::Integer::New(3, m_isolate), m_isolate));
110
111 EXPECT_FALSE(m_resolver->isPending());
112 EXPECT_EQ(V8PromiseCustom::Fulfilled, state());
113 ASSERT_TRUE(result()->IsNumber());
114 EXPECT_EQ(3, result().As<v8::Integer>()->Value());
115 }
116
117 TEST_F(ScriptPromiseResolverTest, resolve) 103 TEST_F(ScriptPromiseResolverTest, resolve)
118 { 104 {
119 EXPECT_TRUE(m_resolver->isPending()); 105 EXPECT_TRUE(m_resolver->isPending());
120 EXPECT_EQ(V8PromiseCustom::Pending, state()); 106 EXPECT_EQ(V8PromiseCustom::Pending, state());
121 EXPECT_TRUE(result()->IsUndefined()); 107 EXPECT_TRUE(result()->IsUndefined());
122 108
123 m_resolver->resolve(ScriptValue(v8::Integer::New(3, m_isolate), m_isolate)); 109 m_resolver->resolve(ScriptValue(v8::Integer::New(3, m_isolate), m_isolate));
124 110
125 EXPECT_FALSE(m_resolver->isPending()); 111 EXPECT_FALSE(m_resolver->isPending());
126 EXPECT_EQ(V8PromiseCustom::Fulfilled, state()); 112 EXPECT_EQ(V8PromiseCustom::Fulfilled, state());
127 ASSERT_TRUE(result()->IsNumber()); 113 ASSERT_TRUE(result()->IsNumber());
128 EXPECT_EQ(3, result().As<v8::Integer>()->Value()); 114 EXPECT_EQ(3, result().As<v8::Integer>()->Value());
129 } 115 }
130 116
131 TEST_F(ScriptPromiseResolverTest, reject) 117 TEST_F(ScriptPromiseResolverTest, reject)
132 { 118 {
133 EXPECT_TRUE(m_resolver->isPending()); 119 EXPECT_TRUE(m_resolver->isPending());
134 EXPECT_EQ(V8PromiseCustom::Pending, state()); 120 EXPECT_EQ(V8PromiseCustom::Pending, state());
135 EXPECT_TRUE(result()->IsUndefined()); 121 EXPECT_TRUE(result()->IsUndefined());
136 122
137 m_resolver->reject(ScriptValue(v8::Integer::New(3, m_isolate), m_isolate)); 123 m_resolver->reject(ScriptValue(v8::Integer::New(3, m_isolate), m_isolate));
138 124
139 EXPECT_FALSE(m_resolver->isPending()); 125 EXPECT_FALSE(m_resolver->isPending());
140 EXPECT_EQ(V8PromiseCustom::Rejected, state()); 126 EXPECT_EQ(V8PromiseCustom::Rejected, state());
141 ASSERT_TRUE(result()->IsNumber()); 127 ASSERT_TRUE(result()->IsNumber());
142 EXPECT_EQ(3, result().As<v8::Integer>()->Value()); 128 EXPECT_EQ(3, result().As<v8::Integer>()->Value());
143 } 129 }
144 130
145 TEST_F(ScriptPromiseResolverTest, fulfillOverFulfill) 131 TEST_F(ScriptPromiseResolverTest, resolveOverResolve)
146 { 132 {
147 EXPECT_TRUE(m_resolver->isPending()); 133 EXPECT_TRUE(m_resolver->isPending());
148 EXPECT_EQ(V8PromiseCustom::Pending, state()); 134 EXPECT_EQ(V8PromiseCustom::Pending, state());
149 EXPECT_TRUE(result()->IsUndefined()); 135 EXPECT_TRUE(result()->IsUndefined());
150 136
151 m_resolver->fulfill(ScriptValue(v8::Integer::New(3, m_isolate), m_isolate)); 137 m_resolver->resolve(ScriptValue(v8::Integer::New(3, m_isolate), m_isolate));
152 138
153 EXPECT_FALSE(m_resolver->isPending()); 139 EXPECT_FALSE(m_resolver->isPending());
154 EXPECT_EQ(V8PromiseCustom::Fulfilled, state()); 140 EXPECT_EQ(V8PromiseCustom::Fulfilled, state());
155 ASSERT_TRUE(result()->IsNumber()); 141 ASSERT_TRUE(result()->IsNumber());
156 EXPECT_EQ(3, result().As<v8::Integer>()->Value()); 142 EXPECT_EQ(3, result().As<v8::Integer>()->Value());
157 143
158 m_resolver->fulfill(ScriptValue(v8::Integer::New(4, m_isolate), m_isolate)); 144 m_resolver->resolve(ScriptValue(v8::Integer::New(4, m_isolate), m_isolate));
159 EXPECT_FALSE(m_resolver->isPending()); 145 EXPECT_FALSE(m_resolver->isPending());
160 EXPECT_EQ(V8PromiseCustom::Fulfilled, state()); 146 EXPECT_EQ(V8PromiseCustom::Fulfilled, state());
161 ASSERT_TRUE(result()->IsNumber()); 147 ASSERT_TRUE(result()->IsNumber());
162 EXPECT_EQ(3, result().As<v8::Integer>()->Value()); 148 EXPECT_EQ(3, result().As<v8::Integer>()->Value());
163 } 149 }
164 150
165 TEST_F(ScriptPromiseResolverTest, rejectOverFulfill) 151 TEST_F(ScriptPromiseResolverTest, rejectOverResolve)
166 { 152 {
167 EXPECT_TRUE(m_resolver->isPending()); 153 EXPECT_TRUE(m_resolver->isPending());
168 EXPECT_EQ(V8PromiseCustom::Pending, state()); 154 EXPECT_EQ(V8PromiseCustom::Pending, state());
169 EXPECT_TRUE(result()->IsUndefined()); 155 EXPECT_TRUE(result()->IsUndefined());
170 156
171 m_resolver->fulfill(ScriptValue(v8::Integer::New(3, m_isolate), m_isolate)); 157 m_resolver->resolve(ScriptValue(v8::Integer::New(3, m_isolate), m_isolate));
172 158
173 EXPECT_FALSE(m_resolver->isPending()); 159 EXPECT_FALSE(m_resolver->isPending());
174 EXPECT_EQ(V8PromiseCustom::Fulfilled, state()); 160 EXPECT_EQ(V8PromiseCustom::Fulfilled, state());
175 ASSERT_TRUE(result()->IsNumber()); 161 ASSERT_TRUE(result()->IsNumber());
176 EXPECT_EQ(3, result().As<v8::Integer>()->Value()); 162 EXPECT_EQ(3, result().As<v8::Integer>()->Value());
177 163
178 m_resolver->reject(ScriptValue(v8::Integer::New(4, m_isolate), m_isolate)); 164 m_resolver->reject(ScriptValue(v8::Integer::New(4, m_isolate), m_isolate));
179 EXPECT_FALSE(m_resolver->isPending()); 165 EXPECT_FALSE(m_resolver->isPending());
180 EXPECT_EQ(V8PromiseCustom::Fulfilled, state()); 166 EXPECT_EQ(V8PromiseCustom::Fulfilled, state());
181 ASSERT_TRUE(result()->IsNumber()); 167 ASSERT_TRUE(result()->IsNumber());
182 EXPECT_EQ(3, result().As<v8::Integer>()->Value()); 168 EXPECT_EQ(3, result().As<v8::Integer>()->Value());
183 } 169 }
184 170
185 TEST_F(ScriptPromiseResolverTest, detach)
186 {
187 EXPECT_TRUE(m_resolver->isPending());
188 EXPECT_EQ(V8PromiseCustom::Pending, state());
189 EXPECT_TRUE(result()->IsUndefined());
190
191 m_resolver->detach();
192
193 EXPECT_FALSE(m_resolver->isPending());
194 EXPECT_EQ(V8PromiseCustom::Rejected, state());
195 EXPECT_TRUE(result()->IsUndefined());
196 }
197
198 } // namespace 171 } // namespace
199 172
200 } // namespace WebCore 173 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698