1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?xml version="1.0"?>
- <!-- This Source Code Form is subject to the terms of the Mozilla Public
- - License, v. 2.0. If a copy of the MPL was not distributed with this
- - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
- <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
- type="text/css"?>
- <window title="Test spawnTawk function"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <script type="application/javascript"
- src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
- <script type="application/javascript"
- src="chrome://mochikit/content/tests/SimpleTest/SpawnTask.js"/>
- <script type="application/javascript">
- <![CDATA[
- SimpleTest.waitForExplicitFinish();
- var externalGeneratorFunction = function* () {
- return 8;
- };
- var nestedFunction = function* () {
- return yield function* () {
- return yield function* () {
- return yield function* () {
- return yield Promise.resolve(9);
- }();
- }();
- }();
- }
- var variousTests = function* () {
- var val1 = yield [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)];
- is(val1.join(""), "123", "Array of promises -> Promise.all");
- var val2 = yield Promise.resolve(2);
- is(val2, 2, "Resolved promise yields value.");
- var val3 = yield function* () { return 3; };
- is(val3, 3, "Generator functions are spawned.");
- //var val4 = yield function () { return 4; };
- //is(val4, 4, "Plain functions run and return.");
- var val5 = yield (function* () { return 5; }());
- is(val5, 5, "Generators are spawned.");
- try {
- var val6 = yield Promise.reject(Error("error6"));
- ok(false, "Shouldn't reach this line.");
- } catch (error) {
- is(error.message, "error6", "Rejected promise throws error.");
- }
- try {
- var val7 = yield function* () { throw Error("error7"); };
- ok(false, "Shouldn't reach this line.");
- } catch (error) {
- is(error.message, "error7", "Thrown error propagates.");
- }
- var val8 = yield externalGeneratorFunction();
- is(val8, 8, "External generator also spawned.");
- var val9 = yield nestedFunction();
- is(val9, 9, "Nested generator functions work.");
- return 10;
- };
- spawn_task(variousTests).then(function(result) {
- is(result, 10, "spawn_task(...) returns promise");
- SimpleTest.finish();
- });
- ]]>
- </script>
- <body xmlns="http://www.w3.org/1999/xhtml" >
- </body>
- </window>
|