blob: 1f99c338671370186638426a637c360cdcf7d655 [file] [log] [blame]
fpizlo@apple.com080acdd2013-09-18 22:26:09 +00001<!DOCTYPE html>
2<html>
3<head>
4<script src="../../resources/js-test-pre.js"></script>
5</head>
6<body>
7<div id="description"></div>
8<div id="console"></div>
9<script>
10description('Test Promise.');
11
12window.jsTestIsAsync = true;
13
weinig@apple.com349af4e2014-01-03 00:40:16 +000014var resolve;
15var promise = new Promise(function(r) { resolve = r; });
fpizlo@apple.com080acdd2013-09-18 22:26:09 +000016var promiseState = 'pending';
17var promiseResult = undefined;
18promise.then(function(result) {
19 promiseState = 'fulfilled';
20 promiseResult = result;
21}, function(result) {
22 promiseState = 'rejected';
23 promiseResult = result;
24});
25
26shouldBeEqualToString('promiseState', 'pending');
27
weinig@apple.com349af4e2014-01-03 00:40:16 +000028resolve('hello');
fpizlo@apple.com080acdd2013-09-18 22:26:09 +000029
30shouldBeEqualToString('promiseState', 'pending');
31
32promise.then(function() {
33 shouldBeEqualToString('promiseState', 'fulfilled');
34 shouldBeEqualToString('promiseResult', 'hello');
35 finishJSTest();
36}, function() {
37 testFailed('promise is rejected.');
38 finishJSTest();
39});
40
41</script>
42<script src="../../resources/js-test-post.js"></script>
43</body>
44</html>