Mercurial > hg > LGServices
annotate src/main/webapp/resources/js/dependencies/qunit.js @ 35:89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
---|---|
date | Thu, 19 Nov 2015 17:14:06 +0100 |
parents | |
children |
rev | line source |
---|---|
35
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1 /*! |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2 * QUnit 1.20.0 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3 * http://qunitjs.com/ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4 * |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
5 * Copyright jQuery Foundation and other contributors |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
6 * Released under the MIT license |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
7 * http://jquery.org/license |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
8 * |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
9 * Date: 2015-10-27T17:53Z |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
10 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
11 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
12 (function( global ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
13 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
14 var QUnit = {}; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
15 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
16 var Date = global.Date; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
17 var now = Date.now || function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
18 return new Date().getTime(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
19 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
20 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
21 var setTimeout = global.setTimeout; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
22 var clearTimeout = global.clearTimeout; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
23 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
24 // Store a local window from the global to allow direct references. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
25 var window = global.window; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
26 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
27 var defined = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
28 document: window && window.document !== undefined, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
29 setTimeout: setTimeout !== undefined, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
30 sessionStorage: (function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
31 var x = "qunit-test-string"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
32 try { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
33 sessionStorage.setItem( x, x ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
34 sessionStorage.removeItem( x ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
35 return true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
36 } catch ( e ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
37 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
38 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
39 }() ) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
40 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
41 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
42 var fileName = ( sourceFromStacktrace( 0 ) || "" ).replace( /(:\d+)+\)?/, "" ).replace( /.+\//, "" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
43 var globalStartCalled = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
44 var runStarted = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
45 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
46 var toString = Object.prototype.toString, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
47 hasOwn = Object.prototype.hasOwnProperty; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
48 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
49 // returns a new Array with the elements that are in a but not in b |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
50 function diff( a, b ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
51 var i, j, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
52 result = a.slice(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
53 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
54 for ( i = 0; i < result.length; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
55 for ( j = 0; j < b.length; j++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
56 if ( result[ i ] === b[ j ] ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
57 result.splice( i, 1 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
58 i--; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
59 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
60 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
61 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
62 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
63 return result; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
64 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
65 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
66 // from jquery.js |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
67 function inArray( elem, array ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
68 if ( array.indexOf ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
69 return array.indexOf( elem ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
70 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
71 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
72 for ( var i = 0, length = array.length; i < length; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
73 if ( array[ i ] === elem ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
74 return i; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
75 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
76 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
77 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
78 return -1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
79 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
80 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
81 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
82 * Makes a clone of an object using only Array or Object as base, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
83 * and copies over the own enumerable properties. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
84 * |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
85 * @param {Object} obj |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
86 * @return {Object} New object with only the own properties (recursively). |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
87 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
88 function objectValues ( obj ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
89 var key, val, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
90 vals = QUnit.is( "array", obj ) ? [] : {}; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
91 for ( key in obj ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
92 if ( hasOwn.call( obj, key ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
93 val = obj[ key ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
94 vals[ key ] = val === Object( val ) ? objectValues( val ) : val; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
95 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
96 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
97 return vals; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
98 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
99 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
100 function extend( a, b, undefOnly ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
101 for ( var prop in b ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
102 if ( hasOwn.call( b, prop ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
103 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
104 // Avoid "Member not found" error in IE8 caused by messing with window.constructor |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
105 // This block runs on every environment, so `global` is being used instead of `window` |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
106 // to avoid errors on node. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
107 if ( prop !== "constructor" || a !== global ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
108 if ( b[ prop ] === undefined ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
109 delete a[ prop ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
110 } else if ( !( undefOnly && typeof a[ prop ] !== "undefined" ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
111 a[ prop ] = b[ prop ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
112 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
113 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
114 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
115 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
116 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
117 return a; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
118 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
119 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
120 function objectType( obj ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
121 if ( typeof obj === "undefined" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
122 return "undefined"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
123 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
124 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
125 // Consider: typeof null === object |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
126 if ( obj === null ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
127 return "null"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
128 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
129 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
130 var match = toString.call( obj ).match( /^\[object\s(.*)\]$/ ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
131 type = match && match[ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
132 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
133 switch ( type ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
134 case "Number": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
135 if ( isNaN( obj ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
136 return "nan"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
137 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
138 return "number"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
139 case "String": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
140 case "Boolean": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
141 case "Array": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
142 case "Set": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
143 case "Map": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
144 case "Date": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
145 case "RegExp": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
146 case "Function": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
147 case "Symbol": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
148 return type.toLowerCase(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
149 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
150 if ( typeof obj === "object" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
151 return "object"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
152 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
153 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
154 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
155 // Safe object type checking |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
156 function is( type, obj ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
157 return QUnit.objectType( obj ) === type; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
158 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
159 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
160 var getUrlParams = function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
161 var i, current; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
162 var urlParams = {}; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
163 var location = window.location; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
164 var params = location.search.slice( 1 ).split( "&" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
165 var length = params.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
166 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
167 if ( params[ 0 ] ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
168 for ( i = 0; i < length; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
169 current = params[ i ].split( "=" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
170 current[ 0 ] = decodeURIComponent( current[ 0 ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
171 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
172 // allow just a key to turn on a flag, e.g., test.html?noglobals |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
173 current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
174 if ( urlParams[ current[ 0 ] ] ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
175 urlParams[ current[ 0 ] ] = [].concat( urlParams[ current[ 0 ] ], current[ 1 ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
176 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
177 urlParams[ current[ 0 ] ] = current[ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
178 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
179 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
180 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
181 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
182 return urlParams; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
183 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
184 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
185 // Doesn't support IE6 to IE9, it will return undefined on these browsers |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
186 // See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
187 function extractStacktrace( e, offset ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
188 offset = offset === undefined ? 4 : offset; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
189 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
190 var stack, include, i; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
191 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
192 if ( e.stack ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
193 stack = e.stack.split( "\n" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
194 if ( /^error$/i.test( stack[ 0 ] ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
195 stack.shift(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
196 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
197 if ( fileName ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
198 include = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
199 for ( i = offset; i < stack.length; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
200 if ( stack[ i ].indexOf( fileName ) !== -1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
201 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
202 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
203 include.push( stack[ i ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
204 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
205 if ( include.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
206 return include.join( "\n" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
207 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
208 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
209 return stack[ offset ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
210 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
211 // Support: Safari <=6 only |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
212 } else if ( e.sourceURL ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
213 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
214 // exclude useless self-reference for generated Error objects |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
215 if ( /qunit.js$/.test( e.sourceURL ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
216 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
217 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
218 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
219 // for actual exceptions, this is useful |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
220 return e.sourceURL + ":" + e.line; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
221 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
222 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
223 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
224 function sourceFromStacktrace( offset ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
225 var error = new Error(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
226 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
227 // Support: Safari <=7 only, IE <=10 - 11 only |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
228 // Not all browsers generate the `stack` property for `new Error()`, see also #636 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
229 if ( !error.stack ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
230 try { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
231 throw error; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
232 } catch ( err ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
233 error = err; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
234 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
235 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
236 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
237 return extractStacktrace( error, offset ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
238 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
239 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
240 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
241 * Config object: Maintain internal state |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
242 * Later exposed as QUnit.config |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
243 * `config` initialized at top of scope |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
244 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
245 var config = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
246 // The queue of tests to run |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
247 queue: [], |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
248 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
249 // block until document ready |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
250 blocking: true, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
251 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
252 // by default, run previously failed tests first |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
253 // very useful in combination with "Hide passed tests" checked |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
254 reorder: true, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
255 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
256 // by default, modify document.title when suite is done |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
257 altertitle: true, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
258 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
259 // HTML Reporter: collapse every test except the first failing test |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
260 // If false, all failing tests will be expanded |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
261 collapse: true, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
262 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
263 // by default, scroll to top of the page when suite is done |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
264 scrolltop: true, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
265 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
266 // depth up-to which object will be dumped |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
267 maxDepth: 5, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
268 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
269 // when enabled, all tests must call expect() |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
270 requireExpects: false, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
271 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
272 // add checkboxes that are persisted in the query-string |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
273 // when enabled, the id is set to `true` as a `QUnit.config` property |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
274 urlConfig: [ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
275 { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
276 id: "hidepassed", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
277 label: "Hide passed tests", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
278 tooltip: "Only show tests and assertions that fail. Stored as query-strings." |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
279 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
280 { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
281 id: "noglobals", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
282 label: "Check for Globals", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
283 tooltip: "Enabling this will test if any test introduces new properties on the " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
284 "global object (`window` in Browsers). Stored as query-strings." |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
285 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
286 { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
287 id: "notrycatch", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
288 label: "No try-catch", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
289 tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
290 "exceptions in IE reasonable. Stored as query-strings." |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
291 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
292 ], |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
293 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
294 // Set of all modules. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
295 modules: [], |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
296 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
297 // Stack of nested modules |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
298 moduleStack: [], |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
299 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
300 // The first unnamed module |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
301 currentModule: { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
302 name: "", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
303 tests: [] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
304 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
305 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
306 callbacks: {} |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
307 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
308 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
309 var urlParams = defined.document ? getUrlParams() : {}; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
310 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
311 // Push a loose unnamed module to the modules collection |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
312 config.modules.push( config.currentModule ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
313 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
314 if ( urlParams.filter === true ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
315 delete urlParams.filter; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
316 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
317 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
318 // String search anywhere in moduleName+testName |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
319 config.filter = urlParams.filter; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
320 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
321 config.testId = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
322 if ( urlParams.testId ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
323 // Ensure that urlParams.testId is an array |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
324 urlParams.testId = decodeURIComponent( urlParams.testId ).split( "," ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
325 for (var i = 0; i < urlParams.testId.length; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
326 config.testId.push( urlParams.testId[ i ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
327 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
328 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
329 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
330 var loggingCallbacks = {}; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
331 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
332 // Register logging callbacks |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
333 function registerLoggingCallbacks( obj ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
334 var i, l, key, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
335 callbackNames = [ "begin", "done", "log", "testStart", "testDone", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
336 "moduleStart", "moduleDone" ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
337 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
338 function registerLoggingCallback( key ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
339 var loggingCallback = function( callback ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
340 if ( objectType( callback ) !== "function" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
341 throw new Error( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
342 "QUnit logging methods require a callback function as their first parameters." |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
343 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
344 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
345 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
346 config.callbacks[ key ].push( callback ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
347 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
348 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
349 // DEPRECATED: This will be removed on QUnit 2.0.0+ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
350 // Stores the registered functions allowing restoring |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
351 // at verifyLoggingCallbacks() if modified |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
352 loggingCallbacks[ key ] = loggingCallback; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
353 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
354 return loggingCallback; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
355 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
356 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
357 for ( i = 0, l = callbackNames.length; i < l; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
358 key = callbackNames[ i ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
359 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
360 // Initialize key collection of logging callback |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
361 if ( objectType( config.callbacks[ key ] ) === "undefined" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
362 config.callbacks[ key ] = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
363 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
364 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
365 obj[ key ] = registerLoggingCallback( key ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
366 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
367 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
368 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
369 function runLoggingCallbacks( key, args ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
370 var i, l, callbacks; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
371 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
372 callbacks = config.callbacks[ key ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
373 for ( i = 0, l = callbacks.length; i < l; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
374 callbacks[ i ]( args ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
375 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
376 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
377 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
378 // DEPRECATED: This will be removed on 2.0.0+ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
379 // This function verifies if the loggingCallbacks were modified by the user |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
380 // If so, it will restore it, assign the given callback and print a console warning |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
381 function verifyLoggingCallbacks() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
382 var loggingCallback, userCallback; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
383 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
384 for ( loggingCallback in loggingCallbacks ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
385 if ( QUnit[ loggingCallback ] !== loggingCallbacks[ loggingCallback ] ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
386 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
387 userCallback = QUnit[ loggingCallback ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
388 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
389 // Restore the callback function |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
390 QUnit[ loggingCallback ] = loggingCallbacks[ loggingCallback ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
391 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
392 // Assign the deprecated given callback |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
393 QUnit[ loggingCallback ]( userCallback ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
394 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
395 if ( global.console && global.console.warn ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
396 global.console.warn( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
397 "QUnit." + loggingCallback + " was replaced with a new value.\n" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
398 "Please, check out the documentation on how to apply logging callbacks.\n" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
399 "Reference: http://api.qunitjs.com/category/callbacks/" |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
400 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
401 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
402 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
403 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
404 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
405 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
406 ( function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
407 if ( !defined.document ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
408 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
409 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
410 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
411 // `onErrorFnPrev` initialized at top of scope |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
412 // Preserve other handlers |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
413 var onErrorFnPrev = window.onerror; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
414 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
415 // Cover uncaught exceptions |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
416 // Returning true will suppress the default browser handler, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
417 // returning false will let it run. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
418 window.onerror = function( error, filePath, linerNr ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
419 var ret = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
420 if ( onErrorFnPrev ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
421 ret = onErrorFnPrev( error, filePath, linerNr ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
422 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
423 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
424 // Treat return value as window.onerror itself does, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
425 // Only do our handling if not suppressed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
426 if ( ret !== true ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
427 if ( QUnit.config.current ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
428 if ( QUnit.config.current.ignoreGlobalErrors ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
429 return true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
430 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
431 QUnit.pushFailure( error, filePath + ":" + linerNr ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
432 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
433 QUnit.test( "global failure", extend(function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
434 QUnit.pushFailure( error, filePath + ":" + linerNr ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
435 }, { validTest: true } ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
436 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
437 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
438 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
439 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
440 return ret; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
441 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
442 } )(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
443 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
444 QUnit.urlParams = urlParams; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
445 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
446 // Figure out if we're running the tests from a server or not |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
447 QUnit.isLocal = !( defined.document && window.location.protocol !== "file:" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
448 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
449 // Expose the current QUnit version |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
450 QUnit.version = "1.20.0"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
451 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
452 extend( QUnit, { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
453 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
454 // call on start of module test to prepend name to all tests |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
455 module: function( name, testEnvironment, executeNow ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
456 var module, moduleFns; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
457 var currentModule = config.currentModule; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
458 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
459 if ( arguments.length === 2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
460 if ( testEnvironment instanceof Function ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
461 executeNow = testEnvironment; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
462 testEnvironment = undefined; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
463 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
464 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
465 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
466 // DEPRECATED: handles setup/teardown functions, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
467 // beforeEach and afterEach should be used instead |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
468 if ( testEnvironment && testEnvironment.setup ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
469 testEnvironment.beforeEach = testEnvironment.setup; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
470 delete testEnvironment.setup; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
471 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
472 if ( testEnvironment && testEnvironment.teardown ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
473 testEnvironment.afterEach = testEnvironment.teardown; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
474 delete testEnvironment.teardown; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
475 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
476 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
477 module = createModule(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
478 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
479 moduleFns = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
480 beforeEach: setHook( module, "beforeEach" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
481 afterEach: setHook( module, "afterEach" ) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
482 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
483 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
484 if ( executeNow instanceof Function ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
485 config.moduleStack.push( module ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
486 setCurrentModule( module ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
487 executeNow.call( module.testEnvironment, moduleFns ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
488 config.moduleStack.pop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
489 module = module.parentModule || currentModule; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
490 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
491 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
492 setCurrentModule( module ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
493 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
494 function createModule() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
495 var parentModule = config.moduleStack.length ? |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
496 config.moduleStack.slice( -1 )[ 0 ] : null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
497 var moduleName = parentModule !== null ? |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
498 [ parentModule.name, name ].join( " > " ) : name; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
499 var module = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
500 name: moduleName, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
501 parentModule: parentModule, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
502 tests: [] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
503 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
504 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
505 var env = {}; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
506 if ( parentModule ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
507 extend( env, parentModule.testEnvironment ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
508 delete env.beforeEach; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
509 delete env.afterEach; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
510 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
511 extend( env, testEnvironment ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
512 module.testEnvironment = env; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
513 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
514 config.modules.push( module ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
515 return module; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
516 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
517 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
518 function setCurrentModule( module ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
519 config.currentModule = module; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
520 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
521 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
522 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
523 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
524 // DEPRECATED: QUnit.asyncTest() will be removed in QUnit 2.0. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
525 asyncTest: asyncTest, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
526 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
527 test: test, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
528 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
529 skip: skip, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
530 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
531 only: only, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
532 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
533 // DEPRECATED: The functionality of QUnit.start() will be altered in QUnit 2.0. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
534 // In QUnit 2.0, invoking it will ONLY affect the `QUnit.config.autostart` blocking behavior. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
535 start: function( count ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
536 var globalStartAlreadyCalled = globalStartCalled; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
537 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
538 if ( !config.current ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
539 globalStartCalled = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
540 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
541 if ( runStarted ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
542 throw new Error( "Called start() outside of a test context while already started" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
543 } else if ( globalStartAlreadyCalled || count > 1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
544 throw new Error( "Called start() outside of a test context too many times" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
545 } else if ( config.autostart ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
546 throw new Error( "Called start() outside of a test context when " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
547 "QUnit.config.autostart was true" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
548 } else if ( !config.pageLoaded ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
549 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
550 // The page isn't completely loaded yet, so bail out and let `QUnit.load` handle it |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
551 config.autostart = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
552 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
553 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
554 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
555 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
556 // If a test is running, adjust its semaphore |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
557 config.current.semaphore -= count || 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
558 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
559 // If semaphore is non-numeric, throw error |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
560 if ( isNaN( config.current.semaphore ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
561 config.current.semaphore = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
562 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
563 QUnit.pushFailure( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
564 "Called start() with a non-numeric decrement.", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
565 sourceFromStacktrace( 2 ) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
566 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
567 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
568 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
569 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
570 // Don't start until equal number of stop-calls |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
571 if ( config.current.semaphore > 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
572 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
573 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
574 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
575 // throw an Error if start is called more often than stop |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
576 if ( config.current.semaphore < 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
577 config.current.semaphore = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
578 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
579 QUnit.pushFailure( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
580 "Called start() while already started (test's semaphore was 0 already)", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
581 sourceFromStacktrace( 2 ) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
582 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
583 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
584 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
585 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
586 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
587 resumeProcessing(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
588 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
589 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
590 // DEPRECATED: QUnit.stop() will be removed in QUnit 2.0. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
591 stop: function( count ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
592 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
593 // If there isn't a test running, don't allow QUnit.stop() to be called |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
594 if ( !config.current ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
595 throw new Error( "Called stop() outside of a test context" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
596 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
597 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
598 // If a test is running, adjust its semaphore |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
599 config.current.semaphore += count || 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
600 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
601 pauseProcessing(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
602 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
603 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
604 config: config, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
605 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
606 is: is, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
607 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
608 objectType: objectType, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
609 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
610 extend: extend, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
611 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
612 load: function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
613 config.pageLoaded = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
614 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
615 // Initialize the configuration options |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
616 extend( config, { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
617 stats: { all: 0, bad: 0 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
618 moduleStats: { all: 0, bad: 0 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
619 started: 0, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
620 updateRate: 1000, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
621 autostart: true, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
622 filter: "" |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
623 }, true ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
624 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
625 config.blocking = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
626 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
627 if ( config.autostart ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
628 resumeProcessing(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
629 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
630 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
631 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
632 stack: function( offset ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
633 offset = ( offset || 0 ) + 2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
634 return sourceFromStacktrace( offset ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
635 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
636 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
637 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
638 registerLoggingCallbacks( QUnit ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
639 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
640 function begin() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
641 var i, l, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
642 modulesLog = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
643 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
644 // If the test run hasn't officially begun yet |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
645 if ( !config.started ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
646 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
647 // Record the time of the test run's beginning |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
648 config.started = now(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
649 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
650 verifyLoggingCallbacks(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
651 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
652 // Delete the loose unnamed module if unused. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
653 if ( config.modules[ 0 ].name === "" && config.modules[ 0 ].tests.length === 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
654 config.modules.shift(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
655 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
656 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
657 // Avoid unnecessary information by not logging modules' test environments |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
658 for ( i = 0, l = config.modules.length; i < l; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
659 modulesLog.push({ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
660 name: config.modules[ i ].name, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
661 tests: config.modules[ i ].tests |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
662 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
663 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
664 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
665 // The test run is officially beginning now |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
666 runLoggingCallbacks( "begin", { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
667 totalTests: Test.count, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
668 modules: modulesLog |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
669 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
670 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
671 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
672 config.blocking = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
673 process( true ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
674 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
675 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
676 function process( last ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
677 function next() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
678 process( last ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
679 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
680 var start = now(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
681 config.depth = ( config.depth || 0 ) + 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
682 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
683 while ( config.queue.length && !config.blocking ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
684 if ( !defined.setTimeout || config.updateRate <= 0 || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
685 ( ( now() - start ) < config.updateRate ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
686 if ( config.current ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
687 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
688 // Reset async tracking for each phase of the Test lifecycle |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
689 config.current.usedAsync = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
690 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
691 config.queue.shift()(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
692 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
693 setTimeout( next, 13 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
694 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
695 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
696 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
697 config.depth--; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
698 if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
699 done(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
700 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
701 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
702 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
703 function pauseProcessing() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
704 config.blocking = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
705 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
706 if ( config.testTimeout && defined.setTimeout ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
707 clearTimeout( config.timeout ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
708 config.timeout = setTimeout(function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
709 if ( config.current ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
710 config.current.semaphore = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
711 QUnit.pushFailure( "Test timed out", sourceFromStacktrace( 2 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
712 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
713 throw new Error( "Test timed out" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
714 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
715 resumeProcessing(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
716 }, config.testTimeout ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
717 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
718 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
719 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
720 function resumeProcessing() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
721 runStarted = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
722 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
723 // A slight delay to allow this iteration of the event loop to finish (more assertions, etc.) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
724 if ( defined.setTimeout ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
725 setTimeout(function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
726 if ( config.current && config.current.semaphore > 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
727 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
728 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
729 if ( config.timeout ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
730 clearTimeout( config.timeout ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
731 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
732 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
733 begin(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
734 }, 13 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
735 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
736 begin(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
737 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
738 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
739 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
740 function done() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
741 var runtime, passed; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
742 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
743 config.autorun = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
744 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
745 // Log the last module results |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
746 if ( config.previousModule ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
747 runLoggingCallbacks( "moduleDone", { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
748 name: config.previousModule.name, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
749 tests: config.previousModule.tests, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
750 failed: config.moduleStats.bad, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
751 passed: config.moduleStats.all - config.moduleStats.bad, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
752 total: config.moduleStats.all, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
753 runtime: now() - config.moduleStats.started |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
754 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
755 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
756 delete config.previousModule; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
757 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
758 runtime = now() - config.started; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
759 passed = config.stats.all - config.stats.bad; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
760 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
761 runLoggingCallbacks( "done", { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
762 failed: config.stats.bad, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
763 passed: passed, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
764 total: config.stats.all, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
765 runtime: runtime |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
766 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
767 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
768 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
769 function setHook( module, hookName ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
770 if ( module.testEnvironment === undefined ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
771 module.testEnvironment = {}; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
772 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
773 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
774 return function( callback ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
775 module.testEnvironment[ hookName ] = callback; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
776 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
777 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
778 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
779 var focused = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
780 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
781 function Test( settings ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
782 var i, l; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
783 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
784 ++Test.count; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
785 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
786 extend( this, settings ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
787 this.assertions = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
788 this.semaphore = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
789 this.usedAsync = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
790 this.module = config.currentModule; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
791 this.stack = sourceFromStacktrace( 3 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
792 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
793 // Register unique strings |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
794 for ( i = 0, l = this.module.tests; i < l.length; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
795 if ( this.module.tests[ i ].name === this.testName ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
796 this.testName += " "; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
797 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
798 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
799 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
800 this.testId = generateHash( this.module.name, this.testName ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
801 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
802 this.module.tests.push({ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
803 name: this.testName, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
804 testId: this.testId |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
805 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
806 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
807 if ( settings.skip ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
808 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
809 // Skipped tests will fully ignore any sent callback |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
810 this.callback = function() {}; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
811 this.async = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
812 this.expected = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
813 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
814 this.assert = new Assert( this ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
815 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
816 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
817 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
818 Test.count = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
819 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
820 Test.prototype = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
821 before: function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
822 if ( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
823 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
824 // Emit moduleStart when we're switching from one module to another |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
825 this.module !== config.previousModule || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
826 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
827 // They could be equal (both undefined) but if the previousModule property doesn't |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
828 // yet exist it means this is the first test in a suite that isn't wrapped in a |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
829 // module, in which case we'll just emit a moduleStart event for 'undefined'. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
830 // Without this, reporters can get testStart before moduleStart which is a problem. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
831 !hasOwn.call( config, "previousModule" ) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
832 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
833 if ( hasOwn.call( config, "previousModule" ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
834 runLoggingCallbacks( "moduleDone", { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
835 name: config.previousModule.name, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
836 tests: config.previousModule.tests, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
837 failed: config.moduleStats.bad, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
838 passed: config.moduleStats.all - config.moduleStats.bad, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
839 total: config.moduleStats.all, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
840 runtime: now() - config.moduleStats.started |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
841 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
842 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
843 config.previousModule = this.module; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
844 config.moduleStats = { all: 0, bad: 0, started: now() }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
845 runLoggingCallbacks( "moduleStart", { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
846 name: this.module.name, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
847 tests: this.module.tests |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
848 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
849 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
850 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
851 config.current = this; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
852 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
853 if ( this.module.testEnvironment ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
854 delete this.module.testEnvironment.beforeEach; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
855 delete this.module.testEnvironment.afterEach; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
856 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
857 this.testEnvironment = extend( {}, this.module.testEnvironment ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
858 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
859 this.started = now(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
860 runLoggingCallbacks( "testStart", { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
861 name: this.testName, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
862 module: this.module.name, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
863 testId: this.testId |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
864 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
865 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
866 if ( !config.pollution ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
867 saveGlobal(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
868 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
869 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
870 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
871 run: function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
872 var promise; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
873 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
874 config.current = this; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
875 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
876 if ( this.async ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
877 QUnit.stop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
878 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
879 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
880 this.callbackStarted = now(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
881 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
882 if ( config.notrycatch ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
883 runTest( this ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
884 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
885 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
886 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
887 try { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
888 runTest( this ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
889 } catch ( e ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
890 this.pushFailure( "Died on test #" + ( this.assertions.length + 1 ) + " " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
891 this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
892 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
893 // else next test will carry the responsibility |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
894 saveGlobal(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
895 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
896 // Restart the tests if they're blocking |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
897 if ( config.blocking ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
898 QUnit.start(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
899 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
900 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
901 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
902 function runTest( test ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
903 promise = test.callback.call( test.testEnvironment, test.assert ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
904 test.resolvePromise( promise ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
905 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
906 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
907 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
908 after: function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
909 checkPollution(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
910 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
911 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
912 queueHook: function( hook, hookName ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
913 var promise, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
914 test = this; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
915 return function runHook() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
916 config.current = test; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
917 if ( config.notrycatch ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
918 callHook(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
919 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
920 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
921 try { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
922 callHook(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
923 } catch ( error ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
924 test.pushFailure( hookName + " failed on " + test.testName + ": " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
925 ( error.message || error ), extractStacktrace( error, 0 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
926 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
927 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
928 function callHook() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
929 promise = hook.call( test.testEnvironment, test.assert ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
930 test.resolvePromise( promise, hookName ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
931 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
932 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
933 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
934 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
935 // Currently only used for module level hooks, can be used to add global level ones |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
936 hooks: function( handler ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
937 var hooks = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
938 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
939 function processHooks( test, module ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
940 if ( module.parentModule ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
941 processHooks( test, module.parentModule ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
942 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
943 if ( module.testEnvironment && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
944 QUnit.objectType( module.testEnvironment[ handler ] ) === "function" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
945 hooks.push( test.queueHook( module.testEnvironment[ handler ], handler ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
946 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
947 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
948 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
949 // Hooks are ignored on skipped tests |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
950 if ( !this.skip ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
951 processHooks( this, this.module ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
952 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
953 return hooks; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
954 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
955 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
956 finish: function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
957 config.current = this; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
958 if ( config.requireExpects && this.expected === null ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
959 this.pushFailure( "Expected number of assertions to be defined, but expect() was " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
960 "not called.", this.stack ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
961 } else if ( this.expected !== null && this.expected !== this.assertions.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
962 this.pushFailure( "Expected " + this.expected + " assertions, but " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
963 this.assertions.length + " were run", this.stack ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
964 } else if ( this.expected === null && !this.assertions.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
965 this.pushFailure( "Expected at least one assertion, but none were run - call " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
966 "expect(0) to accept zero assertions.", this.stack ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
967 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
968 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
969 var i, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
970 bad = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
971 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
972 this.runtime = now() - this.started; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
973 config.stats.all += this.assertions.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
974 config.moduleStats.all += this.assertions.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
975 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
976 for ( i = 0; i < this.assertions.length; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
977 if ( !this.assertions[ i ].result ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
978 bad++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
979 config.stats.bad++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
980 config.moduleStats.bad++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
981 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
982 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
983 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
984 runLoggingCallbacks( "testDone", { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
985 name: this.testName, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
986 module: this.module.name, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
987 skipped: !!this.skip, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
988 failed: bad, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
989 passed: this.assertions.length - bad, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
990 total: this.assertions.length, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
991 runtime: this.runtime, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
992 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
993 // HTML Reporter use |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
994 assertions: this.assertions, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
995 testId: this.testId, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
996 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
997 // Source of Test |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
998 source: this.stack, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
999 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1000 // DEPRECATED: this property will be removed in 2.0.0, use runtime instead |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1001 duration: this.runtime |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1002 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1003 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1004 // QUnit.reset() is deprecated and will be replaced for a new |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1005 // fixture reset function on QUnit 2.0/2.1. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1006 // It's still called here for backwards compatibility handling |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1007 QUnit.reset(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1008 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1009 config.current = undefined; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1010 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1011 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1012 queue: function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1013 var priority, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1014 test = this; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1015 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1016 if ( !this.valid() ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1017 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1018 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1019 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1020 function run() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1021 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1022 // each of these can by async |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1023 synchronize([ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1024 function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1025 test.before(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1026 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1027 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1028 test.hooks( "beforeEach" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1029 function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1030 test.run(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1031 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1032 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1033 test.hooks( "afterEach" ).reverse(), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1034 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1035 function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1036 test.after(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1037 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1038 function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1039 test.finish(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1040 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1041 ]); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1042 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1043 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1044 // Prioritize previously failed tests, detected from sessionStorage |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1045 priority = QUnit.config.reorder && defined.sessionStorage && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1046 +sessionStorage.getItem( "qunit-test-" + this.module.name + "-" + this.testName ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1047 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1048 return synchronize( run, priority ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1049 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1050 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1051 push: function( result, actual, expected, message, negative ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1052 var source, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1053 details = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1054 module: this.module.name, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1055 name: this.testName, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1056 result: result, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1057 message: message, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1058 actual: actual, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1059 expected: expected, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1060 testId: this.testId, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1061 negative: negative || false, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1062 runtime: now() - this.started |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1063 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1064 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1065 if ( !result ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1066 source = sourceFromStacktrace(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1067 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1068 if ( source ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1069 details.source = source; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1070 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1071 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1072 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1073 runLoggingCallbacks( "log", details ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1074 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1075 this.assertions.push({ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1076 result: !!result, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1077 message: message |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1078 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1079 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1080 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1081 pushFailure: function( message, source, actual ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1082 if ( !( this instanceof Test ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1083 throw new Error( "pushFailure() assertion outside test context, was " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1084 sourceFromStacktrace( 2 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1085 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1086 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1087 var details = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1088 module: this.module.name, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1089 name: this.testName, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1090 result: false, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1091 message: message || "error", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1092 actual: actual || null, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1093 testId: this.testId, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1094 runtime: now() - this.started |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1095 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1096 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1097 if ( source ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1098 details.source = source; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1099 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1100 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1101 runLoggingCallbacks( "log", details ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1102 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1103 this.assertions.push({ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1104 result: false, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1105 message: message |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1106 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1107 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1108 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1109 resolvePromise: function( promise, phase ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1110 var then, message, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1111 test = this; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1112 if ( promise != null ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1113 then = promise.then; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1114 if ( QUnit.objectType( then ) === "function" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1115 QUnit.stop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1116 then.call( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1117 promise, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1118 function() { QUnit.start(); }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1119 function( error ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1120 message = "Promise rejected " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1121 ( !phase ? "during" : phase.replace( /Each$/, "" ) ) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1122 " " + test.testName + ": " + ( error.message || error ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1123 test.pushFailure( message, extractStacktrace( error, 0 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1124 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1125 // else next test will carry the responsibility |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1126 saveGlobal(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1127 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1128 // Unblock |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1129 QUnit.start(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1130 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1131 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1132 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1133 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1134 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1135 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1136 valid: function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1137 var include, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1138 filter = config.filter && config.filter.toLowerCase(), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1139 module = QUnit.urlParams.module && QUnit.urlParams.module.toLowerCase(), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1140 fullName = ( this.module.name + ": " + this.testName ).toLowerCase(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1141 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1142 function testInModuleChain( testModule ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1143 var testModuleName = testModule.name ? testModule.name.toLowerCase() : null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1144 if ( testModuleName === module ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1145 return true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1146 } else if ( testModule.parentModule ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1147 return testInModuleChain( testModule.parentModule ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1148 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1149 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1150 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1151 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1152 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1153 // Internally-generated tests are always valid |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1154 if ( this.callback && this.callback.validTest ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1155 return true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1156 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1157 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1158 if ( config.testId.length > 0 && inArray( this.testId, config.testId ) < 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1159 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1160 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1161 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1162 if ( module && !testInModuleChain( this.module ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1163 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1164 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1165 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1166 if ( !filter ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1167 return true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1168 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1169 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1170 include = filter.charAt( 0 ) !== "!"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1171 if ( !include ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1172 filter = filter.slice( 1 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1173 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1174 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1175 // If the filter matches, we need to honour include |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1176 if ( fullName.indexOf( filter ) !== -1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1177 return include; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1178 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1179 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1180 // Otherwise, do the opposite |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1181 return !include; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1182 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1183 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1184 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1185 // Resets the test setup. Useful for tests that modify the DOM. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1186 /* |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1187 DEPRECATED: Use multiple tests instead of resetting inside a test. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1188 Use testStart or testDone for custom cleanup. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1189 This method will throw an error in 2.0, and will be removed in 2.1 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1190 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1191 QUnit.reset = function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1192 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1193 // Return on non-browser environments |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1194 // This is necessary to not break on node tests |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1195 if ( !defined.document ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1196 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1197 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1198 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1199 var fixture = defined.document && document.getElementById && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1200 document.getElementById( "qunit-fixture" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1201 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1202 if ( fixture ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1203 fixture.innerHTML = config.fixture; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1204 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1205 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1206 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1207 QUnit.pushFailure = function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1208 if ( !QUnit.config.current ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1209 throw new Error( "pushFailure() assertion outside test context, in " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1210 sourceFromStacktrace( 2 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1211 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1212 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1213 // Gets current test obj |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1214 var currentTest = QUnit.config.current; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1215 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1216 return currentTest.pushFailure.apply( currentTest, arguments ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1217 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1218 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1219 // Based on Java's String.hashCode, a simple but not |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1220 // rigorously collision resistant hashing function |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1221 function generateHash( module, testName ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1222 var hex, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1223 i = 0, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1224 hash = 0, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1225 str = module + "\x1C" + testName, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1226 len = str.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1227 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1228 for ( ; i < len; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1229 hash = ( ( hash << 5 ) - hash ) + str.charCodeAt( i ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1230 hash |= 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1231 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1232 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1233 // Convert the possibly negative integer hash code into an 8 character hex string, which isn't |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1234 // strictly necessary but increases user understanding that the id is a SHA-like hash |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1235 hex = ( 0x100000000 + hash ).toString( 16 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1236 if ( hex.length < 8 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1237 hex = "0000000" + hex; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1238 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1239 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1240 return hex.slice( -8 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1241 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1242 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1243 function synchronize( callback, priority ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1244 var last = !priority; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1245 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1246 if ( QUnit.objectType( callback ) === "array" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1247 while ( callback.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1248 synchronize( callback.shift() ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1249 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1250 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1251 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1252 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1253 if ( priority ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1254 priorityFill( callback ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1255 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1256 config.queue.push( callback ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1257 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1258 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1259 if ( config.autorun && !config.blocking ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1260 process( last ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1261 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1262 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1263 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1264 // Place previously failed tests on a queue priority line, respecting the order they get assigned. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1265 function priorityFill( callback ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1266 var queue, prioritizedQueue; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1267 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1268 queue = config.queue.slice( priorityFill.pos ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1269 prioritizedQueue = config.queue.slice( 0, -config.queue.length + priorityFill.pos ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1270 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1271 queue.unshift( callback ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1272 queue.unshift.apply( queue, prioritizedQueue ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1273 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1274 config.queue = queue; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1275 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1276 priorityFill.pos += 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1277 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1278 priorityFill.pos = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1279 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1280 function saveGlobal() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1281 config.pollution = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1282 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1283 if ( config.noglobals ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1284 for ( var key in global ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1285 if ( hasOwn.call( global, key ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1286 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1287 // in Opera sometimes DOM element ids show up here, ignore them |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1288 if ( /^qunit-test-output/.test( key ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1289 continue; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1290 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1291 config.pollution.push( key ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1292 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1293 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1294 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1295 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1296 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1297 function checkPollution() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1298 var newGlobals, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1299 deletedGlobals, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1300 old = config.pollution; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1301 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1302 saveGlobal(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1303 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1304 newGlobals = diff( config.pollution, old ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1305 if ( newGlobals.length > 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1306 QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join( ", " ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1307 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1308 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1309 deletedGlobals = diff( old, config.pollution ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1310 if ( deletedGlobals.length > 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1311 QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join( ", " ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1312 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1313 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1314 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1315 // Will be exposed as QUnit.asyncTest |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1316 function asyncTest( testName, expected, callback ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1317 if ( arguments.length === 2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1318 callback = expected; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1319 expected = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1320 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1321 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1322 QUnit.test( testName, expected, callback, true ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1323 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1324 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1325 // Will be exposed as QUnit.test |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1326 function test( testName, expected, callback, async ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1327 if ( focused ) { return; } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1328 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1329 var newTest; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1330 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1331 if ( arguments.length === 2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1332 callback = expected; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1333 expected = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1334 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1335 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1336 newTest = new Test({ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1337 testName: testName, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1338 expected: expected, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1339 async: async, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1340 callback: callback |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1341 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1342 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1343 newTest.queue(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1344 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1345 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1346 // Will be exposed as QUnit.skip |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1347 function skip( testName ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1348 if ( focused ) { return; } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1349 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1350 var test = new Test({ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1351 testName: testName, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1352 skip: true |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1353 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1354 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1355 test.queue(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1356 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1357 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1358 // Will be exposed as QUnit.only |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1359 function only( testName, expected, callback, async ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1360 var newTest; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1361 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1362 if ( focused ) { return; } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1363 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1364 QUnit.config.queue.length = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1365 focused = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1366 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1367 if ( arguments.length === 2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1368 callback = expected; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1369 expected = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1370 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1371 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1372 newTest = new Test({ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1373 testName: testName, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1374 expected: expected, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1375 async: async, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1376 callback: callback |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1377 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1378 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1379 newTest.queue(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1380 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1381 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1382 function Assert( testContext ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1383 this.test = testContext; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1384 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1385 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1386 // Assert helpers |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1387 QUnit.assert = Assert.prototype = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1388 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1389 // Specify the number of expected assertions to guarantee that failed test |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1390 // (no assertions are run at all) don't slip through. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1391 expect: function( asserts ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1392 if ( arguments.length === 1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1393 this.test.expected = asserts; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1394 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1395 return this.test.expected; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1396 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1397 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1398 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1399 // Increment this Test's semaphore counter, then return a function that |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1400 // decrements that counter a maximum of once. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1401 async: function( count ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1402 var test = this.test, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1403 popped = false, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1404 acceptCallCount = count; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1405 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1406 if ( typeof acceptCallCount === "undefined" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1407 acceptCallCount = 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1408 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1409 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1410 test.semaphore += 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1411 test.usedAsync = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1412 pauseProcessing(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1413 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1414 return function done() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1415 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1416 if ( popped ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1417 test.pushFailure( "Too many calls to the `assert.async` callback", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1418 sourceFromStacktrace( 2 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1419 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1420 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1421 acceptCallCount -= 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1422 if ( acceptCallCount > 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1423 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1424 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1425 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1426 test.semaphore -= 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1427 popped = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1428 resumeProcessing(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1429 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1430 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1431 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1432 // Exports test.push() to the user API |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1433 push: function( /* result, actual, expected, message, negative */ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1434 var assert = this, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1435 currentTest = ( assert instanceof Assert && assert.test ) || QUnit.config.current; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1436 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1437 // Backwards compatibility fix. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1438 // Allows the direct use of global exported assertions and QUnit.assert.* |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1439 // Although, it's use is not recommended as it can leak assertions |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1440 // to other tests from async tests, because we only get a reference to the current test, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1441 // not exactly the test where assertion were intended to be called. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1442 if ( !currentTest ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1443 throw new Error( "assertion outside test context, in " + sourceFromStacktrace( 2 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1444 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1445 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1446 if ( currentTest.usedAsync === true && currentTest.semaphore === 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1447 currentTest.pushFailure( "Assertion after the final `assert.async` was resolved", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1448 sourceFromStacktrace( 2 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1449 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1450 // Allow this assertion to continue running anyway... |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1451 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1452 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1453 if ( !( assert instanceof Assert ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1454 assert = currentTest.assert; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1455 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1456 return assert.test.push.apply( assert.test, arguments ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1457 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1458 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1459 ok: function( result, message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1460 message = message || ( result ? "okay" : "failed, expected argument to be truthy, was: " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1461 QUnit.dump.parse( result ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1462 this.push( !!result, result, true, message ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1463 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1464 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1465 notOk: function( result, message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1466 message = message || ( !result ? "okay" : "failed, expected argument to be falsy, was: " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1467 QUnit.dump.parse( result ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1468 this.push( !result, result, false, message, true ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1469 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1470 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1471 equal: function( actual, expected, message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1472 /*jshint eqeqeq:false */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1473 this.push( expected == actual, actual, expected, message ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1474 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1475 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1476 notEqual: function( actual, expected, message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1477 /*jshint eqeqeq:false */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1478 this.push( expected != actual, actual, expected, message, true ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1479 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1480 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1481 propEqual: function( actual, expected, message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1482 actual = objectValues( actual ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1483 expected = objectValues( expected ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1484 this.push( QUnit.equiv( actual, expected ), actual, expected, message ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1485 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1486 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1487 notPropEqual: function( actual, expected, message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1488 actual = objectValues( actual ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1489 expected = objectValues( expected ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1490 this.push( !QUnit.equiv( actual, expected ), actual, expected, message, true ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1491 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1492 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1493 deepEqual: function( actual, expected, message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1494 this.push( QUnit.equiv( actual, expected ), actual, expected, message ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1495 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1496 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1497 notDeepEqual: function( actual, expected, message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1498 this.push( !QUnit.equiv( actual, expected ), actual, expected, message, true ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1499 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1500 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1501 strictEqual: function( actual, expected, message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1502 this.push( expected === actual, actual, expected, message ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1503 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1504 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1505 notStrictEqual: function( actual, expected, message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1506 this.push( expected !== actual, actual, expected, message, true ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1507 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1508 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1509 "throws": function( block, expected, message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1510 var actual, expectedType, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1511 expectedOutput = expected, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1512 ok = false, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1513 currentTest = ( this instanceof Assert && this.test ) || QUnit.config.current; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1514 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1515 // 'expected' is optional unless doing string comparison |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1516 if ( message == null && typeof expected === "string" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1517 message = expected; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1518 expected = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1519 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1520 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1521 currentTest.ignoreGlobalErrors = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1522 try { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1523 block.call( currentTest.testEnvironment ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1524 } catch (e) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1525 actual = e; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1526 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1527 currentTest.ignoreGlobalErrors = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1528 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1529 if ( actual ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1530 expectedType = QUnit.objectType( expected ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1531 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1532 // we don't want to validate thrown error |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1533 if ( !expected ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1534 ok = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1535 expectedOutput = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1536 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1537 // expected is a regexp |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1538 } else if ( expectedType === "regexp" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1539 ok = expected.test( errorString( actual ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1540 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1541 // expected is a string |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1542 } else if ( expectedType === "string" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1543 ok = expected === errorString( actual ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1544 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1545 // expected is a constructor, maybe an Error constructor |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1546 } else if ( expectedType === "function" && actual instanceof expected ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1547 ok = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1548 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1549 // expected is an Error object |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1550 } else if ( expectedType === "object" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1551 ok = actual instanceof expected.constructor && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1552 actual.name === expected.name && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1553 actual.message === expected.message; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1554 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1555 // expected is a validation function which returns true if validation passed |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1556 } else if ( expectedType === "function" && expected.call( {}, actual ) === true ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1557 expectedOutput = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1558 ok = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1559 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1560 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1561 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1562 currentTest.assert.push( ok, actual, expectedOutput, message ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1563 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1564 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1565 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1566 // Provide an alternative to assert.throws(), for environments that consider throws a reserved word |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1567 // Known to us are: Closure Compiler, Narwhal |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1568 (function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1569 /*jshint sub:true */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1570 Assert.prototype.raises = Assert.prototype[ "throws" ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1571 }()); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1572 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1573 function errorString( error ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1574 var name, message, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1575 resultErrorString = error.toString(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1576 if ( resultErrorString.substring( 0, 7 ) === "[object" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1577 name = error.name ? error.name.toString() : "Error"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1578 message = error.message ? error.message.toString() : ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1579 if ( name && message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1580 return name + ": " + message; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1581 } else if ( name ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1582 return name; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1583 } else if ( message ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1584 return message; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1585 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1586 return "Error"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1587 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1588 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1589 return resultErrorString; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1590 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1591 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1592 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1593 // Test for equality any JavaScript type. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1594 // Author: Philippe Rathé <prathe@gmail.com> |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1595 QUnit.equiv = (function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1596 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1597 // Stack to decide between skip/abort functions |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1598 var callers = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1599 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1600 // Stack to avoiding loops from circular referencing |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1601 var parents = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1602 var parentsB = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1603 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1604 function useStrictEquality( b, a ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1605 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1606 /*jshint eqeqeq:false */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1607 if ( b instanceof a.constructor || a instanceof b.constructor ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1608 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1609 // To catch short annotation VS 'new' annotation of a declaration. e.g.: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1610 // `var i = 1;` |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1611 // `var j = new Number(1);` |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1612 return a == b; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1613 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1614 return a === b; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1615 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1616 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1617 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1618 function compareConstructors( a, b ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1619 var getProto = Object.getPrototypeOf || function( obj ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1620 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1621 /*jshint proto: true */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1622 return obj.__proto__; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1623 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1624 var protoA = getProto( a ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1625 var protoB = getProto( b ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1626 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1627 // Comparing constructors is more strict than using `instanceof` |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1628 if ( a.constructor === b.constructor ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1629 return true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1630 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1631 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1632 // Ref #851 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1633 // If the obj prototype descends from a null constructor, treat it |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1634 // as a null prototype. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1635 if ( protoA && protoA.constructor === null ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1636 protoA = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1637 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1638 if ( protoB && protoB.constructor === null ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1639 protoB = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1640 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1641 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1642 // Allow objects with no prototype to be equivalent to |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1643 // objects with Object as their constructor. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1644 if ( ( protoA === null && protoB === Object.prototype ) || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1645 ( protoB === null && protoA === Object.prototype ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1646 return true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1647 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1648 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1649 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1650 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1651 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1652 var callbacks = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1653 "string": useStrictEquality, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1654 "boolean": useStrictEquality, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1655 "number": useStrictEquality, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1656 "null": useStrictEquality, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1657 "undefined": useStrictEquality, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1658 "symbol": useStrictEquality, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1659 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1660 "nan": function( b ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1661 return isNaN( b ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1662 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1663 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1664 "date": function( b, a ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1665 return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1666 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1667 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1668 "regexp": function( b, a ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1669 return QUnit.objectType( b ) === "regexp" && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1670 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1671 // The regex itself |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1672 a.source === b.source && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1673 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1674 // And its modifiers |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1675 a.global === b.global && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1676 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1677 // (gmi) ... |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1678 a.ignoreCase === b.ignoreCase && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1679 a.multiline === b.multiline && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1680 a.sticky === b.sticky; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1681 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1682 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1683 // - skip when the property is a method of an instance (OOP) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1684 // - abort otherwise, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1685 // initial === would have catch identical references anyway |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1686 "function": function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1687 var caller = callers[ callers.length - 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1688 return caller !== Object && typeof caller !== "undefined"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1689 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1690 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1691 "array": function( b, a ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1692 var i, j, len, loop, aCircular, bCircular; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1693 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1694 // b could be an object literal here |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1695 if ( QUnit.objectType( b ) !== "array" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1696 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1697 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1698 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1699 len = a.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1700 if ( len !== b.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1701 // safe and faster |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1702 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1703 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1704 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1705 // Track reference to avoid circular references |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1706 parents.push( a ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1707 parentsB.push( b ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1708 for ( i = 0; i < len; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1709 loop = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1710 for ( j = 0; j < parents.length; j++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1711 aCircular = parents[ j ] === a[ i ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1712 bCircular = parentsB[ j ] === b[ i ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1713 if ( aCircular || bCircular ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1714 if ( a[ i ] === b[ i ] || aCircular && bCircular ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1715 loop = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1716 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1717 parents.pop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1718 parentsB.pop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1719 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1720 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1721 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1722 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1723 if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1724 parents.pop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1725 parentsB.pop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1726 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1727 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1728 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1729 parents.pop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1730 parentsB.pop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1731 return true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1732 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1733 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1734 "set": function( b, a ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1735 var aArray, bArray; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1736 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1737 // `b` could be any object here |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1738 if ( QUnit.objectType( b ) !== "set" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1739 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1740 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1741 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1742 aArray = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1743 a.forEach( function( v ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1744 aArray.push( v ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1745 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1746 bArray = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1747 b.forEach( function( v ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1748 bArray.push( v ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1749 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1750 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1751 return innerEquiv( bArray, aArray ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1752 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1753 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1754 "map": function( b, a ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1755 var aArray, bArray; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1756 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1757 // `b` could be any object here |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1758 if ( QUnit.objectType( b ) !== "map" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1759 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1760 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1761 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1762 aArray = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1763 a.forEach( function( v, k ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1764 aArray.push( [ k, v ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1765 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1766 bArray = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1767 b.forEach( function( v, k ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1768 bArray.push( [ k, v ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1769 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1770 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1771 return innerEquiv( bArray, aArray ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1772 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1773 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1774 "object": function( b, a ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1775 var i, j, loop, aCircular, bCircular; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1776 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1777 // Default to true |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1778 var eq = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1779 var aProperties = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1780 var bProperties = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1781 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1782 if ( compareConstructors( a, b ) === false ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1783 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1784 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1785 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1786 // Stack constructor before traversing properties |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1787 callers.push( a.constructor ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1788 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1789 // Track reference to avoid circular references |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1790 parents.push( a ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1791 parentsB.push( b ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1792 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1793 // Be strict: don't ensure hasOwnProperty and go deep |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1794 for ( i in a ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1795 loop = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1796 for ( j = 0; j < parents.length; j++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1797 aCircular = parents[ j ] === a[ i ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1798 bCircular = parentsB[ j ] === b[ i ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1799 if ( aCircular || bCircular ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1800 if ( a[ i ] === b[ i ] || aCircular && bCircular ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1801 loop = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1802 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1803 eq = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1804 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1805 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1806 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1807 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1808 aProperties.push( i ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1809 if ( !loop && !innerEquiv( a[ i ], b[ i ] ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1810 eq = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1811 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1812 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1813 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1814 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1815 parents.pop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1816 parentsB.pop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1817 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1818 // Unstack, we are done |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1819 callers.pop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1820 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1821 for ( i in b ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1822 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1823 // Collect b's properties |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1824 bProperties.push( i ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1825 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1826 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1827 // Ensures identical properties name |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1828 return eq && innerEquiv( aProperties.sort(), bProperties.sort() ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1829 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1830 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1831 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1832 function typeEquiv( a, b ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1833 var prop = QUnit.objectType( a ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1834 return callbacks[ prop ]( b, a ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1835 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1836 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1837 // The real equiv function |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1838 function innerEquiv() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1839 var args = [].slice.apply( arguments ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1840 if ( args.length < 2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1841 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1842 // End transition |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1843 return true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1844 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1845 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1846 return ( (function( a, b ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1847 if ( a === b ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1848 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1849 // Catch the most you can |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1850 return true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1851 } else if ( a === null || b === null || typeof a === "undefined" || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1852 typeof b === "undefined" || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1853 QUnit.objectType( a ) !== QUnit.objectType( b ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1854 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1855 // Don't lose time with error prone cases |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1856 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1857 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1858 return typeEquiv( a, b ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1859 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1860 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1861 // Apply transition with (1..n) arguments |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1862 }( args[ 0 ], args[ 1 ] ) ) && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1863 innerEquiv.apply( this, args.splice( 1, args.length - 1 ) ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1864 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1865 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1866 return innerEquiv; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1867 }()); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1868 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1869 // Based on jsDump by Ariel Flesler |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1870 // http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1871 QUnit.dump = (function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1872 function quote( str ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1873 return "\"" + str.toString().replace( /\\/g, "\\\\" ).replace( /"/g, "\\\"" ) + "\""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1874 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1875 function literal( o ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1876 return o + ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1877 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1878 function join( pre, arr, post ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1879 var s = dump.separator(), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1880 base = dump.indent(), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1881 inner = dump.indent( 1 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1882 if ( arr.join ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1883 arr = arr.join( "," + s + inner ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1884 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1885 if ( !arr ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1886 return pre + post; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1887 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1888 return [ pre, inner + arr, base + post ].join( s ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1889 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1890 function array( arr, stack ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1891 var i = arr.length, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1892 ret = new Array( i ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1893 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1894 if ( dump.maxDepth && dump.depth > dump.maxDepth ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1895 return "[object Array]"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1896 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1897 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1898 this.up(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1899 while ( i-- ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1900 ret[ i ] = this.parse( arr[ i ], undefined, stack ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1901 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1902 this.down(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1903 return join( "[", ret, "]" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1904 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1905 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1906 var reName = /^function (\w+)/, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1907 dump = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1908 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1909 // objType is used mostly internally, you can fix a (custom) type in advance |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1910 parse: function( obj, objType, stack ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1911 stack = stack || []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1912 var res, parser, parserType, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1913 inStack = inArray( obj, stack ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1914 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1915 if ( inStack !== -1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1916 return "recursion(" + ( inStack - stack.length ) + ")"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1917 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1918 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1919 objType = objType || this.typeOf( obj ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1920 parser = this.parsers[ objType ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1921 parserType = typeof parser; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1922 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1923 if ( parserType === "function" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1924 stack.push( obj ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1925 res = parser.call( this, obj, stack ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1926 stack.pop(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1927 return res; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1928 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1929 return ( parserType === "string" ) ? parser : this.parsers.error; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1930 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1931 typeOf: function( obj ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1932 var type; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1933 if ( obj === null ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1934 type = "null"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1935 } else if ( typeof obj === "undefined" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1936 type = "undefined"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1937 } else if ( QUnit.is( "regexp", obj ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1938 type = "regexp"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1939 } else if ( QUnit.is( "date", obj ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1940 type = "date"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1941 } else if ( QUnit.is( "function", obj ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1942 type = "function"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1943 } else if ( obj.setInterval !== undefined && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1944 obj.document !== undefined && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1945 obj.nodeType === undefined ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1946 type = "window"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1947 } else if ( obj.nodeType === 9 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1948 type = "document"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1949 } else if ( obj.nodeType ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1950 type = "node"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1951 } else if ( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1952 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1953 // native arrays |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1954 toString.call( obj ) === "[object Array]" || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1955 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1956 // NodeList objects |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1957 ( typeof obj.length === "number" && obj.item !== undefined && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1958 ( obj.length ? obj.item( 0 ) === obj[ 0 ] : ( obj.item( 0 ) === null && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1959 obj[ 0 ] === undefined ) ) ) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1960 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1961 type = "array"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1962 } else if ( obj.constructor === Error.prototype.constructor ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1963 type = "error"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1964 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1965 type = typeof obj; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1966 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1967 return type; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1968 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1969 separator: function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1970 return this.multiline ? this.HTML ? "<br />" : "\n" : this.HTML ? " " : " "; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1971 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1972 // extra can be a number, shortcut for increasing-calling-decreasing |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1973 indent: function( extra ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1974 if ( !this.multiline ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1975 return ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1976 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1977 var chr = this.indentChar; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1978 if ( this.HTML ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1979 chr = chr.replace( /\t/g, " " ).replace( / /g, " " ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1980 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1981 return new Array( this.depth + ( extra || 0 ) ).join( chr ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1982 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1983 up: function( a ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1984 this.depth += a || 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1985 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1986 down: function( a ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1987 this.depth -= a || 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1988 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1989 setParser: function( name, parser ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1990 this.parsers[ name ] = parser; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1991 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1992 // The next 3 are exposed so you can use them |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1993 quote: quote, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1994 literal: literal, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1995 join: join, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1996 // |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1997 depth: 1, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1998 maxDepth: QUnit.config.maxDepth, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1999 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2000 // This is the list of parsers, to modify them, use dump.setParser |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2001 parsers: { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2002 window: "[Window]", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2003 document: "[Document]", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2004 error: function( error ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2005 return "Error(\"" + error.message + "\")"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2006 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2007 unknown: "[Unknown]", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2008 "null": "null", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2009 "undefined": "undefined", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2010 "function": function( fn ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2011 var ret = "function", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2012 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2013 // functions never have name in IE |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2014 name = "name" in fn ? fn.name : ( reName.exec( fn ) || [] )[ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2015 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2016 if ( name ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2017 ret += " " + name; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2018 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2019 ret += "( "; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2020 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2021 ret = [ ret, dump.parse( fn, "functionArgs" ), "){" ].join( "" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2022 return join( ret, dump.parse( fn, "functionCode" ), "}" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2023 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2024 array: array, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2025 nodelist: array, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2026 "arguments": array, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2027 object: function( map, stack ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2028 var keys, key, val, i, nonEnumerableProperties, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2029 ret = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2030 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2031 if ( dump.maxDepth && dump.depth > dump.maxDepth ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2032 return "[object Object]"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2033 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2034 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2035 dump.up(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2036 keys = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2037 for ( key in map ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2038 keys.push( key ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2039 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2040 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2041 // Some properties are not always enumerable on Error objects. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2042 nonEnumerableProperties = [ "message", "name" ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2043 for ( i in nonEnumerableProperties ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2044 key = nonEnumerableProperties[ i ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2045 if ( key in map && inArray( key, keys ) < 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2046 keys.push( key ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2047 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2048 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2049 keys.sort(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2050 for ( i = 0; i < keys.length; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2051 key = keys[ i ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2052 val = map[ key ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2053 ret.push( dump.parse( key, "key" ) + ": " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2054 dump.parse( val, undefined, stack ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2055 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2056 dump.down(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2057 return join( "{", ret, "}" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2058 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2059 node: function( node ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2060 var len, i, val, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2061 open = dump.HTML ? "<" : "<", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2062 close = dump.HTML ? ">" : ">", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2063 tag = node.nodeName.toLowerCase(), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2064 ret = open + tag, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2065 attrs = node.attributes; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2066 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2067 if ( attrs ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2068 for ( i = 0, len = attrs.length; i < len; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2069 val = attrs[ i ].nodeValue; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2070 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2071 // IE6 includes all attributes in .attributes, even ones not explicitly |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2072 // set. Those have values like undefined, null, 0, false, "" or |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2073 // "inherit". |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2074 if ( val && val !== "inherit" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2075 ret += " " + attrs[ i ].nodeName + "=" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2076 dump.parse( val, "attribute" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2077 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2078 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2079 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2080 ret += close; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2081 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2082 // Show content of TextNode or CDATASection |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2083 if ( node.nodeType === 3 || node.nodeType === 4 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2084 ret += node.nodeValue; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2085 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2086 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2087 return ret + open + "/" + tag + close; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2088 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2089 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2090 // function calls it internally, it's the arguments part of the function |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2091 functionArgs: function( fn ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2092 var args, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2093 l = fn.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2094 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2095 if ( !l ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2096 return ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2097 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2098 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2099 args = new Array( l ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2100 while ( l-- ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2101 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2102 // 97 is 'a' |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2103 args[ l ] = String.fromCharCode( 97 + l ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2104 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2105 return " " + args.join( ", " ) + " "; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2106 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2107 // object calls it internally, the key part of an item in a map |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2108 key: quote, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2109 // function calls it internally, it's the content of the function |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2110 functionCode: "[code]", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2111 // node calls it internally, it's an html attribute value |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2112 attribute: quote, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2113 string: quote, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2114 date: quote, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2115 regexp: literal, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2116 number: literal, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2117 "boolean": literal |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2118 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2119 // if true, entities are escaped ( <, >, \t, space and \n ) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2120 HTML: false, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2121 // indentation unit |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2122 indentChar: " ", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2123 // if true, items in a collection, are separated by a \n, else just a space. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2124 multiline: true |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2125 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2126 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2127 return dump; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2128 }()); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2129 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2130 // back compat |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2131 QUnit.jsDump = QUnit.dump; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2132 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2133 // For browser, export only select globals |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2134 if ( defined.document ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2135 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2136 // Deprecated |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2137 // Extend assert methods to QUnit and Global scope through Backwards compatibility |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2138 (function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2139 var i, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2140 assertions = Assert.prototype; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2141 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2142 function applyCurrent( current ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2143 return function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2144 var assert = new Assert( QUnit.config.current ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2145 current.apply( assert, arguments ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2146 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2147 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2148 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2149 for ( i in assertions ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2150 QUnit[ i ] = applyCurrent( assertions[ i ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2151 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2152 })(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2153 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2154 (function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2155 var i, l, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2156 keys = [ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2157 "test", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2158 "module", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2159 "expect", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2160 "asyncTest", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2161 "start", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2162 "stop", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2163 "ok", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2164 "notOk", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2165 "equal", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2166 "notEqual", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2167 "propEqual", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2168 "notPropEqual", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2169 "deepEqual", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2170 "notDeepEqual", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2171 "strictEqual", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2172 "notStrictEqual", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2173 "throws", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2174 "raises" |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2175 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2176 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2177 for ( i = 0, l = keys.length; i < l; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2178 window[ keys[ i ] ] = QUnit[ keys[ i ] ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2179 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2180 })(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2181 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2182 window.QUnit = QUnit; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2183 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2184 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2185 // For nodejs |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2186 if ( typeof module !== "undefined" && module && module.exports ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2187 module.exports = QUnit; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2188 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2189 // For consistency with CommonJS environments' exports |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2190 module.exports.QUnit = QUnit; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2191 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2192 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2193 // For CommonJS with exports, but without module.exports, like Rhino |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2194 if ( typeof exports !== "undefined" && exports ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2195 exports.QUnit = QUnit; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2196 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2197 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2198 if ( typeof define === "function" && define.amd ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2199 define( function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2200 return QUnit; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2201 } ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2202 QUnit.config.autostart = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2203 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2204 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2205 /* |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2206 * This file is a modified version of google-diff-match-patch's JavaScript implementation |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2207 * (https://code.google.com/p/google-diff-match-patch/source/browse/trunk/javascript/diff_match_patch_uncompressed.js), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2208 * modifications are licensed as more fully set forth in LICENSE.txt. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2209 * |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2210 * The original source of google-diff-match-patch is attributable and licensed as follows: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2211 * |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2212 * Copyright 2006 Google Inc. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2213 * http://code.google.com/p/google-diff-match-patch/ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2214 * |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2215 * Licensed under the Apache License, Version 2.0 (the "License"); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2216 * you may not use this file except in compliance with the License. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2217 * You may obtain a copy of the License at |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2218 * |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2219 * http://www.apache.org/licenses/LICENSE-2.0 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2220 * |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2221 * Unless required by applicable law or agreed to in writing, software |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2222 * distributed under the License is distributed on an "AS IS" BASIS, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2223 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2224 * See the License for the specific language governing permissions and |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2225 * limitations under the License. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2226 * |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2227 * More Info: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2228 * https://code.google.com/p/google-diff-match-patch/ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2229 * |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2230 * Usage: QUnit.diff(expected, actual) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2231 * |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2232 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2233 QUnit.diff = ( function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2234 function DiffMatchPatch() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2235 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2236 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2237 // DIFF FUNCTIONS |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2238 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2239 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2240 * The data structure representing a diff is an array of tuples: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2241 * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2242 * which means: delete 'Hello', add 'Goodbye' and keep ' world.' |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2243 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2244 var DIFF_DELETE = -1, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2245 DIFF_INSERT = 1, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2246 DIFF_EQUAL = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2247 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2248 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2249 * Find the differences between two texts. Simplifies the problem by stripping |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2250 * any common prefix or suffix off the texts before diffing. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2251 * @param {string} text1 Old string to be diffed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2252 * @param {string} text2 New string to be diffed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2253 * @param {boolean=} optChecklines Optional speedup flag. If present and false, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2254 * then don't run a line-level diff first to identify the changed areas. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2255 * Defaults to true, which does a faster, slightly less optimal diff. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2256 * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2257 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2258 DiffMatchPatch.prototype.DiffMain = function( text1, text2, optChecklines ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2259 var deadline, checklines, commonlength, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2260 commonprefix, commonsuffix, diffs; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2261 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2262 // The diff must be complete in up to 1 second. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2263 deadline = ( new Date() ).getTime() + 1000; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2264 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2265 // Check for null inputs. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2266 if ( text1 === null || text2 === null ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2267 throw new Error( "Null input. (DiffMain)" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2268 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2269 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2270 // Check for equality (speedup). |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2271 if ( text1 === text2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2272 if ( text1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2273 return [ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2274 [ DIFF_EQUAL, text1 ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2275 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2276 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2277 return []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2278 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2279 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2280 if ( typeof optChecklines === "undefined" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2281 optChecklines = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2282 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2283 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2284 checklines = optChecklines; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2285 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2286 // Trim off common prefix (speedup). |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2287 commonlength = this.diffCommonPrefix( text1, text2 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2288 commonprefix = text1.substring( 0, commonlength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2289 text1 = text1.substring( commonlength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2290 text2 = text2.substring( commonlength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2291 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2292 // Trim off common suffix (speedup). |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2293 commonlength = this.diffCommonSuffix( text1, text2 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2294 commonsuffix = text1.substring( text1.length - commonlength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2295 text1 = text1.substring( 0, text1.length - commonlength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2296 text2 = text2.substring( 0, text2.length - commonlength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2297 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2298 // Compute the diff on the middle block. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2299 diffs = this.diffCompute( text1, text2, checklines, deadline ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2300 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2301 // Restore the prefix and suffix. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2302 if ( commonprefix ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2303 diffs.unshift( [ DIFF_EQUAL, commonprefix ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2304 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2305 if ( commonsuffix ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2306 diffs.push( [ DIFF_EQUAL, commonsuffix ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2307 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2308 this.diffCleanupMerge( diffs ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2309 return diffs; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2310 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2311 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2312 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2313 * Reduce the number of edits by eliminating operationally trivial equalities. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2314 * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2315 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2316 DiffMatchPatch.prototype.diffCleanupEfficiency = function( diffs ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2317 var changes, equalities, equalitiesLength, lastequality, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2318 pointer, preIns, preDel, postIns, postDel; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2319 changes = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2320 equalities = []; // Stack of indices where equalities are found. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2321 equalitiesLength = 0; // Keeping our own length var is faster in JS. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2322 /** @type {?string} */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2323 lastequality = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2324 // Always equal to diffs[equalities[equalitiesLength - 1]][1] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2325 pointer = 0; // Index of current position. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2326 // Is there an insertion operation before the last equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2327 preIns = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2328 // Is there a deletion operation before the last equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2329 preDel = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2330 // Is there an insertion operation after the last equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2331 postIns = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2332 // Is there a deletion operation after the last equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2333 postDel = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2334 while ( pointer < diffs.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2335 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2336 // Equality found. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2337 if ( diffs[ pointer ][ 0 ] === DIFF_EQUAL ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2338 if ( diffs[ pointer ][ 1 ].length < 4 && ( postIns || postDel ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2339 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2340 // Candidate found. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2341 equalities[ equalitiesLength++ ] = pointer; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2342 preIns = postIns; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2343 preDel = postDel; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2344 lastequality = diffs[ pointer ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2345 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2346 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2347 // Not a candidate, and can never become one. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2348 equalitiesLength = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2349 lastequality = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2350 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2351 postIns = postDel = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2352 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2353 // An insertion or deletion. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2354 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2355 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2356 if ( diffs[ pointer ][ 0 ] === DIFF_DELETE ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2357 postDel = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2358 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2359 postIns = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2360 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2361 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2362 /* |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2363 * Five types to be split: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2364 * <ins>A</ins><del>B</del>XY<ins>C</ins><del>D</del> |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2365 * <ins>A</ins>X<ins>C</ins><del>D</del> |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2366 * <ins>A</ins><del>B</del>X<ins>C</ins> |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2367 * <ins>A</del>X<ins>C</ins><del>D</del> |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2368 * <ins>A</ins><del>B</del>X<del>C</del> |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2369 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2370 if ( lastequality && ( ( preIns && preDel && postIns && postDel ) || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2371 ( ( lastequality.length < 2 ) && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2372 ( preIns + preDel + postIns + postDel ) === 3 ) ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2373 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2374 // Duplicate record. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2375 diffs.splice( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2376 equalities[ equalitiesLength - 1 ], |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2377 0, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2378 [ DIFF_DELETE, lastequality ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2379 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2380 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2381 // Change second copy to insert. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2382 diffs[ equalities[ equalitiesLength - 1 ] + 1 ][ 0 ] = DIFF_INSERT; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2383 equalitiesLength--; // Throw away the equality we just deleted; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2384 lastequality = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2385 if ( preIns && preDel ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2386 // No changes made which could affect previous entry, keep going. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2387 postIns = postDel = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2388 equalitiesLength = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2389 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2390 equalitiesLength--; // Throw away the previous equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2391 pointer = equalitiesLength > 0 ? equalities[ equalitiesLength - 1 ] : -1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2392 postIns = postDel = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2393 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2394 changes = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2395 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2396 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2397 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2398 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2399 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2400 if ( changes ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2401 this.diffCleanupMerge( diffs ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2402 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2403 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2404 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2405 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2406 * Convert a diff array into a pretty HTML report. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2407 * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2408 * @param {integer} string to be beautified. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2409 * @return {string} HTML representation. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2410 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2411 DiffMatchPatch.prototype.diffPrettyHtml = function( diffs ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2412 var op, data, x, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2413 html = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2414 for ( x = 0; x < diffs.length; x++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2415 op = diffs[ x ][ 0 ]; // Operation (insert, delete, equal) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2416 data = diffs[ x ][ 1 ]; // Text of change. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2417 switch ( op ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2418 case DIFF_INSERT: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2419 html[ x ] = "<ins>" + data + "</ins>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2420 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2421 case DIFF_DELETE: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2422 html[ x ] = "<del>" + data + "</del>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2423 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2424 case DIFF_EQUAL: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2425 html[ x ] = "<span>" + data + "</span>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2426 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2427 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2428 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2429 return html.join( "" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2430 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2431 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2432 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2433 * Determine the common prefix of two strings. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2434 * @param {string} text1 First string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2435 * @param {string} text2 Second string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2436 * @return {number} The number of characters common to the start of each |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2437 * string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2438 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2439 DiffMatchPatch.prototype.diffCommonPrefix = function( text1, text2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2440 var pointermid, pointermax, pointermin, pointerstart; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2441 // Quick check for common null cases. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2442 if ( !text1 || !text2 || text1.charAt( 0 ) !== text2.charAt( 0 ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2443 return 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2444 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2445 // Binary search. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2446 // Performance analysis: http://neil.fraser.name/news/2007/10/09/ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2447 pointermin = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2448 pointermax = Math.min( text1.length, text2.length ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2449 pointermid = pointermax; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2450 pointerstart = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2451 while ( pointermin < pointermid ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2452 if ( text1.substring( pointerstart, pointermid ) === |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2453 text2.substring( pointerstart, pointermid ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2454 pointermin = pointermid; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2455 pointerstart = pointermin; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2456 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2457 pointermax = pointermid; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2458 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2459 pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2460 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2461 return pointermid; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2462 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2463 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2464 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2465 * Determine the common suffix of two strings. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2466 * @param {string} text1 First string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2467 * @param {string} text2 Second string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2468 * @return {number} The number of characters common to the end of each string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2469 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2470 DiffMatchPatch.prototype.diffCommonSuffix = function( text1, text2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2471 var pointermid, pointermax, pointermin, pointerend; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2472 // Quick check for common null cases. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2473 if ( !text1 || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2474 !text2 || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2475 text1.charAt( text1.length - 1 ) !== text2.charAt( text2.length - 1 ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2476 return 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2477 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2478 // Binary search. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2479 // Performance analysis: http://neil.fraser.name/news/2007/10/09/ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2480 pointermin = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2481 pointermax = Math.min( text1.length, text2.length ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2482 pointermid = pointermax; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2483 pointerend = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2484 while ( pointermin < pointermid ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2485 if ( text1.substring( text1.length - pointermid, text1.length - pointerend ) === |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2486 text2.substring( text2.length - pointermid, text2.length - pointerend ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2487 pointermin = pointermid; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2488 pointerend = pointermin; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2489 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2490 pointermax = pointermid; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2491 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2492 pointermid = Math.floor( ( pointermax - pointermin ) / 2 + pointermin ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2493 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2494 return pointermid; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2495 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2496 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2497 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2498 * Find the differences between two texts. Assumes that the texts do not |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2499 * have any common prefix or suffix. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2500 * @param {string} text1 Old string to be diffed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2501 * @param {string} text2 New string to be diffed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2502 * @param {boolean} checklines Speedup flag. If false, then don't run a |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2503 * line-level diff first to identify the changed areas. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2504 * If true, then run a faster, slightly less optimal diff. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2505 * @param {number} deadline Time when the diff should be complete by. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2506 * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2507 * @private |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2508 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2509 DiffMatchPatch.prototype.diffCompute = function( text1, text2, checklines, deadline ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2510 var diffs, longtext, shorttext, i, hm, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2511 text1A, text2A, text1B, text2B, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2512 midCommon, diffsA, diffsB; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2513 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2514 if ( !text1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2515 // Just add some text (speedup). |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2516 return [ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2517 [ DIFF_INSERT, text2 ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2518 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2519 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2520 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2521 if ( !text2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2522 // Just delete some text (speedup). |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2523 return [ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2524 [ DIFF_DELETE, text1 ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2525 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2526 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2527 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2528 longtext = text1.length > text2.length ? text1 : text2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2529 shorttext = text1.length > text2.length ? text2 : text1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2530 i = longtext.indexOf( shorttext ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2531 if ( i !== -1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2532 // Shorter text is inside the longer text (speedup). |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2533 diffs = [ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2534 [ DIFF_INSERT, longtext.substring( 0, i ) ], |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2535 [ DIFF_EQUAL, shorttext ], |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2536 [ DIFF_INSERT, longtext.substring( i + shorttext.length ) ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2537 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2538 // Swap insertions for deletions if diff is reversed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2539 if ( text1.length > text2.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2540 diffs[ 0 ][ 0 ] = diffs[ 2 ][ 0 ] = DIFF_DELETE; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2541 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2542 return diffs; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2543 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2544 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2545 if ( shorttext.length === 1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2546 // Single character string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2547 // After the previous speedup, the character can't be an equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2548 return [ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2549 [ DIFF_DELETE, text1 ], |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2550 [ DIFF_INSERT, text2 ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2551 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2552 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2553 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2554 // Check to see if the problem can be split in two. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2555 hm = this.diffHalfMatch( text1, text2 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2556 if ( hm ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2557 // A half-match was found, sort out the return data. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2558 text1A = hm[ 0 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2559 text1B = hm[ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2560 text2A = hm[ 2 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2561 text2B = hm[ 3 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2562 midCommon = hm[ 4 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2563 // Send both pairs off for separate processing. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2564 diffsA = this.DiffMain( text1A, text2A, checklines, deadline ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2565 diffsB = this.DiffMain( text1B, text2B, checklines, deadline ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2566 // Merge the results. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2567 return diffsA.concat( [ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2568 [ DIFF_EQUAL, midCommon ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2569 ], diffsB ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2570 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2571 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2572 if ( checklines && text1.length > 100 && text2.length > 100 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2573 return this.diffLineMode( text1, text2, deadline ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2574 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2575 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2576 return this.diffBisect( text1, text2, deadline ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2577 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2578 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2579 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2580 * Do the two texts share a substring which is at least half the length of the |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2581 * longer text? |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2582 * This speedup can produce non-minimal diffs. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2583 * @param {string} text1 First string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2584 * @param {string} text2 Second string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2585 * @return {Array.<string>} Five element Array, containing the prefix of |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2586 * text1, the suffix of text1, the prefix of text2, the suffix of |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2587 * text2 and the common middle. Or null if there was no match. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2588 * @private |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2589 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2590 DiffMatchPatch.prototype.diffHalfMatch = function( text1, text2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2591 var longtext, shorttext, dmp, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2592 text1A, text2B, text2A, text1B, midCommon, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2593 hm1, hm2, hm; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2594 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2595 longtext = text1.length > text2.length ? text1 : text2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2596 shorttext = text1.length > text2.length ? text2 : text1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2597 if ( longtext.length < 4 || shorttext.length * 2 < longtext.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2598 return null; // Pointless. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2599 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2600 dmp = this; // 'this' becomes 'window' in a closure. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2601 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2602 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2603 * Does a substring of shorttext exist within longtext such that the substring |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2604 * is at least half the length of longtext? |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2605 * Closure, but does not reference any external variables. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2606 * @param {string} longtext Longer string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2607 * @param {string} shorttext Shorter string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2608 * @param {number} i Start index of quarter length substring within longtext. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2609 * @return {Array.<string>} Five element Array, containing the prefix of |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2610 * longtext, the suffix of longtext, the prefix of shorttext, the suffix |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2611 * of shorttext and the common middle. Or null if there was no match. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2612 * @private |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2613 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2614 function diffHalfMatchI( longtext, shorttext, i ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2615 var seed, j, bestCommon, prefixLength, suffixLength, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2616 bestLongtextA, bestLongtextB, bestShorttextA, bestShorttextB; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2617 // Start with a 1/4 length substring at position i as a seed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2618 seed = longtext.substring( i, i + Math.floor( longtext.length / 4 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2619 j = -1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2620 bestCommon = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2621 while ( ( j = shorttext.indexOf( seed, j + 1 ) ) !== -1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2622 prefixLength = dmp.diffCommonPrefix( longtext.substring( i ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2623 shorttext.substring( j ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2624 suffixLength = dmp.diffCommonSuffix( longtext.substring( 0, i ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2625 shorttext.substring( 0, j ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2626 if ( bestCommon.length < suffixLength + prefixLength ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2627 bestCommon = shorttext.substring( j - suffixLength, j ) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2628 shorttext.substring( j, j + prefixLength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2629 bestLongtextA = longtext.substring( 0, i - suffixLength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2630 bestLongtextB = longtext.substring( i + prefixLength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2631 bestShorttextA = shorttext.substring( 0, j - suffixLength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2632 bestShorttextB = shorttext.substring( j + prefixLength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2633 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2634 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2635 if ( bestCommon.length * 2 >= longtext.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2636 return [ bestLongtextA, bestLongtextB, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2637 bestShorttextA, bestShorttextB, bestCommon |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2638 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2639 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2640 return null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2641 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2642 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2643 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2644 // First check if the second quarter is the seed for a half-match. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2645 hm1 = diffHalfMatchI( longtext, shorttext, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2646 Math.ceil( longtext.length / 4 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2647 // Check again based on the third quarter. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2648 hm2 = diffHalfMatchI( longtext, shorttext, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2649 Math.ceil( longtext.length / 2 ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2650 if ( !hm1 && !hm2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2651 return null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2652 } else if ( !hm2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2653 hm = hm1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2654 } else if ( !hm1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2655 hm = hm2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2656 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2657 // Both matched. Select the longest. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2658 hm = hm1[ 4 ].length > hm2[ 4 ].length ? hm1 : hm2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2659 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2660 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2661 // A half-match was found, sort out the return data. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2662 text1A, text1B, text2A, text2B; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2663 if ( text1.length > text2.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2664 text1A = hm[ 0 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2665 text1B = hm[ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2666 text2A = hm[ 2 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2667 text2B = hm[ 3 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2668 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2669 text2A = hm[ 0 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2670 text2B = hm[ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2671 text1A = hm[ 2 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2672 text1B = hm[ 3 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2673 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2674 midCommon = hm[ 4 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2675 return [ text1A, text1B, text2A, text2B, midCommon ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2676 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2677 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2678 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2679 * Do a quick line-level diff on both strings, then rediff the parts for |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2680 * greater accuracy. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2681 * This speedup can produce non-minimal diffs. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2682 * @param {string} text1 Old string to be diffed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2683 * @param {string} text2 New string to be diffed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2684 * @param {number} deadline Time when the diff should be complete by. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2685 * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2686 * @private |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2687 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2688 DiffMatchPatch.prototype.diffLineMode = function( text1, text2, deadline ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2689 var a, diffs, linearray, pointer, countInsert, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2690 countDelete, textInsert, textDelete, j; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2691 // Scan the text on a line-by-line basis first. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2692 a = this.diffLinesToChars( text1, text2 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2693 text1 = a.chars1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2694 text2 = a.chars2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2695 linearray = a.lineArray; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2696 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2697 diffs = this.DiffMain( text1, text2, false, deadline ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2698 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2699 // Convert the diff back to original text. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2700 this.diffCharsToLines( diffs, linearray ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2701 // Eliminate freak matches (e.g. blank lines) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2702 this.diffCleanupSemantic( diffs ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2703 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2704 // Rediff any replacement blocks, this time character-by-character. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2705 // Add a dummy entry at the end. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2706 diffs.push( [ DIFF_EQUAL, "" ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2707 pointer = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2708 countDelete = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2709 countInsert = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2710 textDelete = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2711 textInsert = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2712 while ( pointer < diffs.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2713 switch ( diffs[ pointer ][ 0 ] ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2714 case DIFF_INSERT: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2715 countInsert++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2716 textInsert += diffs[ pointer ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2717 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2718 case DIFF_DELETE: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2719 countDelete++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2720 textDelete += diffs[ pointer ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2721 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2722 case DIFF_EQUAL: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2723 // Upon reaching an equality, check for prior redundancies. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2724 if ( countDelete >= 1 && countInsert >= 1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2725 // Delete the offending records and add the merged ones. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2726 diffs.splice( pointer - countDelete - countInsert, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2727 countDelete + countInsert ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2728 pointer = pointer - countDelete - countInsert; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2729 a = this.DiffMain( textDelete, textInsert, false, deadline ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2730 for ( j = a.length - 1; j >= 0; j-- ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2731 diffs.splice( pointer, 0, a[ j ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2732 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2733 pointer = pointer + a.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2734 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2735 countInsert = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2736 countDelete = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2737 textDelete = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2738 textInsert = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2739 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2740 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2741 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2742 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2743 diffs.pop(); // Remove the dummy entry at the end. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2744 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2745 return diffs; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2746 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2747 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2748 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2749 * Find the 'middle snake' of a diff, split the problem in two |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2750 * and return the recursively constructed diff. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2751 * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2752 * @param {string} text1 Old string to be diffed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2753 * @param {string} text2 New string to be diffed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2754 * @param {number} deadline Time at which to bail if not yet complete. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2755 * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2756 * @private |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2757 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2758 DiffMatchPatch.prototype.diffBisect = function( text1, text2, deadline ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2759 var text1Length, text2Length, maxD, vOffset, vLength, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2760 v1, v2, x, delta, front, k1start, k1end, k2start, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2761 k2end, k2Offset, k1Offset, x1, x2, y1, y2, d, k1, k2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2762 // Cache the text lengths to prevent multiple calls. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2763 text1Length = text1.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2764 text2Length = text2.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2765 maxD = Math.ceil( ( text1Length + text2Length ) / 2 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2766 vOffset = maxD; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2767 vLength = 2 * maxD; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2768 v1 = new Array( vLength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2769 v2 = new Array( vLength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2770 // Setting all elements to -1 is faster in Chrome & Firefox than mixing |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2771 // integers and undefined. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2772 for ( x = 0; x < vLength; x++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2773 v1[ x ] = -1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2774 v2[ x ] = -1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2775 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2776 v1[ vOffset + 1 ] = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2777 v2[ vOffset + 1 ] = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2778 delta = text1Length - text2Length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2779 // If the total number of characters is odd, then the front path will collide |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2780 // with the reverse path. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2781 front = ( delta % 2 !== 0 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2782 // Offsets for start and end of k loop. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2783 // Prevents mapping of space beyond the grid. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2784 k1start = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2785 k1end = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2786 k2start = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2787 k2end = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2788 for ( d = 0; d < maxD; d++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2789 // Bail out if deadline is reached. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2790 if ( ( new Date() ).getTime() > deadline ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2791 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2792 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2793 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2794 // Walk the front path one step. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2795 for ( k1 = -d + k1start; k1 <= d - k1end; k1 += 2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2796 k1Offset = vOffset + k1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2797 if ( k1 === -d || ( k1 !== d && v1[ k1Offset - 1 ] < v1[ k1Offset + 1 ] ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2798 x1 = v1[ k1Offset + 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2799 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2800 x1 = v1[ k1Offset - 1 ] + 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2801 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2802 y1 = x1 - k1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2803 while ( x1 < text1Length && y1 < text2Length && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2804 text1.charAt( x1 ) === text2.charAt( y1 ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2805 x1++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2806 y1++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2807 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2808 v1[ k1Offset ] = x1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2809 if ( x1 > text1Length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2810 // Ran off the right of the graph. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2811 k1end += 2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2812 } else if ( y1 > text2Length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2813 // Ran off the bottom of the graph. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2814 k1start += 2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2815 } else if ( front ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2816 k2Offset = vOffset + delta - k1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2817 if ( k2Offset >= 0 && k2Offset < vLength && v2[ k2Offset ] !== -1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2818 // Mirror x2 onto top-left coordinate system. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2819 x2 = text1Length - v2[ k2Offset ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2820 if ( x1 >= x2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2821 // Overlap detected. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2822 return this.diffBisectSplit( text1, text2, x1, y1, deadline ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2823 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2824 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2825 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2826 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2827 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2828 // Walk the reverse path one step. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2829 for ( k2 = -d + k2start; k2 <= d - k2end; k2 += 2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2830 k2Offset = vOffset + k2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2831 if ( k2 === -d || ( k2 !== d && v2[ k2Offset - 1 ] < v2[ k2Offset + 1 ] ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2832 x2 = v2[ k2Offset + 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2833 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2834 x2 = v2[ k2Offset - 1 ] + 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2835 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2836 y2 = x2 - k2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2837 while ( x2 < text1Length && y2 < text2Length && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2838 text1.charAt( text1Length - x2 - 1 ) === |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2839 text2.charAt( text2Length - y2 - 1 ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2840 x2++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2841 y2++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2842 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2843 v2[ k2Offset ] = x2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2844 if ( x2 > text1Length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2845 // Ran off the left of the graph. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2846 k2end += 2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2847 } else if ( y2 > text2Length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2848 // Ran off the top of the graph. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2849 k2start += 2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2850 } else if ( !front ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2851 k1Offset = vOffset + delta - k2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2852 if ( k1Offset >= 0 && k1Offset < vLength && v1[ k1Offset ] !== -1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2853 x1 = v1[ k1Offset ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2854 y1 = vOffset + x1 - k1Offset; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2855 // Mirror x2 onto top-left coordinate system. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2856 x2 = text1Length - x2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2857 if ( x1 >= x2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2858 // Overlap detected. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2859 return this.diffBisectSplit( text1, text2, x1, y1, deadline ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2860 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2861 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2862 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2863 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2864 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2865 // Diff took too long and hit the deadline or |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2866 // number of diffs equals number of characters, no commonality at all. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2867 return [ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2868 [ DIFF_DELETE, text1 ], |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2869 [ DIFF_INSERT, text2 ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2870 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2871 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2872 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2873 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2874 * Given the location of the 'middle snake', split the diff in two parts |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2875 * and recurse. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2876 * @param {string} text1 Old string to be diffed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2877 * @param {string} text2 New string to be diffed. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2878 * @param {number} x Index of split point in text1. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2879 * @param {number} y Index of split point in text2. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2880 * @param {number} deadline Time at which to bail if not yet complete. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2881 * @return {!Array.<!DiffMatchPatch.Diff>} Array of diff tuples. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2882 * @private |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2883 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2884 DiffMatchPatch.prototype.diffBisectSplit = function( text1, text2, x, y, deadline ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2885 var text1a, text1b, text2a, text2b, diffs, diffsb; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2886 text1a = text1.substring( 0, x ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2887 text2a = text2.substring( 0, y ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2888 text1b = text1.substring( x ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2889 text2b = text2.substring( y ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2890 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2891 // Compute both diffs serially. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2892 diffs = this.DiffMain( text1a, text2a, false, deadline ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2893 diffsb = this.DiffMain( text1b, text2b, false, deadline ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2894 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2895 return diffs.concat( diffsb ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2896 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2897 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2898 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2899 * Reduce the number of edits by eliminating semantically trivial equalities. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2900 * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2901 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2902 DiffMatchPatch.prototype.diffCleanupSemantic = function( diffs ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2903 var changes, equalities, equalitiesLength, lastequality, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2904 pointer, lengthInsertions2, lengthDeletions2, lengthInsertions1, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2905 lengthDeletions1, deletion, insertion, overlapLength1, overlapLength2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2906 changes = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2907 equalities = []; // Stack of indices where equalities are found. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2908 equalitiesLength = 0; // Keeping our own length var is faster in JS. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2909 /** @type {?string} */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2910 lastequality = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2911 // Always equal to diffs[equalities[equalitiesLength - 1]][1] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2912 pointer = 0; // Index of current position. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2913 // Number of characters that changed prior to the equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2914 lengthInsertions1 = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2915 lengthDeletions1 = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2916 // Number of characters that changed after the equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2917 lengthInsertions2 = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2918 lengthDeletions2 = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2919 while ( pointer < diffs.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2920 if ( diffs[ pointer ][ 0 ] === DIFF_EQUAL ) { // Equality found. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2921 equalities[ equalitiesLength++ ] = pointer; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2922 lengthInsertions1 = lengthInsertions2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2923 lengthDeletions1 = lengthDeletions2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2924 lengthInsertions2 = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2925 lengthDeletions2 = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2926 lastequality = diffs[ pointer ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2927 } else { // An insertion or deletion. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2928 if ( diffs[ pointer ][ 0 ] === DIFF_INSERT ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2929 lengthInsertions2 += diffs[ pointer ][ 1 ].length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2930 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2931 lengthDeletions2 += diffs[ pointer ][ 1 ].length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2932 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2933 // Eliminate an equality that is smaller or equal to the edits on both |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2934 // sides of it. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2935 if ( lastequality && ( lastequality.length <= |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2936 Math.max( lengthInsertions1, lengthDeletions1 ) ) && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2937 ( lastequality.length <= Math.max( lengthInsertions2, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2938 lengthDeletions2 ) ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2939 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2940 // Duplicate record. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2941 diffs.splice( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2942 equalities[ equalitiesLength - 1 ], |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2943 0, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2944 [ DIFF_DELETE, lastequality ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2945 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2946 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2947 // Change second copy to insert. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2948 diffs[ equalities[ equalitiesLength - 1 ] + 1 ][ 0 ] = DIFF_INSERT; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2949 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2950 // Throw away the equality we just deleted. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2951 equalitiesLength--; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2952 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2953 // Throw away the previous equality (it needs to be reevaluated). |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2954 equalitiesLength--; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2955 pointer = equalitiesLength > 0 ? equalities[ equalitiesLength - 1 ] : -1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2956 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2957 // Reset the counters. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2958 lengthInsertions1 = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2959 lengthDeletions1 = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2960 lengthInsertions2 = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2961 lengthDeletions2 = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2962 lastequality = null; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2963 changes = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2964 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2965 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2966 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2967 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2968 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2969 // Normalize the diff. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2970 if ( changes ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2971 this.diffCleanupMerge( diffs ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2972 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2973 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2974 // Find any overlaps between deletions and insertions. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2975 // e.g: <del>abcxxx</del><ins>xxxdef</ins> |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2976 // -> <del>abc</del>xxx<ins>def</ins> |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2977 // e.g: <del>xxxabc</del><ins>defxxx</ins> |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2978 // -> <ins>def</ins>xxx<del>abc</del> |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2979 // Only extract an overlap if it is as big as the edit ahead or behind it. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2980 pointer = 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2981 while ( pointer < diffs.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2982 if ( diffs[ pointer - 1 ][ 0 ] === DIFF_DELETE && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2983 diffs[ pointer ][ 0 ] === DIFF_INSERT ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2984 deletion = diffs[ pointer - 1 ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2985 insertion = diffs[ pointer ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2986 overlapLength1 = this.diffCommonOverlap( deletion, insertion ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2987 overlapLength2 = this.diffCommonOverlap( insertion, deletion ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2988 if ( overlapLength1 >= overlapLength2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2989 if ( overlapLength1 >= deletion.length / 2 || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2990 overlapLength1 >= insertion.length / 2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2991 // Overlap found. Insert an equality and trim the surrounding edits. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2992 diffs.splice( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2993 pointer, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2994 0, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2995 [ DIFF_EQUAL, insertion.substring( 0, overlapLength1 ) ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2996 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2997 diffs[ pointer - 1 ][ 1 ] = |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2998 deletion.substring( 0, deletion.length - overlapLength1 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2999 diffs[ pointer + 1 ][ 1 ] = insertion.substring( overlapLength1 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3000 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3001 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3002 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3003 if ( overlapLength2 >= deletion.length / 2 || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3004 overlapLength2 >= insertion.length / 2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3005 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3006 // Reverse overlap found. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3007 // Insert an equality and swap and trim the surrounding edits. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3008 diffs.splice( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3009 pointer, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3010 0, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3011 [ DIFF_EQUAL, deletion.substring( 0, overlapLength2 ) ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3012 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3013 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3014 diffs[ pointer - 1 ][ 0 ] = DIFF_INSERT; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3015 diffs[ pointer - 1 ][ 1 ] = |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3016 insertion.substring( 0, insertion.length - overlapLength2 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3017 diffs[ pointer + 1 ][ 0 ] = DIFF_DELETE; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3018 diffs[ pointer + 1 ][ 1 ] = |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3019 deletion.substring( overlapLength2 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3020 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3021 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3022 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3023 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3024 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3025 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3026 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3027 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3028 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3029 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3030 * Determine if the suffix of one string is the prefix of another. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3031 * @param {string} text1 First string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3032 * @param {string} text2 Second string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3033 * @return {number} The number of characters common to the end of the first |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3034 * string and the start of the second string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3035 * @private |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3036 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3037 DiffMatchPatch.prototype.diffCommonOverlap = function( text1, text2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3038 var text1Length, text2Length, textLength, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3039 best, length, pattern, found; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3040 // Cache the text lengths to prevent multiple calls. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3041 text1Length = text1.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3042 text2Length = text2.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3043 // Eliminate the null case. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3044 if ( text1Length === 0 || text2Length === 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3045 return 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3046 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3047 // Truncate the longer string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3048 if ( text1Length > text2Length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3049 text1 = text1.substring( text1Length - text2Length ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3050 } else if ( text1Length < text2Length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3051 text2 = text2.substring( 0, text1Length ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3052 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3053 textLength = Math.min( text1Length, text2Length ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3054 // Quick check for the worst case. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3055 if ( text1 === text2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3056 return textLength; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3057 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3058 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3059 // Start by looking for a single character match |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3060 // and increase length until no match is found. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3061 // Performance analysis: http://neil.fraser.name/news/2010/11/04/ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3062 best = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3063 length = 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3064 while ( true ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3065 pattern = text1.substring( textLength - length ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3066 found = text2.indexOf( pattern ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3067 if ( found === -1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3068 return best; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3069 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3070 length += found; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3071 if ( found === 0 || text1.substring( textLength - length ) === |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3072 text2.substring( 0, length ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3073 best = length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3074 length++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3075 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3076 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3077 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3078 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3079 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3080 * Split two texts into an array of strings. Reduce the texts to a string of |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3081 * hashes where each Unicode character represents one line. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3082 * @param {string} text1 First string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3083 * @param {string} text2 Second string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3084 * @return {{chars1: string, chars2: string, lineArray: !Array.<string>}} |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3085 * An object containing the encoded text1, the encoded text2 and |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3086 * the array of unique strings. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3087 * The zeroth element of the array of unique strings is intentionally blank. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3088 * @private |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3089 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3090 DiffMatchPatch.prototype.diffLinesToChars = function( text1, text2 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3091 var lineArray, lineHash, chars1, chars2; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3092 lineArray = []; // e.g. lineArray[4] === 'Hello\n' |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3093 lineHash = {}; // e.g. lineHash['Hello\n'] === 4 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3094 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3095 // '\x00' is a valid character, but various debuggers don't like it. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3096 // So we'll insert a junk entry to avoid generating a null character. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3097 lineArray[ 0 ] = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3098 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3099 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3100 * Split a text into an array of strings. Reduce the texts to a string of |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3101 * hashes where each Unicode character represents one line. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3102 * Modifies linearray and linehash through being a closure. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3103 * @param {string} text String to encode. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3104 * @return {string} Encoded string. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3105 * @private |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3106 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3107 function diffLinesToCharsMunge( text ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3108 var chars, lineStart, lineEnd, lineArrayLength, line; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3109 chars = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3110 // Walk the text, pulling out a substring for each line. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3111 // text.split('\n') would would temporarily double our memory footprint. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3112 // Modifying text would create many large strings to garbage collect. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3113 lineStart = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3114 lineEnd = -1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3115 // Keeping our own length variable is faster than looking it up. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3116 lineArrayLength = lineArray.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3117 while ( lineEnd < text.length - 1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3118 lineEnd = text.indexOf( "\n", lineStart ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3119 if ( lineEnd === -1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3120 lineEnd = text.length - 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3121 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3122 line = text.substring( lineStart, lineEnd + 1 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3123 lineStart = lineEnd + 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3124 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3125 if ( lineHash.hasOwnProperty ? lineHash.hasOwnProperty( line ) : |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3126 ( lineHash[ line ] !== undefined ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3127 chars += String.fromCharCode( lineHash[ line ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3128 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3129 chars += String.fromCharCode( lineArrayLength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3130 lineHash[ line ] = lineArrayLength; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3131 lineArray[ lineArrayLength++ ] = line; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3132 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3133 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3134 return chars; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3135 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3136 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3137 chars1 = diffLinesToCharsMunge( text1 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3138 chars2 = diffLinesToCharsMunge( text2 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3139 return { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3140 chars1: chars1, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3141 chars2: chars2, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3142 lineArray: lineArray |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3143 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3144 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3145 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3146 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3147 * Rehydrate the text in a diff from a string of line hashes to real lines of |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3148 * text. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3149 * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3150 * @param {!Array.<string>} lineArray Array of unique strings. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3151 * @private |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3152 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3153 DiffMatchPatch.prototype.diffCharsToLines = function( diffs, lineArray ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3154 var x, chars, text, y; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3155 for ( x = 0; x < diffs.length; x++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3156 chars = diffs[ x ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3157 text = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3158 for ( y = 0; y < chars.length; y++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3159 text[ y ] = lineArray[ chars.charCodeAt( y ) ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3160 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3161 diffs[ x ][ 1 ] = text.join( "" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3162 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3163 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3164 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3165 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3166 * Reorder and merge like edit sections. Merge equalities. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3167 * Any edit section can move as long as it doesn't cross an equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3168 * @param {!Array.<!DiffMatchPatch.Diff>} diffs Array of diff tuples. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3169 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3170 DiffMatchPatch.prototype.diffCleanupMerge = function( diffs ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3171 var pointer, countDelete, countInsert, textInsert, textDelete, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3172 commonlength, changes, diffPointer, position; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3173 diffs.push( [ DIFF_EQUAL, "" ] ); // Add a dummy entry at the end. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3174 pointer = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3175 countDelete = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3176 countInsert = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3177 textDelete = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3178 textInsert = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3179 commonlength; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3180 while ( pointer < diffs.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3181 switch ( diffs[ pointer ][ 0 ] ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3182 case DIFF_INSERT: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3183 countInsert++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3184 textInsert += diffs[ pointer ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3185 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3186 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3187 case DIFF_DELETE: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3188 countDelete++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3189 textDelete += diffs[ pointer ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3190 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3191 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3192 case DIFF_EQUAL: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3193 // Upon reaching an equality, check for prior redundancies. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3194 if ( countDelete + countInsert > 1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3195 if ( countDelete !== 0 && countInsert !== 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3196 // Factor out any common prefixies. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3197 commonlength = this.diffCommonPrefix( textInsert, textDelete ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3198 if ( commonlength !== 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3199 if ( ( pointer - countDelete - countInsert ) > 0 && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3200 diffs[ pointer - countDelete - countInsert - 1 ][ 0 ] === |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3201 DIFF_EQUAL ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3202 diffs[ pointer - countDelete - countInsert - 1 ][ 1 ] += |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3203 textInsert.substring( 0, commonlength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3204 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3205 diffs.splice( 0, 0, [ DIFF_EQUAL, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3206 textInsert.substring( 0, commonlength ) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3207 ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3208 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3209 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3210 textInsert = textInsert.substring( commonlength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3211 textDelete = textDelete.substring( commonlength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3212 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3213 // Factor out any common suffixies. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3214 commonlength = this.diffCommonSuffix( textInsert, textDelete ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3215 if ( commonlength !== 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3216 diffs[ pointer ][ 1 ] = textInsert.substring( textInsert.length - |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3217 commonlength ) + diffs[ pointer ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3218 textInsert = textInsert.substring( 0, textInsert.length - |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3219 commonlength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3220 textDelete = textDelete.substring( 0, textDelete.length - |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3221 commonlength ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3222 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3223 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3224 // Delete the offending records and add the merged ones. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3225 if ( countDelete === 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3226 diffs.splice( pointer - countInsert, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3227 countDelete + countInsert, [ DIFF_INSERT, textInsert ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3228 } else if ( countInsert === 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3229 diffs.splice( pointer - countDelete, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3230 countDelete + countInsert, [ DIFF_DELETE, textDelete ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3231 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3232 diffs.splice( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3233 pointer - countDelete - countInsert, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3234 countDelete + countInsert, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3235 [ DIFF_DELETE, textDelete ], [ DIFF_INSERT, textInsert ] |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3236 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3237 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3238 pointer = pointer - countDelete - countInsert + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3239 ( countDelete ? 1 : 0 ) + ( countInsert ? 1 : 0 ) + 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3240 } else if ( pointer !== 0 && diffs[ pointer - 1 ][ 0 ] === DIFF_EQUAL ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3241 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3242 // Merge this equality with the previous one. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3243 diffs[ pointer - 1 ][ 1 ] += diffs[ pointer ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3244 diffs.splice( pointer, 1 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3245 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3246 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3247 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3248 countInsert = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3249 countDelete = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3250 textDelete = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3251 textInsert = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3252 break; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3253 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3254 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3255 if ( diffs[ diffs.length - 1 ][ 1 ] === "" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3256 diffs.pop(); // Remove the dummy entry at the end. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3257 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3258 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3259 // Second pass: look for single edits surrounded on both sides by equalities |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3260 // which can be shifted sideways to eliminate an equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3261 // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3262 changes = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3263 pointer = 1; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3264 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3265 // Intentionally ignore the first and last element (don't need checking). |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3266 while ( pointer < diffs.length - 1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3267 if ( diffs[ pointer - 1 ][ 0 ] === DIFF_EQUAL && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3268 diffs[ pointer + 1 ][ 0 ] === DIFF_EQUAL ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3269 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3270 diffPointer = diffs[ pointer ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3271 position = diffPointer.substring( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3272 diffPointer.length - diffs[ pointer - 1 ][ 1 ].length |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3273 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3274 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3275 // This is a single edit surrounded by equalities. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3276 if ( position === diffs[ pointer - 1 ][ 1 ] ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3277 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3278 // Shift the edit over the previous equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3279 diffs[ pointer ][ 1 ] = diffs[ pointer - 1 ][ 1 ] + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3280 diffs[ pointer ][ 1 ].substring( 0, diffs[ pointer ][ 1 ].length - |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3281 diffs[ pointer - 1 ][ 1 ].length ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3282 diffs[ pointer + 1 ][ 1 ] = |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3283 diffs[ pointer - 1 ][ 1 ] + diffs[ pointer + 1 ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3284 diffs.splice( pointer - 1, 1 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3285 changes = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3286 } else if ( diffPointer.substring( 0, diffs[ pointer + 1 ][ 1 ].length ) === |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3287 diffs[ pointer + 1 ][ 1 ] ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3288 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3289 // Shift the edit over the next equality. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3290 diffs[ pointer - 1 ][ 1 ] += diffs[ pointer + 1 ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3291 diffs[ pointer ][ 1 ] = |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3292 diffs[ pointer ][ 1 ].substring( diffs[ pointer + 1 ][ 1 ].length ) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3293 diffs[ pointer + 1 ][ 1 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3294 diffs.splice( pointer + 1, 1 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3295 changes = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3296 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3297 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3298 pointer++; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3299 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3300 // If shifts were made, the diff needs reordering and another shift sweep. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3301 if ( changes ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3302 this.diffCleanupMerge( diffs ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3303 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3304 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3305 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3306 return function( o, n ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3307 var diff, output, text; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3308 diff = new DiffMatchPatch(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3309 output = diff.DiffMain( o, n ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3310 diff.diffCleanupEfficiency( output ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3311 text = diff.diffPrettyHtml( output ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3312 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3313 return text; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3314 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3315 }() ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3316 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3317 // Get a reference to the global object, like window in browsers |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3318 }( (function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3319 return this; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3320 })() )); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3321 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3322 (function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3323 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3324 // Don't load the HTML Reporter on non-Browser environments |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3325 if ( typeof window === "undefined" || !window.document ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3326 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3327 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3328 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3329 // Deprecated QUnit.init - Ref #530 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3330 // Re-initialize the configuration options |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3331 QUnit.init = function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3332 var tests, banner, result, qunit, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3333 config = QUnit.config; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3334 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3335 config.stats = { all: 0, bad: 0 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3336 config.moduleStats = { all: 0, bad: 0 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3337 config.started = 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3338 config.updateRate = 1000; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3339 config.blocking = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3340 config.autostart = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3341 config.autorun = false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3342 config.filter = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3343 config.queue = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3344 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3345 // Return on non-browser environments |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3346 // This is necessary to not break on node tests |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3347 if ( typeof window === "undefined" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3348 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3349 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3350 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3351 qunit = id( "qunit" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3352 if ( qunit ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3353 qunit.innerHTML = |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3354 "<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3355 "<h2 id='qunit-banner'></h2>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3356 "<div id='qunit-testrunner-toolbar'></div>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3357 "<h2 id='qunit-userAgent'></h2>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3358 "<ol id='qunit-tests'></ol>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3359 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3360 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3361 tests = id( "qunit-tests" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3362 banner = id( "qunit-banner" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3363 result = id( "qunit-testresult" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3364 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3365 if ( tests ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3366 tests.innerHTML = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3367 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3368 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3369 if ( banner ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3370 banner.className = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3371 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3372 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3373 if ( result ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3374 result.parentNode.removeChild( result ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3375 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3376 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3377 if ( tests ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3378 result = document.createElement( "p" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3379 result.id = "qunit-testresult"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3380 result.className = "result"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3381 tests.parentNode.insertBefore( result, tests ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3382 result.innerHTML = "Running...<br /> "; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3383 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3384 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3385 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3386 var config = QUnit.config, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3387 collapseNext = false, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3388 hasOwn = Object.prototype.hasOwnProperty, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3389 defined = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3390 document: window.document !== undefined, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3391 sessionStorage: (function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3392 var x = "qunit-test-string"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3393 try { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3394 sessionStorage.setItem( x, x ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3395 sessionStorage.removeItem( x ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3396 return true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3397 } catch ( e ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3398 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3399 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3400 }()) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3401 }, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3402 modulesList = []; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3403 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3404 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3405 * Escape text for attribute or text content. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3406 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3407 function escapeText( s ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3408 if ( !s ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3409 return ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3410 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3411 s = s + ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3412 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3413 // Both single quotes and double quotes (for attributes) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3414 return s.replace( /['"<>&]/g, function( s ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3415 switch ( s ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3416 case "'": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3417 return "'"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3418 case "\"": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3419 return """; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3420 case "<": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3421 return "<"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3422 case ">": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3423 return ">"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3424 case "&": |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3425 return "&"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3426 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3427 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3428 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3429 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3430 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3431 * @param {HTMLElement} elem |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3432 * @param {string} type |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3433 * @param {Function} fn |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3434 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3435 function addEvent( elem, type, fn ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3436 if ( elem.addEventListener ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3437 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3438 // Standards-based browsers |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3439 elem.addEventListener( type, fn, false ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3440 } else if ( elem.attachEvent ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3441 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3442 // support: IE <9 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3443 elem.attachEvent( "on" + type, function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3444 var event = window.event; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3445 if ( !event.target ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3446 event.target = event.srcElement || document; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3447 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3448 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3449 fn.call( elem, event ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3450 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3451 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3452 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3453 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3454 /** |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3455 * @param {Array|NodeList} elems |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3456 * @param {string} type |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3457 * @param {Function} fn |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3458 */ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3459 function addEvents( elems, type, fn ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3460 var i = elems.length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3461 while ( i-- ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3462 addEvent( elems[ i ], type, fn ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3463 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3464 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3465 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3466 function hasClass( elem, name ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3467 return ( " " + elem.className + " " ).indexOf( " " + name + " " ) >= 0; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3468 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3469 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3470 function addClass( elem, name ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3471 if ( !hasClass( elem, name ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3472 elem.className += ( elem.className ? " " : "" ) + name; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3473 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3474 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3475 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3476 function toggleClass( elem, name ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3477 if ( hasClass( elem, name ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3478 removeClass( elem, name ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3479 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3480 addClass( elem, name ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3481 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3482 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3483 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3484 function removeClass( elem, name ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3485 var set = " " + elem.className + " "; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3486 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3487 // Class name may appear multiple times |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3488 while ( set.indexOf( " " + name + " " ) >= 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3489 set = set.replace( " " + name + " ", " " ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3490 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3491 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3492 // trim for prettiness |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3493 elem.className = typeof set.trim === "function" ? set.trim() : set.replace( /^\s+|\s+$/g, "" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3494 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3495 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3496 function id( name ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3497 return defined.document && document.getElementById && document.getElementById( name ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3498 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3499 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3500 function getUrlConfigHtml() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3501 var i, j, val, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3502 escaped, escapedTooltip, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3503 selection = false, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3504 len = config.urlConfig.length, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3505 urlConfigHtml = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3506 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3507 for ( i = 0; i < len; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3508 val = config.urlConfig[ i ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3509 if ( typeof val === "string" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3510 val = { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3511 id: val, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3512 label: val |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3513 }; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3514 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3515 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3516 escaped = escapeText( val.id ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3517 escapedTooltip = escapeText( val.tooltip ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3518 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3519 if ( config[ val.id ] === undefined ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3520 config[ val.id ] = QUnit.urlParams[ val.id ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3521 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3522 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3523 if ( !val.value || typeof val.value === "string" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3524 urlConfigHtml += "<input id='qunit-urlconfig-" + escaped + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3525 "' name='" + escaped + "' type='checkbox'" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3526 ( val.value ? " value='" + escapeText( val.value ) + "'" : "" ) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3527 ( config[ val.id ] ? " checked='checked'" : "" ) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3528 " title='" + escapedTooltip + "' /><label for='qunit-urlconfig-" + escaped + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3529 "' title='" + escapedTooltip + "'>" + val.label + "</label>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3530 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3531 urlConfigHtml += "<label for='qunit-urlconfig-" + escaped + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3532 "' title='" + escapedTooltip + "'>" + val.label + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3533 ": </label><select id='qunit-urlconfig-" + escaped + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3534 "' name='" + escaped + "' title='" + escapedTooltip + "'><option></option>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3535 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3536 if ( QUnit.is( "array", val.value ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3537 for ( j = 0; j < val.value.length; j++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3538 escaped = escapeText( val.value[ j ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3539 urlConfigHtml += "<option value='" + escaped + "'" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3540 ( config[ val.id ] === val.value[ j ] ? |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3541 ( selection = true ) && " selected='selected'" : "" ) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3542 ">" + escaped + "</option>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3543 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3544 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3545 for ( j in val.value ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3546 if ( hasOwn.call( val.value, j ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3547 urlConfigHtml += "<option value='" + escapeText( j ) + "'" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3548 ( config[ val.id ] === j ? |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3549 ( selection = true ) && " selected='selected'" : "" ) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3550 ">" + escapeText( val.value[ j ] ) + "</option>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3551 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3552 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3553 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3554 if ( config[ val.id ] && !selection ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3555 escaped = escapeText( config[ val.id ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3556 urlConfigHtml += "<option value='" + escaped + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3557 "' selected='selected' disabled='disabled'>" + escaped + "</option>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3558 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3559 urlConfigHtml += "</select>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3560 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3561 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3562 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3563 return urlConfigHtml; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3564 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3565 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3566 // Handle "click" events on toolbar checkboxes and "change" for select menus. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3567 // Updates the URL with the new state of `config.urlConfig` values. |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3568 function toolbarChanged() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3569 var updatedUrl, value, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3570 field = this, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3571 params = {}; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3572 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3573 // Detect if field is a select menu or a checkbox |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3574 if ( "selectedIndex" in field ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3575 value = field.options[ field.selectedIndex ].value || undefined; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3576 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3577 value = field.checked ? ( field.defaultValue || true ) : undefined; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3578 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3579 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3580 params[ field.name ] = value; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3581 updatedUrl = setUrl( params ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3582 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3583 if ( "hidepassed" === field.name && "replaceState" in window.history ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3584 config[ field.name ] = value || false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3585 if ( value ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3586 addClass( id( "qunit-tests" ), "hidepass" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3587 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3588 removeClass( id( "qunit-tests" ), "hidepass" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3589 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3590 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3591 // It is not necessary to refresh the whole page |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3592 window.history.replaceState( null, "", updatedUrl ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3593 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3594 window.location = updatedUrl; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3595 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3596 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3597 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3598 function setUrl( params ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3599 var key, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3600 querystring = "?"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3601 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3602 params = QUnit.extend( QUnit.extend( {}, QUnit.urlParams ), params ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3603 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3604 for ( key in params ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3605 if ( hasOwn.call( params, key ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3606 if ( params[ key ] === undefined ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3607 continue; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3608 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3609 querystring += encodeURIComponent( key ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3610 if ( params[ key ] !== true ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3611 querystring += "=" + encodeURIComponent( params[ key ] ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3612 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3613 querystring += "&"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3614 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3615 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3616 return location.protocol + "//" + location.host + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3617 location.pathname + querystring.slice( 0, -1 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3618 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3619 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3620 function applyUrlParams() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3621 var selectedModule, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3622 modulesList = id( "qunit-modulefilter" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3623 filter = id( "qunit-filter-input" ).value; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3624 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3625 selectedModule = modulesList ? |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3626 decodeURIComponent( modulesList.options[ modulesList.selectedIndex ].value ) : |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3627 undefined; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3628 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3629 window.location = setUrl({ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3630 module: ( selectedModule === "" ) ? undefined : selectedModule, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3631 filter: ( filter === "" ) ? undefined : filter, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3632 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3633 // Remove testId filter |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3634 testId: undefined |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3635 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3636 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3637 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3638 function toolbarUrlConfigContainer() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3639 var urlConfigContainer = document.createElement( "span" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3640 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3641 urlConfigContainer.innerHTML = getUrlConfigHtml(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3642 addClass( urlConfigContainer, "qunit-url-config" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3643 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3644 // For oldIE support: |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3645 // * Add handlers to the individual elements instead of the container |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3646 // * Use "click" instead of "change" for checkboxes |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3647 addEvents( urlConfigContainer.getElementsByTagName( "input" ), "click", toolbarChanged ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3648 addEvents( urlConfigContainer.getElementsByTagName( "select" ), "change", toolbarChanged ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3649 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3650 return urlConfigContainer; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3651 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3652 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3653 function toolbarLooseFilter() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3654 var filter = document.createElement( "form" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3655 label = document.createElement( "label" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3656 input = document.createElement( "input" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3657 button = document.createElement( "button" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3658 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3659 addClass( filter, "qunit-filter" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3660 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3661 label.innerHTML = "Filter: "; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3662 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3663 input.type = "text"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3664 input.value = config.filter || ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3665 input.name = "filter"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3666 input.id = "qunit-filter-input"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3667 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3668 button.innerHTML = "Go"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3669 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3670 label.appendChild( input ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3671 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3672 filter.appendChild( label ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3673 filter.appendChild( button ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3674 addEvent( filter, "submit", function( ev ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3675 applyUrlParams(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3676 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3677 if ( ev && ev.preventDefault ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3678 ev.preventDefault(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3679 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3680 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3681 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3682 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3683 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3684 return filter; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3685 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3686 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3687 function toolbarModuleFilterHtml() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3688 var i, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3689 moduleFilterHtml = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3690 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3691 if ( !modulesList.length ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3692 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3693 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3694 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3695 modulesList.sort(function( a, b ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3696 return a.localeCompare( b ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3697 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3698 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3699 moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3700 "<select id='qunit-modulefilter' name='modulefilter'><option value='' " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3701 ( QUnit.urlParams.module === undefined ? "selected='selected'" : "" ) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3702 ">< All Modules ></option>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3703 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3704 for ( i = 0; i < modulesList.length; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3705 moduleFilterHtml += "<option value='" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3706 escapeText( encodeURIComponent( modulesList[ i ] ) ) + "' " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3707 ( QUnit.urlParams.module === modulesList[ i ] ? "selected='selected'" : "" ) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3708 ">" + escapeText( modulesList[ i ] ) + "</option>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3709 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3710 moduleFilterHtml += "</select>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3711 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3712 return moduleFilterHtml; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3713 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3714 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3715 function toolbarModuleFilter() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3716 var toolbar = id( "qunit-testrunner-toolbar" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3717 moduleFilter = document.createElement( "span" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3718 moduleFilterHtml = toolbarModuleFilterHtml(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3719 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3720 if ( !toolbar || !moduleFilterHtml ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3721 return false; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3722 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3723 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3724 moduleFilter.setAttribute( "id", "qunit-modulefilter-container" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3725 moduleFilter.innerHTML = moduleFilterHtml; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3726 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3727 addEvent( moduleFilter.lastChild, "change", applyUrlParams ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3728 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3729 toolbar.appendChild( moduleFilter ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3730 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3731 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3732 function appendToolbar() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3733 var toolbar = id( "qunit-testrunner-toolbar" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3734 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3735 if ( toolbar ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3736 toolbar.appendChild( toolbarUrlConfigContainer() ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3737 toolbar.appendChild( toolbarLooseFilter() ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3738 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3739 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3740 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3741 function appendHeader() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3742 var header = id( "qunit-header" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3743 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3744 if ( header ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3745 header.innerHTML = "<a href='" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3746 setUrl({ filter: undefined, module: undefined, testId: undefined }) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3747 "'>" + header.innerHTML + "</a> "; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3748 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3749 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3750 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3751 function appendBanner() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3752 var banner = id( "qunit-banner" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3753 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3754 if ( banner ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3755 banner.className = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3756 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3757 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3758 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3759 function appendTestResults() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3760 var tests = id( "qunit-tests" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3761 result = id( "qunit-testresult" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3762 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3763 if ( result ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3764 result.parentNode.removeChild( result ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3765 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3766 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3767 if ( tests ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3768 tests.innerHTML = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3769 result = document.createElement( "p" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3770 result.id = "qunit-testresult"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3771 result.className = "result"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3772 tests.parentNode.insertBefore( result, tests ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3773 result.innerHTML = "Running...<br /> "; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3774 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3775 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3776 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3777 function storeFixture() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3778 var fixture = id( "qunit-fixture" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3779 if ( fixture ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3780 config.fixture = fixture.innerHTML; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3781 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3782 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3783 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3784 function appendFilteredTest() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3785 var testId = QUnit.config.testId; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3786 if ( !testId || testId.length <= 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3787 return ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3788 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3789 return "<div id='qunit-filteredTest'>Rerunning selected tests: " + testId.join(", ") + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3790 " <a id='qunit-clearFilter' href='" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3791 setUrl({ filter: undefined, module: undefined, testId: undefined }) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3792 "'>" + "Run all tests" + "</a></div>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3793 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3794 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3795 function appendUserAgent() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3796 var userAgent = id( "qunit-userAgent" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3797 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3798 if ( userAgent ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3799 userAgent.innerHTML = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3800 userAgent.appendChild( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3801 document.createTextNode( |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3802 "QUnit " + QUnit.version + "; " + navigator.userAgent |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3803 ) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3804 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3805 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3806 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3807 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3808 function appendTestsList( modules ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3809 var i, l, x, z, test, moduleObj; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3810 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3811 for ( i = 0, l = modules.length; i < l; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3812 moduleObj = modules[ i ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3813 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3814 if ( moduleObj.name ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3815 modulesList.push( moduleObj.name ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3816 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3817 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3818 for ( x = 0, z = moduleObj.tests.length; x < z; x++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3819 test = moduleObj.tests[ x ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3820 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3821 appendTest( test.name, test.testId, moduleObj.name ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3822 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3823 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3824 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3825 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3826 function appendTest( name, testId, moduleName ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3827 var title, rerunTrigger, testBlock, assertList, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3828 tests = id( "qunit-tests" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3829 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3830 if ( !tests ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3831 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3832 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3833 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3834 title = document.createElement( "strong" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3835 title.innerHTML = getNameHtml( name, moduleName ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3836 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3837 rerunTrigger = document.createElement( "a" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3838 rerunTrigger.innerHTML = "Rerun"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3839 rerunTrigger.href = setUrl({ testId: testId }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3840 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3841 testBlock = document.createElement( "li" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3842 testBlock.appendChild( title ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3843 testBlock.appendChild( rerunTrigger ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3844 testBlock.id = "qunit-test-output-" + testId; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3845 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3846 assertList = document.createElement( "ol" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3847 assertList.className = "qunit-assert-list"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3848 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3849 testBlock.appendChild( assertList ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3850 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3851 tests.appendChild( testBlock ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3852 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3853 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3854 // HTML Reporter initialization and load |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3855 QUnit.begin(function( details ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3856 var qunit = id( "qunit" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3857 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3858 // Fixture is the only one necessary to run without the #qunit element |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3859 storeFixture(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3860 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3861 if ( qunit ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3862 qunit.innerHTML = |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3863 "<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3864 "<h2 id='qunit-banner'></h2>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3865 "<div id='qunit-testrunner-toolbar'></div>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3866 appendFilteredTest() + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3867 "<h2 id='qunit-userAgent'></h2>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3868 "<ol id='qunit-tests'></ol>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3869 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3870 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3871 appendHeader(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3872 appendBanner(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3873 appendTestResults(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3874 appendUserAgent(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3875 appendToolbar(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3876 appendTestsList( details.modules ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3877 toolbarModuleFilter(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3878 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3879 if ( qunit && config.hidepassed ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3880 addClass( qunit.lastChild, "hidepass" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3881 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3882 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3883 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3884 QUnit.done(function( details ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3885 var i, key, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3886 banner = id( "qunit-banner" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3887 tests = id( "qunit-tests" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3888 html = [ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3889 "Tests completed in ", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3890 details.runtime, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3891 " milliseconds.<br />", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3892 "<span class='passed'>", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3893 details.passed, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3894 "</span> assertions of <span class='total'>", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3895 details.total, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3896 "</span> passed, <span class='failed'>", |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3897 details.failed, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3898 "</span> failed." |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3899 ].join( "" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3900 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3901 if ( banner ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3902 banner.className = details.failed ? "qunit-fail" : "qunit-pass"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3903 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3904 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3905 if ( tests ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3906 id( "qunit-testresult" ).innerHTML = html; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3907 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3908 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3909 if ( config.altertitle && defined.document && document.title ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3910 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3911 // show ✖ for good, ✔ for bad suite result in title |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3912 // use escape sequences in case file gets loaded with non-utf-8-charset |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3913 document.title = [ |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3914 ( details.failed ? "\u2716" : "\u2714" ), |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3915 document.title.replace( /^[\u2714\u2716] /i, "" ) |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3916 ].join( " " ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3917 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3918 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3919 // clear own sessionStorage items if all tests passed |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3920 if ( config.reorder && defined.sessionStorage && details.failed === 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3921 for ( i = 0; i < sessionStorage.length; i++ ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3922 key = sessionStorage.key( i++ ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3923 if ( key.indexOf( "qunit-test-" ) === 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3924 sessionStorage.removeItem( key ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3925 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3926 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3927 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3928 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3929 // scroll back to top to show results |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3930 if ( config.scrolltop && window.scrollTo ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3931 window.scrollTo( 0, 0 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3932 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3933 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3934 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3935 function getNameHtml( name, module ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3936 var nameHtml = ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3937 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3938 if ( module ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3939 nameHtml = "<span class='module-name'>" + escapeText( module ) + "</span>: "; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3940 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3941 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3942 nameHtml += "<span class='test-name'>" + escapeText( name ) + "</span>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3943 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3944 return nameHtml; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3945 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3946 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3947 QUnit.testStart(function( details ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3948 var running, testBlock, bad; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3949 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3950 testBlock = id( "qunit-test-output-" + details.testId ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3951 if ( testBlock ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3952 testBlock.className = "running"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3953 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3954 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3955 // Report later registered tests |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3956 appendTest( details.name, details.testId, details.module ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3957 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3958 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3959 running = id( "qunit-testresult" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3960 if ( running ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3961 bad = QUnit.config.reorder && defined.sessionStorage && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3962 +sessionStorage.getItem( "qunit-test-" + details.module + "-" + details.name ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3963 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3964 running.innerHTML = ( bad ? |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3965 "Rerunning previously failed test: <br />" : |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3966 "Running: <br />" ) + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3967 getNameHtml( details.name, details.module ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3968 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3969 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3970 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3971 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3972 function stripHtml( string ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3973 // strip tags, html entity and whitespaces |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3974 return string.replace(/<\/?[^>]+(>|$)/g, "").replace(/\"/g, "").replace(/\s+/g, ""); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3975 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3976 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3977 QUnit.log(function( details ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3978 var assertList, assertLi, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3979 message, expected, actual, diff, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3980 showDiff = false, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3981 testItem = id( "qunit-test-output-" + details.testId ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3982 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3983 if ( !testItem ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3984 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3985 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3986 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3987 message = escapeText( details.message ) || ( details.result ? "okay" : "failed" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3988 message = "<span class='test-message'>" + message + "</span>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3989 message += "<span class='runtime'>@ " + details.runtime + " ms</span>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3990 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3991 // pushFailure doesn't provide details.expected |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3992 // when it calls, it's implicit to also not show expected and diff stuff |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3993 // Also, we need to check details.expected existence, as it can exist and be undefined |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3994 if ( !details.result && hasOwn.call( details, "expected" ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3995 if ( details.negative ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3996 expected = escapeText( "NOT " + QUnit.dump.parse( details.expected ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3997 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3998 expected = escapeText( QUnit.dump.parse( details.expected ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3999 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4000 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4001 actual = escapeText( QUnit.dump.parse( details.actual ) ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4002 message += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4003 expected + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4004 "</pre></td></tr>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4005 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4006 if ( actual !== expected ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4007 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4008 message += "<tr class='test-actual'><th>Result: </th><td><pre>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4009 actual + "</pre></td></tr>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4010 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4011 // Don't show diff if actual or expected are booleans |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4012 if ( !( /^(true|false)$/.test( actual ) ) && |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4013 !( /^(true|false)$/.test( expected ) ) ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4014 diff = QUnit.diff( expected, actual ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4015 showDiff = stripHtml( diff ).length !== |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4016 stripHtml( expected ).length + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4017 stripHtml( actual ).length; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4018 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4019 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4020 // Don't show diff if expected and actual are totally different |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4021 if ( showDiff ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4022 message += "<tr class='test-diff'><th>Diff: </th><td><pre>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4023 diff + "</pre></td></tr>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4024 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4025 } else if ( expected.indexOf( "[object Array]" ) !== -1 || |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4026 expected.indexOf( "[object Object]" ) !== -1 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4027 message += "<tr class='test-message'><th>Message: </th><td>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4028 "Diff suppressed as the depth of object is more than current max depth (" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4029 QUnit.config.maxDepth + ").<p>Hint: Use <code>QUnit.dump.maxDepth</code> to " + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4030 " run with a higher max depth or <a href='" + setUrl({ maxDepth: -1 }) + "'>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4031 "Rerun</a> without max depth.</p></td></tr>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4032 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4033 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4034 if ( details.source ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4035 message += "<tr class='test-source'><th>Source: </th><td><pre>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4036 escapeText( details.source ) + "</pre></td></tr>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4037 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4038 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4039 message += "</table>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4040 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4041 // this occours when pushFailure is set and we have an extracted stack trace |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4042 } else if ( !details.result && details.source ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4043 message += "<table>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4044 "<tr class='test-source'><th>Source: </th><td><pre>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4045 escapeText( details.source ) + "</pre></td></tr>" + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4046 "</table>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4047 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4048 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4049 assertList = testItem.getElementsByTagName( "ol" )[ 0 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4050 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4051 assertLi = document.createElement( "li" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4052 assertLi.className = details.result ? "pass" : "fail"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4053 assertLi.innerHTML = message; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4054 assertList.appendChild( assertLi ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4055 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4056 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4057 QUnit.testDone(function( details ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4058 var testTitle, time, testItem, assertList, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4059 good, bad, testCounts, skipped, sourceName, |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4060 tests = id( "qunit-tests" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4061 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4062 if ( !tests ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4063 return; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4064 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4065 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4066 testItem = id( "qunit-test-output-" + details.testId ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4067 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4068 assertList = testItem.getElementsByTagName( "ol" )[ 0 ]; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4069 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4070 good = details.passed; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4071 bad = details.failed; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4072 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4073 // store result when possible |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4074 if ( config.reorder && defined.sessionStorage ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4075 if ( bad ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4076 sessionStorage.setItem( "qunit-test-" + details.module + "-" + details.name, bad ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4077 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4078 sessionStorage.removeItem( "qunit-test-" + details.module + "-" + details.name ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4079 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4080 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4081 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4082 if ( bad === 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4083 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4084 // Collapse the passing tests |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4085 addClass( assertList, "qunit-collapsed" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4086 } else if ( bad && config.collapse && !collapseNext ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4087 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4088 // Skip collapsing the first failing test |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4089 collapseNext = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4090 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4091 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4092 // Collapse remaining tests |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4093 addClass( assertList, "qunit-collapsed" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4094 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4095 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4096 // testItem.firstChild is the test name |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4097 testTitle = testItem.firstChild; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4098 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4099 testCounts = bad ? |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4100 "<b class='failed'>" + bad + "</b>, " + "<b class='passed'>" + good + "</b>, " : |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4101 ""; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4102 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4103 testTitle.innerHTML += " <b class='counts'>(" + testCounts + |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4104 details.assertions.length + ")</b>"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4105 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4106 if ( details.skipped ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4107 testItem.className = "skipped"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4108 skipped = document.createElement( "em" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4109 skipped.className = "qunit-skipped-label"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4110 skipped.innerHTML = "skipped"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4111 testItem.insertBefore( skipped, testTitle ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4112 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4113 addEvent( testTitle, "click", function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4114 toggleClass( assertList, "qunit-collapsed" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4115 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4116 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4117 testItem.className = bad ? "fail" : "pass"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4118 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4119 time = document.createElement( "span" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4120 time.className = "runtime"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4121 time.innerHTML = details.runtime + " ms"; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4122 testItem.insertBefore( time, assertList ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4123 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4124 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4125 // Show the source of the test when showing assertions |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4126 if ( details.source ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4127 sourceName = document.createElement( "p" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4128 sourceName.innerHTML = "<strong>Source: </strong>" + details.source; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4129 addClass( sourceName, "qunit-source" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4130 if ( bad === 0 ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4131 addClass( sourceName, "qunit-collapsed" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4132 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4133 addEvent( testTitle, "click", function() { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4134 toggleClass( sourceName, "qunit-collapsed" ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4135 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4136 testItem.appendChild( sourceName ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4137 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4138 }); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4139 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4140 if ( defined.document ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4141 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4142 // Avoid readyState issue with phantomjs |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4143 // Ref: #818 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4144 var notPhantom = ( function( p ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4145 return !( p && p.version && p.version.major > 0 ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4146 } )( window.phantom ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4147 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4148 if ( notPhantom && document.readyState === "complete" ) { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4149 QUnit.load(); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4150 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4151 addEvent( window, "load", QUnit.load ); |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4152 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4153 } else { |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4154 config.pageLoaded = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4155 config.autorun = true; |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4156 } |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4157 |
89a5ca7d44f7
new: rename branch to task, add fields in task table, add scroll bar
Zoe Hong <zhong@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4158 })(); |