1 openerp.testing.section('mutex', {
2 dependencies: ['web.core'],
3 setup: function (instance) {
6 test('simpleScheduling', function (instance) {
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");
15 equal(p1.state(), "resolved");
16 equal(p2.state(), "pending");
18 equal(p1.state(), "resolved");
19 equal(p2.state(), "resolved");
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");
30 equal(p1.state(), "pending");
31 equal(p2.state(), "pending");
33 equal(p1.state(), "resolved");
34 equal(p2.state(), "resolved");
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");
48 equal(p1.state(), "resolved");
49 equal(p2.state(), "pending");
50 equal(p3.state(), "pending");
52 equal(p1.state(), "resolved");
53 equal(p2.state(), "rejected");
54 equal(p3.state(), "pending");
56 equal(p1.state(), "resolved");
57 equal(p2.state(), "rejected");
58 equal(p3.state(), "resolved");