~tempo-openerp/+junk/loewert-report-name

« back to all changes in this revision

Viewing changes to web/addons/web/static/test/mutex.js

  • Committer: jbe at tempo-consulting
  • Date: 2013-08-21 08:48:11 UTC
  • Revision ID: jbe@tempo-consulting.fr-20130821084811-913uo4l7b5ayxq8m
[NEW] Création de la branche trunk Loewert

Show diffs side-by-side

added added

removed removed

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