mirror of
https://github.com/servo/servo.git
synced 2025-08-04 05:00:08 +01:00
Create meaningful tests for native promise handlers.
This commit is contained in:
parent
57b3ccd38c
commit
ae81ab3972
3 changed files with 23 additions and 6 deletions
|
@ -660,6 +660,14 @@ impl TestBindingMethods for TestBinding {
|
|||
Promise::Reject(self.global().r(), cx, v)
|
||||
}
|
||||
|
||||
fn PromiseResolveNative(&self, cx: *mut JSContext, p: &Promise, v: HandleValue) {
|
||||
p.maybe_resolve(cx, v);
|
||||
}
|
||||
|
||||
fn PromiseRejectNative(&self, cx: *mut JSContext, p: &Promise, v: HandleValue) {
|
||||
p.maybe_reject(cx, v);
|
||||
}
|
||||
|
||||
#[allow(unrooted_must_root)]
|
||||
fn PromiseNativeHandler(&self,
|
||||
resolve: Option<Rc<SimpleCallback>>,
|
||||
|
|
|
@ -516,6 +516,8 @@ interface TestBinding {
|
|||
void acceptPromise(Promise<DOMString> string);
|
||||
void acceptNullablePromise(Promise<DOMString>? string);
|
||||
Promise<any> promiseNativeHandler(SimpleCallback? resolve, SimpleCallback? reject);
|
||||
void promiseResolveNative(Promise<any> p, any value);
|
||||
void promiseRejectNative(Promise<any> p, any value);
|
||||
|
||||
void panic();
|
||||
};
|
||||
|
|
|
@ -23,18 +23,25 @@
|
|||
|
||||
promise_test(function(test) {
|
||||
var t = new TestBinding;
|
||||
var resolved;
|
||||
var p = t.promiseNativeHandler(function(v) {
|
||||
assert_equals(v, 'success');
|
||||
resolved = v;
|
||||
}, null);
|
||||
return Promise.resolve('success').then(p);
|
||||
t.promiseResolveNative(p, 'success');
|
||||
return p.then(function() {
|
||||
assert_equals(resolved, 'success')
|
||||
});
|
||||
}, 'Native resolve callback gets argument');
|
||||
|
||||
promise_test(function(test) {
|
||||
var t = new TestBinding;
|
||||
var rejected;
|
||||
var p = t.promiseNativeHandler(null, function(v) {
|
||||
assert_equals(v, 'success');
|
||||
rejected = v;
|
||||
});
|
||||
p.then(test.unreached_func());
|
||||
return Promise.resolve('success').then(p);
|
||||
}, 'Native resolve callback gets argument');
|
||||
t.promiseRejectNative(p, 'success');
|
||||
return p.catch(function() {
|
||||
assert_equals(rejected, 'success')
|
||||
});
|
||||
}, 'Native reject callback gets argument');
|
||||
</script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue