web/test/jstests/test_ajax.js
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Fri, 21 Jun 2013 13:42:19 +0200
changeset 9055 2567b7d04e49
parent 8879 982a49239420
child 10413 22a89d0f4143
permissions -rw-r--r--
[client-connection] add a sessionid property for dbapi compatibility To ease transition from dbapi to repoapi we need the ClientConnection to be as compatible as possible with the dbapi. Adding this method goes in this direction. It'll get deprecated in the deprecation wave that will conclude the repoapi refactoring. related to #2503918
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.
e03808843325 [javascript] fix test_ajax.js implementation
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5950
diff changeset
    10
          cw.loaded_src = [];
e03808843325 [javascript] fix test_ajax.js implementation
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 5950
diff changeset
    11
          cw.loaded_href = [];
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() {
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
    14
          $('head script[src]:gt(' + this.scriptsLength + ')').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
    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();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    29
        jQuery('#main').loadxhtml('/../ajax_url0.html', {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    30
            callback: 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
            }
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    38
        });
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();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    46
        jQuery('#main').loadxhtml('/../ajax_url1.html', {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    47
            callback: 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();
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    51
                    // check that foo.js has been *appended* to <head>
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);
982a49239420 [web] move qunit test back into web and fix the hanging
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents: 7363
diff changeset
    53
                    equals(scriptsIncluded[origLength].indexOf('http://foo.js'), 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
    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
            }
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    62
        });
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();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    69
        var d = jQuery('#main').loadxhtml('/../ajax_url0.html');
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({
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
    84
            url: './ajax_url0.html',
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();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   108
        var d = jQuery('#main').loadxhtml('/../ajax_url0.html');
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() {
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
   121
        expect(2);
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({
7017
cd2ea273007a [web test] fix some tests broken by recent (and various) changesets
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 6215
diff changeset
   144
            url: '/../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();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   158
        var d = jQuery('#main').loadxhtml('/../ajax_url0.html');
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   159
        d.addCallback(function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   160
            // throw an exception to start errback chain
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
   161
            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
   162
                throw new 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
   163
            } 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
   164
                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
   165
            };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   166
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   167
        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
   168
            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
   169
                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
   170
            } 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
   171
                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
   172
            };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   173
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   174
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   175
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   176
    test('test callback / errback execution order', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   177
        expect(4);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   178
        var counter = 0;
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   179
        stop();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   180
        var d = jQuery('#main').loadxhtml('/../ajax_url0.html', {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   181
            callback: 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
   182
                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
   183
                    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
   184
                } 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
   185
                    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
   186
                };
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
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   189
        d.addCallback(function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   190
            equals(++counter, 2); // should be executed and break callback chain
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   191
            throw new Error();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   192
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   193
        d.addCallback(function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   194
            // should not be executed since second callback raised an error
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   195
            ok(false, "callback is executed");
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   196
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   197
        d.addErrback(function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   198
            // should be executed after the second callback
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   199
            equals(++counter, 3);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   200
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   201
        d.addErrback(function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   202
            // should be executed after the first errback
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   203
            equals(++counter, 4);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   204
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   205
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   206
6215
759cf097f5aa [javascript] get rid of tabs
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 6214
diff changeset
   207
    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
   208
        expect(10);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   209
        var scriptsIncluded = jsSources();
6215
759cf097f5aa [javascript] get rid of tabs
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 6214
diff changeset
   210
        // NOTE:
759cf097f5aa [javascript] get rid of tabs
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 6214
diff changeset
   211
        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
   212
        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
   213
        /* 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
   214
        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
   215
        stop();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   216
        jQuery('#main').loadxhtml('/../ajax_url1.html', {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   217
            callback: function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   218
                var origLength = scriptsIncluded.length;
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   219
                scriptsIncluded = jsSources();
6215
759cf097f5aa [javascript] get rid of tabs
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 6214
diff changeset
   220
                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
   221
                    // 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
   222
                    equals(scriptsIncluded.length, origLength + 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
   223
                    equals(scriptsIncluded[origLength].indexOf('http://foo.js'), 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
   224
                    // 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
   225
                    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
   226
                    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
   227
                    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
   228
                    // 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
   229
                    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
   230
                    /* 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
   231
                    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
   232
                } 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
   233
                    start();
6215
759cf097f5aa [javascript] get rid of tabs
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents: 6214
diff changeset
   234
                }
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   235
            }
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   236
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   237
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   238
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   239
    test('test synchronous request loadRemote', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   240
        var res = loadRemote('/../ajaxresult.json', {},
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   241
        'GET', true);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   242
        same(res, ['foo', 'bar']);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   243
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   244
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   245
    test('test event on CubicWeb', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   246
        expect(1);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   247
        stop();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   248
        var events = null;
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   249
        jQuery(CubicWeb).bind('server-response', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   250
            // 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
   251
            events = 'CubicWeb';
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   252
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   253
        jQuery('#main').loadxhtml('/../ajax_url0.html', {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   254
            callback: 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
   255
                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
   256
                    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
   257
                } 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
   258
                    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
   259
                };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   260
            }
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   261
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   262
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   263
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   264
    test('test event on node', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   265
        expect(3);
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   266
        stop();
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   267
        var nodes = [];
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   268
        jQuery('#main').bind('server-response', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   269
            nodes.push('node');
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   270
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   271
        jQuery(CubicWeb).bind('server-response', function() {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   272
            nodes.push('CubicWeb');
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
        jQuery('#main').loadxhtml('/../ajax_url0.html', {
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   275
            callback: 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
   276
                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
   277
                    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
   278
                    // 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
   279
                    // 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
   280
                    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
   281
                    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
   282
                } 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
   283
                    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
   284
                };
5658
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   285
            }
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   286
        });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   287
    });
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   288
});
7b9553a9db65 [ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff changeset
   289