1
openerp.testing.section('mutex', {
2
dependencies: ['web.coresetup'],
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");