author | Sylvain Thénault <sylvain.thenault@logilab.fr> |
Wed, 24 Jun 2015 23:30:47 +0200 | |
changeset 10458 | 9071db303c0c |
parent 10427 | 7677c0401864 |
permissions | -rw-r--r-- |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1 |
/*! |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2 |
* QUnit 1.18.0 |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3 |
* http://qunitjs.com/ |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
4 |
* |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
5 |
* Copyright jQuery Foundation and other contributors |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
6 |
* Released under the MIT license |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
7 |
* http://jquery.org/license |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
8 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
9 |
* Date: 2015-04-03T10:23Z |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
10 |
*/ |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
11 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
12 |
(function( window ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
13 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
14 |
var QUnit, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
15 |
config, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
16 |
onErrorFnPrev, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
17 |
loggingCallbacks = {}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
18 |
fileName = ( sourceFromStacktrace( 0 ) || "" ).replace( /(:\d+)+\)?/, "" ).replace( /.+\//, "" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
19 |
toString = Object.prototype.toString, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
20 |
hasOwn = Object.prototype.hasOwnProperty, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
21 |
// Keep a local reference to Date (GH-283) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
22 |
Date = window.Date, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
23 |
now = Date.now || function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
24 |
return new Date().getTime(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
25 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
26 |
globalStartCalled = false, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
27 |
runStarted = false, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
28 |
setTimeout = window.setTimeout, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
29 |
clearTimeout = window.clearTimeout, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
30 |
defined = { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
31 |
document: window.document !== undefined, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
32 |
setTimeout: window.setTimeout !== undefined, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
33 |
sessionStorage: (function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
34 |
var x = "qunit-test-string"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
35 |
try { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
36 |
sessionStorage.setItem( x, x ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
37 |
sessionStorage.removeItem( x ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
38 |
return true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
39 |
} catch ( e ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
40 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
41 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
42 |
}()) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
43 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
44 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
45 |
* Provides a normalized error string, correcting an issue |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
46 |
* with IE 7 (and prior) where Error.prototype.toString is |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
47 |
* not properly implemented |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
48 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
49 |
* Based on http://es5.github.com/#x15.11.4.4 |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
50 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
51 |
* @param {String|Error} error |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
52 |
* @return {String} error message |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
53 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
54 |
errorString = function( error ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
55 |
var name, message, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
56 |
errorString = error.toString(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
57 |
if ( errorString.substring( 0, 7 ) === "[object" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
58 |
name = error.name ? error.name.toString() : "Error"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
59 |
message = error.message ? error.message.toString() : ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
60 |
if ( name && message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
61 |
return name + ": " + message; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
62 |
} else if ( name ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
63 |
return name; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
64 |
} else if ( message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
65 |
return message; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
66 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
67 |
return "Error"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
68 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
69 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
70 |
return errorString; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
71 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
72 |
}, |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
73 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
74 |
* Makes a clone of an object using only Array or Object as base, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
75 |
* and copies over the own enumerable properties. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
76 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
77 |
* @param {Object} obj |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
78 |
* @return {Object} New object with only the own properties (recursively). |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
79 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
80 |
objectValues = function( obj ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
81 |
var key, val, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
82 |
vals = QUnit.is( "array", obj ) ? [] : {}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
83 |
for ( key in obj ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
84 |
if ( hasOwn.call( obj, key ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
85 |
val = obj[ key ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
86 |
vals[ key ] = val === Object( val ) ? objectValues( val ) : val; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
87 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
88 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
89 |
return vals; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
90 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
91 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
92 |
QUnit = {}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
93 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
94 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
95 |
* Config object: Maintain internal state |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
96 |
* Later exposed as QUnit.config |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
97 |
* `config` initialized at top of scope |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
98 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
99 |
config = { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
100 |
// The queue of tests to run |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
101 |
queue: [], |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
102 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
103 |
// block until document ready |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
104 |
blocking: true, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
105 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
106 |
// by default, run previously failed tests first |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
107 |
// very useful in combination with "Hide passed tests" checked |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
108 |
reorder: true, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
109 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
110 |
// by default, modify document.title when suite is done |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
111 |
altertitle: true, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
112 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
113 |
// by default, scroll to top of the page when suite is done |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
114 |
scrolltop: true, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
115 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
116 |
// when enabled, all tests must call expect() |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
117 |
requireExpects: false, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
118 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
119 |
// depth up-to which object will be dumped |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
120 |
maxDepth: 5, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
121 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
122 |
// add checkboxes that are persisted in the query-string |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
123 |
// when enabled, the id is set to `true` as a `QUnit.config` property |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
124 |
urlConfig: [ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
125 |
{ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
126 |
id: "hidepassed", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
127 |
label: "Hide passed tests", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
128 |
tooltip: "Only show tests and assertions that fail. Stored as query-strings." |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
129 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
130 |
{ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
131 |
id: "noglobals", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
132 |
label: "Check for Globals", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
133 |
tooltip: "Enabling this will test if any test introduces new properties on the " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
134 |
"`window` object. Stored as query-strings." |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
135 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
136 |
{ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
137 |
id: "notrycatch", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
138 |
label: "No try-catch", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
139 |
tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
140 |
"exceptions in IE reasonable. Stored as query-strings." |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
141 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
142 |
], |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
143 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
144 |
// Set of all modules. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
145 |
modules: [], |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
146 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
147 |
// The first unnamed module |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
148 |
currentModule: { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
149 |
name: "", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
150 |
tests: [] |
5658
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 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
153 |
callbacks: {} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
154 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
155 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
156 |
// Push a loose unnamed module to the modules collection |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
157 |
config.modules.push( config.currentModule ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
158 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
159 |
// Initialize more QUnit.config and QUnit.urlParams |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
160 |
(function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
161 |
var i, current, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
162 |
location = window.location || { search: "", protocol: "file:" }, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
163 |
params = location.search.slice( 1 ).split( "&" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
164 |
length = params.length, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
165 |
urlParams = {}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
166 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
167 |
if ( params[ 0 ] ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
168 |
for ( i = 0; i < length; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
169 |
current = params[ i ].split( "=" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
170 |
current[ 0 ] = decodeURIComponent( current[ 0 ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
171 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
172 |
// allow just a key to turn on a flag, e.g., test.html?noglobals |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
173 |
current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
174 |
if ( urlParams[ current[ 0 ] ] ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
175 |
urlParams[ current[ 0 ] ] = [].concat( urlParams[ current[ 0 ] ], current[ 1 ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
176 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
177 |
urlParams[ current[ 0 ] ] = current[ 1 ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
178 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
179 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
180 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
181 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
182 |
if ( urlParams.filter === true ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
183 |
delete urlParams.filter; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
184 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
185 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
186 |
QUnit.urlParams = urlParams; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
187 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
188 |
// String search anywhere in moduleName+testName |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
189 |
config.filter = urlParams.filter; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
190 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
191 |
if ( urlParams.maxDepth ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
192 |
config.maxDepth = parseInt( urlParams.maxDepth, 10 ) === -1 ? |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
193 |
Number.POSITIVE_INFINITY : |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
194 |
urlParams.maxDepth; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
195 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
196 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
197 |
config.testId = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
198 |
if ( urlParams.testId ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
199 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
200 |
// Ensure that urlParams.testId is an array |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
201 |
urlParams.testId = decodeURIComponent( urlParams.testId ).split( "," ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
202 |
for ( i = 0; i < urlParams.testId.length; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
203 |
config.testId.push( urlParams.testId[ i ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
204 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
205 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
206 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
207 |
// Figure out if we're running the tests from a server or not |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
208 |
QUnit.isLocal = location.protocol === "file:"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
209 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
210 |
// Expose the current QUnit version |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
211 |
QUnit.version = "1.18.0"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
212 |
}()); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
213 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
214 |
// Root QUnit object. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
215 |
// `QUnit` initialized at top of scope |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
216 |
extend( QUnit, { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
217 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
218 |
// call on start of module test to prepend name to all tests |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
219 |
module: function( name, testEnvironment ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
220 |
var currentModule = { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
221 |
name: name, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
222 |
testEnvironment: testEnvironment, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
223 |
tests: [] |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
224 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
225 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
226 |
// DEPRECATED: handles setup/teardown functions, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
227 |
// beforeEach and afterEach should be used instead |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
228 |
if ( testEnvironment && testEnvironment.setup ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
229 |
testEnvironment.beforeEach = testEnvironment.setup; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
230 |
delete testEnvironment.setup; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
231 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
232 |
if ( testEnvironment && testEnvironment.teardown ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
233 |
testEnvironment.afterEach = testEnvironment.teardown; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
234 |
delete testEnvironment.teardown; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
235 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
236 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
237 |
config.modules.push( currentModule ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
238 |
config.currentModule = currentModule; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
239 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
240 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
241 |
// DEPRECATED: QUnit.asyncTest() will be removed in QUnit 2.0. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
242 |
asyncTest: function( testName, expected, callback ) { |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
243 |
if ( arguments.length === 2 ) { |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
244 |
callback = expected; |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
245 |
expected = null; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
246 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
247 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
248 |
QUnit.test( testName, expected, callback, true ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
249 |
}, |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
250 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
251 |
test: function( testName, expected, callback, async ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
252 |
var test; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
253 |
|
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
254 |
if ( arguments.length === 2 ) { |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
255 |
callback = expected; |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
256 |
expected = null; |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
257 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
258 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
259 |
test = new Test({ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
260 |
testName: testName, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
261 |
expected: expected, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
262 |
async: async, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
263 |
callback: callback |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
264 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
265 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
266 |
test.queue(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
267 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
268 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
269 |
skip: function( testName ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
270 |
var test = new Test({ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
271 |
testName: testName, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
272 |
skip: true |
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 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
275 |
test.queue(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
276 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
277 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
278 |
// DEPRECATED: The functionality of QUnit.start() will be altered in QUnit 2.0. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
279 |
// In QUnit 2.0, invoking it will ONLY affect the `QUnit.config.autostart` blocking behavior. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
280 |
start: function( count ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
281 |
var globalStartAlreadyCalled = globalStartCalled; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
282 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
283 |
if ( !config.current ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
284 |
globalStartCalled = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
285 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
286 |
if ( runStarted ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
287 |
throw new Error( "Called start() outside of a test context while already started" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
288 |
} else if ( globalStartAlreadyCalled || count > 1 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
289 |
throw new Error( "Called start() outside of a test context too many times" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
290 |
} else if ( config.autostart ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
291 |
throw new Error( "Called start() outside of a test context when " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
292 |
"QUnit.config.autostart was true" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
293 |
} else if ( !config.pageLoaded ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
294 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
295 |
// The page isn't completely loaded yet, so bail out and let `QUnit.load` handle it |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
296 |
config.autostart = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
297 |
return; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
298 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
299 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
300 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
301 |
// If a test is running, adjust its semaphore |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
302 |
config.current.semaphore -= count || 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
303 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
304 |
// Don't start until equal number of stop-calls |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
305 |
if ( config.current.semaphore > 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
306 |
return; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
307 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
308 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
309 |
// throw an Error if start is called more often than stop |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
310 |
if ( config.current.semaphore < 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
311 |
config.current.semaphore = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
312 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
313 |
QUnit.pushFailure( |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
314 |
"Called start() while already started (test's semaphore was 0 already)", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
315 |
sourceFromStacktrace( 2 ) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
316 |
); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
317 |
return; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
318 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
319 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
320 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
321 |
resumeProcessing(); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
322 |
}, |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
323 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
324 |
// DEPRECATED: QUnit.stop() will be removed in QUnit 2.0. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
325 |
stop: function( count ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
326 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
327 |
// If there isn't a test running, don't allow QUnit.stop() to be called |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
328 |
if ( !config.current ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
329 |
throw new Error( "Called stop() outside of a test context" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
330 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
331 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
332 |
// If a test is running, adjust its semaphore |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
333 |
config.current.semaphore += count || 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
334 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
335 |
pauseProcessing(); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
336 |
}, |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
337 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
338 |
config: config, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
339 |
|
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
340 |
// Safe object type checking |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
341 |
is: function( type, obj ) { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
342 |
return QUnit.objectType( obj ) === type; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
343 |
}, |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
344 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
345 |
objectType: function( obj ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
346 |
if ( typeof obj === "undefined" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
347 |
return "undefined"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
348 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
349 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
350 |
// Consider: typeof null === object |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
351 |
if ( obj === null ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
352 |
return "null"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
353 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
354 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
355 |
var match = toString.call( obj ).match( /^\[object\s(.*)\]$/ ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
356 |
type = match && match[ 1 ] || ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
357 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
358 |
switch ( type ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
359 |
case "Number": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
360 |
if ( isNaN( obj ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
361 |
return "nan"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
362 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
363 |
return "number"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
364 |
case "String": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
365 |
case "Boolean": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
366 |
case "Array": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
367 |
case "Date": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
368 |
case "RegExp": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
369 |
case "Function": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
370 |
return type.toLowerCase(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
371 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
372 |
if ( typeof obj === "object" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
373 |
return "object"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
374 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
375 |
return undefined; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
376 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
377 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
378 |
extend: extend, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
379 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
380 |
load: function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
381 |
config.pageLoaded = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
382 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
383 |
// Initialize the configuration options |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
384 |
extend( config, { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
385 |
stats: { all: 0, bad: 0 }, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
386 |
moduleStats: { all: 0, bad: 0 }, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
387 |
started: 0, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
388 |
updateRate: 1000, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
389 |
autostart: true, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
390 |
filter: "" |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
391 |
}, true ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
392 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
393 |
config.blocking = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
394 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
395 |
if ( config.autostart ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
396 |
resumeProcessing(); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
397 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
398 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
399 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
400 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
401 |
// Register logging callbacks |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
402 |
(function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
403 |
var i, l, key, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
404 |
callbacks = [ "begin", "done", "log", "testStart", "testDone", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
405 |
"moduleStart", "moduleDone" ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
406 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
407 |
function registerLoggingCallback( key ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
408 |
var loggingCallback = function( callback ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
409 |
if ( QUnit.objectType( callback ) !== "function" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
410 |
throw new Error( |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
411 |
"QUnit logging methods require a callback function as their first parameters." |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
412 |
); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
413 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
414 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
415 |
config.callbacks[ key ].push( callback ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
416 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
417 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
418 |
// DEPRECATED: This will be removed on QUnit 2.0.0+ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
419 |
// Stores the registered functions allowing restoring |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
420 |
// at verifyLoggingCallbacks() if modified |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
421 |
loggingCallbacks[ key ] = loggingCallback; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
422 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
423 |
return loggingCallback; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
424 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
425 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
426 |
for ( i = 0, l = callbacks.length; i < l; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
427 |
key = callbacks[ i ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
428 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
429 |
// Initialize key collection of logging callback |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
430 |
if ( QUnit.objectType( config.callbacks[ key ] ) === "undefined" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
431 |
config.callbacks[ key ] = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
432 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
433 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
434 |
QUnit[ key ] = registerLoggingCallback( key ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
435 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
436 |
})(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
437 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
438 |
// `onErrorFnPrev` initialized at top of scope |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
439 |
// Preserve other handlers |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
440 |
onErrorFnPrev = window.onerror; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
441 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
442 |
// Cover uncaught exceptions |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
443 |
// Returning true will suppress the default browser handler, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
444 |
// returning false will let it run. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
445 |
window.onerror = function( error, filePath, linerNr ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
446 |
var ret = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
447 |
if ( onErrorFnPrev ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
448 |
ret = onErrorFnPrev( error, filePath, linerNr ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
449 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
450 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
451 |
// Treat return value as window.onerror itself does, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
452 |
// Only do our handling if not suppressed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
453 |
if ( ret !== true ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
454 |
if ( QUnit.config.current ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
455 |
if ( QUnit.config.current.ignoreGlobalErrors ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
456 |
return true; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
457 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
458 |
QUnit.pushFailure( error, filePath + ":" + linerNr ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
459 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
460 |
QUnit.test( "global failure", extend(function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
461 |
QUnit.pushFailure( error, filePath + ":" + linerNr ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
462 |
}, { validTest: true } ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
463 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
464 |
return false; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
465 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
466 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
467 |
return ret; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
468 |
}; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
469 |
|
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
470 |
function done() { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
471 |
var runtime, passed; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
472 |
|
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
473 |
config.autorun = true; |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
474 |
|
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
475 |
// Log the last module results |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
476 |
if ( config.previousModule ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
477 |
runLoggingCallbacks( "moduleDone", { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
478 |
name: config.previousModule.name, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
479 |
tests: config.previousModule.tests, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
480 |
failed: config.moduleStats.bad, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
481 |
passed: config.moduleStats.all - config.moduleStats.bad, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
482 |
total: config.moduleStats.all, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
483 |
runtime: now() - config.moduleStats.started |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
484 |
}); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
485 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
486 |
delete config.previousModule; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
487 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
488 |
runtime = now() - config.started; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
489 |
passed = config.stats.all - config.stats.bad; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
490 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
491 |
runLoggingCallbacks( "done", { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
492 |
failed: config.stats.bad, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
493 |
passed: passed, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
494 |
total: config.stats.all, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
495 |
runtime: runtime |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
496 |
}); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
497 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
498 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
499 |
// Doesn't support IE6 to IE9, it will return undefined on these browsers |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
500 |
// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
501 |
function extractStacktrace( e, offset ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
502 |
offset = offset === undefined ? 4 : offset; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
503 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
504 |
var stack, include, i; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
505 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
506 |
if ( e.stack ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
507 |
stack = e.stack.split( "\n" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
508 |
if ( /^error$/i.test( stack[ 0 ] ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
509 |
stack.shift(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
510 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
511 |
if ( fileName ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
512 |
include = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
513 |
for ( i = offset; i < stack.length; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
514 |
if ( stack[ i ].indexOf( fileName ) !== -1 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
515 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
516 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
517 |
include.push( stack[ i ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
518 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
519 |
if ( include.length ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
520 |
return include.join( "\n" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
521 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
522 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
523 |
return stack[ offset ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
524 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
525 |
// Support: Safari <=6 only |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
526 |
} else if ( e.sourceURL ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
527 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
528 |
// exclude useless self-reference for generated Error objects |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
529 |
if ( /qunit.js$/.test( e.sourceURL ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
530 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
531 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
532 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
533 |
// for actual exceptions, this is useful |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
534 |
return e.sourceURL + ":" + e.line; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
535 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
536 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
537 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
538 |
function sourceFromStacktrace( offset ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
539 |
var error = new Error(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
540 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
541 |
// Support: Safari <=7 only, IE <=10 - 11 only |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
542 |
// Not all browsers generate the `stack` property for `new Error()`, see also #636 |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
543 |
if ( !error.stack ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
544 |
try { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
545 |
throw error; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
546 |
} catch ( err ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
547 |
error = err; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
548 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
549 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
550 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
551 |
return extractStacktrace( error, offset ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
552 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
553 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
554 |
function synchronize( callback, last ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
555 |
if ( QUnit.objectType( callback ) === "array" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
556 |
while ( callback.length ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
557 |
synchronize( callback.shift() ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
558 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
559 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
560 |
} |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
561 |
config.queue.push( callback ); |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
562 |
|
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
563 |
if ( config.autorun && !config.blocking ) { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
564 |
process( last ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
565 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
566 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
567 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
568 |
function process( last ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
569 |
function next() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
570 |
process( last ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
571 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
572 |
var start = now(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
573 |
config.depth = ( config.depth || 0 ) + 1; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
574 |
|
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
575 |
while ( config.queue.length && !config.blocking ) { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
576 |
if ( !defined.setTimeout || config.updateRate <= 0 || |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
577 |
( ( now() - start ) < config.updateRate ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
578 |
if ( config.current ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
579 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
580 |
// Reset async tracking for each phase of the Test lifecycle |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
581 |
config.current.usedAsync = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
582 |
} |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
583 |
config.queue.shift()(); |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
584 |
} else { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
585 |
setTimeout( next, 13 ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
586 |
break; |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
587 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
588 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
589 |
config.depth--; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
590 |
if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
591 |
done(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
592 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
593 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
594 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
595 |
function begin() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
596 |
var i, l, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
597 |
modulesLog = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
598 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
599 |
// If the test run hasn't officially begun yet |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
600 |
if ( !config.started ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
601 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
602 |
// Record the time of the test run's beginning |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
603 |
config.started = now(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
604 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
605 |
verifyLoggingCallbacks(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
606 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
607 |
// Delete the loose unnamed module if unused. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
608 |
if ( config.modules[ 0 ].name === "" && config.modules[ 0 ].tests.length === 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
609 |
config.modules.shift(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
610 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
611 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
612 |
// Avoid unnecessary information by not logging modules' test environments |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
613 |
for ( i = 0, l = config.modules.length; i < l; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
614 |
modulesLog.push({ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
615 |
name: config.modules[ i ].name, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
616 |
tests: config.modules[ i ].tests |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
617 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
618 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
619 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
620 |
// The test run is officially beginning now |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
621 |
runLoggingCallbacks( "begin", { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
622 |
totalTests: Test.count, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
623 |
modules: modulesLog |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
624 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
625 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
626 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
627 |
config.blocking = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
628 |
process( true ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
629 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
630 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
631 |
function resumeProcessing() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
632 |
runStarted = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
633 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
634 |
// A slight delay to allow this iteration of the event loop to finish (more assertions, etc.) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
635 |
if ( defined.setTimeout ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
636 |
setTimeout(function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
637 |
if ( config.current && config.current.semaphore > 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
638 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
639 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
640 |
if ( config.timeout ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
641 |
clearTimeout( config.timeout ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
642 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
643 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
644 |
begin(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
645 |
}, 13 ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
646 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
647 |
begin(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
648 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
649 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
650 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
651 |
function pauseProcessing() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
652 |
config.blocking = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
653 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
654 |
if ( config.testTimeout && defined.setTimeout ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
655 |
clearTimeout( config.timeout ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
656 |
config.timeout = setTimeout(function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
657 |
if ( config.current ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
658 |
config.current.semaphore = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
659 |
QUnit.pushFailure( "Test timed out", sourceFromStacktrace( 2 ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
660 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
661 |
throw new Error( "Test timed out" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
662 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
663 |
resumeProcessing(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
664 |
}, config.testTimeout ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
665 |
} |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
666 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
667 |
|
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
668 |
function saveGlobal() { |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
669 |
config.pollution = []; |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
670 |
|
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
671 |
if ( config.noglobals ) { |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
672 |
for ( var key in window ) { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
673 |
if ( hasOwn.call( window, key ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
674 |
// in Opera sometimes DOM element ids show up here, ignore them |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
675 |
if ( /^qunit-test-output/.test( key ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
676 |
continue; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
677 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
678 |
config.pollution.push( key ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
679 |
} |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
680 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
681 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
682 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
683 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
684 |
function checkPollution() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
685 |
var newGlobals, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
686 |
deletedGlobals, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
687 |
old = config.pollution; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
688 |
|
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
689 |
saveGlobal(); |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
690 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
691 |
newGlobals = diff( config.pollution, old ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
692 |
if ( newGlobals.length > 0 ) { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
693 |
QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join( ", " ) ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
694 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
695 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
696 |
deletedGlobals = diff( old, config.pollution ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
697 |
if ( deletedGlobals.length > 0 ) { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
698 |
QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join( ", " ) ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
699 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
700 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
701 |
|
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
702 |
// returns a new Array with the elements that are in a but not in b |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
703 |
function diff( a, b ) { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
704 |
var i, j, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
705 |
result = a.slice(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
706 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
707 |
for ( i = 0; i < result.length; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
708 |
for ( j = 0; j < b.length; j++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
709 |
if ( result[ i ] === b[ j ] ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
710 |
result.splice( i, 1 ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
711 |
i--; |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
712 |
break; |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
713 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
714 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
715 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
716 |
return result; |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
717 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
718 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
719 |
function extend( a, b, undefOnly ) { |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
720 |
for ( var prop in b ) { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
721 |
if ( hasOwn.call( b, prop ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
722 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
723 |
// Avoid "Member not found" error in IE8 caused by messing with window.constructor |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
724 |
if ( !( prop === "constructor" && a === window ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
725 |
if ( b[ prop ] === undefined ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
726 |
delete a[ prop ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
727 |
} else if ( !( undefOnly && typeof a[ prop ] !== "undefined" ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
728 |
a[ prop ] = b[ prop ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
729 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
730 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
731 |
} |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
732 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
733 |
|
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
734 |
return a; |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
735 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
736 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
737 |
function runLoggingCallbacks( key, args ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
738 |
var i, l, callbacks; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
739 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
740 |
callbacks = config.callbacks[ key ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
741 |
for ( i = 0, l = callbacks.length; i < l; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
742 |
callbacks[ i ]( args ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
743 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
744 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
745 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
746 |
// DEPRECATED: This will be removed on 2.0.0+ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
747 |
// This function verifies if the loggingCallbacks were modified by the user |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
748 |
// If so, it will restore it, assign the given callback and print a console warning |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
749 |
function verifyLoggingCallbacks() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
750 |
var loggingCallback, userCallback; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
751 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
752 |
for ( loggingCallback in loggingCallbacks ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
753 |
if ( QUnit[ loggingCallback ] !== loggingCallbacks[ loggingCallback ] ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
754 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
755 |
userCallback = QUnit[ loggingCallback ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
756 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
757 |
// Restore the callback function |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
758 |
QUnit[ loggingCallback ] = loggingCallbacks[ loggingCallback ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
759 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
760 |
// Assign the deprecated given callback |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
761 |
QUnit[ loggingCallback ]( userCallback ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
762 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
763 |
if ( window.console && window.console.warn ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
764 |
window.console.warn( |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
765 |
"QUnit." + loggingCallback + " was replaced with a new value.\n" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
766 |
"Please, check out the documentation on how to apply logging callbacks.\n" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
767 |
"Reference: http://api.qunitjs.com/category/callbacks/" |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
768 |
); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
769 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
770 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
771 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
772 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
773 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
774 |
// from jquery.js |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
775 |
function inArray( elem, array ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
776 |
if ( array.indexOf ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
777 |
return array.indexOf( elem ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
778 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
779 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
780 |
for ( var i = 0, length = array.length; i < length; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
781 |
if ( array[ i ] === elem ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
782 |
return i; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
783 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
784 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
785 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
786 |
return -1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
787 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
788 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
789 |
function Test( settings ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
790 |
var i, l; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
791 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
792 |
++Test.count; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
793 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
794 |
extend( this, settings ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
795 |
this.assertions = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
796 |
this.semaphore = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
797 |
this.usedAsync = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
798 |
this.module = config.currentModule; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
799 |
this.stack = sourceFromStacktrace( 3 ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
800 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
801 |
// Register unique strings |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
802 |
for ( i = 0, l = this.module.tests; i < l.length; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
803 |
if ( this.module.tests[ i ].name === this.testName ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
804 |
this.testName += " "; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
805 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
806 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
807 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
808 |
this.testId = generateHash( this.module.name, this.testName ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
809 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
810 |
this.module.tests.push({ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
811 |
name: this.testName, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
812 |
testId: this.testId |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
813 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
814 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
815 |
if ( settings.skip ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
816 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
817 |
// Skipped tests will fully ignore any sent callback |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
818 |
this.callback = function() {}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
819 |
this.async = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
820 |
this.expected = 0; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
821 |
} else { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
822 |
this.assert = new Assert( this ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
823 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
824 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
825 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
826 |
Test.count = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
827 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
828 |
Test.prototype = { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
829 |
before: function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
830 |
if ( |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
831 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
832 |
// Emit moduleStart when we're switching from one module to another |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
833 |
this.module !== config.previousModule || |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
834 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
835 |
// They could be equal (both undefined) but if the previousModule property doesn't |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
836 |
// yet exist it means this is the first test in a suite that isn't wrapped in a |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
837 |
// module, in which case we'll just emit a moduleStart event for 'undefined'. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
838 |
// Without this, reporters can get testStart before moduleStart which is a problem. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
839 |
!hasOwn.call( config, "previousModule" ) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
840 |
) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
841 |
if ( hasOwn.call( config, "previousModule" ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
842 |
runLoggingCallbacks( "moduleDone", { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
843 |
name: config.previousModule.name, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
844 |
tests: config.previousModule.tests, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
845 |
failed: config.moduleStats.bad, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
846 |
passed: config.moduleStats.all - config.moduleStats.bad, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
847 |
total: config.moduleStats.all, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
848 |
runtime: now() - config.moduleStats.started |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
849 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
850 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
851 |
config.previousModule = this.module; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
852 |
config.moduleStats = { all: 0, bad: 0, started: now() }; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
853 |
runLoggingCallbacks( "moduleStart", { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
854 |
name: this.module.name, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
855 |
tests: this.module.tests |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
856 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
857 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
858 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
859 |
config.current = this; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
860 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
861 |
this.testEnvironment = extend( {}, this.module.testEnvironment ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
862 |
delete this.testEnvironment.beforeEach; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
863 |
delete this.testEnvironment.afterEach; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
864 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
865 |
this.started = now(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
866 |
runLoggingCallbacks( "testStart", { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
867 |
name: this.testName, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
868 |
module: this.module.name, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
869 |
testId: this.testId |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
870 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
871 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
872 |
if ( !config.pollution ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
873 |
saveGlobal(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
874 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
875 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
876 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
877 |
run: function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
878 |
var promise; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
879 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
880 |
config.current = this; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
881 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
882 |
if ( this.async ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
883 |
QUnit.stop(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
884 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
885 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
886 |
this.callbackStarted = now(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
887 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
888 |
if ( config.notrycatch ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
889 |
promise = this.callback.call( this.testEnvironment, this.assert ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
890 |
this.resolvePromise( promise ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
891 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
892 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
893 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
894 |
try { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
895 |
promise = this.callback.call( this.testEnvironment, this.assert ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
896 |
this.resolvePromise( promise ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
897 |
} catch ( e ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
898 |
this.pushFailure( "Died on test #" + ( this.assertions.length + 1 ) + " " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
899 |
this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
900 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
901 |
// else next test will carry the responsibility |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
902 |
saveGlobal(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
903 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
904 |
// Restart the tests if they're blocking |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
905 |
if ( config.blocking ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
906 |
QUnit.start(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
907 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
908 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
909 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
910 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
911 |
after: function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
912 |
checkPollution(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
913 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
914 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
915 |
queueHook: function( hook, hookName ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
916 |
var promise, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
917 |
test = this; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
918 |
return function runHook() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
919 |
config.current = test; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
920 |
if ( config.notrycatch ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
921 |
promise = hook.call( test.testEnvironment, test.assert ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
922 |
test.resolvePromise( promise, hookName ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
923 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
924 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
925 |
try { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
926 |
promise = hook.call( test.testEnvironment, test.assert ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
927 |
test.resolvePromise( promise, hookName ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
928 |
} catch ( error ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
929 |
test.pushFailure( hookName + " failed on " + test.testName + ": " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
930 |
( error.message || error ), extractStacktrace( error, 0 ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
931 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
932 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
933 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
934 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
935 |
// Currently only used for module level hooks, can be used to add global level ones |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
936 |
hooks: function( handler ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
937 |
var hooks = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
938 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
939 |
// Hooks are ignored on skipped tests |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
940 |
if ( this.skip ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
941 |
return hooks; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
942 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
943 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
944 |
if ( this.module.testEnvironment && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
945 |
QUnit.objectType( this.module.testEnvironment[ handler ] ) === "function" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
946 |
hooks.push( this.queueHook( this.module.testEnvironment[ handler ], handler ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
947 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
948 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
949 |
return hooks; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
950 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
951 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
952 |
finish: function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
953 |
config.current = this; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
954 |
if ( config.requireExpects && this.expected === null ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
955 |
this.pushFailure( "Expected number of assertions to be defined, but expect() was " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
956 |
"not called.", this.stack ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
957 |
} else if ( this.expected !== null && this.expected !== this.assertions.length ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
958 |
this.pushFailure( "Expected " + this.expected + " assertions, but " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
959 |
this.assertions.length + " were run", this.stack ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
960 |
} else if ( this.expected === null && !this.assertions.length ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
961 |
this.pushFailure( "Expected at least one assertion, but none were run - call " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
962 |
"expect(0) to accept zero assertions.", this.stack ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
963 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
964 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
965 |
var i, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
966 |
bad = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
967 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
968 |
this.runtime = now() - this.started; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
969 |
config.stats.all += this.assertions.length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
970 |
config.moduleStats.all += this.assertions.length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
971 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
972 |
for ( i = 0; i < this.assertions.length; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
973 |
if ( !this.assertions[ i ].result ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
974 |
bad++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
975 |
config.stats.bad++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
976 |
config.moduleStats.bad++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
977 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
978 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
979 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
980 |
runLoggingCallbacks( "testDone", { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
981 |
name: this.testName, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
982 |
module: this.module.name, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
983 |
skipped: !!this.skip, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
984 |
failed: bad, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
985 |
passed: this.assertions.length - bad, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
986 |
total: this.assertions.length, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
987 |
runtime: this.runtime, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
988 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
989 |
// HTML Reporter use |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
990 |
assertions: this.assertions, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
991 |
testId: this.testId, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
992 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
993 |
// DEPRECATED: this property will be removed in 2.0.0, use runtime instead |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
994 |
duration: this.runtime |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
995 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
996 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
997 |
// QUnit.reset() is deprecated and will be replaced for a new |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
998 |
// fixture reset function on QUnit 2.0/2.1. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
999 |
// It's still called here for backwards compatibility handling |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1000 |
QUnit.reset(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1001 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1002 |
config.current = undefined; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1003 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1004 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1005 |
queue: function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1006 |
var bad, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1007 |
test = this; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1008 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1009 |
if ( !this.valid() ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1010 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1011 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1012 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1013 |
function run() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1014 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1015 |
// each of these can by async |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1016 |
synchronize([ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1017 |
function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1018 |
test.before(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1019 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1020 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1021 |
test.hooks( "beforeEach" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1022 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1023 |
function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1024 |
test.run(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1025 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1026 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1027 |
test.hooks( "afterEach" ).reverse(), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1028 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1029 |
function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1030 |
test.after(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1031 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1032 |
function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1033 |
test.finish(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1034 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1035 |
]); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1036 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1037 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1038 |
// `bad` initialized at top of scope |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1039 |
// defer when previous test run passed, if storage is available |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1040 |
bad = QUnit.config.reorder && defined.sessionStorage && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1041 |
+sessionStorage.getItem( "qunit-test-" + this.module.name + "-" + this.testName ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1042 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1043 |
if ( bad ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1044 |
run(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1045 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1046 |
synchronize( run, true ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1047 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1048 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1049 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1050 |
push: function( result, actual, expected, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1051 |
var source, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1052 |
details = { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1053 |
module: this.module.name, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1054 |
name: this.testName, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1055 |
result: result, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1056 |
message: message, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1057 |
actual: actual, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1058 |
expected: expected, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1059 |
testId: this.testId, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1060 |
runtime: now() - this.started |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1061 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1062 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1063 |
if ( !result ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1064 |
source = sourceFromStacktrace(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1065 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1066 |
if ( source ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1067 |
details.source = source; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1068 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1069 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1070 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1071 |
runLoggingCallbacks( "log", details ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1072 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1073 |
this.assertions.push({ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1074 |
result: !!result, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1075 |
message: message |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1076 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1077 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1078 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1079 |
pushFailure: function( message, source, actual ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1080 |
if ( !this instanceof Test ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1081 |
throw new Error( "pushFailure() assertion outside test context, was " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1082 |
sourceFromStacktrace( 2 ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1083 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1084 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1085 |
var details = { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1086 |
module: this.module.name, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1087 |
name: this.testName, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1088 |
result: false, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1089 |
message: message || "error", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1090 |
actual: actual || null, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1091 |
testId: this.testId, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1092 |
runtime: now() - this.started |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1093 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1094 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1095 |
if ( source ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1096 |
details.source = source; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1097 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1098 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1099 |
runLoggingCallbacks( "log", details ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1100 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1101 |
this.assertions.push({ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1102 |
result: false, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1103 |
message: message |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1104 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1105 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1106 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1107 |
resolvePromise: function( promise, phase ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1108 |
var then, message, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1109 |
test = this; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1110 |
if ( promise != null ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1111 |
then = promise.then; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1112 |
if ( QUnit.objectType( then ) === "function" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1113 |
QUnit.stop(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1114 |
then.call( |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1115 |
promise, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1116 |
QUnit.start, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1117 |
function( error ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1118 |
message = "Promise rejected " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1119 |
( !phase ? "during" : phase.replace( /Each$/, "" ) ) + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1120 |
" " + test.testName + ": " + ( error.message || error ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1121 |
test.pushFailure( message, extractStacktrace( error, 0 ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1122 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1123 |
// else next test will carry the responsibility |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1124 |
saveGlobal(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1125 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1126 |
// Unblock |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1127 |
QUnit.start(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1128 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1129 |
); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1130 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1131 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1132 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1133 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1134 |
valid: function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1135 |
var include, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1136 |
filter = config.filter && config.filter.toLowerCase(), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1137 |
module = QUnit.urlParams.module && QUnit.urlParams.module.toLowerCase(), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1138 |
fullName = ( this.module.name + ": " + this.testName ).toLowerCase(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1139 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1140 |
// Internally-generated tests are always valid |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1141 |
if ( this.callback && this.callback.validTest ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1142 |
return true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1143 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1144 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1145 |
if ( config.testId.length > 0 && inArray( this.testId, config.testId ) < 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1146 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1147 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1148 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1149 |
if ( module && ( !this.module.name || this.module.name.toLowerCase() !== module ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1150 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1151 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1152 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1153 |
if ( !filter ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1154 |
return true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1155 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1156 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1157 |
include = filter.charAt( 0 ) !== "!"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1158 |
if ( !include ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1159 |
filter = filter.slice( 1 ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1160 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1161 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1162 |
// If the filter matches, we need to honour include |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1163 |
if ( fullName.indexOf( filter ) !== -1 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1164 |
return include; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1165 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1166 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1167 |
// Otherwise, do the opposite |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1168 |
return !include; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1169 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1170 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1171 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1172 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1173 |
// Resets the test setup. Useful for tests that modify the DOM. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1174 |
/* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1175 |
DEPRECATED: Use multiple tests instead of resetting inside a test. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1176 |
Use testStart or testDone for custom cleanup. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1177 |
This method will throw an error in 2.0, and will be removed in 2.1 |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1178 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1179 |
QUnit.reset = function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1180 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1181 |
// Return on non-browser environments |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1182 |
// This is necessary to not break on node tests |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1183 |
if ( typeof window === "undefined" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1184 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1185 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1186 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1187 |
var fixture = defined.document && document.getElementById && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1188 |
document.getElementById( "qunit-fixture" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1189 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1190 |
if ( fixture ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1191 |
fixture.innerHTML = config.fixture; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1192 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1193 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1194 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1195 |
QUnit.pushFailure = function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1196 |
if ( !QUnit.config.current ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1197 |
throw new Error( "pushFailure() assertion outside test context, in " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1198 |
sourceFromStacktrace( 2 ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1199 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1200 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1201 |
// Gets current test obj |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1202 |
var currentTest = QUnit.config.current; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1203 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1204 |
return currentTest.pushFailure.apply( currentTest, arguments ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1205 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1206 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1207 |
// Based on Java's String.hashCode, a simple but not |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1208 |
// rigorously collision resistant hashing function |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1209 |
function generateHash( module, testName ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1210 |
var hex, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1211 |
i = 0, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1212 |
hash = 0, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1213 |
str = module + "\x1C" + testName, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1214 |
len = str.length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1215 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1216 |
for ( ; i < len; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1217 |
hash = ( ( hash << 5 ) - hash ) + str.charCodeAt( i ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1218 |
hash |= 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1219 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1220 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1221 |
// Convert the possibly negative integer hash code into an 8 character hex string, which isn't |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1222 |
// strictly necessary but increases user understanding that the id is a SHA-like hash |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1223 |
hex = ( 0x100000000 + hash ).toString( 16 ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1224 |
if ( hex.length < 8 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1225 |
hex = "0000000" + hex; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1226 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1227 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1228 |
return hex.slice( -8 ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
1229 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
1230 |
|
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1231 |
function Assert( testContext ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1232 |
this.test = testContext; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1233 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1234 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1235 |
// Assert helpers |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1236 |
QUnit.assert = Assert.prototype = { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1237 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1238 |
// Specify the number of expected assertions to guarantee that failed test |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1239 |
// (no assertions are run at all) don't slip through. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1240 |
expect: function( asserts ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1241 |
if ( arguments.length === 1 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1242 |
this.test.expected = asserts; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1243 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1244 |
return this.test.expected; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1245 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1246 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1247 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1248 |
// Increment this Test's semaphore counter, then return a single-use function that |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1249 |
// decrements that counter a maximum of once. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1250 |
async: function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1251 |
var test = this.test, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1252 |
popped = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1253 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1254 |
test.semaphore += 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1255 |
test.usedAsync = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1256 |
pauseProcessing(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1257 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1258 |
return function done() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1259 |
if ( !popped ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1260 |
test.semaphore -= 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1261 |
popped = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1262 |
resumeProcessing(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1263 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1264 |
test.pushFailure( "Called the callback returned from `assert.async` more than once", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1265 |
sourceFromStacktrace( 2 ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1266 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1267 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1268 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1269 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1270 |
// Exports test.push() to the user API |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1271 |
push: function( /* result, actual, expected, message */ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1272 |
var assert = this, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1273 |
currentTest = ( assert instanceof Assert && assert.test ) || QUnit.config.current; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1274 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1275 |
// Backwards compatibility fix. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1276 |
// Allows the direct use of global exported assertions and QUnit.assert.* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1277 |
// Although, it's use is not recommended as it can leak assertions |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1278 |
// to other tests from async tests, because we only get a reference to the current test, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1279 |
// not exactly the test where assertion were intended to be called. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1280 |
if ( !currentTest ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1281 |
throw new Error( "assertion outside test context, in " + sourceFromStacktrace( 2 ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1282 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1283 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1284 |
if ( currentTest.usedAsync === true && currentTest.semaphore === 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1285 |
currentTest.pushFailure( "Assertion after the final `assert.async` was resolved", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1286 |
sourceFromStacktrace( 2 ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1287 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1288 |
// Allow this assertion to continue running anyway... |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1289 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1290 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1291 |
if ( !( assert instanceof Assert ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1292 |
assert = currentTest.assert; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1293 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1294 |
return assert.test.push.apply( assert.test, arguments ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1295 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1296 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1297 |
ok: function( result, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1298 |
message = message || ( result ? "okay" : "failed, expected argument to be truthy, was: " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1299 |
QUnit.dump.parse( result ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1300 |
this.push( !!result, result, true, message ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1301 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1302 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1303 |
notOk: function( result, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1304 |
message = message || ( !result ? "okay" : "failed, expected argument to be falsy, was: " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1305 |
QUnit.dump.parse( result ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1306 |
this.push( !result, result, false, message ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1307 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1308 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1309 |
equal: function( actual, expected, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1310 |
/*jshint eqeqeq:false */ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1311 |
this.push( expected == actual, actual, expected, message ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1312 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1313 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1314 |
notEqual: function( actual, expected, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1315 |
/*jshint eqeqeq:false */ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1316 |
this.push( expected != actual, actual, expected, message ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1317 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1318 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1319 |
propEqual: function( actual, expected, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1320 |
actual = objectValues( actual ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1321 |
expected = objectValues( expected ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1322 |
this.push( QUnit.equiv( actual, expected ), actual, expected, message ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1323 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1324 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1325 |
notPropEqual: function( actual, expected, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1326 |
actual = objectValues( actual ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1327 |
expected = objectValues( expected ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1328 |
this.push( !QUnit.equiv( actual, expected ), actual, expected, message ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1329 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1330 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1331 |
deepEqual: function( actual, expected, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1332 |
this.push( QUnit.equiv( actual, expected ), actual, expected, message ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1333 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1334 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1335 |
notDeepEqual: function( actual, expected, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1336 |
this.push( !QUnit.equiv( actual, expected ), actual, expected, message ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1337 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1338 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1339 |
strictEqual: function( actual, expected, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1340 |
this.push( expected === actual, actual, expected, message ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1341 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1342 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1343 |
notStrictEqual: function( actual, expected, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1344 |
this.push( expected !== actual, actual, expected, message ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1345 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1346 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1347 |
"throws": function( block, expected, message ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1348 |
var actual, expectedType, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1349 |
expectedOutput = expected, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1350 |
ok = false, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1351 |
currentTest = ( this instanceof Assert && this.test ) || QUnit.config.current; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1352 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1353 |
// 'expected' is optional unless doing string comparison |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1354 |
if ( message == null && typeof expected === "string" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1355 |
message = expected; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1356 |
expected = null; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1357 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1358 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1359 |
currentTest.ignoreGlobalErrors = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1360 |
try { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1361 |
block.call( currentTest.testEnvironment ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1362 |
} catch (e) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1363 |
actual = e; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1364 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1365 |
currentTest.ignoreGlobalErrors = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1366 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1367 |
if ( actual ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1368 |
expectedType = QUnit.objectType( expected ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1369 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1370 |
// we don't want to validate thrown error |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1371 |
if ( !expected ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1372 |
ok = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1373 |
expectedOutput = null; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1374 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1375 |
// expected is a regexp |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1376 |
} else if ( expectedType === "regexp" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1377 |
ok = expected.test( errorString( actual ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1378 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1379 |
// expected is a string |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1380 |
} else if ( expectedType === "string" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1381 |
ok = expected === errorString( actual ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1382 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1383 |
// expected is a constructor, maybe an Error constructor |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1384 |
} else if ( expectedType === "function" && actual instanceof expected ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1385 |
ok = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1386 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1387 |
// expected is an Error object |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1388 |
} else if ( expectedType === "object" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1389 |
ok = actual instanceof expected.constructor && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1390 |
actual.name === expected.name && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1391 |
actual.message === expected.message; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1392 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1393 |
// expected is a validation function which returns true if validation passed |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1394 |
} else if ( expectedType === "function" && expected.call( {}, actual ) === true ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1395 |
expectedOutput = null; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1396 |
ok = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1397 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1398 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1399 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1400 |
currentTest.assert.push( ok, actual, expectedOutput, message ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1401 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1402 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1403 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1404 |
// Provide an alternative to assert.throws(), for enviroments that consider throws a reserved word |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1405 |
// Known to us are: Closure Compiler, Narwhal |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1406 |
(function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1407 |
/*jshint sub:true */ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1408 |
Assert.prototype.raises = Assert.prototype[ "throws" ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1409 |
}()); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1410 |
|
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
1411 |
// Test for equality any JavaScript type. |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
1412 |
// Author: Philippe Rathé <prathe@gmail.com> |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1413 |
QUnit.equiv = (function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1414 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1415 |
// Call the o related callback with the given arguments. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1416 |
function bindCallbacks( o, callbacks, args ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1417 |
var prop = QUnit.objectType( o ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1418 |
if ( prop ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1419 |
if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1420 |
return callbacks[ prop ].apply( callbacks, args ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1421 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1422 |
return callbacks[ prop ]; // or undefined |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1423 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1424 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1425 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1426 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1427 |
// the real equiv function |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1428 |
var innerEquiv, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1429 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1430 |
// stack to decide between skip/abort functions |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1431 |
callers = [], |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1432 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1433 |
// stack to avoiding loops from circular referencing |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1434 |
parents = [], |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1435 |
parentsB = [], |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1436 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1437 |
getProto = Object.getPrototypeOf || function( obj ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1438 |
/* jshint camelcase: false, proto: true */ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1439 |
return obj.__proto__; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1440 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1441 |
callbacks = (function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1442 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1443 |
// for string, boolean, number and null |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1444 |
function useStrictEquality( b, a ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1445 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1446 |
/*jshint eqeqeq:false */ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1447 |
if ( b instanceof a.constructor || a instanceof b.constructor ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1448 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1449 |
// to catch short annotation VS 'new' annotation of a |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1450 |
// declaration |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1451 |
// e.g. var i = 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1452 |
// var j = new Number(1); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1453 |
return a == b; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1454 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1455 |
return a === b; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1456 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1457 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1458 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1459 |
return { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1460 |
"string": useStrictEquality, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1461 |
"boolean": useStrictEquality, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1462 |
"number": useStrictEquality, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1463 |
"null": useStrictEquality, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1464 |
"undefined": useStrictEquality, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1465 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1466 |
"nan": function( b ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1467 |
return isNaN( b ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1468 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1469 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1470 |
"date": function( b, a ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1471 |
return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1472 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1473 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1474 |
"regexp": function( b, a ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1475 |
return QUnit.objectType( b ) === "regexp" && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1476 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1477 |
// the regex itself |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1478 |
a.source === b.source && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1479 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1480 |
// and its modifiers |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1481 |
a.global === b.global && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1482 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1483 |
// (gmi) ... |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1484 |
a.ignoreCase === b.ignoreCase && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1485 |
a.multiline === b.multiline && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1486 |
a.sticky === b.sticky; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1487 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1488 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1489 |
// - skip when the property is a method of an instance (OOP) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1490 |
// - abort otherwise, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1491 |
// initial === would have catch identical references anyway |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1492 |
"function": function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1493 |
var caller = callers[ callers.length - 1 ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1494 |
return caller !== Object && typeof caller !== "undefined"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1495 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1496 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1497 |
"array": function( b, a ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1498 |
var i, j, len, loop, aCircular, bCircular; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1499 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1500 |
// b could be an object literal here |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1501 |
if ( QUnit.objectType( b ) !== "array" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1502 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1503 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1504 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1505 |
len = a.length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1506 |
if ( len !== b.length ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1507 |
// safe and faster |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1508 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1509 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1510 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1511 |
// track reference to avoid circular references |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1512 |
parents.push( a ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1513 |
parentsB.push( b ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1514 |
for ( i = 0; i < len; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1515 |
loop = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1516 |
for ( j = 0; j < parents.length; j++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1517 |
aCircular = parents[ j ] === a[ i ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1518 |
bCircular = parentsB[ j ] === b[ i ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1519 |
if ( aCircular || bCircular ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1520 |
if ( a[ i ] === b[ i ] || aCircular && bCircular ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1521 |
loop = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1522 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1523 |
parents.pop(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1524 |
parentsB.pop(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1525 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1526 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1527 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1528 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1529 |
if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1530 |
parents.pop(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1531 |
parentsB.pop(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1532 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1533 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1534 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1535 |
parents.pop(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1536 |
parentsB.pop(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1537 |
return true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1538 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1539 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1540 |
"object": function( b, a ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1541 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1542 |
/*jshint forin:false */ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1543 |
var i, j, loop, aCircular, bCircular, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1544 |
// Default to true |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1545 |
eq = true, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1546 |
aProperties = [], |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1547 |
bProperties = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1548 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1549 |
// comparing constructors is more strict than using |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1550 |
// instanceof |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1551 |
if ( a.constructor !== b.constructor ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1552 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1553 |
// Allow objects with no prototype to be equivalent to |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1554 |
// objects with Object as their constructor. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1555 |
if ( !( ( getProto( a ) === null && getProto( b ) === Object.prototype ) || |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1556 |
( getProto( b ) === null && getProto( a ) === Object.prototype ) ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1557 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1558 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1559 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1560 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1561 |
// stack constructor before traversing properties |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1562 |
callers.push( a.constructor ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1563 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1564 |
// track reference to avoid circular references |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1565 |
parents.push( a ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1566 |
parentsB.push( b ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1567 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1568 |
// be strict: don't ensure hasOwnProperty and go deep |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1569 |
for ( i in a ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1570 |
loop = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1571 |
for ( j = 0; j < parents.length; j++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1572 |
aCircular = parents[ j ] === a[ i ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1573 |
bCircular = parentsB[ j ] === b[ i ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1574 |
if ( aCircular || bCircular ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1575 |
if ( a[ i ] === b[ i ] || aCircular && bCircular ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1576 |
loop = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1577 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1578 |
eq = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1579 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1580 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1581 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1582 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1583 |
aProperties.push( i ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1584 |
if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1585 |
eq = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1586 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1587 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1588 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1589 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1590 |
parents.pop(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1591 |
parentsB.pop(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1592 |
callers.pop(); // unstack, we are done |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1593 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1594 |
for ( i in b ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1595 |
bProperties.push( i ); // collect b's properties |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1596 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1597 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1598 |
// Ensures identical properties name |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1599 |
return eq && innerEquiv( aProperties.sort(), bProperties.sort() ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1600 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1601 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1602 |
}()); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1603 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1604 |
innerEquiv = function() { // can take multiple arguments |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1605 |
var args = [].slice.apply( arguments ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1606 |
if ( args.length < 2 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1607 |
return true; // end transition |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1608 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1609 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1610 |
return ( (function( a, b ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1611 |
if ( a === b ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1612 |
return true; // catch the most you can |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1613 |
} else if ( a === null || b === null || typeof a === "undefined" || |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1614 |
typeof b === "undefined" || |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1615 |
QUnit.objectType( a ) !== QUnit.objectType( b ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1616 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1617 |
// don't lose time with error prone cases |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1618 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1619 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1620 |
return bindCallbacks( a, callbacks, [ b, a ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1621 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1622 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1623 |
// apply transition with (1..n) arguments |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1624 |
}( args[ 0 ], args[ 1 ] ) ) && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1625 |
innerEquiv.apply( this, args.splice( 1, args.length - 1 ) ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1626 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1627 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1628 |
return innerEquiv; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1629 |
}()); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1630 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1631 |
// Based on jsDump by Ariel Flesler |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1632 |
// http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1633 |
QUnit.dump = (function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1634 |
function quote( str ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1635 |
return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1636 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1637 |
function literal( o ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1638 |
return o + ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1639 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1640 |
function join( pre, arr, post ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1641 |
var s = dump.separator(), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1642 |
base = dump.indent(), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1643 |
inner = dump.indent( 1 ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1644 |
if ( arr.join ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1645 |
arr = arr.join( "," + s + inner ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1646 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1647 |
if ( !arr ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1648 |
return pre + post; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1649 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1650 |
return [ pre, inner + arr, base + post ].join( s ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1651 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1652 |
function array( arr, stack ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1653 |
var i = arr.length, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1654 |
ret = new Array( i ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1655 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1656 |
if ( dump.maxDepth && dump.depth > dump.maxDepth ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1657 |
return "[object Array]"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1658 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1659 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1660 |
this.up(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1661 |
while ( i-- ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1662 |
ret[ i ] = this.parse( arr[ i ], undefined, stack ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1663 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1664 |
this.down(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1665 |
return join( "[", ret, "]" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1666 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1667 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1668 |
var reName = /^function (\w+)/, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1669 |
dump = { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1670 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1671 |
// objType is used mostly internally, you can fix a (custom) type in advance |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1672 |
parse: function( obj, objType, stack ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1673 |
stack = stack || []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1674 |
var res, parser, parserType, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1675 |
inStack = inArray( obj, stack ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1676 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1677 |
if ( inStack !== -1 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1678 |
return "recursion(" + ( inStack - stack.length ) + ")"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1679 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1680 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1681 |
objType = objType || this.typeOf( obj ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1682 |
parser = this.parsers[ objType ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1683 |
parserType = typeof parser; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1684 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1685 |
if ( parserType === "function" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1686 |
stack.push( obj ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1687 |
res = parser.call( this, obj, stack ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1688 |
stack.pop(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1689 |
return res; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1690 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1691 |
return ( parserType === "string" ) ? parser : this.parsers.error; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1692 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1693 |
typeOf: function( obj ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1694 |
var type; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1695 |
if ( obj === null ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1696 |
type = "null"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1697 |
} else if ( typeof obj === "undefined" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1698 |
type = "undefined"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1699 |
} else if ( QUnit.is( "regexp", obj ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1700 |
type = "regexp"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1701 |
} else if ( QUnit.is( "date", obj ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1702 |
type = "date"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1703 |
} else if ( QUnit.is( "function", obj ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1704 |
type = "function"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1705 |
} else if ( obj.setInterval !== undefined && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1706 |
obj.document !== undefined && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1707 |
obj.nodeType === undefined ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1708 |
type = "window"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1709 |
} else if ( obj.nodeType === 9 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1710 |
type = "document"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1711 |
} else if ( obj.nodeType ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1712 |
type = "node"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1713 |
} else if ( |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1714 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1715 |
// native arrays |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1716 |
toString.call( obj ) === "[object Array]" || |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1717 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1718 |
// NodeList objects |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1719 |
( typeof obj.length === "number" && obj.item !== undefined && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1720 |
( obj.length ? obj.item( 0 ) === obj[ 0 ] : ( obj.item( 0 ) === null && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1721 |
obj[ 0 ] === undefined ) ) ) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1722 |
) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1723 |
type = "array"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1724 |
} else if ( obj.constructor === Error.prototype.constructor ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1725 |
type = "error"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1726 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1727 |
type = typeof obj; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1728 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1729 |
return type; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1730 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1731 |
separator: function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1732 |
return this.multiline ? this.HTML ? "<br />" : "\n" : this.HTML ? " " : " "; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1733 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1734 |
// extra can be a number, shortcut for increasing-calling-decreasing |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1735 |
indent: function( extra ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1736 |
if ( !this.multiline ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1737 |
return ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1738 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1739 |
var chr = this.indentChar; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1740 |
if ( this.HTML ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1741 |
chr = chr.replace( /\t/g, " " ).replace( / /g, " " ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1742 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1743 |
return new Array( this.depth + ( extra || 0 ) ).join( chr ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1744 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1745 |
up: function( a ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1746 |
this.depth += a || 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1747 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1748 |
down: function( a ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1749 |
this.depth -= a || 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1750 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1751 |
setParser: function( name, parser ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1752 |
this.parsers[ name ] = parser; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1753 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1754 |
// The next 3 are exposed so you can use them |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1755 |
quote: quote, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1756 |
literal: literal, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1757 |
join: join, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1758 |
// |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1759 |
depth: 1, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1760 |
maxDepth: QUnit.config.maxDepth, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1761 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1762 |
// This is the list of parsers, to modify them, use dump.setParser |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1763 |
parsers: { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1764 |
window: "[Window]", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1765 |
document: "[Document]", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1766 |
error: function( error ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1767 |
return "Error(\"" + error.message + "\")"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1768 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1769 |
unknown: "[Unknown]", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1770 |
"null": "null", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1771 |
"undefined": "undefined", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1772 |
"function": function( fn ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1773 |
var ret = "function", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1774 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1775 |
// functions never have name in IE |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1776 |
name = "name" in fn ? fn.name : ( reName.exec( fn ) || [] )[ 1 ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1777 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1778 |
if ( name ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1779 |
ret += " " + name; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1780 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1781 |
ret += "( "; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1782 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1783 |
ret = [ ret, dump.parse( fn, "functionArgs" ), "){" ].join( "" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1784 |
return join( ret, dump.parse( fn, "functionCode" ), "}" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1785 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1786 |
array: array, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1787 |
nodelist: array, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1788 |
"arguments": array, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1789 |
object: function( map, stack ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1790 |
var keys, key, val, i, nonEnumerableProperties, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1791 |
ret = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1792 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1793 |
if ( dump.maxDepth && dump.depth > dump.maxDepth ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1794 |
return "[object Object]"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1795 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1796 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1797 |
dump.up(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1798 |
keys = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1799 |
for ( key in map ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1800 |
keys.push( key ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1801 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1802 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1803 |
// Some properties are not always enumerable on Error objects. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1804 |
nonEnumerableProperties = [ "message", "name" ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1805 |
for ( i in nonEnumerableProperties ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1806 |
key = nonEnumerableProperties[ i ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1807 |
if ( key in map && inArray( key, keys ) < 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1808 |
keys.push( key ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1809 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1810 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1811 |
keys.sort(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1812 |
for ( i = 0; i < keys.length; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1813 |
key = keys[ i ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1814 |
val = map[ key ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1815 |
ret.push( dump.parse( key, "key" ) + ": " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1816 |
dump.parse( val, undefined, stack ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1817 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1818 |
dump.down(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1819 |
return join( "{", ret, "}" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1820 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1821 |
node: function( node ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1822 |
var len, i, val, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1823 |
open = dump.HTML ? "<" : "<", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1824 |
close = dump.HTML ? ">" : ">", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1825 |
tag = node.nodeName.toLowerCase(), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1826 |
ret = open + tag, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1827 |
attrs = node.attributes; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1828 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1829 |
if ( attrs ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1830 |
for ( i = 0, len = attrs.length; i < len; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1831 |
val = attrs[ i ].nodeValue; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1832 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1833 |
// IE6 includes all attributes in .attributes, even ones not explicitly |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1834 |
// set. Those have values like undefined, null, 0, false, "" or |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1835 |
// "inherit". |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1836 |
if ( val && val !== "inherit" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1837 |
ret += " " + attrs[ i ].nodeName + "=" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1838 |
dump.parse( val, "attribute" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1839 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1840 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1841 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1842 |
ret += close; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1843 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1844 |
// Show content of TextNode or CDATASection |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1845 |
if ( node.nodeType === 3 || node.nodeType === 4 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1846 |
ret += node.nodeValue; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1847 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1848 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1849 |
return ret + open + "/" + tag + close; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1850 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1851 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1852 |
// function calls it internally, it's the arguments part of the function |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1853 |
functionArgs: function( fn ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1854 |
var args, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1855 |
l = fn.length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1856 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1857 |
if ( !l ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1858 |
return ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1859 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1860 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1861 |
args = new Array( l ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1862 |
while ( l-- ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1863 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1864 |
// 97 is 'a' |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1865 |
args[ l ] = String.fromCharCode( 97 + l ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1866 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1867 |
return " " + args.join( ", " ) + " "; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1868 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1869 |
// object calls it internally, the key part of an item in a map |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1870 |
key: quote, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1871 |
// function calls it internally, it's the content of the function |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1872 |
functionCode: "[code]", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1873 |
// node calls it internally, it's an html attribute value |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1874 |
attribute: quote, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1875 |
string: quote, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1876 |
date: quote, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1877 |
regexp: literal, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1878 |
number: literal, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1879 |
"boolean": literal |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1880 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1881 |
// if true, entities are escaped ( <, >, \t, space and \n ) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1882 |
HTML: false, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1883 |
// indentation unit |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1884 |
indentChar: " ", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1885 |
// if true, items in a collection, are separated by a \n, else just a space. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1886 |
multiline: true |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1887 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1888 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1889 |
return dump; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1890 |
}()); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1891 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1892 |
// back compat |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1893 |
QUnit.jsDump = QUnit.dump; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1894 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1895 |
// For browser, export only select globals |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1896 |
if ( typeof window !== "undefined" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1897 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1898 |
// Deprecated |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1899 |
// Extend assert methods to QUnit and Global scope through Backwards compatibility |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1900 |
(function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1901 |
var i, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1902 |
assertions = Assert.prototype; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1903 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1904 |
function applyCurrent( current ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1905 |
return function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1906 |
var assert = new Assert( QUnit.config.current ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1907 |
current.apply( assert, arguments ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1908 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1909 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1910 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1911 |
for ( i in assertions ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1912 |
QUnit[ i ] = applyCurrent( assertions[ i ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1913 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1914 |
})(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1915 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1916 |
(function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1917 |
var i, l, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1918 |
keys = [ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1919 |
"test", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1920 |
"module", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1921 |
"expect", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1922 |
"asyncTest", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1923 |
"start", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1924 |
"stop", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1925 |
"ok", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1926 |
"notOk", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1927 |
"equal", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1928 |
"notEqual", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1929 |
"propEqual", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1930 |
"notPropEqual", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1931 |
"deepEqual", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1932 |
"notDeepEqual", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1933 |
"strictEqual", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1934 |
"notStrictEqual", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1935 |
"throws" |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1936 |
]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1937 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1938 |
for ( i = 0, l = keys.length; i < l; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1939 |
window[ keys[ i ] ] = QUnit[ keys[ i ] ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1940 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1941 |
})(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1942 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1943 |
window.QUnit = QUnit; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1944 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1945 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1946 |
// For nodejs |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1947 |
if ( typeof module !== "undefined" && module && module.exports ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1948 |
module.exports = QUnit; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1949 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1950 |
// For consistency with CommonJS environments' exports |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1951 |
module.exports.QUnit = QUnit; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1952 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1953 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1954 |
// For CommonJS with exports, but without module.exports, like Rhino |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1955 |
if ( typeof exports !== "undefined" && exports ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1956 |
exports.QUnit = QUnit; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1957 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1958 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1959 |
if ( typeof define === "function" && define.amd ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1960 |
define( function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1961 |
return QUnit; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1962 |
} ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1963 |
QUnit.config.autostart = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1964 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1965 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1966 |
// Get a reference to the global object, like window in browsers |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1967 |
}( (function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1968 |
return this; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1969 |
})() )); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1970 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1971 |
/*istanbul ignore next */ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1972 |
// jscs:disable maximumLineLength |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1973 |
/* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1974 |
* This file is a modified version of google-diff-match-patch's JavaScript implementation |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1975 |
* (https://code.google.com/p/google-diff-match-patch/source/browse/trunk/javascript/diff_match_patch_uncompressed.js), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1976 |
* modifications are licensed as more fully set forth in LICENSE.txt. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1977 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1978 |
* The original source of google-diff-match-patch is attributable and licensed as follows: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1979 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1980 |
* Copyright 2006 Google Inc. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1981 |
* http://code.google.com/p/google-diff-match-patch/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1982 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1983 |
* Licensed under the Apache License, Version 2.0 (the "License"); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1984 |
* you may not use this file except in compliance with the License. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1985 |
* You may obtain a copy of the License at |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1986 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1987 |
* http://www.apache.org/licenses/LICENSE-2.0 |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1988 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1989 |
* Unless required by applicable law or agreed to in writing, software |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1990 |
* distributed under the License is distributed on an "AS IS" BASIS, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1991 |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1992 |
* See the License for the specific language governing permissions and |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1993 |
* limitations under the License. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1994 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1995 |
* More Info: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1996 |
* https://code.google.com/p/google-diff-match-patch/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1997 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1998 |
* Usage: QUnit.diff(expected, actual) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
1999 |
* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2000 |
* QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) === "the quick <del>brown </del> fox jump<ins>s</ins><del>ed</del over" |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2001 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2002 |
QUnit.diff = (function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2003 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2004 |
function DiffMatchPatch() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2005 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2006 |
// Defaults. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2007 |
// Redefine these in your program to override the defaults. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2008 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2009 |
// Number of seconds to map a diff before giving up (0 for infinity). |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2010 |
this.DiffTimeout = 1.0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2011 |
// Cost of an empty edit operation in terms of edit characters. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2012 |
this.DiffEditCost = 4; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2013 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2014 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2015 |
// DIFF FUNCTIONS |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2016 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2017 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2018 |
* The data structure representing a diff is an array of tuples: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2019 |
* [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']] |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2020 |
* which means: delete 'Hello', add 'Goodbye' and keep ' world.' |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2021 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2022 |
var DIFF_DELETE = -1, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2023 |
DIFF_INSERT = 1, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2024 |
DIFF_EQUAL = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2025 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2026 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2027 |
* Find the differences between two texts. Simplifies the problem by stripping |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2028 |
* any common prefix or suffix off the texts before diffing. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2029 |
* @param {string} text1 Old string to be diffed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2030 |
* @param {string} text2 New string to be diffed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2031 |
* @param {boolean=} optChecklines Optional speedup flag. If present and false, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2032 |
* then don't run a line-level diff first to identify the changed areas. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2033 |
* Defaults to true, which does a faster, slightly less optimal diff. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2034 |
* @param {number} optDeadline Optional time when the diff should be complete |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2035 |
* by. Used internally for recursive calls. Users should set DiffTimeout |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2036 |
* instead. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2037 |
* @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2038 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2039 |
DiffMatchPatch.prototype.DiffMain = function( text1, text2, optChecklines, optDeadline ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2040 |
var deadline, checklines, commonlength, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2041 |
commonprefix, commonsuffix, diffs; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2042 |
// Set a deadline by which time the diff must be complete. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2043 |
if ( typeof optDeadline === "undefined" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2044 |
if ( this.DiffTimeout <= 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2045 |
optDeadline = Number.MAX_VALUE; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2046 |
} else { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2047 |
optDeadline = ( new Date() ).getTime() + this.DiffTimeout * 1000; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2048 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2049 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2050 |
deadline = optDeadline; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2051 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2052 |
// Check for null inputs. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2053 |
if ( text1 === null || text2 === null ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2054 |
throw new Error( "Null input. (DiffMain)" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2055 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2056 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2057 |
// Check for equality (speedup). |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2058 |
if ( text1 === text2 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2059 |
if ( text1 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2060 |
return [ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2061 |
[ DIFF_EQUAL, text1 ] |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2062 |
]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2063 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2064 |
return []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2065 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2066 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2067 |
if ( typeof optChecklines === "undefined" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2068 |
optChecklines = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2069 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2070 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2071 |
checklines = optChecklines; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2072 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2073 |
// Trim off common prefix (speedup). |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2074 |
commonlength = this.diffCommonPrefix( text1, text2 ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2075 |
commonprefix = text1.substring( 0, commonlength ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2076 |
text1 = text1.substring( commonlength ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2077 |
text2 = text2.substring( commonlength ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2078 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2079 |
// Trim off common suffix (speedup). |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2080 |
///////// |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2081 |
commonlength = this.diffCommonSuffix( text1, text2 ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2082 |
commonsuffix = text1.substring( text1.length - commonlength ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2083 |
text1 = text1.substring( 0, text1.length - commonlength ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2084 |
text2 = text2.substring( 0, text2.length - commonlength ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2085 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2086 |
// Compute the diff on the middle block. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2087 |
diffs = this.diffCompute( text1, text2, checklines, deadline ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2088 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2089 |
// Restore the prefix and suffix. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2090 |
if ( commonprefix ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2091 |
diffs.unshift( [ DIFF_EQUAL, commonprefix ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2092 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2093 |
if ( commonsuffix ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2094 |
diffs.push( [ DIFF_EQUAL, commonsuffix ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2095 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2096 |
this.diffCleanupMerge( diffs ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2097 |
return diffs; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2098 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2099 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2100 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2101 |
* Reduce the number of edits by eliminating operationally trivial equalities. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2102 |
* @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2103 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2104 |
DiffMatchPatch.prototype.diffCleanupEfficiency = function( diffs ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2105 |
var changes, equalities, equalitiesLength, lastequality, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2106 |
pointer, preIns, preDel, postIns, postDel; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2107 |
changes = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2108 |
equalities = []; // Stack of indices where equalities are found. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2109 |
equalitiesLength = 0; // Keeping our own length var is faster in JS. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2110 |
/** @type {?string} */ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2111 |
lastequality = null; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2112 |
// Always equal to diffs[equalities[equalitiesLength - 1]][1] |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2113 |
pointer = 0; // Index of current position. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2114 |
// Is there an insertion operation before the last equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2115 |
preIns = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2116 |
// Is there a deletion operation before the last equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2117 |
preDel = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2118 |
// Is there an insertion operation after the last equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2119 |
postIns = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2120 |
// Is there a deletion operation after the last equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2121 |
postDel = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2122 |
while ( pointer < diffs.length ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2123 |
if ( diffs[ pointer ][ 0 ] === DIFF_EQUAL ) { // Equality found. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2124 |
if ( diffs[ pointer ][ 1 ].length < this.DiffEditCost && ( postIns || postDel ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2125 |
// Candidate found. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2126 |
equalities[ equalitiesLength++ ] = pointer; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2127 |
preIns = postIns; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2128 |
preDel = postDel; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2129 |
lastequality = diffs[ pointer ][ 1 ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2130 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2131 |
// Not a candidate, and can never become one. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2132 |
equalitiesLength = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2133 |
lastequality = null; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2134 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2135 |
postIns = postDel = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2136 |
} else { // An insertion or deletion. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2137 |
if ( diffs[ pointer ][ 0 ] === DIFF_DELETE ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2138 |
postDel = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2139 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2140 |
postIns = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2141 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2142 |
/* |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2143 |
* Five types to be split: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2144 |
* <ins>A</ins><del>B</del>XY<ins>C</ins><del>D</del> |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2145 |
* <ins>A</ins>X<ins>C</ins><del>D</del> |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2146 |
* <ins>A</ins><del>B</del>X<ins>C</ins> |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2147 |
* <ins>A</del>X<ins>C</ins><del>D</del> |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2148 |
* <ins>A</ins><del>B</del>X<del>C</del> |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2149 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2150 |
if ( lastequality && ( ( preIns && preDel && postIns && postDel ) || |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2151 |
( ( lastequality.length < this.DiffEditCost / 2 ) && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2152 |
( preIns + preDel + postIns + postDel ) === 3 ) ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2153 |
// Duplicate record. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2154 |
diffs.splice( equalities[equalitiesLength - 1], 0, [ DIFF_DELETE, lastequality ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2155 |
// Change second copy to insert. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2156 |
diffs[ equalities[ equalitiesLength - 1 ] + 1 ][ 0 ] = DIFF_INSERT; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2157 |
equalitiesLength--; // Throw away the equality we just deleted; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2158 |
lastequality = null; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2159 |
if (preIns && preDel) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2160 |
// No changes made which could affect previous entry, keep going. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2161 |
postIns = postDel = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2162 |
equalitiesLength = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2163 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2164 |
equalitiesLength--; // Throw away the previous equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2165 |
pointer = equalitiesLength > 0 ? equalities[ equalitiesLength - 1 ] : -1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2166 |
postIns = postDel = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2167 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2168 |
changes = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2169 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2170 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2171 |
pointer++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2172 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2173 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2174 |
if ( changes ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2175 |
this.diffCleanupMerge( diffs ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2176 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2177 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2178 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2179 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2180 |
* Convert a diff array into a pretty HTML report. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2181 |
* @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2182 |
* @param {integer} string to be beautified. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2183 |
* @return {string} HTML representation. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2184 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2185 |
DiffMatchPatch.prototype.diffPrettyHtml = function( diffs ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2186 |
var op, data, x, html = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2187 |
for ( x = 0; x < diffs.length; x++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2188 |
op = diffs[x][0]; // Operation (insert, delete, equal) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2189 |
data = diffs[x][1]; // Text of change. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2190 |
switch ( op ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2191 |
case DIFF_INSERT: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2192 |
html[x] = "<ins>" + data + "</ins>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2193 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2194 |
case DIFF_DELETE: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2195 |
html[x] = "<del>" + data + "</del>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2196 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2197 |
case DIFF_EQUAL: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2198 |
html[x] = "<span>" + data + "</span>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2199 |
break; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2200 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2201 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2202 |
return html.join(""); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2203 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2204 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2205 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2206 |
* Determine the common prefix of two strings. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2207 |
* @param {string} text1 First string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2208 |
* @param {string} text2 Second string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2209 |
* @return {number} The number of characters common to the start of each |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2210 |
* string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2211 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2212 |
DiffMatchPatch.prototype.diffCommonPrefix = function( text1, text2 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2213 |
var pointermid, pointermax, pointermin, pointerstart; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2214 |
// Quick check for common null cases. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2215 |
if ( !text1 || !text2 || text1.charAt(0) !== text2.charAt(0) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2216 |
return 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2217 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2218 |
// Binary search. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2219 |
// Performance analysis: http://neil.fraser.name/news/2007/10/09/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2220 |
pointermin = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2221 |
pointermax = Math.min( text1.length, text2.length ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2222 |
pointermid = pointermax; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2223 |
pointerstart = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2224 |
while ( pointermin < pointermid ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2225 |
if ( text1.substring( pointerstart, pointermid ) === text2.substring( pointerstart, pointermid ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2226 |
pointermin = pointermid; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2227 |
pointerstart = pointermin; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2228 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2229 |
pointermax = pointermid; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2230 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2231 |
pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2232 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2233 |
return pointermid; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2234 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2235 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2236 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2237 |
* Determine the common suffix of two strings. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2238 |
* @param {string} text1 First string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2239 |
* @param {string} text2 Second string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2240 |
* @return {number} The number of characters common to the end of each string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2241 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2242 |
DiffMatchPatch.prototype.diffCommonSuffix = function( text1, text2 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2243 |
var pointermid, pointermax, pointermin, pointerend; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2244 |
// Quick check for common null cases. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2245 |
if (!text1 || !text2 || text1.charAt(text1.length - 1) !== text2.charAt(text2.length - 1)) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2246 |
return 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2247 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2248 |
// Binary search. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2249 |
// Performance analysis: http://neil.fraser.name/news/2007/10/09/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2250 |
pointermin = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2251 |
pointermax = Math.min(text1.length, text2.length); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2252 |
pointermid = pointermax; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2253 |
pointerend = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2254 |
while ( pointermin < pointermid ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2255 |
if (text1.substring( text1.length - pointermid, text1.length - pointerend ) === |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2256 |
text2.substring( text2.length - pointermid, text2.length - pointerend ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2257 |
pointermin = pointermid; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2258 |
pointerend = pointermin; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2259 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2260 |
pointermax = pointermid; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2261 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2262 |
pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2263 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2264 |
return pointermid; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2265 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2266 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2267 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2268 |
* Find the differences between two texts. Assumes that the texts do not |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2269 |
* have any common prefix or suffix. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2270 |
* @param {string} text1 Old string to be diffed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2271 |
* @param {string} text2 New string to be diffed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2272 |
* @param {boolean} checklines Speedup flag. If false, then don't run a |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2273 |
* line-level diff first to identify the changed areas. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2274 |
* If true, then run a faster, slightly less optimal diff. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2275 |
* @param {number} deadline Time when the diff should be complete by. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2276 |
* @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2277 |
* @private |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2278 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2279 |
DiffMatchPatch.prototype.diffCompute = function( text1, text2, checklines, deadline ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2280 |
var diffs, longtext, shorttext, i, hm, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2281 |
text1A, text2A, text1B, text2B, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2282 |
midCommon, diffsA, diffsB; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2283 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2284 |
if ( !text1 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2285 |
// Just add some text (speedup). |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2286 |
return [ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2287 |
[ DIFF_INSERT, text2 ] |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2288 |
]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2289 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2290 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2291 |
if (!text2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2292 |
// Just delete some text (speedup). |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2293 |
return [ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2294 |
[ DIFF_DELETE, text1 ] |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2295 |
]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2296 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2297 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2298 |
longtext = text1.length > text2.length ? text1 : text2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2299 |
shorttext = text1.length > text2.length ? text2 : text1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2300 |
i = longtext.indexOf( shorttext ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2301 |
if ( i !== -1 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2302 |
// Shorter text is inside the longer text (speedup). |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2303 |
diffs = [ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2304 |
[ DIFF_INSERT, longtext.substring( 0, i ) ], |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2305 |
[ DIFF_EQUAL, shorttext ], |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2306 |
[ DIFF_INSERT, longtext.substring( i + shorttext.length ) ] |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2307 |
]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2308 |
// Swap insertions for deletions if diff is reversed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2309 |
if ( text1.length > text2.length ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2310 |
diffs[0][0] = diffs[2][0] = DIFF_DELETE; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2311 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2312 |
return diffs; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2313 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2314 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2315 |
if ( shorttext.length === 1 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2316 |
// Single character string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2317 |
// After the previous speedup, the character can't be an equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2318 |
return [ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2319 |
[ DIFF_DELETE, text1 ], |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2320 |
[ DIFF_INSERT, text2 ] |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2321 |
]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2322 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2323 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2324 |
// Check to see if the problem can be split in two. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2325 |
hm = this.diffHalfMatch(text1, text2); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2326 |
if (hm) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2327 |
// A half-match was found, sort out the return data. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2328 |
text1A = hm[0]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2329 |
text1B = hm[1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2330 |
text2A = hm[2]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2331 |
text2B = hm[3]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2332 |
midCommon = hm[4]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2333 |
// Send both pairs off for separate processing. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2334 |
diffsA = this.DiffMain(text1A, text2A, checklines, deadline); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2335 |
diffsB = this.DiffMain(text1B, text2B, checklines, deadline); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2336 |
// Merge the results. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2337 |
return diffsA.concat([ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2338 |
[ DIFF_EQUAL, midCommon ] |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2339 |
], diffsB); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2340 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2341 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2342 |
if (checklines && text1.length > 100 && text2.length > 100) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2343 |
return this.diffLineMode(text1, text2, deadline); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2344 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2345 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2346 |
return this.diffBisect(text1, text2, deadline); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2347 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2348 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2349 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2350 |
* Do the two texts share a substring which is at least half the length of the |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2351 |
* longer text? |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2352 |
* This speedup can produce non-minimal diffs. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2353 |
* @param {string} text1 First string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2354 |
* @param {string} text2 Second string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2355 |
* @return {Array.<string>} Five element Array, containing the prefix of |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2356 |
* text1, the suffix of text1, the prefix of text2, the suffix of |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2357 |
* text2 and the common middle. Or null if there was no match. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2358 |
* @private |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2359 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2360 |
DiffMatchPatch.prototype.diffHalfMatch = function(text1, text2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2361 |
var longtext, shorttext, dmp, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2362 |
text1A, text2B, text2A, text1B, midCommon, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2363 |
hm1, hm2, hm; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2364 |
if (this.DiffTimeout <= 0) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2365 |
// Don't risk returning a non-optimal diff if we have unlimited time. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2366 |
return null; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2367 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2368 |
longtext = text1.length > text2.length ? text1 : text2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2369 |
shorttext = text1.length > text2.length ? text2 : text1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2370 |
if (longtext.length < 4 || shorttext.length * 2 < longtext.length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2371 |
return null; // Pointless. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2372 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2373 |
dmp = this; // 'this' becomes 'window' in a closure. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2374 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2375 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2376 |
* Does a substring of shorttext exist within longtext such that the substring |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2377 |
* is at least half the length of longtext? |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2378 |
* Closure, but does not reference any external variables. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2379 |
* @param {string} longtext Longer string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2380 |
* @param {string} shorttext Shorter string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2381 |
* @param {number} i Start index of quarter length substring within longtext. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2382 |
* @return {Array.<string>} Five element Array, containing the prefix of |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2383 |
* longtext, the suffix of longtext, the prefix of shorttext, the suffix |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2384 |
* of shorttext and the common middle. Or null if there was no match. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2385 |
* @private |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2386 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2387 |
function diffHalfMatchI(longtext, shorttext, i) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2388 |
var seed, j, bestCommon, prefixLength, suffixLength, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2389 |
bestLongtextA, bestLongtextB, bestShorttextA, bestShorttextB; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2390 |
// Start with a 1/4 length substring at position i as a seed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2391 |
seed = longtext.substring(i, i + Math.floor(longtext.length / 4)); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2392 |
j = -1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2393 |
bestCommon = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2394 |
while ((j = shorttext.indexOf(seed, j + 1)) !== -1) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2395 |
prefixLength = dmp.diffCommonPrefix(longtext.substring(i), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2396 |
shorttext.substring(j)); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2397 |
suffixLength = dmp.diffCommonSuffix(longtext.substring(0, i), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2398 |
shorttext.substring(0, j)); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2399 |
if (bestCommon.length < suffixLength + prefixLength) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2400 |
bestCommon = shorttext.substring(j - suffixLength, j) + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2401 |
shorttext.substring(j, j + prefixLength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2402 |
bestLongtextA = longtext.substring(0, i - suffixLength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2403 |
bestLongtextB = longtext.substring(i + prefixLength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2404 |
bestShorttextA = shorttext.substring(0, j - suffixLength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2405 |
bestShorttextB = shorttext.substring(j + prefixLength); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2406 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2407 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2408 |
if (bestCommon.length * 2 >= longtext.length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2409 |
return [ bestLongtextA, bestLongtextB, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2410 |
bestShorttextA, bestShorttextB, bestCommon |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2411 |
]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2412 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2413 |
return null; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2414 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2415 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2416 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2417 |
// First check if the second quarter is the seed for a half-match. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2418 |
hm1 = diffHalfMatchI(longtext, shorttext, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2419 |
Math.ceil(longtext.length / 4)); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2420 |
// Check again based on the third quarter. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2421 |
hm2 = diffHalfMatchI(longtext, shorttext, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2422 |
Math.ceil(longtext.length / 2)); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2423 |
if (!hm1 && !hm2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2424 |
return null; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2425 |
} else if (!hm2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2426 |
hm = hm1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2427 |
} else if (!hm1) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2428 |
hm = hm2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2429 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2430 |
// Both matched. Select the longest. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2431 |
hm = hm1[4].length > hm2[4].length ? hm1 : hm2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2432 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2433 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2434 |
// A half-match was found, sort out the return data. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2435 |
text1A, text1B, text2A, text2B; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2436 |
if (text1.length > text2.length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2437 |
text1A = hm[0]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2438 |
text1B = hm[1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2439 |
text2A = hm[2]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2440 |
text2B = hm[3]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2441 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2442 |
text2A = hm[0]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2443 |
text2B = hm[1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2444 |
text1A = hm[2]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2445 |
text1B = hm[3]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2446 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2447 |
midCommon = hm[4]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2448 |
return [ text1A, text1B, text2A, text2B, midCommon ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2449 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2450 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2451 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2452 |
* Do a quick line-level diff on both strings, then rediff the parts for |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2453 |
* greater accuracy. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2454 |
* This speedup can produce non-minimal diffs. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2455 |
* @param {string} text1 Old string to be diffed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2456 |
* @param {string} text2 New string to be diffed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2457 |
* @param {number} deadline Time when the diff should be complete by. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2458 |
* @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2459 |
* @private |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2460 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2461 |
DiffMatchPatch.prototype.diffLineMode = function(text1, text2, deadline) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2462 |
var a, diffs, linearray, pointer, countInsert, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2463 |
countDelete, textInsert, textDelete, j; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2464 |
// Scan the text on a line-by-line basis first. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2465 |
a = this.diffLinesToChars(text1, text2); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2466 |
text1 = a.chars1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2467 |
text2 = a.chars2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2468 |
linearray = a.lineArray; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2469 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2470 |
diffs = this.DiffMain(text1, text2, false, deadline); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2471 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2472 |
// Convert the diff back to original text. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2473 |
this.diffCharsToLines(diffs, linearray); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2474 |
// Eliminate freak matches (e.g. blank lines) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2475 |
this.diffCleanupSemantic(diffs); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2476 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2477 |
// Rediff any replacement blocks, this time character-by-character. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2478 |
// Add a dummy entry at the end. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2479 |
diffs.push( [ DIFF_EQUAL, "" ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2480 |
pointer = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2481 |
countDelete = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2482 |
countInsert = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2483 |
textDelete = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2484 |
textInsert = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2485 |
while (pointer < diffs.length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2486 |
switch ( diffs[pointer][0] ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2487 |
case DIFF_INSERT: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2488 |
countInsert++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2489 |
textInsert += diffs[pointer][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2490 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2491 |
case DIFF_DELETE: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2492 |
countDelete++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2493 |
textDelete += diffs[pointer][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2494 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2495 |
case DIFF_EQUAL: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2496 |
// Upon reaching an equality, check for prior redundancies. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2497 |
if (countDelete >= 1 && countInsert >= 1) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2498 |
// Delete the offending records and add the merged ones. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2499 |
diffs.splice(pointer - countDelete - countInsert, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2500 |
countDelete + countInsert); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2501 |
pointer = pointer - countDelete - countInsert; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2502 |
a = this.DiffMain(textDelete, textInsert, false, deadline); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2503 |
for (j = a.length - 1; j >= 0; j--) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2504 |
diffs.splice( pointer, 0, a[j] ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2505 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2506 |
pointer = pointer + a.length; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2507 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2508 |
countInsert = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2509 |
countDelete = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2510 |
textDelete = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2511 |
textInsert = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2512 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2513 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2514 |
pointer++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2515 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2516 |
diffs.pop(); // Remove the dummy entry at the end. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2517 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2518 |
return diffs; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2519 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2520 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2521 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2522 |
* Find the 'middle snake' of a diff, split the problem in two |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2523 |
* and return the recursively constructed diff. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2524 |
* See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2525 |
* @param {string} text1 Old string to be diffed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2526 |
* @param {string} text2 New string to be diffed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2527 |
* @param {number} deadline Time at which to bail if not yet complete. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2528 |
* @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2529 |
* @private |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2530 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2531 |
DiffMatchPatch.prototype.diffBisect = function(text1, text2, deadline) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2532 |
var text1Length, text2Length, maxD, vOffset, vLength, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2533 |
v1, v2, x, delta, front, k1start, k1end, k2start, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2534 |
k2end, k2Offset, k1Offset, x1, x2, y1, y2, d, k1, k2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2535 |
// Cache the text lengths to prevent multiple calls. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2536 |
text1Length = text1.length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2537 |
text2Length = text2.length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2538 |
maxD = Math.ceil((text1Length + text2Length) / 2); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2539 |
vOffset = maxD; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2540 |
vLength = 2 * maxD; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2541 |
v1 = new Array(vLength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2542 |
v2 = new Array(vLength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2543 |
// Setting all elements to -1 is faster in Chrome & Firefox than mixing |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2544 |
// integers and undefined. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2545 |
for (x = 0; x < vLength; x++) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2546 |
v1[x] = -1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2547 |
v2[x] = -1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2548 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2549 |
v1[vOffset + 1] = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2550 |
v2[vOffset + 1] = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2551 |
delta = text1Length - text2Length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2552 |
// If the total number of characters is odd, then the front path will collide |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2553 |
// with the reverse path. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2554 |
front = (delta % 2 !== 0); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2555 |
// Offsets for start and end of k loop. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2556 |
// Prevents mapping of space beyond the grid. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2557 |
k1start = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2558 |
k1end = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2559 |
k2start = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2560 |
k2end = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2561 |
for (d = 0; d < maxD; d++) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2562 |
// Bail out if deadline is reached. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2563 |
if ((new Date()).getTime() > deadline) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2564 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2565 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2566 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2567 |
// Walk the front path one step. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2568 |
for (k1 = -d + k1start; k1 <= d - k1end; k1 += 2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2569 |
k1Offset = vOffset + k1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2570 |
if ( k1 === -d || ( k1 !== d && v1[ k1Offset - 1 ] < v1[ k1Offset + 1 ] ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2571 |
x1 = v1[k1Offset + 1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2572 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2573 |
x1 = v1[k1Offset - 1] + 1; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2574 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2575 |
y1 = x1 - k1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2576 |
while (x1 < text1Length && y1 < text2Length && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2577 |
text1.charAt(x1) === text2.charAt(y1)) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2578 |
x1++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2579 |
y1++; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2580 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2581 |
v1[k1Offset] = x1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2582 |
if (x1 > text1Length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2583 |
// Ran off the right of the graph. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2584 |
k1end += 2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2585 |
} else if (y1 > text2Length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2586 |
// Ran off the bottom of the graph. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2587 |
k1start += 2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2588 |
} else if (front) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2589 |
k2Offset = vOffset + delta - k1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2590 |
if (k2Offset >= 0 && k2Offset < vLength && v2[k2Offset] !== -1) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2591 |
// Mirror x2 onto top-left coordinate system. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2592 |
x2 = text1Length - v2[k2Offset]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2593 |
if (x1 >= x2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2594 |
// Overlap detected. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2595 |
return this.diffBisectSplit(text1, text2, x1, y1, deadline); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2596 |
} |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2597 |
} |
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2598 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2599 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2600 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2601 |
// Walk the reverse path one step. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2602 |
for (k2 = -d + k2start; k2 <= d - k2end; k2 += 2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2603 |
k2Offset = vOffset + k2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2604 |
if ( k2 === -d || (k2 !== d && v2[ k2Offset - 1 ] < v2[ k2Offset + 1 ] ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2605 |
x2 = v2[k2Offset + 1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2606 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2607 |
x2 = v2[k2Offset - 1] + 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2608 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2609 |
y2 = x2 - k2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2610 |
while (x2 < text1Length && y2 < text2Length && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2611 |
text1.charAt(text1Length - x2 - 1) === |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2612 |
text2.charAt(text2Length - y2 - 1)) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2613 |
x2++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2614 |
y2++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2615 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2616 |
v2[k2Offset] = x2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2617 |
if (x2 > text1Length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2618 |
// Ran off the left of the graph. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2619 |
k2end += 2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2620 |
} else if (y2 > text2Length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2621 |
// Ran off the top of the graph. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2622 |
k2start += 2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2623 |
} else if (!front) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2624 |
k1Offset = vOffset + delta - k2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2625 |
if (k1Offset >= 0 && k1Offset < vLength && v1[k1Offset] !== -1) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2626 |
x1 = v1[k1Offset]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2627 |
y1 = vOffset + x1 - k1Offset; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2628 |
// Mirror x2 onto top-left coordinate system. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2629 |
x2 = text1Length - x2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2630 |
if (x1 >= x2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2631 |
// Overlap detected. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2632 |
return this.diffBisectSplit(text1, text2, x1, y1, deadline); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2633 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2634 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2635 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2636 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2637 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2638 |
// Diff took too long and hit the deadline or |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2639 |
// number of diffs equals number of characters, no commonality at all. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2640 |
return [ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2641 |
[ DIFF_DELETE, text1 ], |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2642 |
[ DIFF_INSERT, text2 ] |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2643 |
]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2644 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2645 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2646 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2647 |
* Given the location of the 'middle snake', split the diff in two parts |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2648 |
* and recurse. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2649 |
* @param {string} text1 Old string to be diffed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2650 |
* @param {string} text2 New string to be diffed. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2651 |
* @param {number} x Index of split point in text1. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2652 |
* @param {number} y Index of split point in text2. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2653 |
* @param {number} deadline Time at which to bail if not yet complete. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2654 |
* @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2655 |
* @private |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2656 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2657 |
DiffMatchPatch.prototype.diffBisectSplit = function( text1, text2, x, y, deadline ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2658 |
var text1a, text1b, text2a, text2b, diffs, diffsb; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2659 |
text1a = text1.substring(0, x); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2660 |
text2a = text2.substring(0, y); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2661 |
text1b = text1.substring(x); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2662 |
text2b = text2.substring(y); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2663 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2664 |
// Compute both diffs serially. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2665 |
diffs = this.DiffMain(text1a, text2a, false, deadline); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2666 |
diffsb = this.DiffMain(text1b, text2b, false, deadline); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2667 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2668 |
return diffs.concat(diffsb); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2669 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2670 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2671 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2672 |
* Reduce the number of edits by eliminating semantically trivial equalities. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2673 |
* @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2674 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2675 |
DiffMatchPatch.prototype.diffCleanupSemantic = function(diffs) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2676 |
var changes, equalities, equalitiesLength, lastequality, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2677 |
pointer, lengthInsertions2, lengthDeletions2, lengthInsertions1, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2678 |
lengthDeletions1, deletion, insertion, overlapLength1, overlapLength2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2679 |
changes = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2680 |
equalities = []; // Stack of indices where equalities are found. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2681 |
equalitiesLength = 0; // Keeping our own length var is faster in JS. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2682 |
/** @type {?string} */ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2683 |
lastequality = null; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2684 |
// Always equal to diffs[equalities[equalitiesLength - 1]][1] |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2685 |
pointer = 0; // Index of current position. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2686 |
// Number of characters that changed prior to the equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2687 |
lengthInsertions1 = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2688 |
lengthDeletions1 = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2689 |
// Number of characters that changed after the equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2690 |
lengthInsertions2 = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2691 |
lengthDeletions2 = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2692 |
while (pointer < diffs.length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2693 |
if (diffs[pointer][0] === DIFF_EQUAL) { // Equality found. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2694 |
equalities[equalitiesLength++] = pointer; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2695 |
lengthInsertions1 = lengthInsertions2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2696 |
lengthDeletions1 = lengthDeletions2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2697 |
lengthInsertions2 = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2698 |
lengthDeletions2 = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2699 |
lastequality = diffs[pointer][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2700 |
} else { // An insertion or deletion. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2701 |
if (diffs[pointer][0] === DIFF_INSERT) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2702 |
lengthInsertions2 += diffs[pointer][1].length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2703 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2704 |
lengthDeletions2 += diffs[pointer][1].length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2705 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2706 |
// Eliminate an equality that is smaller or equal to the edits on both |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2707 |
// sides of it. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2708 |
if (lastequality && (lastequality.length <= |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2709 |
Math.max(lengthInsertions1, lengthDeletions1)) && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2710 |
(lastequality.length <= Math.max(lengthInsertions2, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2711 |
lengthDeletions2))) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2712 |
// Duplicate record. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2713 |
diffs.splice( equalities[ equalitiesLength - 1 ], 0, [ DIFF_DELETE, lastequality ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2714 |
// Change second copy to insert. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2715 |
diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2716 |
// Throw away the equality we just deleted. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2717 |
equalitiesLength--; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2718 |
// Throw away the previous equality (it needs to be reevaluated). |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2719 |
equalitiesLength--; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2720 |
pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2721 |
lengthInsertions1 = 0; // Reset the counters. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2722 |
lengthDeletions1 = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2723 |
lengthInsertions2 = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2724 |
lengthDeletions2 = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2725 |
lastequality = null; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2726 |
changes = true; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2727 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2728 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2729 |
pointer++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2730 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2731 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2732 |
// Normalize the diff. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2733 |
if (changes) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2734 |
this.diffCleanupMerge(diffs); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2735 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2736 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2737 |
// Find any overlaps between deletions and insertions. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2738 |
// e.g: <del>abcxxx</del><ins>xxxdef</ins> |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2739 |
// -> <del>abc</del>xxx<ins>def</ins> |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2740 |
// e.g: <del>xxxabc</del><ins>defxxx</ins> |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2741 |
// -> <ins>def</ins>xxx<del>abc</del> |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2742 |
// Only extract an overlap if it is as big as the edit ahead or behind it. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2743 |
pointer = 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2744 |
while (pointer < diffs.length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2745 |
if (diffs[pointer - 1][0] === DIFF_DELETE && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2746 |
diffs[pointer][0] === DIFF_INSERT) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2747 |
deletion = diffs[pointer - 1][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2748 |
insertion = diffs[pointer][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2749 |
overlapLength1 = this.diffCommonOverlap(deletion, insertion); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2750 |
overlapLength2 = this.diffCommonOverlap(insertion, deletion); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2751 |
if (overlapLength1 >= overlapLength2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2752 |
if (overlapLength1 >= deletion.length / 2 || |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2753 |
overlapLength1 >= insertion.length / 2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2754 |
// Overlap found. Insert an equality and trim the surrounding edits. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2755 |
diffs.splice( pointer, 0, [ DIFF_EQUAL, insertion.substring( 0, overlapLength1 ) ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2756 |
diffs[pointer - 1][1] = |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2757 |
deletion.substring(0, deletion.length - overlapLength1); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2758 |
diffs[pointer + 1][1] = insertion.substring(overlapLength1); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2759 |
pointer++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2760 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2761 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2762 |
if (overlapLength2 >= deletion.length / 2 || |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2763 |
overlapLength2 >= insertion.length / 2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2764 |
// Reverse overlap found. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2765 |
// Insert an equality and swap and trim the surrounding edits. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2766 |
diffs.splice( pointer, 0, [ DIFF_EQUAL, deletion.substring( 0, overlapLength2 ) ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2767 |
diffs[pointer - 1][0] = DIFF_INSERT; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2768 |
diffs[pointer - 1][1] = |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2769 |
insertion.substring(0, insertion.length - overlapLength2); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2770 |
diffs[pointer + 1][0] = DIFF_DELETE; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2771 |
diffs[pointer + 1][1] = |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2772 |
deletion.substring(overlapLength2); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2773 |
pointer++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2774 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2775 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2776 |
pointer++; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2777 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2778 |
pointer++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2779 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2780 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2781 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2782 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2783 |
* Determine if the suffix of one string is the prefix of another. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2784 |
* @param {string} text1 First string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2785 |
* @param {string} text2 Second string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2786 |
* @return {number} The number of characters common to the end of the first |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2787 |
* string and the start of the second string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2788 |
* @private |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2789 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2790 |
DiffMatchPatch.prototype.diffCommonOverlap = function(text1, text2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2791 |
var text1Length, text2Length, textLength, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2792 |
best, length, pattern, found; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2793 |
// Cache the text lengths to prevent multiple calls. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2794 |
text1Length = text1.length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2795 |
text2Length = text2.length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2796 |
// Eliminate the null case. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2797 |
if (text1Length === 0 || text2Length === 0) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2798 |
return 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2799 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2800 |
// Truncate the longer string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2801 |
if (text1Length > text2Length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2802 |
text1 = text1.substring(text1Length - text2Length); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2803 |
} else if (text1Length < text2Length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2804 |
text2 = text2.substring(0, text1Length); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2805 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2806 |
textLength = Math.min(text1Length, text2Length); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2807 |
// Quick check for the worst case. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2808 |
if (text1 === text2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2809 |
return textLength; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2810 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2811 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2812 |
// Start by looking for a single character match |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2813 |
// and increase length until no match is found. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2814 |
// Performance analysis: http://neil.fraser.name/news/2010/11/04/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2815 |
best = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2816 |
length = 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2817 |
while (true) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2818 |
pattern = text1.substring(textLength - length); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2819 |
found = text2.indexOf(pattern); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2820 |
if (found === -1) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2821 |
return best; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2822 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2823 |
length += found; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2824 |
if (found === 0 || text1.substring(textLength - length) === |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2825 |
text2.substring(0, length)) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2826 |
best = length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2827 |
length++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2828 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2829 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2830 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2831 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2832 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2833 |
* Split two texts into an array of strings. Reduce the texts to a string of |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2834 |
* hashes where each Unicode character represents one line. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2835 |
* @param {string} text1 First string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2836 |
* @param {string} text2 Second string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2837 |
* @return {{chars1: string, chars2: string, lineArray: !Array.<string>}} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2838 |
* An object containing the encoded text1, the encoded text2 and |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2839 |
* the array of unique strings. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2840 |
* The zeroth element of the array of unique strings is intentionally blank. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2841 |
* @private |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2842 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2843 |
DiffMatchPatch.prototype.diffLinesToChars = function(text1, text2) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2844 |
var lineArray, lineHash, chars1, chars2; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2845 |
lineArray = []; // e.g. lineArray[4] === 'Hello\n' |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2846 |
lineHash = {}; // e.g. lineHash['Hello\n'] === 4 |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2847 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2848 |
// '\x00' is a valid character, but various debuggers don't like it. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2849 |
// So we'll insert a junk entry to avoid generating a null character. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2850 |
lineArray[0] = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2851 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2852 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2853 |
* Split a text into an array of strings. Reduce the texts to a string of |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2854 |
* hashes where each Unicode character represents one line. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2855 |
* Modifies linearray and linehash through being a closure. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2856 |
* @param {string} text String to encode. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2857 |
* @return {string} Encoded string. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2858 |
* @private |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2859 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2860 |
function diffLinesToCharsMunge(text) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2861 |
var chars, lineStart, lineEnd, lineArrayLength, line; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2862 |
chars = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2863 |
// Walk the text, pulling out a substring for each line. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2864 |
// text.split('\n') would would temporarily double our memory footprint. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2865 |
// Modifying text would create many large strings to garbage collect. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2866 |
lineStart = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2867 |
lineEnd = -1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2868 |
// Keeping our own length variable is faster than looking it up. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2869 |
lineArrayLength = lineArray.length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2870 |
while (lineEnd < text.length - 1) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2871 |
lineEnd = text.indexOf("\n", lineStart); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2872 |
if (lineEnd === -1) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2873 |
lineEnd = text.length - 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2874 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2875 |
line = text.substring(lineStart, lineEnd + 1); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2876 |
lineStart = lineEnd + 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2877 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2878 |
if (lineHash.hasOwnProperty ? lineHash.hasOwnProperty(line) : |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2879 |
(lineHash[line] !== undefined)) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2880 |
chars += String.fromCharCode( lineHash[ line ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2881 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2882 |
chars += String.fromCharCode(lineArrayLength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2883 |
lineHash[line] = lineArrayLength; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2884 |
lineArray[lineArrayLength++] = line; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2885 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2886 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2887 |
return chars; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2888 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2889 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2890 |
chars1 = diffLinesToCharsMunge(text1); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2891 |
chars2 = diffLinesToCharsMunge(text2); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2892 |
return { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2893 |
chars1: chars1, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2894 |
chars2: chars2, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2895 |
lineArray: lineArray |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
2896 |
}; |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2897 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2898 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2899 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2900 |
* Rehydrate the text in a diff from a string of line hashes to real lines of |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2901 |
* text. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2902 |
* @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2903 |
* @param {!Array.<string>} lineArray Array of unique strings. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2904 |
* @private |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2905 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2906 |
DiffMatchPatch.prototype.diffCharsToLines = function( diffs, lineArray ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2907 |
var x, chars, text, y; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2908 |
for ( x = 0; x < diffs.length; x++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2909 |
chars = diffs[x][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2910 |
text = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2911 |
for ( y = 0; y < chars.length; y++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2912 |
text[y] = lineArray[chars.charCodeAt(y)]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2913 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2914 |
diffs[x][1] = text.join(""); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2915 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2916 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2917 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2918 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2919 |
* Reorder and merge like edit sections. Merge equalities. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2920 |
* Any edit section can move as long as it doesn't cross an equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2921 |
* @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2922 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2923 |
DiffMatchPatch.prototype.diffCleanupMerge = function(diffs) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2924 |
var pointer, countDelete, countInsert, textInsert, textDelete, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2925 |
commonlength, changes; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2926 |
diffs.push( [ DIFF_EQUAL, "" ] ); // Add a dummy entry at the end. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2927 |
pointer = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2928 |
countDelete = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2929 |
countInsert = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2930 |
textDelete = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2931 |
textInsert = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2932 |
commonlength; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2933 |
while (pointer < diffs.length) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2934 |
switch ( diffs[ pointer ][ 0 ] ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2935 |
case DIFF_INSERT: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2936 |
countInsert++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2937 |
textInsert += diffs[pointer][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2938 |
pointer++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2939 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2940 |
case DIFF_DELETE: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2941 |
countDelete++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2942 |
textDelete += diffs[pointer][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2943 |
pointer++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2944 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2945 |
case DIFF_EQUAL: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2946 |
// Upon reaching an equality, check for prior redundancies. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2947 |
if (countDelete + countInsert > 1) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2948 |
if (countDelete !== 0 && countInsert !== 0) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2949 |
// Factor out any common prefixies. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2950 |
commonlength = this.diffCommonPrefix(textInsert, textDelete); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2951 |
if (commonlength !== 0) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2952 |
if ((pointer - countDelete - countInsert) > 0 && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2953 |
diffs[pointer - countDelete - countInsert - 1][0] === |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2954 |
DIFF_EQUAL) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2955 |
diffs[pointer - countDelete - countInsert - 1][1] += |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2956 |
textInsert.substring(0, commonlength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2957 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2958 |
diffs.splice( 0, 0, [ DIFF_EQUAL, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2959 |
textInsert.substring( 0, commonlength ) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2960 |
] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2961 |
pointer++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2962 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2963 |
textInsert = textInsert.substring(commonlength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2964 |
textDelete = textDelete.substring(commonlength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2965 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2966 |
// Factor out any common suffixies. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2967 |
commonlength = this.diffCommonSuffix(textInsert, textDelete); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2968 |
if (commonlength !== 0) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2969 |
diffs[pointer][1] = textInsert.substring(textInsert.length - |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2970 |
commonlength) + diffs[pointer][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2971 |
textInsert = textInsert.substring(0, textInsert.length - |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2972 |
commonlength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2973 |
textDelete = textDelete.substring(0, textDelete.length - |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2974 |
commonlength); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2975 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2976 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2977 |
// Delete the offending records and add the merged ones. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2978 |
if (countDelete === 0) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2979 |
diffs.splice( pointer - countInsert, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2980 |
countDelete + countInsert, [ DIFF_INSERT, textInsert ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2981 |
} else if (countInsert === 0) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2982 |
diffs.splice( pointer - countDelete, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2983 |
countDelete + countInsert, [ DIFF_DELETE, textDelete ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2984 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2985 |
diffs.splice( pointer - countDelete - countInsert, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2986 |
countDelete + countInsert, [ DIFF_DELETE, textDelete ], [ DIFF_INSERT, textInsert ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2987 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2988 |
pointer = pointer - countDelete - countInsert + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2989 |
(countDelete ? 1 : 0) + (countInsert ? 1 : 0) + 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2990 |
} else if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2991 |
// Merge this equality with the previous one. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2992 |
diffs[pointer - 1][1] += diffs[pointer][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2993 |
diffs.splice(pointer, 1); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2994 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2995 |
pointer++; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2996 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2997 |
countInsert = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2998 |
countDelete = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
2999 |
textDelete = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3000 |
textInsert = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3001 |
break; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3002 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3003 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3004 |
if (diffs[diffs.length - 1][1] === "") { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3005 |
diffs.pop(); // Remove the dummy entry at the end. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3006 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3007 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3008 |
// Second pass: look for single edits surrounded on both sides by equalities |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3009 |
// which can be shifted sideways to eliminate an equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3010 |
// e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3011 |
changes = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3012 |
pointer = 1; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3013 |
// Intentionally ignore the first and last element (don't need checking). |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3014 |
while (pointer < diffs.length - 1) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3015 |
if (diffs[pointer - 1][0] === DIFF_EQUAL && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3016 |
diffs[pointer + 1][0] === DIFF_EQUAL) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3017 |
// This is a single edit surrounded by equalities. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3018 |
if ( diffs[ pointer ][ 1 ].substring( diffs[ pointer ][ 1 ].length - |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3019 |
diffs[ pointer - 1 ][ 1 ].length ) === diffs[ pointer - 1 ][ 1 ] ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3020 |
// Shift the edit over the previous equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3021 |
diffs[pointer][1] = diffs[pointer - 1][1] + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3022 |
diffs[pointer][1].substring(0, diffs[pointer][1].length - |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3023 |
diffs[pointer - 1][1].length); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3024 |
diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3025 |
diffs.splice(pointer - 1, 1); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3026 |
changes = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3027 |
} else if ( diffs[ pointer ][ 1 ].substring( 0, diffs[ pointer + 1 ][ 1 ].length ) === |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3028 |
diffs[ pointer + 1 ][ 1 ] ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3029 |
// Shift the edit over the next equality. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3030 |
diffs[pointer - 1][1] += diffs[pointer + 1][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3031 |
diffs[pointer][1] = |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3032 |
diffs[pointer][1].substring(diffs[pointer + 1][1].length) + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3033 |
diffs[pointer + 1][1]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3034 |
diffs.splice(pointer + 1, 1); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3035 |
changes = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3036 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3037 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3038 |
pointer++; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
3039 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3040 |
// If shifts were made, the diff needs reordering and another shift sweep. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3041 |
if (changes) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3042 |
this.diffCleanupMerge(diffs); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3043 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3044 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3045 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3046 |
return function(o, n) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3047 |
var diff, output, text; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3048 |
diff = new DiffMatchPatch(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3049 |
output = diff.DiffMain(o, n); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3050 |
//console.log(output); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3051 |
diff.diffCleanupEfficiency(output); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3052 |
text = diff.diffPrettyHtml(output); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3053 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3054 |
return text; |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
3055 |
}; |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3056 |
}()); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3057 |
// jscs:enable |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3058 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3059 |
(function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3060 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3061 |
// Deprecated QUnit.init - Ref #530 |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3062 |
// Re-initialize the configuration options |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3063 |
QUnit.init = function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3064 |
var tests, banner, result, qunit, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3065 |
config = QUnit.config; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3066 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3067 |
config.stats = { all: 0, bad: 0 }; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3068 |
config.moduleStats = { all: 0, bad: 0 }; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3069 |
config.started = 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3070 |
config.updateRate = 1000; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3071 |
config.blocking = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3072 |
config.autostart = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3073 |
config.autorun = false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3074 |
config.filter = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3075 |
config.queue = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3076 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3077 |
// Return on non-browser environments |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3078 |
// This is necessary to not break on node tests |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3079 |
if ( typeof window === "undefined" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3080 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3081 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3082 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3083 |
qunit = id( "qunit" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3084 |
if ( qunit ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3085 |
qunit.innerHTML = |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3086 |
"<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3087 |
"<h2 id='qunit-banner'></h2>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3088 |
"<div id='qunit-testrunner-toolbar'></div>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3089 |
"<h2 id='qunit-userAgent'></h2>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3090 |
"<ol id='qunit-tests'></ol>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3091 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3092 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3093 |
tests = id( "qunit-tests" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3094 |
banner = id( "qunit-banner" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3095 |
result = id( "qunit-testresult" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3096 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3097 |
if ( tests ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3098 |
tests.innerHTML = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3099 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3100 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3101 |
if ( banner ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3102 |
banner.className = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3103 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3104 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3105 |
if ( result ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3106 |
result.parentNode.removeChild( result ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3107 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3108 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3109 |
if ( tests ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3110 |
result = document.createElement( "p" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3111 |
result.id = "qunit-testresult"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3112 |
result.className = "result"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3113 |
tests.parentNode.insertBefore( result, tests ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3114 |
result.innerHTML = "Running...<br /> "; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3115 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3116 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3117 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3118 |
// Don't load the HTML Reporter on non-Browser environments |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3119 |
if ( typeof window === "undefined" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3120 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3121 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3122 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3123 |
var config = QUnit.config, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3124 |
hasOwn = Object.prototype.hasOwnProperty, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3125 |
defined = { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3126 |
document: window.document !== undefined, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3127 |
sessionStorage: (function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3128 |
var x = "qunit-test-string"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3129 |
try { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3130 |
sessionStorage.setItem( x, x ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3131 |
sessionStorage.removeItem( x ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3132 |
return true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3133 |
} catch ( e ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3134 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3135 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3136 |
}()) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3137 |
}, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3138 |
modulesList = []; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3139 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3140 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3141 |
* Escape text for attribute or text content. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3142 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3143 |
function escapeText( s ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3144 |
if ( !s ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3145 |
return ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3146 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3147 |
s = s + ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3148 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3149 |
// Both single quotes and double quotes (for attributes) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3150 |
return s.replace( /['"<>&]/g, function( s ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3151 |
switch ( s ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3152 |
case "'": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3153 |
return "'"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3154 |
case "\"": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3155 |
return """; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3156 |
case "<": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3157 |
return "<"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3158 |
case ">": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3159 |
return ">"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3160 |
case "&": |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3161 |
return "&"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3162 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3163 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3164 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3165 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3166 |
/** |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3167 |
* @param {HTMLElement} elem |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3168 |
* @param {string} type |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3169 |
* @param {Function} fn |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3170 |
*/ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3171 |
function addEvent( elem, type, fn ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3172 |
if ( elem.addEventListener ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3173 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3174 |
// Standards-based browsers |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3175 |
elem.addEventListener( type, fn, false ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3176 |
} else if ( elem.attachEvent ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3177 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3178 |
// support: IE <9 |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3179 |
elem.attachEvent( "on" + type, function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3180 |
var event = window.event; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3181 |
if ( !event.target ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3182 |
event.target = event.srcElement || document; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3183 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3184 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3185 |
fn.call( elem, event ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3186 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3187 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3188 |
} |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
3189 |
|
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
3190 |
/** |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3191 |
* @param {Array|NodeList} elems |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3192 |
* @param {string} type |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3193 |
* @param {Function} fn |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
3194 |
*/ |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3195 |
function addEvents( elems, type, fn ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3196 |
var i = elems.length; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3197 |
while ( i-- ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3198 |
addEvent( elems[ i ], type, fn ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3199 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3200 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3201 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3202 |
function hasClass( elem, name ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3203 |
return ( " " + elem.className + " " ).indexOf( " " + name + " " ) >= 0; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3204 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3205 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3206 |
function addClass( elem, name ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3207 |
if ( !hasClass( elem, name ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3208 |
elem.className += ( elem.className ? " " : "" ) + name; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3209 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3210 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3211 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3212 |
function toggleClass( elem, name ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3213 |
if ( hasClass( elem, name ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3214 |
removeClass( elem, name ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3215 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3216 |
addClass( elem, name ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3217 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3218 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3219 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3220 |
function removeClass( elem, name ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3221 |
var set = " " + elem.className + " "; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3222 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3223 |
// Class name may appear multiple times |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3224 |
while ( set.indexOf( " " + name + " " ) >= 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3225 |
set = set.replace( " " + name + " ", " " ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3226 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3227 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3228 |
// trim for prettiness |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3229 |
elem.className = typeof set.trim === "function" ? set.trim() : set.replace( /^\s+|\s+$/g, "" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3230 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3231 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3232 |
function id( name ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3233 |
return defined.document && document.getElementById && document.getElementById( name ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3234 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3235 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3236 |
function getUrlConfigHtml() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3237 |
var i, j, val, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3238 |
escaped, escapedTooltip, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3239 |
selection = false, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3240 |
len = config.urlConfig.length, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3241 |
urlConfigHtml = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3242 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3243 |
for ( i = 0; i < len; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3244 |
val = config.urlConfig[ i ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3245 |
if ( typeof val === "string" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3246 |
val = { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3247 |
id: val, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3248 |
label: val |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3249 |
}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3250 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3251 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3252 |
escaped = escapeText( val.id ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3253 |
escapedTooltip = escapeText( val.tooltip ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3254 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3255 |
if ( config[ val.id ] === undefined ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3256 |
config[ val.id ] = QUnit.urlParams[ val.id ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3257 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3258 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3259 |
if ( !val.value || typeof val.value === "string" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3260 |
urlConfigHtml += "<input id='qunit-urlconfig-" + escaped + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3261 |
"' name='" + escaped + "' type='checkbox'" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3262 |
( val.value ? " value='" + escapeText( val.value ) + "'" : "" ) + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3263 |
( config[ val.id ] ? " checked='checked'" : "" ) + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3264 |
" title='" + escapedTooltip + "' /><label for='qunit-urlconfig-" + escaped + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3265 |
"' title='" + escapedTooltip + "'>" + val.label + "</label>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3266 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3267 |
urlConfigHtml += "<label for='qunit-urlconfig-" + escaped + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3268 |
"' title='" + escapedTooltip + "'>" + val.label + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3269 |
": </label><select id='qunit-urlconfig-" + escaped + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3270 |
"' name='" + escaped + "' title='" + escapedTooltip + "'><option></option>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3271 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3272 |
if ( QUnit.is( "array", val.value ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3273 |
for ( j = 0; j < val.value.length; j++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3274 |
escaped = escapeText( val.value[ j ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3275 |
urlConfigHtml += "<option value='" + escaped + "'" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3276 |
( config[ val.id ] === val.value[ j ] ? |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3277 |
( selection = true ) && " selected='selected'" : "" ) + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3278 |
">" + escaped + "</option>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3279 |
} |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
3280 |
} else { |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3281 |
for ( j in val.value ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3282 |
if ( hasOwn.call( val.value, j ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3283 |
urlConfigHtml += "<option value='" + escapeText( j ) + "'" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3284 |
( config[ val.id ] === j ? |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3285 |
( selection = true ) && " selected='selected'" : "" ) + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3286 |
">" + escapeText( val.value[ j ] ) + "</option>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3287 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3288 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3289 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3290 |
if ( config[ val.id ] && !selection ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3291 |
escaped = escapeText( config[ val.id ] ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3292 |
urlConfigHtml += "<option value='" + escaped + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3293 |
"' selected='selected' disabled='disabled'>" + escaped + "</option>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3294 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3295 |
urlConfigHtml += "</select>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3296 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3297 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3298 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3299 |
return urlConfigHtml; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3300 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3301 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3302 |
// Handle "click" events on toolbar checkboxes and "change" for select menus. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3303 |
// Updates the URL with the new state of `config.urlConfig` values. |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3304 |
function toolbarChanged() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3305 |
var updatedUrl, value, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3306 |
field = this, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3307 |
params = {}; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3308 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3309 |
// Detect if field is a select menu or a checkbox |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3310 |
if ( "selectedIndex" in field ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3311 |
value = field.options[ field.selectedIndex ].value || undefined; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3312 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3313 |
value = field.checked ? ( field.defaultValue || true ) : undefined; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3314 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3315 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3316 |
params[ field.name ] = value; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3317 |
updatedUrl = setUrl( params ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3318 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3319 |
if ( "hidepassed" === field.name && "replaceState" in window.history ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3320 |
config[ field.name ] = value || false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3321 |
if ( value ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3322 |
addClass( id( "qunit-tests" ), "hidepass" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3323 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3324 |
removeClass( id( "qunit-tests" ), "hidepass" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3325 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3326 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3327 |
// It is not necessary to refresh the whole page |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3328 |
window.history.replaceState( null, "", updatedUrl ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3329 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3330 |
window.location = updatedUrl; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3331 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3332 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3333 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3334 |
function setUrl( params ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3335 |
var key, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3336 |
querystring = "?"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3337 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3338 |
params = QUnit.extend( QUnit.extend( {}, QUnit.urlParams ), params ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3339 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3340 |
for ( key in params ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3341 |
if ( hasOwn.call( params, key ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3342 |
if ( params[ key ] === undefined ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3343 |
continue; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3344 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3345 |
querystring += encodeURIComponent( key ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3346 |
if ( params[ key ] !== true ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3347 |
querystring += "=" + encodeURIComponent( params[ key ] ); |
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
3348 |
} |
10427
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3349 |
querystring += "&"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3350 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3351 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3352 |
return location.protocol + "//" + location.host + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3353 |
location.pathname + querystring.slice( 0, -1 ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3354 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3355 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3356 |
function applyUrlParams() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3357 |
var selectedModule, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3358 |
modulesList = id( "qunit-modulefilter" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3359 |
filter = id( "qunit-filter-input" ).value; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3360 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3361 |
selectedModule = modulesList ? |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3362 |
decodeURIComponent( modulesList.options[ modulesList.selectedIndex ].value ) : |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3363 |
undefined; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3364 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3365 |
window.location = setUrl({ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3366 |
module: ( selectedModule === "" ) ? undefined : selectedModule, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3367 |
filter: ( filter === "" ) ? undefined : filter, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3368 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3369 |
// Remove testId filter |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3370 |
testId: undefined |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3371 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3372 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3373 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3374 |
function toolbarUrlConfigContainer() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3375 |
var urlConfigContainer = document.createElement( "span" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3376 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3377 |
urlConfigContainer.innerHTML = getUrlConfigHtml(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3378 |
addClass( urlConfigContainer, "qunit-url-config" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3379 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3380 |
// For oldIE support: |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3381 |
// * Add handlers to the individual elements instead of the container |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3382 |
// * Use "click" instead of "change" for checkboxes |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3383 |
addEvents( urlConfigContainer.getElementsByTagName( "input" ), "click", toolbarChanged ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3384 |
addEvents( urlConfigContainer.getElementsByTagName( "select" ), "change", toolbarChanged ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3385 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3386 |
return urlConfigContainer; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3387 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3388 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3389 |
function toolbarLooseFilter() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3390 |
var filter = document.createElement( "form" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3391 |
label = document.createElement( "label" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3392 |
input = document.createElement( "input" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3393 |
button = document.createElement( "button" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3394 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3395 |
addClass( filter, "qunit-filter" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3396 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3397 |
label.innerHTML = "Filter: "; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3398 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3399 |
input.type = "text"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3400 |
input.value = config.filter || ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3401 |
input.name = "filter"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3402 |
input.id = "qunit-filter-input"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3403 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3404 |
button.innerHTML = "Go"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3405 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3406 |
label.appendChild( input ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3407 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3408 |
filter.appendChild( label ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3409 |
filter.appendChild( button ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3410 |
addEvent( filter, "submit", function( ev ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3411 |
applyUrlParams(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3412 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3413 |
if ( ev && ev.preventDefault ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3414 |
ev.preventDefault(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3415 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3416 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3417 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3418 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3419 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3420 |
return filter; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3421 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3422 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3423 |
function toolbarModuleFilterHtml() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3424 |
var i, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3425 |
moduleFilterHtml = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3426 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3427 |
if ( !modulesList.length ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3428 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3429 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3430 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3431 |
modulesList.sort(function( a, b ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3432 |
return a.localeCompare( b ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3433 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3434 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3435 |
moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3436 |
"<select id='qunit-modulefilter' name='modulefilter'><option value='' " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3437 |
( QUnit.urlParams.module === undefined ? "selected='selected'" : "" ) + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3438 |
">< All Modules ></option>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3439 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3440 |
for ( i = 0; i < modulesList.length; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3441 |
moduleFilterHtml += "<option value='" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3442 |
escapeText( encodeURIComponent( modulesList[ i ] ) ) + "' " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3443 |
( QUnit.urlParams.module === modulesList[ i ] ? "selected='selected'" : "" ) + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3444 |
">" + escapeText( modulesList[ i ] ) + "</option>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3445 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3446 |
moduleFilterHtml += "</select>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3447 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3448 |
return moduleFilterHtml; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3449 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3450 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3451 |
function toolbarModuleFilter() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3452 |
var toolbar = id( "qunit-testrunner-toolbar" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3453 |
moduleFilter = document.createElement( "span" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3454 |
moduleFilterHtml = toolbarModuleFilterHtml(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3455 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3456 |
if ( !toolbar || !moduleFilterHtml ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3457 |
return false; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3458 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3459 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3460 |
moduleFilter.setAttribute( "id", "qunit-modulefilter-container" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3461 |
moduleFilter.innerHTML = moduleFilterHtml; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3462 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3463 |
addEvent( moduleFilter.lastChild, "change", applyUrlParams ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3464 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3465 |
toolbar.appendChild( moduleFilter ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3466 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3467 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3468 |
function appendToolbar() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3469 |
var toolbar = id( "qunit-testrunner-toolbar" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3470 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3471 |
if ( toolbar ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3472 |
toolbar.appendChild( toolbarUrlConfigContainer() ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3473 |
toolbar.appendChild( toolbarLooseFilter() ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3474 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3475 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3476 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3477 |
function appendHeader() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3478 |
var header = id( "qunit-header" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3479 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3480 |
if ( header ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3481 |
header.innerHTML = "<a href='" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3482 |
setUrl({ filter: undefined, module: undefined, testId: undefined }) + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3483 |
"'>" + header.innerHTML + "</a> "; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3484 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3485 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3486 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3487 |
function appendBanner() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3488 |
var banner = id( "qunit-banner" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3489 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3490 |
if ( banner ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3491 |
banner.className = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3492 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3493 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3494 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3495 |
function appendTestResults() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3496 |
var tests = id( "qunit-tests" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3497 |
result = id( "qunit-testresult" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3498 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3499 |
if ( result ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3500 |
result.parentNode.removeChild( result ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3501 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3502 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3503 |
if ( tests ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3504 |
tests.innerHTML = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3505 |
result = document.createElement( "p" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3506 |
result.id = "qunit-testresult"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3507 |
result.className = "result"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3508 |
tests.parentNode.insertBefore( result, tests ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3509 |
result.innerHTML = "Running...<br /> "; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3510 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3511 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3512 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3513 |
function storeFixture() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3514 |
var fixture = id( "qunit-fixture" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3515 |
if ( fixture ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3516 |
config.fixture = fixture.innerHTML; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3517 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3518 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3519 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3520 |
function appendUserAgent() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3521 |
var userAgent = id( "qunit-userAgent" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3522 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3523 |
if ( userAgent ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3524 |
userAgent.innerHTML = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3525 |
userAgent.appendChild( |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3526 |
document.createTextNode( |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3527 |
"QUnit " + QUnit.version + "; " + navigator.userAgent |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3528 |
) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3529 |
); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3530 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3531 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3532 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3533 |
function appendTestsList( modules ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3534 |
var i, l, x, z, test, moduleObj; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3535 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3536 |
for ( i = 0, l = modules.length; i < l; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3537 |
moduleObj = modules[ i ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3538 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3539 |
if ( moduleObj.name ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3540 |
modulesList.push( moduleObj.name ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3541 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3542 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3543 |
for ( x = 0, z = moduleObj.tests.length; x < z; x++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3544 |
test = moduleObj.tests[ x ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3545 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3546 |
appendTest( test.name, test.testId, moduleObj.name ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3547 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3548 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3549 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3550 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3551 |
function appendTest( name, testId, moduleName ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3552 |
var title, rerunTrigger, testBlock, assertList, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3553 |
tests = id( "qunit-tests" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3554 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3555 |
if ( !tests ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3556 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3557 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3558 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3559 |
title = document.createElement( "strong" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3560 |
title.innerHTML = getNameHtml( name, moduleName ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3561 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3562 |
rerunTrigger = document.createElement( "a" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3563 |
rerunTrigger.innerHTML = "Rerun"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3564 |
rerunTrigger.href = setUrl({ testId: testId }); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3565 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3566 |
testBlock = document.createElement( "li" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3567 |
testBlock.appendChild( title ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3568 |
testBlock.appendChild( rerunTrigger ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3569 |
testBlock.id = "qunit-test-output-" + testId; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3570 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3571 |
assertList = document.createElement( "ol" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3572 |
assertList.className = "qunit-assert-list"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3573 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3574 |
testBlock.appendChild( assertList ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3575 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3576 |
tests.appendChild( testBlock ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3577 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3578 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3579 |
// HTML Reporter initialization and load |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3580 |
QUnit.begin(function( details ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3581 |
var qunit = id( "qunit" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3582 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3583 |
// Fixture is the only one necessary to run without the #qunit element |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3584 |
storeFixture(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3585 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3586 |
if ( qunit ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3587 |
qunit.innerHTML = |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3588 |
"<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3589 |
"<h2 id='qunit-banner'></h2>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3590 |
"<div id='qunit-testrunner-toolbar'></div>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3591 |
"<h2 id='qunit-userAgent'></h2>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3592 |
"<ol id='qunit-tests'></ol>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3593 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3594 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3595 |
appendHeader(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3596 |
appendBanner(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3597 |
appendTestResults(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3598 |
appendUserAgent(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3599 |
appendToolbar(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3600 |
appendTestsList( details.modules ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3601 |
toolbarModuleFilter(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3602 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3603 |
if ( qunit && config.hidepassed ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3604 |
addClass( qunit.lastChild, "hidepass" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3605 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3606 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3607 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3608 |
QUnit.done(function( details ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3609 |
var i, key, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3610 |
banner = id( "qunit-banner" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3611 |
tests = id( "qunit-tests" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3612 |
html = [ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3613 |
"Tests completed in ", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3614 |
details.runtime, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3615 |
" milliseconds.<br />", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3616 |
"<span class='passed'>", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3617 |
details.passed, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3618 |
"</span> assertions of <span class='total'>", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3619 |
details.total, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3620 |
"</span> passed, <span class='failed'>", |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3621 |
details.failed, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3622 |
"</span> failed." |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3623 |
].join( "" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3624 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3625 |
if ( banner ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3626 |
banner.className = details.failed ? "qunit-fail" : "qunit-pass"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3627 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3628 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3629 |
if ( tests ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3630 |
id( "qunit-testresult" ).innerHTML = html; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3631 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3632 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3633 |
if ( config.altertitle && defined.document && document.title ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3634 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3635 |
// show ✖ for good, ✔ for bad suite result in title |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3636 |
// use escape sequences in case file gets loaded with non-utf-8-charset |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3637 |
document.title = [ |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3638 |
( details.failed ? "\u2716" : "\u2714" ), |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3639 |
document.title.replace( /^[\u2714\u2716] /i, "" ) |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3640 |
].join( " " ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3641 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3642 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3643 |
// clear own sessionStorage items if all tests passed |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3644 |
if ( config.reorder && defined.sessionStorage && details.failed === 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3645 |
for ( i = 0; i < sessionStorage.length; i++ ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3646 |
key = sessionStorage.key( i++ ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3647 |
if ( key.indexOf( "qunit-test-" ) === 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3648 |
sessionStorage.removeItem( key ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3649 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3650 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3651 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3652 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3653 |
// scroll back to top to show results |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3654 |
if ( config.scrolltop && window.scrollTo ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3655 |
window.scrollTo( 0, 0 ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3656 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3657 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3658 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3659 |
function getNameHtml( name, module ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3660 |
var nameHtml = ""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3661 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3662 |
if ( module ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3663 |
nameHtml = "<span class='module-name'>" + escapeText( module ) + "</span>: "; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3664 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3665 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3666 |
nameHtml += "<span class='test-name'>" + escapeText( name ) + "</span>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3667 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3668 |
return nameHtml; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3669 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3670 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3671 |
QUnit.testStart(function( details ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3672 |
var running, testBlock, bad; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3673 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3674 |
testBlock = id( "qunit-test-output-" + details.testId ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3675 |
if ( testBlock ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3676 |
testBlock.className = "running"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3677 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3678 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3679 |
// Report later registered tests |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3680 |
appendTest( details.name, details.testId, details.module ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3681 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3682 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3683 |
running = id( "qunit-testresult" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3684 |
if ( running ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3685 |
bad = QUnit.config.reorder && defined.sessionStorage && |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3686 |
+sessionStorage.getItem( "qunit-test-" + details.module + "-" + details.name ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3687 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3688 |
running.innerHTML = ( bad ? |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3689 |
"Rerunning previously failed test: <br />" : |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3690 |
"Running: <br />" ) + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3691 |
getNameHtml( details.name, details.module ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3692 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3693 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3694 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3695 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3696 |
QUnit.log(function( details ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3697 |
var assertList, assertLi, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3698 |
message, expected, actual, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3699 |
testItem = id( "qunit-test-output-" + details.testId ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3700 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3701 |
if ( !testItem ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3702 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3703 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3704 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3705 |
message = escapeText( details.message ) || ( details.result ? "okay" : "failed" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3706 |
message = "<span class='test-message'>" + message + "</span>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3707 |
message += "<span class='runtime'>@ " + details.runtime + " ms</span>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3708 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3709 |
// pushFailure doesn't provide details.expected |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3710 |
// when it calls, it's implicit to also not show expected and diff stuff |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3711 |
// Also, we need to check details.expected existence, as it can exist and be undefined |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3712 |
if ( !details.result && hasOwn.call( details, "expected" ) ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3713 |
expected = escapeText( QUnit.dump.parse( details.expected ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3714 |
actual = escapeText( QUnit.dump.parse( details.actual ) ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3715 |
message += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3716 |
expected + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3717 |
"</pre></td></tr>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3718 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3719 |
if ( actual !== expected ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3720 |
message += "<tr class='test-actual'><th>Result: </th><td><pre>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3721 |
actual + "</pre></td></tr>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3722 |
"<tr class='test-diff'><th>Diff: </th><td><pre>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3723 |
QUnit.diff( expected, actual ) + "</pre></td></tr>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3724 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3725 |
if ( expected.indexOf( "[object Array]" ) !== -1 || |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3726 |
expected.indexOf( "[object Object]" ) !== -1 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3727 |
message += "<tr class='test-message'><th>Message: </th><td>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3728 |
"Diff suppressed as the depth of object is more than current max depth (" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3729 |
QUnit.config.maxDepth + ").<p>Hint: Use <code>QUnit.dump.maxDepth</code> to " + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3730 |
" run with a higher max depth or <a href='" + setUrl({ maxDepth: -1 }) + "'>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3731 |
"Rerun</a> without max depth.</p></td></tr>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3732 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3733 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3734 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3735 |
if ( details.source ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3736 |
message += "<tr class='test-source'><th>Source: </th><td><pre>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3737 |
escapeText( details.source ) + "</pre></td></tr>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3738 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3739 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3740 |
message += "</table>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3741 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3742 |
// this occours when pushFailure is set and we have an extracted stack trace |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3743 |
} else if ( !details.result && details.source ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3744 |
message += "<table>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3745 |
"<tr class='test-source'><th>Source: </th><td><pre>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3746 |
escapeText( details.source ) + "</pre></td></tr>" + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3747 |
"</table>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3748 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3749 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3750 |
assertList = testItem.getElementsByTagName( "ol" )[ 0 ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3751 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3752 |
assertLi = document.createElement( "li" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3753 |
assertLi.className = details.result ? "pass" : "fail"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3754 |
assertLi.innerHTML = message; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3755 |
assertList.appendChild( assertLi ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3756 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3757 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3758 |
QUnit.testDone(function( details ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3759 |
var testTitle, time, testItem, assertList, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3760 |
good, bad, testCounts, skipped, |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3761 |
tests = id( "qunit-tests" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3762 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3763 |
if ( !tests ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3764 |
return; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3765 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3766 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3767 |
testItem = id( "qunit-test-output-" + details.testId ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3768 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3769 |
assertList = testItem.getElementsByTagName( "ol" )[ 0 ]; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3770 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3771 |
good = details.passed; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3772 |
bad = details.failed; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3773 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3774 |
// store result when possible |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3775 |
if ( config.reorder && defined.sessionStorage ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3776 |
if ( bad ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3777 |
sessionStorage.setItem( "qunit-test-" + details.module + "-" + details.name, bad ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3778 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3779 |
sessionStorage.removeItem( "qunit-test-" + details.module + "-" + details.name ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3780 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3781 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3782 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3783 |
if ( bad === 0 ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3784 |
addClass( assertList, "qunit-collapsed" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3785 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3786 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3787 |
// testItem.firstChild is the test name |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3788 |
testTitle = testItem.firstChild; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3789 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3790 |
testCounts = bad ? |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3791 |
"<b class='failed'>" + bad + "</b>, " + "<b class='passed'>" + good + "</b>, " : |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3792 |
""; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3793 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3794 |
testTitle.innerHTML += " <b class='counts'>(" + testCounts + |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3795 |
details.assertions.length + ")</b>"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3796 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3797 |
if ( details.skipped ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3798 |
testItem.className = "skipped"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3799 |
skipped = document.createElement( "em" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3800 |
skipped.className = "qunit-skipped-label"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3801 |
skipped.innerHTML = "skipped"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3802 |
testItem.insertBefore( skipped, testTitle ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3803 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3804 |
addEvent( testTitle, "click", function() { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3805 |
toggleClass( assertList, "qunit-collapsed" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3806 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3807 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3808 |
testItem.className = bad ? "fail" : "pass"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3809 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3810 |
time = document.createElement( "span" ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3811 |
time.className = "runtime"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3812 |
time.innerHTML = details.runtime + " ms"; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3813 |
testItem.insertBefore( time, assertList ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3814 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3815 |
}); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3816 |
|
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3817 |
if ( defined.document ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3818 |
if ( document.readyState === "complete" ) { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3819 |
QUnit.load(); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3820 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3821 |
addEvent( window, "load", QUnit.load ); |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3822 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3823 |
} else { |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3824 |
config.pageLoaded = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3825 |
config.autorun = true; |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3826 |
} |
7677c0401864
[devtools] qunit: update to 1.18.0 (closes #5533333)
Rémi Cardona <remi.cardona@logilab.fr>
parents:
5787
diff
changeset
|
3827 |
|
5658
7b9553a9db65
[ajax] refactor/cleanup low-level ajax functions
Adrien Di Mascio <Adrien.DiMascio@logilab.fr>
parents:
diff
changeset
|
3828 |
})(); |