chromium/third_party/blink/web_tests/fast/js/resources/Promise-resolve-state-in-workers.js

importScripts('../../../resources/js-test.js');

description('Test Promise.');

jsTestIsAsync = true;

var resolve;
var promise = new Promise(function(r) { resolve = r; });
var promiseState = 'pending';
var promiseResult = undefined;
promise.then(function(result) {
  promiseState = 'fulfilled';
  promiseResult = result;
}, function(result) {
  promiseState = 'rejected';
  promiseResult = result;
});

shouldBeEqualToString('promiseState', 'pending');

resolve('hello');

shouldBeEqualToString('promiseState', 'pending');

promise.then(function() {
  shouldBeEqualToString('promiseState', 'fulfilled');
  shouldBeEqualToString('promiseResult', 'hello');
  finishJSTest();
}, function() {
  testFailed('promise is rejected.');
  finishJSTest();
});