web/test/jstests/test_ajax.js
author Rémi Cardona <remi.cardona@logilab.fr>
Wed, 13 May 2015 16:43:03 +0200
changeset 10419 5edd38e3205f
parent 10418 e1076102bd84
child 10420 da7699ccad68
permissions -rw-r--r--
[web/test] Fix remaining JS tests (closes #5533303)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     1
$(document).ready(function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
     2
5950
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
     3
    module("ajax", {
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
     4
        setup: function() {
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
     5
          this.scriptsLength = $('head script[src]').length-1;
6214
e03808843325 [javascript] fix test_ajax.js implementation
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5950
diff changeset
     6
          this.cssLength = $('head link[rel=stylesheet]').length-1;
e03808843325 [javascript] fix test_ajax.js implementation
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5950
diff changeset
     7
          // re-initialize cw loaded cache so that each tests run in a
e03808843325 [javascript] fix test_ajax.js implementation
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5950
diff changeset
     8
          // clean environment, have a lookt at _loadAjaxHtmlHead implementation
e03808843325 [javascript] fix test_ajax.js implementation
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5950
diff changeset
     9
          // in cubicweb.ajax.js for more information.
10416
6e5e1617e1cd [web/test] Fix reset of loaded JS/CSS files
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10413
diff changeset
    10
          cw.loaded_scripts = [];
6e5e1617e1cd [web/test] Fix reset of loaded JS/CSS files
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10413
diff changeset
    11
          cw.loaded_links = [];
5950
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
    12
        },
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
    13
        teardown: function() {
10419
5edd38e3205f [web/test] Fix remaining JS tests (closes #5533303)
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10418
diff changeset
    14
          $('head script[src]:lt(' + ($('head script[src]').length - 1 - this.scriptsLength) + ')').remove();
5950
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
    15
          $('head link[rel=stylesheet]:gt(' + this.cssLength + ')').remove();
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
    16
        }
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
    17
      });
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
    18
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    19
    function jsSources() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    20
        return $.map($('head script[src]'), function(script) {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    21
            return script.getAttribute('src');
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    22
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    23
    }
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    24
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    25
    test('test simple h1 inclusion (ajax_url0.html)', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    26
        expect(3);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    27
        equals(jQuery('#main').children().length, 0);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    28
        stop();
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
    29
        jQuery('#main').loadxhtml(BASE_URL + 'cwsoftwareroot/web/test/jstests/ajax_url0.html')
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
    30
        .addCallback(function() {
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    31
                try {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    32
                    equals(jQuery('#main').children().length, 1);
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    33
                    equals(jQuery('#main h1').html(), 'Hello');
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    34
                } finally {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    35
                    start();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    36
                };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    37
            }
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
    38
        );
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    39
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    40
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    41
    test('test simple html head inclusion (ajax_url1.html)', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    42
        expect(6);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    43
        var scriptsIncluded = jsSources();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    44
        equals(jQuery.inArray('http://foo.js', scriptsIncluded), - 1);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    45
        stop();
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
    46
        jQuery('#main').loadxhtml(BASE_URL + 'cwsoftwareroot/web/test/jstests/ajax_url1.html')
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
    47
        .addCallback(function() {
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    48
                try {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    49
                    var origLength = scriptsIncluded.length;
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    50
                    scriptsIncluded = jsSources();
10419
5edd38e3205f [web/test] Fix remaining JS tests (closes #5533303)
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10418
diff changeset
    51
                    // check that foo.js has been prepended to <head>
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    52
                    equals(scriptsIncluded.length, origLength + 1);
10419
5edd38e3205f [web/test] Fix remaining JS tests (closes #5533303)
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10418
diff changeset
    53
                    equals(scriptsIncluded.indexOf('http://foo.js'), 0);
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    54
                    // check that <div class="ajaxHtmlHead"> has been removed
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    55
                    equals(jQuery('#main').children().length, 1);
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    56
                    equals(jQuery('div.ajaxHtmlHead').length, 0);
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    57
                    equals(jQuery('#main h1').html(), 'Hello');
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    58
                } finally {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    59
                    start();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    60
                };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    61
            }
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
    62
        );
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    63
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    64
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    65
    test('test addCallback', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    66
        expect(3);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    67
        equals(jQuery('#main').children().length, 0);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    68
        stop();
10413
22a89d0f4143 [devtools] Serve JS tests over HTTP (closes #5533285)
Rémi Cardona <remi.cardona@logilab.fr>
parents: 8879
diff changeset
    69
        var d = jQuery('#main').loadxhtml(BASE_URL + 'cwsoftwareroot/web/test/jstests/ajax_url0.html');
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    70
        d.addCallback(function() {
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    71
            try {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    72
                equals(jQuery('#main').children().length, 1);
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    73
                equals(jQuery('#main h1').html(), 'Hello');
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    74
            } finally {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    75
                start();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    76
            };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    77
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    78
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    79
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    80
    test('test callback after synchronous request', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    81
        expect(1);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    82
        var deferred = new Deferred();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    83
        var result = jQuery.ajax({
10413
22a89d0f4143 [devtools] Serve JS tests over HTTP (closes #5533285)
Rémi Cardona <remi.cardona@logilab.fr>
parents: 8879
diff changeset
    84
            url: BASE_URL + 'cwsoftwareroot/web/test/jstests/ajax_url0.html',
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    85
            async: false,
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    86
            beforeSend: function(xhr) {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    87
                deferred._req = xhr;
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    88
            },
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    89
            success: function(data, status) {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    90
                deferred.success(data);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    91
            }
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    92
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    93
        stop();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    94
        deferred.addCallback(function() {
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    95
            try {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    96
                // add an assertion to ensure the callback is executed
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    97
                ok(true, "callback is executed");
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    98
            } finally {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    99
                start();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   100
            };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   101
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   102
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   103
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   104
    test('test addCallback with parameters', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   105
        expect(3);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   106
        equals(jQuery('#main').children().length, 0);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   107
        stop();
10413
22a89d0f4143 [devtools] Serve JS tests over HTTP (closes #5533285)
Rémi Cardona <remi.cardona@logilab.fr>
parents: 8879
diff changeset
   108
        var d = jQuery('#main').loadxhtml(BASE_URL + 'cwsoftwareroot/web/test/jstests/ajax_url0.html');
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   109
        d.addCallback(function(data, req, arg1, arg2) {
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   110
            try {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   111
                equals(arg1, 'Hello');
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   112
                equals(arg2, 'world');
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   113
            } finally {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   114
                start();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   115
            };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   116
        },
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   117
        'Hello', 'world');
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   118
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   119
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   120
    test('test callback after synchronous request with parameters', function() {
10419
5edd38e3205f [web/test] Fix remaining JS tests (closes #5533303)
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10418
diff changeset
   121
        expect(3);
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   122
        var deferred = new Deferred();
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   123
        deferred.addCallback(function(data, req, arg1, arg2) {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   124
            // add an assertion to ensure the callback is executed
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   125
            try {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   126
                ok(true, "callback is executed");
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   127
                equals(arg1, 'Hello');
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   128
                equals(arg2, 'world');
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   129
            } finally {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   130
                start();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   131
            };
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   132
        },
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   133
        'Hello', 'world');
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   134
        deferred.addErrback(function() {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   135
            // throw an exception to start errback chain
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   136
            try {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   137
                throw this._error;
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   138
            } finally {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   139
                start();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   140
            };
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   141
        });
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   142
        stop();
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   143
        var result = jQuery.ajax({
10413
22a89d0f4143 [devtools] Serve JS tests over HTTP (closes #5533285)
Rémi Cardona <remi.cardona@logilab.fr>
parents: 8879
diff changeset
   144
            url: BASE_URL + 'cwsoftwareroot/web/test/jstests/ajax_url0.html',
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   145
            async: false,
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   146
            beforeSend: function(xhr) {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   147
                deferred._req = xhr;
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   148
            },
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   149
            success: function(data, status) {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   150
                deferred.success(data);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   151
            }
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   152
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   153
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   154
6215
759cf097f5aa [javascript] get rid of tabs
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 6214
diff changeset
   155
  test('test addErrback', function() {
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   156
        expect(1);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   157
        stop();
10418
e1076102bd84 [web/test] Stop testing that exceptions raised in Deferred callbacks call errback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10417
diff changeset
   158
        var d = jQuery('#main').loadxhtml(BASE_URL + 'cwsoftwareroot/web/test/jstests/nonexistent.html');
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   159
        d.addCallback(function() {
10418
e1076102bd84 [web/test] Stop testing that exceptions raised in Deferred callbacks call errback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10417
diff changeset
   160
            // should not be executed
e1076102bd84 [web/test] Stop testing that exceptions raised in Deferred callbacks call errback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10417
diff changeset
   161
            ok(false, "callback is executed");
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   162
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   163
        d.addErrback(function() {
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   164
            try {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   165
                ok(true, "errback is executed");
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   166
            } finally {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   167
                start();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   168
            };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   169
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   170
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   171
10418
e1076102bd84 [web/test] Stop testing that exceptions raised in Deferred callbacks call errback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10417
diff changeset
   172
    test('test callback execution order', function() {
e1076102bd84 [web/test] Stop testing that exceptions raised in Deferred callbacks call errback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10417
diff changeset
   173
        expect(3);
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   174
        var counter = 0;
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   175
        stop();
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   176
        var d = jQuery('#main').loadxhtml(BASE_URL + 'cwsoftwareroot/web/test/jstests/ajax_url0.html');
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   177
        d.addCallback(function() {
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   178
                try {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   179
                    equals(++counter, 1); // should be executed first
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   180
                } finally {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   181
                    start();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   182
                };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   183
            }
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   184
        );
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   185
        d.addCallback(function() {
10418
e1076102bd84 [web/test] Stop testing that exceptions raised in Deferred callbacks call errback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10417
diff changeset
   186
            equals(++counter, 2);
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   187
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   188
        d.addCallback(function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   189
            equals(++counter, 3);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   190
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   191
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   192
6215
759cf097f5aa [javascript] get rid of tabs
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 6214
diff changeset
   193
    test('test already included resources are ignored (ajax_url1.html)', function() {
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   194
        expect(10);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   195
        var scriptsIncluded = jsSources();
6215
759cf097f5aa [javascript] get rid of tabs
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 6214
diff changeset
   196
        // NOTE:
759cf097f5aa [javascript] get rid of tabs
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 6214
diff changeset
   197
        equals(jQuery.inArray('http://foo.js', scriptsIncluded), -1);
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   198
        equals(jQuery('head link').length, 1);
5743
4a0600664f85 Use the qunit automatic launcher for existing testcase.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 5658
diff changeset
   199
        /* use endswith because in pytest context we have an absolute path */
4a0600664f85 Use the qunit automatic launcher for existing testcase.
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 5658
diff changeset
   200
        ok(jQuery('head link').attr('href').endswith('/qunit.css'));
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   201
        stop();
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   202
        jQuery('#main').loadxhtml(BASE_URL + 'cwsoftwareroot/web/test/jstests/ajax_url1.html')
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   203
        .addCallback(function() {
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   204
                var origLength = scriptsIncluded.length;
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   205
                scriptsIncluded = jsSources();
6215
759cf097f5aa [javascript] get rid of tabs
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 6214
diff changeset
   206
                try {
5950
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   207
                    // check that foo.js has been inserted in <head>
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   208
                    equals(scriptsIncluded.length, origLength + 1);
10419
5edd38e3205f [web/test] Fix remaining JS tests (closes #5533303)
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10418
diff changeset
   209
                    equals(scriptsIncluded.indexOf('http://foo.js'), 0);
5950
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   210
                    // check that <div class="ajaxHtmlHead"> has been removed
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   211
                    equals(jQuery('#main').children().length, 1);
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   212
                    equals(jQuery('div.ajaxHtmlHead').length, 0);
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   213
                    equals(jQuery('#main h1').html(), 'Hello');
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   214
                    // qunit.css is not added twice
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   215
                    equals(jQuery('head link').length, 1);
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   216
                    /* use endswith because in pytest context we have an absolute path */
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   217
                    ok(jQuery('head link').attr('href').endswith('/qunit.css'));
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   218
                } finally {
f84dba9b8eca [test] fix test_ajax js tests. We have to mock some of our js functions / variables (e.g. _ or pageid) in the test environment
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5743
diff changeset
   219
                    start();
6215
759cf097f5aa [javascript] get rid of tabs
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 6214
diff changeset
   220
                }
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   221
            }
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   222
        );
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   223
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   224
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   225
    test('test synchronous request loadRemote', function() {
10413
22a89d0f4143 [devtools] Serve JS tests over HTTP (closes #5533285)
Rémi Cardona <remi.cardona@logilab.fr>
parents: 8879
diff changeset
   226
        var res = loadRemote(BASE_URL + 'cwsoftwareroot/web/test/jstests/ajaxresult.json', {},
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   227
        'GET', true);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   228
        same(res, ['foo', 'bar']);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   229
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   230
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   231
    test('test event on CubicWeb', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   232
        expect(1);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   233
        stop();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   234
        var events = null;
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   235
        jQuery(CubicWeb).bind('server-response', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   236
            // check that server-response event on CubicWeb is triggered
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   237
            events = 'CubicWeb';
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   238
        });
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   239
        jQuery('#main').loadxhtml(BASE_URL + 'cwsoftwareroot/web/test/jstests/ajax_url0.html')
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   240
        .addCallback(function() {
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   241
                try {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   242
                    equals(events, 'CubicWeb');
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   243
                } finally {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   244
                    start();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   245
                };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   246
            }
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   247
        );
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   248
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   249
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   250
    test('test event on node', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   251
        expect(3);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   252
        stop();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   253
        var nodes = [];
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   254
        jQuery('#main').bind('server-response', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   255
            nodes.push('node');
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   256
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   257
        jQuery(CubicWeb).bind('server-response', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   258
            nodes.push('CubicWeb');
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   259
        });
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   260
        jQuery('#main').loadxhtml(BASE_URL + 'cwsoftwareroot/web/test/jstests/ajax_url0.html')
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   261
        .addCallback(function() {
8879
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   262
                try {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   263
                    equals(nodes.length, 2);
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   264
                    // check that server-response event on CubicWeb is triggered
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   265
                    // only once and event server-response on node is triggered
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   266
                    equals(nodes[0], 'CubicWeb');
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   267
                    equals(nodes[1], 'node');
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   268
                } finally {
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   269
                    start();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
   270
                };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   271
            }
10417
59bf206996c8 [web/test] stop calling loadxhtml with a form.callback
Rémi Cardona <remi.cardona@logilab.fr>
parents: 10416
diff changeset
   272
        );
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   273
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   274
});
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   275