[FIX] adjust view top when header height changes
[odoo/odoo.git] / addons / web / static / test / mutex.js
1 openerp.testing.section('mutex', {
2     dependencies: ['web.core'],
3     setup: function (instance) {
4     }
5 }, function (test) {
6     test('simpleScheduling', function (instance) {
7         var m = new $.Mutex();
8         var def1 = $.Deferred();
9         var def2 = $.Deferred();
10         var p1 = m.exec(function() { return def1; });
11         var p2 = m.exec(function() { return def2; });
12         equal(p1.state(), "pending");
13         equal(p2.state(), "pending");
14         def1.resolve();
15         equal(p1.state(), "resolved");
16         equal(p2.state(), "pending");
17         def2.resolve();
18         equal(p1.state(), "resolved");
19         equal(p2.state(), "resolved");
20     });
21     test('simpleScheduling2', function (instance) {
22         var m = new $.Mutex();
23         var def1 = $.Deferred();
24         var def2 = $.Deferred();
25         var p1 = m.exec(function() { return def1; });
26         var p2 = m.exec(function() { return def2; });
27         equal(p1.state(), "pending");
28         equal(p2.state(), "pending");
29         def2.resolve();
30         equal(p1.state(), "pending");
31         equal(p2.state(), "pending");
32         def1.resolve();
33         equal(p1.state(), "resolved");
34         equal(p2.state(), "resolved");
35     });
36     test('reject', function (instance) {
37         var m = new $.Mutex();
38         var def1 = $.Deferred();
39         var def2 = $.Deferred();
40         var def3 = $.Deferred();
41         var p1 = m.exec(function() {return def1;});
42         var p2 = m.exec(function() {return def2;});
43         var p3 = m.exec(function() {return def3;});
44         equal(p1.state(), "pending");
45         equal(p2.state(), "pending");
46         equal(p3.state(), "pending");
47         def1.resolve();
48         equal(p1.state(), "resolved");
49         equal(p2.state(), "pending");
50         equal(p3.state(), "pending");
51         def2.reject();
52         equal(p1.state(), "resolved");
53         equal(p2.state(), "rejected");
54         equal(p3.state(), "pending");
55         def3.resolve();
56         equal(p1.state(), "resolved");
57         equal(p2.state(), "rejected");
58         equal(p3.state(), "resolved");
59     });
60 });