New Debian package release (0.9.2+git100420-1)
[conkeror.git] / tests / simple / hook.js
bloba04369bc5990e5ccbbe911b65543f5b30858b475
2 require("walnut.js");
4 // coroutine hook tests
5 walnut_run ({
6     suite_setup: function () {},
7     suite_teardown: function () {},
8     setup: function () {
9         define_coroutine_hook("test_hook");
10     },
11     teardown: function () {
12         test_hook = undefined;
13     },
14     test_synchronous_coroutine_hook: function () {
15         var a = 0;
16         function inc_a () { a += 1; }
17         add_hook("test_hook", inc_a);
18         co_call(test_hook.run());
19         assert_equals(a, 1);
20     },
21     test_asynchronous_coroutine_hook: function () {
22         var cont;
23         var str = "";
24         add_hook("test_hook",
25                  function () {
26                      str += "a";
27                      cont = yield CONTINUATION;
28                      str += (yield SUSPEND);
29                  });
30         add_hook("test_hook",
31                  function () str += "b");
32         co_call(test_hook.run());
33         cont("c");
34         assert_equals(str, "acb");
35     }
36 });