0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69 ...$engine JScri
0010: 70 74 0d 0a 24 75 6e 61 6d 65 20 6a 73 55 6e 69 pt..$uname jsUni
0020: 74 43 6f 72 65 0d 0a 24 64 6e 61 6d 65 20 d0 91 tCore..$dname ..
0030: d0 b8 d0 b1 d0 bb d0 b8 d0 be d1 82 d0 b5 d0 ba ................
0040: d0 b0 20 d1 8e d0 bd d0 b8 d1 82 2d d1 82 d0 b5 .. ........-....
0050: d1 81 d1 82 d0 b8 d1 80 d0 be d0 b2 d0 b0 d0 bd ................
0060: d0 b8 d1 8f 20 d0 b4 d0 bb d1 8f 20 4a 61 76 61 .... ...... Java
0070: 53 63 72 69 70 74 0d 0a 24 61 64 64 69 6e 20 67 Script..$addin g
0080: 6c 6f 62 61 6c 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a lobal..../**.. *
0090: 20 40 66 69 6c 65 6f 76 65 72 76 69 65 77 0d 0a @fileoverview..
00a0: 20 2a 20 6a 73 55 6e 69 74 43 6f 72 65 2e 6a 73 * jsUnitCore.js
00b0: 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 69 6d contains the im
00c0: 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 plementation of
00d0: 74 68 65 20 63 6f 72 65 20 4a 73 55 6e 69 74 20 the core JsUnit
00e0: 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 3a 20 61 functionality: a
00f0: 73 73 65 72 74 69 6f 6e 73 2c 20 4a 73 55 6e 69 ssertions, JsUni
0100: 74 54 65 73 74 53 75 69 74 65 73 2c 20 61 6e 64 tTestSuites, and
0110: 20 4a 73 55 6e 69 74 2e 46 61 69 6c 75 72 65 2e JsUnit.Failure.
0120: 0d 0a 20 2a 20 41 6e 20 48 54 4d 4c 20 70 61 67 .. * An HTML pag
0130: 65 20 69 73 20 63 6f 6e 73 69 64 65 72 65 64 20 e is considered
0140: 74 6f 20 62 65 20 61 20 4a 73 55 6e 69 74 20 54 to be a JsUnit T
0150: 65 73 74 20 50 61 67 65 20 69 66 20 69 74 20 22 est Page if it "
0160: 69 6e 63 6c 75 64 65 73 22 20 6a 73 55 6e 69 74 includes" jsUnit
0170: 43 6f 72 65 2e 6a 73 2c 20 69 2e 65 2e 20 74 68 Core.js, i.e. th
0180: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e 65 e following line
0190: 20 69 73 20 70 72 65 73 65 6e 74 3a 0d 0a 20 2a is present:.. *
01a0: 20 3c 63 6f 64 65 3e 0d 0a 20 2a 20 26 6c 74 3b <code>.. * <
01b0: 73 63 72 69 70 74 20 74 79 70 65 3d 22 74 65 78 script type="tex
01c0: 74 2f 6a 61 76 61 73 63 72 69 70 74 22 20 73 72 t/javascript" sr
01d0: 63 3d 22 2f 70 61 74 68 2f 74 6f 2f 6a 73 55 6e c="/path/to/jsUn
01e0: 69 74 43 6f 72 65 2e 6a 73 22 26 67 74 3b 26 6c itCore.js">&l
01f0: 74 3b 2f 73 63 72 69 70 74 26 67 74 3b 0d 0a 20 t;/script>..
0200: 2a 20 3c 2f 63 6f 64 65 3e 0d 0a 20 2a 20 40 61 * </code>.. * @a
0210: 75 74 68 6f 72 20 45 64 77 61 72 64 20 48 69 65 uthor Edward Hie
0220: 61 74 74 2c 20 65 64 77 61 72 64 40 6a 73 75 6e att, edward@jsun
0230: 69 74 2e 6e 65 74 2c 20 68 74 74 70 3a 2f 2f 77 it.net, http://w
0240: 77 77 2e 6a 73 75 6e 69 74 2e 6e 65 74 0d 0a 20 ww.jsunit.net..
0250: 2a 2f 0d 0a 0d 0a 20 2f 2a 2a 0d 0a 20 2a 20 d0 */.... /**.. * .
0260: 9f d0 be d1 80 d1 82 20 d0 b1 d0 b8 d0 b1 d0 bb ....... ........
0270: d0 b8 d0 be d1 82 d0 b5 d0 ba d0 b8 20 6a 73 55 ............ jsU
0280: 6e 69 74 43 6f 72 65 2e 6a 73 20 28 68 74 74 70 nitCore.js (http
0290: 3a 2f 2f 6a 73 75 6e 69 74 2e 6e 65 74 29 20 d0 ://jsunit.net) .
02a0: b4 d0 bb d1 8f 20 d0 bf d1 80 d0 be d0 b5 d0 ba ..... ..........
02b0: d1 82 d0 b0 20 22 d0 a1 d0 bd d0 b5 d0 b3 d0 be .... "..........
02c0: d0 bf d0 b0 d1 82 22 20 28 68 74 74 70 3a 2f 2f ......" (http://
02d0: 73 6e 65 67 6f 70 61 74 2e 72 75 29 2e 0d 0a 20 snegopat.ru)...
02e0: 2a 20 d0 90 d0 b2 d1 82 d0 be d1 80 20 d0 bf d0 * .......... ...
02f0: be d1 80 d1 82 d0 b0 3a 20 d0 90 d0 bb d0 b5 d0 .......: .......
0300: ba d1 81 d0 b0 d0 bd d0 b4 d1 80 20 d0 9a d1 83 ........... ....
0310: d0 bd d1 82 d0 b0 d1 88 d0 be d0 b2 2c 20 6b 75 ............, ku
0320: 6e 74 61 73 68 6f 76 40 67 6d 61 69 6c 2e 63 6f ntashov@gmail.co
0330: 6d 20 0d 0a 20 2a 2f 0d 0a 0d 0a 76 61 72 20 4a m .. */....var J
0340: 73 55 6e 69 74 20 3d 20 7b 7d 3b 0d 0a 0d 0a 2f sUnit = {};..../
0350: 2f 53 6e 65 67 6f 70 61 74 2e 0d 0a 2f 2f 20 d0 /Snegopat...// .
0360: 9e d0 b1 d1 85 d0 be d0 b4 20 d0 bf d1 80 d0 be ......... ......
0370: d0 b1 d0 bb d0 b5 d0 bc d1 8b 20 d0 bf d0 b5 d1 .......... .....
0380: 80 d0 b5 d1 85 d0 b2 d0 b0 d1 82 d0 b0 20 d0 b2 ............. ..
0390: 20 d0 b2 d1 8b d0 b7 d1 8b d0 b2 d0 b0 d1 8e d1 ...............
03a0: 89 d0 b5 d0 bc 20 d0 bc d0 b5 d1 82 d0 be d0 b4 ..... ..........
03b0: d0 b5 20 d0 b8 d1 81 d0 ba d0 bb d1 8e d1 87 d0 .. .............
03c0: b5 d0 bd d0 b8 d0 b9 2c 20 0d 0a 2f 2f 20 d0 b1 ......., ..// ..
03d0: d1 80 d0 be d1 88 d0 b5 d0 bd d0 bd d1 8b d1 85 ................
03e0: 20 d0 b2 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d0 b5 .. ............
03f0: 20 d0 b4 d1 80 d1 83 d0 b3 d0 be d0 b3 d0 be 20 ..............
0400: d1 81 d0 ba d1 80 d0 b8 d0 bf d1 82 d0 b0 2e 0d ................
0410: 0a 76 61 72 20 5f 63 61 6c 6c 65 72 45 72 72 6f .var _callerErro
0420: 72 48 61 6e 64 6c 65 72 20 3d 20 6e 75 6c 6c 3b rHandler = null;
0430: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 53 65 74 ....function Set
0440: 45 72 72 6f 72 48 61 6e 64 6c 65 72 28 65 72 72 ErrorHandler(err
0450: 6f 72 48 61 6e 64 6c 65 72 29 0d 0a 7b 0d 0a 20 orHandler)..{..
0460: 20 20 20 69 66 20 28 5f 63 61 6c 6c 65 72 45 72 if (_callerEr
0470: 72 6f 72 48 61 6e 64 6c 65 72 20 26 26 20 65 72 rorHandler && er
0480: 72 6f 72 48 61 6e 64 6c 65 72 20 26 26 20 5f 63 rorHandler && _c
0490: 61 6c 6c 65 72 45 72 72 6f 72 48 61 6e 64 6c 65 allerErrorHandle
04a0: 72 20 21 3d 20 65 72 72 6f 72 48 61 6e 64 6c 65 r != errorHandle
04b0: 72 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 r).. {..
04c0: 20 20 20 20 2f 2a 20 d0 9f d0 be d0 ba d0 b0 20 /* ........
04d0: d0 bf d0 be d0 b4 d0 b4 d0 b5 d1 80 d0 b6 d0 b8 ................
04e0: d0 b2 d0 b0 d0 b5 d0 bc 20 d1 82 d0 be d0 bb d1 ........ .......
04f0: 8c d0 ba d0 be 20 d0 be d0 b4 d0 bd d0 be d0 b3 ..... ..........
0500: d0 be 20 d0 bf d0 be d0 b4 d0 bf d0 b8 d1 81 d1 .. .............
0510: 87 d0 b8 d0 ba d0 b0 20 d0 bd d0 b0 20 d0 be d1 ....... .... ...
0520: 88 d0 b8 d0 b1 d0 ba d0 b8 2e 20 0d 0a 20 20 20 .......... ..
0530: 20 20 20 20 20 20 d0 a7 d1 82 d0 be d0 b1 d1 8b ..........
0540: 20 d0 b8 d1 81 d0 ba d0 bb d1 8e d1 87 d0 b8 d1 ...............
0550: 82 d1 8c 20 d1 81 d0 bb d1 83 d1 87 d0 b0 d0 b9 ... ............
0560: d0 bd d1 8b d0 b5 20 d0 b2 d1 8b d1 81 d1 82 d1 ...... .........
0570: 80 d0 b5 d0 bb d1 8b 20 d0 b2 20 d0 bd d0 be d0 ....... .. .....
0580: b3 d1 83 2c 20 d0 b8 d1 81 d0 ba d0 bb d1 8e d1 ..., ...........
0590: 87 d0 b8 d0 bc 20 d0 bb d1 8e d0 b1 d1 8b d0 b5 ..... ..........
05a0: 20 20 0d 0a 20 20 20 20 20 20 20 20 20 d0 b4 d1 .. ...
05b0: 80 d1 83 d0 b3 d0 b8 d0 b5 20 d0 bf d0 be d0 bf ......... ......
05c0: d1 8b d1 82 d0 ba d0 b8 20 d1 83 d1 81 d1 82 d0 ........ .......
05d0: b0 d0 bd d0 be d0 b2 d0 ba d0 b8 20 d0 be d0 b1 ........... ....
05e0: d1 80 d0 b0 d0 b1 d0 be d1 82 d1 87 d0 b8 d0 ba ................
05f0: d0 b0 2e 20 2a 2f 0d 0a 20 20 20 20 20 20 20 20 ... */..
0600: 77 61 72 6e 28 22 6a 73 55 6e 69 74 43 6f 72 65 warn("jsUnitCore
0610: 2e 6a 73 3a 3a 47 65 74 49 6e 73 61 6e 63 65 28 .js::GetInsance(
0620: 29 3a 20 d1 82 d0 be d0 bb d1 8c d0 ba d0 be 20 ): ............
0630: d0 be d0 b4 d0 b8 d0 bd 20 d1 81 d0 ba d1 80 d0 ........ .......
0640: b8 d0 bf d1 82 20 d0 bc d0 be d0 b6 d0 b5 d1 82 ..... ..........
0650: 20 d1 83 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 d0 ...............
0660: b8 d1 82 d1 8c 20 d0 be d0 b1 d1 80 d0 b0 d0 b1 ..... ..........
0670: d0 be d1 82 d1 87 d0 b8 d0 ba 20 d0 be d1 88 d0 .......... .....
0680: b8 d0 b1 d0 be d0 ba 21 22 29 3b 0d 0a 20 20 20 .......!");..
0690: 20 20 20 20 20 0d 0a 20 20 20 20 7d 0d 0a 20 20 .. }..
06a0: 20 20 65 6c 73 65 20 0d 0a 20 20 20 20 7b 20 20 else .. {
06b0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
06c0: 5f 63 61 6c 6c 65 72 45 72 72 6f 72 48 61 6e 64 _callerErrorHand
06d0: 6c 65 72 20 3d 20 65 72 72 6f 72 48 61 6e 64 6c ler = errorHandl
06e0: 65 72 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d er;.. }..}...
06f0: 0a 66 75 6e 63 74 69 6f 6e 20 52 65 73 65 74 45 .function ResetE
0700: 72 72 6f 72 48 61 6e 64 6c 65 72 28 29 0d 0a 7b rrorHandler()..{
0710: 0d 0a 20 20 20 20 5f 63 61 6c 6c 65 72 45 72 72 .. _callerErr
0720: 6f 72 48 61 6e 64 6c 65 72 20 3d 20 6e 75 6c 6c orHandler = null
0730: 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e ;..}....function
0740: 20 53 6e 65 67 6f 70 61 74 54 68 72 6f 77 45 78 SnegopatThrowEx
0750: 63 65 70 74 69 6f 6e 28 65 78 63 65 70 74 69 6f ception(exceptio
0760: 6e 29 0d 0a 7b 0d 0a 20 20 20 20 69 66 20 28 5f n)..{.. if (_
0770: 63 61 6c 6c 65 72 45 72 72 6f 72 48 61 6e 64 6c callerErrorHandl
0780: 65 72 29 0d 0a 20 20 20 20 20 20 20 20 5f 63 61 er).. _ca
0790: 6c 6c 65 72 45 72 72 6f 72 48 61 6e 64 6c 65 72 llerErrorHandler
07a0: 2e 63 61 6c 6c 28 6e 75 6c 6c 2c 20 65 78 63 65 .call(null, exce
07b0: 70 74 69 6f 6e 29 3b 0d 0a 0d 0a 20 20 20 20 74 ption);.... t
07c0: 68 72 6f 77 20 65 78 63 65 70 74 69 6f 6e 3b 0d hrow exception;.
07d0: 0a 7d 0d 0a 2f 2f 2f 2f 2f 53 6e 65 67 6f 70 61 .}../////Snegopa
07e0: 74 2e 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 54 68 t...../**.. * Th
07f0: 65 20 4a 73 55 6e 69 74 20 76 65 72 73 69 6f 6e e JsUnit version
0800: 0d 0a 20 2a 20 40 76 65 72 73 69 6f 6e 0d 0a 20 .. * @version..
0810: 2a 2f 0d 0a 4a 73 55 6e 69 74 2e 56 45 52 53 49 */..JsUnit.VERSI
0820: 4f 4e 20 3d 20 32 2e 32 3b 0d 0a 76 61 72 20 4a ON = 2.2;..var J
0830: 53 55 4e 49 54 5f 56 45 52 53 49 4f 4e 20 3d 20 SUNIT_VERSION =
0840: 4a 73 55 6e 69 74 2e 56 45 52 53 49 4f 4e 3b 0d JsUnit.VERSION;.
0850: 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 46 6f 72 20 63 .../**.. * For c
0860: 6f 6e 76 65 6e 69 65 6e 63 65 2c 20 61 20 76 61 onvenience, a va
0870: 72 69 61 62 6c 65 20 74 68 61 74 20 65 71 75 61 riable that equa
0880: 6c 73 20 22 75 6e 64 65 66 69 6e 65 64 22 0d 0a ls "undefined"..
0890: 20 2a 2f 0d 0a 76 61 72 20 4a 53 55 4e 49 54 5f */..var JSUNIT_
08a0: 55 4e 44 45 46 49 4e 45 44 5f 56 41 4c 55 45 3b UNDEFINED_VALUE;
08b0: 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 57 68 65 74 ..../**.. * Whet
08c0: 68 65 72 20 6f 72 20 6e 6f 74 20 74 68 65 20 63 her or not the c
08d0: 75 72 72 65 6e 74 20 74 65 73 74 20 70 61 67 65 urrent test page
08e0: 20 68 61 73 20 62 65 65 6e 20 28 63 6f 6d 70 6c has been (compl
08f0: 65 74 65 6c 79 29 20 6c 6f 61 64 65 64 20 79 65 etely) loaded ye
0900: 74 0d 0a 20 2a 2f 0d 0a 76 61 72 20 69 73 54 65 t.. */..var isTe
0910: 73 74 50 61 67 65 4c 6f 61 64 65 64 20 3d 20 66 stPageLoaded = f
0920: 61 6c 73 65 3b 0d 0a 2f 2a 2a 0d 0a 20 2a 20 50 alse;../**.. * P
0930: 72 65 64 69 63 61 74 65 20 75 73 65 64 20 66 6f redicate used fo
0940: 72 20 74 65 73 74 69 6e 67 20 4a 61 76 61 53 63 r testing JavaSc
0950: 72 69 70 74 20 3d 3d 20 28 69 2e 65 2e 20 65 71 ript == (i.e. eq
0960: 75 61 6c 69 74 79 20 65 78 63 6c 75 64 69 6e 67 uality excluding
0970: 20 74 79 70 65 29 0d 0a 20 2a 2f 0d 0a 4a 73 55 type).. */..JsU
0980: 6e 69 74 2e 44 4f 55 42 4c 45 5f 45 51 55 41 4c nit.DOUBLE_EQUAL
0990: 49 54 59 5f 50 52 45 44 49 43 41 54 45 20 3d 20 ITY_PREDICATE =
09a0: 66 75 6e 63 74 69 6f 6e 28 76 61 72 31 2c 20 76 function(var1, v
09b0: 61 72 32 29 20 7b 72 65 74 75 72 6e 20 76 61 72 ar2) {return var
09c0: 31 20 3d 3d 20 76 61 72 32 3b 7d 3b 0d 0a 0d 0a 1 == var2;};....
09d0: 2f 2a 2a 0d 0a 20 2a 20 50 72 65 64 69 63 61 74 /**.. * Predicat
09e0: 65 20 75 73 65 64 20 66 6f 72 20 74 65 73 74 69 e used for testi
09f0: 6e 67 20 4a 61 76 61 53 63 72 69 70 74 20 3d 3d ng JavaScript ==
0a00: 3d 20 28 69 2e 65 2e 20 65 71 75 61 6c 69 74 79 = (i.e. equality
0a10: 20 69 6e 63 6c 75 64 69 6e 67 20 74 79 70 65 29 including type)
0a20: 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e 69 74 2e 54 52 .. */..JsUnit.TR
0a30: 49 50 4c 45 5f 45 51 55 41 4c 49 54 59 5f 50 52 IPLE_EQUALITY_PR
0a40: 45 44 49 43 41 54 45 20 3d 20 66 75 6e 63 74 69 EDICATE = functi
0a50: 6f 6e 28 76 61 72 31 2c 20 76 61 72 32 29 20 7b on(var1, var2) {
0a60: 72 65 74 75 72 6e 20 76 61 72 31 20 3d 3d 3d 20 return var1 ===
0a70: 76 61 72 32 3b 7d 3b 0d 0a 0d 0a 2f 2a 2a 0d 0a var2;};..../**..
0a80: 20 2a 20 50 72 65 64 69 63 61 74 65 20 75 73 65 * Predicate use
0a90: 64 20 66 6f 72 20 74 65 73 74 69 6e 67 20 77 68 d for testing wh
0aa0: 65 74 68 65 72 20 74 77 6f 20 6f 62 65 63 74 73 ether two obects
0ab0: 27 20 74 6f 53 74 72 69 6e 67 73 20 61 72 65 20 ' toStrings are
0ac0: 65 71 75 61 6c 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e equal.. */..JsUn
0ad0: 69 74 2e 54 4f 5f 53 54 52 49 4e 47 5f 45 51 55 it.TO_STRING_EQU
0ae0: 41 4c 49 54 59 5f 50 52 45 44 49 43 41 54 45 20 ALITY_PREDICATE
0af0: 3d 20 66 75 6e 63 74 69 6f 6e 28 76 61 72 31 2c = function(var1,
0b00: 20 76 61 72 32 29 20 7b 72 65 74 75 72 6e 20 76 var2) {return v
0b10: 61 72 31 2e 74 6f 53 74 72 69 6e 67 28 29 20 3d ar1.toString() =
0b20: 3d 3d 20 76 61 72 32 2e 74 6f 53 74 72 69 6e 67 == var2.toString
0b30: 28 29 3b 7d 3b 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a ();};..../**.. *
0b40: 20 48 61 73 68 20 6f 66 20 70 72 65 64 69 63 61 Hash of predica
0b50: 74 65 73 20 66 6f 72 20 74 65 73 74 69 6e 67 20 tes for testing
0b60: 65 71 75 61 6c 69 74 79 20 62 79 20 70 72 69 6d equality by prim
0b70: 69 74 69 76 65 20 74 79 70 65 0d 0a 20 2a 2f 0d itive type.. */.
0b80: 0a 4a 73 55 6e 69 74 2e 50 52 49 4d 49 54 49 56 .JsUnit.PRIMITIV
0b90: 45 5f 45 51 55 41 4c 49 54 59 5f 50 52 45 44 49 E_EQUALITY_PREDI
0ba0: 43 41 54 45 53 20 3d 20 7b 0d 0a 20 20 20 20 27 CATES = {.. '
0bb0: 53 74 72 69 6e 67 27 3a 20 20 20 4a 73 55 6e 69 String': JsUni
0bc0: 74 2e 44 4f 55 42 4c 45 5f 45 51 55 41 4c 49 54 t.DOUBLE_EQUALIT
0bd0: 59 5f 50 52 45 44 49 43 41 54 45 2c 0d 0a 20 20 Y_PREDICATE,..
0be0: 20 20 27 4e 75 6d 62 65 72 27 3a 20 20 20 4a 73 'Number': Js
0bf0: 55 6e 69 74 2e 44 4f 55 42 4c 45 5f 45 51 55 41 Unit.DOUBLE_EQUA
0c00: 4c 49 54 59 5f 50 52 45 44 49 43 41 54 45 2c 0d LITY_PREDICATE,.
0c10: 0a 20 20 20 20 27 42 6f 6f 6c 65 61 6e 27 3a 20 . 'Boolean':
0c20: 20 4a 73 55 6e 69 74 2e 44 4f 55 42 4c 45 5f 45 JsUnit.DOUBLE_E
0c30: 51 55 41 4c 49 54 59 5f 50 52 45 44 49 43 41 54 QUALITY_PREDICAT
0c40: 45 2c 0d 0a 20 20 20 20 27 44 61 74 65 27 3a 20 E,.. 'Date':
0c50: 20 20 20 20 4a 73 55 6e 69 74 2e 54 52 49 50 4c JsUnit.TRIPL
0c60: 45 5f 45 51 55 41 4c 49 54 59 5f 50 52 45 44 49 E_EQUALITY_PREDI
0c70: 43 41 54 45 2c 0d 0a 20 20 20 20 27 52 65 67 45 CATE,.. 'RegE
0c80: 78 70 27 3a 20 20 20 4a 73 55 6e 69 74 2e 54 4f xp': JsUnit.TO
0c90: 5f 53 54 52 49 4e 47 5f 45 51 55 41 4c 49 54 59 _STRING_EQUALITY
0ca0: 5f 50 52 45 44 49 43 41 54 45 2c 0d 0a 20 20 20 _PREDICATE,..
0cb0: 20 27 46 75 6e 63 74 69 6f 6e 27 3a 20 4a 73 55 'Function': JsU
0cc0: 6e 69 74 2e 54 4f 5f 53 54 52 49 4e 47 5f 45 51 nit.TO_STRING_EQ
0cd0: 55 41 4c 49 54 59 5f 50 52 45 44 49 43 41 54 45 UALITY_PREDICATE
0ce0: 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 48 ..}..../**.. * H
0cf0: 61 63 6b 20 66 6f 72 20 4e 53 36 32 20 62 75 67 ack for NS62 bug
0d00: 0d 0a 20 2a 20 40 70 72 69 76 61 74 65 0d 0a 20 .. * @private..
0d10: 2a 2f 0d 0a 4a 73 55 6e 69 74 2e 5f 66 69 78 54 */..JsUnit._fixT
0d20: 6f 70 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 op = function()
0d30: 7b 0d 0a 20 20 20 20 76 61 72 20 74 65 6d 70 54 {.. var tempT
0d40: 6f 70 20 3d 20 74 6f 70 3b 0d 0a 20 20 20 20 69 op = top;.. i
0d50: 66 20 28 21 74 65 6d 70 54 6f 70 29 20 7b 0d 0a f (!tempTop) {..
0d60: 20 20 20 20 20 20 20 20 74 65 6d 70 54 6f 70 20 tempTop
0d70: 3d 20 77 69 6e 64 6f 77 3b 0d 0a 20 20 20 20 20 = window;..
0d80: 20 20 20 77 68 69 6c 65 20 28 74 65 6d 70 54 6f while (tempTo
0d90: 70 2e 70 61 72 65 6e 74 29 20 7b 0d 0a 20 20 20 p.parent) {..
0da0: 20 20 20 20 20 20 20 20 20 74 65 6d 70 54 6f 70 tempTop
0db0: 20 3d 20 74 65 6d 70 54 6f 70 2e 70 61 72 65 6e = tempTop.paren
0dc0: 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 t;..
0dd0: 69 66 20 28 74 65 6d 70 54 6f 70 2e 74 6f 70 20 if (tempTop.top
0de0: 26 26 20 74 65 6d 70 54 6f 70 2e 74 6f 70 2e 6a && tempTop.top.j
0df0: 73 55 6e 69 74 54 65 73 74 53 75 69 74 65 29 20 sUnitTestSuite)
0e00: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {..
0e10: 20 20 20 74 65 6d 70 54 6f 70 20 3d 20 74 65 6d tempTop = tem
0e20: 70 54 6f 70 2e 74 6f 70 3b 0d 0a 20 20 20 20 20 pTop.top;..
0e30: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
0e40: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d ;.. }
0e50: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 .. }..
0e60: 20 7d 0d 0a 20 20 20 20 74 72 79 20 7b 0d 0a 20 }.. try {..
0e70: 20 20 20 20 20 20 20 77 69 6e 64 6f 77 2e 74 6f window.to
0e80: 70 20 3d 20 74 65 6d 70 54 6f 70 3b 0d 0a 20 20 p = tempTop;..
0e90: 20 20 7d 20 63 61 74 63 68 20 28 65 29 20 7b 0d } catch (e) {.
0ea0: 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a 2f 2f 53 . }..}....//S
0eb0: 6e 65 67 6f 70 61 74 2e 0d 0a 2f 2f 4a 73 55 6e negopat...//JsUn
0ec0: 69 74 2e 5f 66 69 78 54 6f 70 28 29 3b 0d 0a 2f it._fixTop();../
0ed0: 2f 2f 2f 2f 53 6e 65 67 6f 70 61 74 2e 0d 0a 0d ////Snegopat....
0ee0: 0a 2f 2a 2a 0d 0a 20 2a 20 40 70 61 72 61 6d 20 ./**.. * @param
0ef0: 41 6e 79 20 6f 62 6a 65 63 74 0d 0a 20 2a 20 40 Any object.. * @
0f00: 72 65 74 75 72 6e 20 53 74 72 69 6e 67 20 2d 20 return String -
0f10: 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 the type of the
0f20: 67 69 76 65 6e 20 6f 62 6a 65 63 74 0d 0a 20 2a given object.. *
0f30: 20 40 70 72 69 76 61 74 65 0d 0a 20 2a 2f 0d 0a @private.. */..
0f40: 4a 73 55 6e 69 74 2e 5f 74 72 75 65 54 79 70 65 JsUnit._trueType
0f50: 4f 66 20 3d 20 66 75 6e 63 74 69 6f 6e 28 73 6f Of = function(so
0f60: 6d 65 74 68 69 6e 67 29 20 7b 0d 0a 20 20 20 20 mething) {..
0f70: 76 61 72 20 72 65 73 75 6c 74 20 3d 20 74 79 70 var result = typ
0f80: 65 6f 66 20 73 6f 6d 65 74 68 69 6e 67 3b 0d 0a eof something;..
0f90: 20 20 20 20 74 72 79 20 7b 0d 0a 20 20 20 20 20 try {..
0fa0: 20 20 20 73 77 69 74 63 68 20 28 72 65 73 75 6c switch (resul
0fb0: 74 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 t) {..
0fc0: 20 20 63 61 73 65 20 27 73 74 72 69 6e 67 27 3a case 'string':
0fd0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0fe0: 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 break;..
0ff0: 20 20 20 20 20 20 63 61 73 65 20 27 62 6f 6f 6c case 'bool
1000: 65 61 6e 27 3a 0d 0a 20 20 20 20 20 20 20 20 20 ean':..
1010: 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 break;..
1020: 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
1030: 27 6e 75 6d 62 65 72 27 3a 0d 0a 20 20 20 20 20 'number':..
1040: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
1050: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 ;.. c
1060: 61 73 65 20 27 6f 62 6a 65 63 74 27 3a 0d 0a 20 ase 'object':..
1070: 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
1080: 27 66 75 6e 63 74 69 6f 6e 27 3a 0d 0a 20 20 20 'function':..
1090: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 77 69 swi
10a0: 74 63 68 20 28 73 6f 6d 65 74 68 69 6e 67 2e 63 tch (something.c
10b0: 6f 6e 73 74 72 75 63 74 6f 72 29 20 7b 0d 0a 20 onstructor) {..
10c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
10d0: 20 20 20 63 61 73 65 20 6e 65 77 20 53 74 72 69 case new Stri
10e0: 6e 67 28 29 2e 63 6f 6e 73 74 72 75 63 74 6f 72 ng().constructor
10f0: 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 :..
1100: 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c resul
1110: 74 20 3d 20 27 53 74 72 69 6e 67 27 3b 0d 0a 20 t = 'String';..
1120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1130: 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 break;..
1140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1150: 20 20 20 63 61 73 65 20 6e 65 77 20 42 6f 6f 6c case new Bool
1160: 65 61 6e 28 29 2e 63 6f 6e 73 74 72 75 63 74 6f ean().constructo
1170: 72 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 r:..
1180: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 resu
1190: 6c 74 20 3d 20 27 42 6f 6f 6c 65 61 6e 27 3b 0d lt = 'Boolean';.
11a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
11b0: 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d break;.
11c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
11d0: 20 20 20 20 20 63 61 73 65 20 6e 65 77 20 4e 75 case new Nu
11e0: 6d 62 65 72 28 29 2e 63 6f 6e 73 74 72 75 63 74 mber().construct
11f0: 6f 72 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 or:..
1200: 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 res
1210: 75 6c 74 20 3d 20 27 4e 75 6d 62 65 72 27 3b 0d ult = 'Number';.
1220: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1230: 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d break;.
1240: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1250: 20 20 20 20 20 63 61 73 65 20 6e 65 77 20 41 72 case new Ar
1260: 72 61 79 28 29 2e 63 6f 6e 73 74 72 75 63 74 6f ray().constructo
1270: 72 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 r:..
1280: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 resu
1290: 6c 74 20 3d 20 27 41 72 72 61 79 27 3b 0d 0a 20 lt = 'Array';..
12a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12b0: 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 break;..
12c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12d0: 20 20 20 63 61 73 65 20 6e 65 77 20 52 65 67 45 case new RegE
12e0: 78 70 28 29 2e 63 6f 6e 73 74 72 75 63 74 6f 72 xp().constructor
12f0: 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 :..
1300: 20 20 20 20 20 20 20 20 20 20 20 72 65 73 75 6c resul
1310: 74 20 3d 20 27 52 65 67 45 78 70 27 3b 0d 0a 20 t = 'RegExp';..
1320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1330: 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 break;..
1340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1350: 20 20 20 63 61 73 65 20 6e 65 77 20 44 61 74 65 case new Date
1360: 28 29 2e 63 6f 6e 73 74 72 75 63 74 6f 72 3a 0d ().constructor:.
1370: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
1380: 20 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 result
1390: 3d 20 27 44 61 74 65 27 3b 0d 0a 20 20 20 20 20 = 'Date';..
13a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13b0: 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 break;..
13c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 c
13d0: 61 73 65 20 46 75 6e 63 74 69 6f 6e 3a 0d 0a 20 ase Function:..
13e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13f0: 20 20 20 20 20 20 20 72 65 73 75 6c 74 20 3d 20 result =
1400: 27 46 75 6e 63 74 69 6f 6e 27 3b 0d 0a 20 20 20 'Function';..
1410: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1420: 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 break;..
1430: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1440: 20 64 65 66 61 75 6c 74 3a 0d 0a 20 20 20 20 20 default:..
1450: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1460: 20 20 20 69 66 20 28 73 6f 6d 65 74 68 69 6e 67 if (something
1470: 2e 63 6f 6e 73 74 72 75 63 74 6f 72 29 0d 0a 20 .constructor)..
1480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1490: 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 {..
14a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14b0: 20 20 20 20 20 20 76 61 72 20 6d 20 3d 20 73 6f var m = so
14c0: 6d 65 74 68 69 6e 67 2e 63 6f 6e 73 74 72 75 63 mething.construc
14d0: 74 6f 72 2e 74 6f 53 74 72 69 6e 67 28 29 2e 6d tor.toString().m
14e0: 61 74 63 68 28 2f 66 75 6e 63 74 69 6f 6e 5c 73 atch(/function\s
14f0: 2a 28 5b 5e 28 20 5d 2b 29 5c 28 2f 29 3b 0d 0a *([^( ]+)\(/);..
1500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1510: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
1520: 6d 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 m)..
1530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1540: 20 20 20 20 72 65 73 75 6c 74 20 3d 20 6d 5b 31 result = m[1
1550: 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ];..
1560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1570: 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 else..
1580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1590: 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 break;..
15a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15b0: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 }..
15c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15d0: 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 else..
15e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15f0: 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 break;..
1600: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a }..
1610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1620: 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 break;..
1630: 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 66 69 }.. }.. fi
1640: 6e 61 6c 6c 79 20 7b 0d 0a 20 20 20 20 20 20 20 nally {..
1650: 20 72 65 73 75 6c 74 20 3d 20 72 65 73 75 6c 74 result = result
1660: 2e 73 75 62 73 74 72 28 30 2c 20 31 29 2e 74 6f .substr(0, 1).to
1670: 55 70 70 65 72 43 61 73 65 28 29 20 2b 20 72 65 UpperCase() + re
1680: 73 75 6c 74 2e 73 75 62 73 74 72 28 31 29 3b 0d sult.substr(1);.
1690: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
16a0: 72 65 73 75 6c 74 3b 0d 0a 20 20 20 20 7d 0d 0a result;.. }..
16b0: 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 40 70 72 }..../**.. * @pr
16c0: 69 76 61 74 65 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e ivate.. */..JsUn
16d0: 69 74 2e 5f 64 69 73 70 6c 61 79 53 74 72 69 6e it._displayStrin
16e0: 67 46 6f 72 56 61 6c 75 65 20 3d 20 66 75 6e 63 gForValue = func
16f0: 74 69 6f 6e 28 61 56 61 72 29 20 7b 0d 0a 20 20 tion(aVar) {..
1700: 20 20 76 61 72 20 72 65 73 75 6c 74 20 3d 20 27 var result = '
1710: 3c 27 20 2b 20 61 56 61 72 20 2b 20 27 3e 27 3b <' + aVar + '>';
1720: 0d 0a 20 20 20 20 69 66 20 28 21 28 61 56 61 72 .. if (!(aVar
1730: 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 61 56 61 === null || aVa
1740: 72 20 3d 3d 3d 20 4a 53 55 4e 49 54 5f 55 4e 44 r === JSUNIT_UND
1750: 45 46 49 4e 45 44 5f 56 41 4c 55 45 29 29 20 7b EFINED_VALUE)) {
1760: 0d 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 .. result
1770: 20 2b 3d 20 27 20 28 27 20 2b 20 4a 73 55 6e 69 += ' (' + JsUni
1780: 74 2e 5f 74 72 75 65 54 79 70 65 4f 66 28 61 56 t._trueTypeOf(aV
1790: 61 72 29 20 2b 20 27 29 27 3b 0d 0a 20 20 20 20 ar) + ')';..
17a0: 7d 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 72 65 }.. return re
17b0: 73 75 6c 74 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d sult;..}..../**.
17c0: 0a 20 2a 20 40 70 72 69 76 61 74 65 0d 0a 20 2a . * @private.. *
17d0: 2f 0d 0a 4a 73 55 6e 69 74 2e 5f 61 72 67 75 6d /..JsUnit._argum
17e0: 65 6e 74 73 49 6e 63 6c 75 64 65 43 6f 6d 6d 65 entsIncludeComme
17f0: 6e 74 73 20 3d 20 66 75 6e 63 74 69 6f 6e 28 65 nts = function(e
1800: 78 70 65 63 74 65 64 4e 75 6d 62 65 72 4f 66 4e xpectedNumberOfN
1810: 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 73 2c 20 61 onCommentArgs, a
1820: 72 67 73 29 20 7b 0d 0a 20 20 20 20 72 65 74 75 rgs) {.. retu
1830: 72 6e 20 61 72 67 73 2e 6c 65 6e 67 74 68 20 3d rn args.length =
1840: 3d 20 65 78 70 65 63 74 65 64 4e 75 6d 62 65 72 = expectedNumber
1850: 4f 66 4e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 73 OfNonCommentArgs
1860: 20 2b 20 31 3b 0d 0a 7d 0d 0a 2f 2a 2a 0d 0a 20 + 1;..}../**..
1870: 2a 20 40 70 72 69 76 61 74 65 0d 0a 20 2a 2f 0d * @private.. */.
1880: 0a 4a 73 55 6e 69 74 2e 5f 63 6f 6d 6d 65 6e 74 .JsUnit._comment
1890: 41 72 67 20 3d 20 66 75 6e 63 74 69 6f 6e 28 65 Arg = function(e
18a0: 78 70 65 63 74 65 64 4e 75 6d 62 65 72 4f 66 4e xpectedNumberOfN
18b0: 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 73 2c 20 61 onCommentArgs, a
18c0: 72 67 73 29 20 7b 0d 0a 20 20 20 20 69 66 20 28 rgs) {.. if (
18d0: 4a 73 55 6e 69 74 2e 5f 61 72 67 75 6d 65 6e 74 JsUnit._argument
18e0: 73 49 6e 63 6c 75 64 65 43 6f 6d 6d 65 6e 74 73 sIncludeComments
18f0: 28 65 78 70 65 63 74 65 64 4e 75 6d 62 65 72 4f (expectedNumberO
1900: 66 4e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 73 2c fNonCommentArgs,
1910: 20 61 72 67 73 29 29 0d 0a 20 20 20 20 20 20 20 args))..
1920: 20 72 65 74 75 72 6e 20 61 72 67 73 5b 30 5d 3b return args[0];
1930: 0d 0a 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 6e .... return n
1940: 75 6c 6c 3b 0d 0a 7d 0d 0a 2f 2a 2a 0d 0a 20 2a ull;..}../**.. *
1950: 20 40 70 72 69 76 61 74 65 0d 0a 20 2a 2f 0d 0a @private.. */..
1960: 4a 73 55 6e 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 JsUnit._nonComme
1970: 6e 74 41 72 67 20 3d 20 66 75 6e 63 74 69 6f 6e ntArg = function
1980: 28 64 65 73 69 72 65 64 4e 6f 6e 43 6f 6d 6d 65 (desiredNonComme
1990: 6e 74 41 72 67 49 6e 64 65 78 2c 20 65 78 70 65 ntArgIndex, expe
19a0: 63 74 65 64 4e 75 6d 62 65 72 4f 66 4e 6f 6e 43 ctedNumberOfNonC
19b0: 6f 6d 6d 65 6e 74 41 72 67 73 2c 20 61 72 67 73 ommentArgs, args
19c0: 29 20 7b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 ) {.. return
19d0: 4a 73 55 6e 69 74 2e 5f 61 72 67 75 6d 65 6e 74 JsUnit._argument
19e0: 73 49 6e 63 6c 75 64 65 43 6f 6d 6d 65 6e 74 73 sIncludeComments
19f0: 28 65 78 70 65 63 74 65 64 4e 75 6d 62 65 72 4f (expectedNumberO
1a00: 66 4e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 73 2c fNonCommentArgs,
1a10: 20 61 72 67 73 29 20 3f 0d 0a 20 20 20 20 20 20 args) ?..
1a20: 20 20 20 20 20 61 72 67 73 5b 64 65 73 69 72 65 args[desire
1a30: 64 4e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 49 6e dNonCommentArgIn
1a40: 64 65 78 5d 20 3a 0d 0a 20 20 20 20 20 20 20 20 dex] :..
1a50: 20 20 20 61 72 67 73 5b 64 65 73 69 72 65 64 4e args[desiredN
1a60: 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 49 6e 64 65 onCommentArgInde
1a70: 78 20 2d 20 31 5d 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a x - 1];..}..../*
1a80: 2a 0d 0a 20 2a 20 40 70 72 69 76 61 74 65 0d 0a *.. * @private..
1a90: 20 2a 2f 0d 0a 4a 73 55 6e 69 74 2e 5f 76 61 6c */..JsUnit._val
1aa0: 69 64 61 74 65 41 72 67 75 6d 65 6e 74 73 20 3d idateArguments =
1ab0: 20 66 75 6e 63 74 69 6f 6e 28 65 78 70 65 63 74 function(expect
1ac0: 65 64 4e 75 6d 62 65 72 4f 66 4e 6f 6e 43 6f 6d edNumberOfNonCom
1ad0: 6d 65 6e 74 41 72 67 73 2c 20 61 72 67 73 29 20 mentArgs, args)
1ae0: 7b 0d 0a 20 20 20 20 69 66 20 28 21 28 20 61 72 {.. if (!( ar
1af0: 67 73 2e 6c 65 6e 67 74 68 20 3d 3d 20 65 78 70 gs.length == exp
1b00: 65 63 74 65 64 4e 75 6d 62 65 72 4f 66 4e 6f 6e ectedNumberOfNon
1b10: 43 6f 6d 6d 65 6e 74 41 72 67 73 20 7c 7c 0d 0a CommentArgs ||..
1b20: 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 73 (args
1b30: 2e 6c 65 6e 67 74 68 20 3d 3d 20 65 78 70 65 63 .length == expec
1b40: 74 65 64 4e 75 6d 62 65 72 4f 66 4e 6f 6e 43 6f tedNumberOfNonCo
1b50: 6d 6d 65 6e 74 41 72 67 73 20 2b 20 31 20 26 26 mmentArgs + 1 &&
1b60: 20 28 74 79 70 65 6f 66 28 61 72 67 73 5b 30 5d (typeof(args[0]
1b70: 29 20 3d 3d 20 27 73 74 72 69 6e 67 27 29 20 7c ) == 'string') |
1b80: 7c 20 61 72 67 73 5b 30 5d 20 3d 3d 20 6e 75 6c | args[0] == nul
1b90: 6c 29 29 29 0d 0a 20 20 20 20 20 20 20 20 74 68 l))).. th
1ba0: 72 6f 77 20 6e 65 77 20 4a 73 55 6e 69 74 2e 41 row new JsUnit.A
1bb0: 73 73 65 72 74 69 6f 6e 41 72 67 75 6d 65 6e 74 ssertionArgument
1bc0: 45 72 72 6f 72 28 27 49 6e 63 6f 72 72 65 63 74 Error('Incorrect
1bd0: 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 65 arguments passe
1be0: 64 20 74 6f 20 61 73 73 65 72 74 20 66 75 6e 63 d to assert func
1bf0: 74 69 6f 6e 27 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a tion');..}..../*
1c00: 2a 0d 0a 20 2a 20 40 70 72 69 76 61 74 65 0d 0a *.. * @private..
1c10: 20 2a 2f 0d 0a 4a 73 55 6e 69 74 2e 5f 63 68 65 */..JsUnit._che
1c20: 63 6b 45 71 75 61 6c 73 20 3d 20 66 75 6e 63 74 ckEquals = funct
1c30: 69 6f 6e 28 76 61 72 31 2c 20 76 61 72 32 29 20 ion(var1, var2)
1c40: 7b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 76 61 {.. return va
1c50: 72 31 20 3d 3d 3d 20 76 61 72 32 3b 0d 0a 7d 0d r1 === var2;..}.
1c60: 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 40 70 72 69 76 .../**.. * @priv
1c70: 61 74 65 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e 69 74 ate.. */..JsUnit
1c80: 2e 5f 63 68 65 63 6b 4e 6f 74 55 6e 64 65 66 69 ._checkNotUndefi
1c90: 6e 65 64 20 3d 20 66 75 6e 63 74 69 6f 6e 28 61 ned = function(a
1ca0: 56 61 72 29 20 7b 0d 0a 20 20 20 20 72 65 74 75 Var) {.. retu
1cb0: 72 6e 20 61 56 61 72 20 21 3d 3d 20 4a 53 55 4e rn aVar !== JSUN
1cc0: 49 54 5f 55 4e 44 45 46 49 4e 45 44 5f 56 41 4c IT_UNDEFINED_VAL
1cd0: 55 45 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 UE;..}..../**..
1ce0: 2a 20 40 70 72 69 76 61 74 65 0d 0a 20 2a 2f 0d * @private.. */.
1cf0: 0a 4a 73 55 6e 69 74 2e 5f 63 68 65 63 6b 4e 6f .JsUnit._checkNo
1d00: 74 4e 75 6c 6c 20 3d 20 66 75 6e 63 74 69 6f 6e tNull = function
1d10: 28 61 56 61 72 29 20 7b 0d 0a 20 20 20 20 72 65 (aVar) {.. re
1d20: 74 75 72 6e 20 61 56 61 72 20 21 3d 3d 20 6e 75 turn aVar !== nu
1d30: 6c 6c 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 ll;..}..../**..
1d40: 2a 20 41 6c 6c 20 61 73 73 65 72 74 69 6f 6e 73 * All assertions
1d50: 20 75 6c 74 69 6d 61 74 65 6c 79 20 67 6f 20 74 ultimately go t
1d60: 68 72 6f 75 67 68 20 74 68 69 73 20 6d 65 74 68 hrough this meth
1d70: 6f 64 2e 0d 0a 20 2a 20 40 70 72 69 76 61 74 65 od... * @private
1d80: 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e 69 74 2e 5f 61 .. */..JsUnit._a
1d90: 73 73 65 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e ssert = function
1da0: 28 63 6f 6d 6d 65 6e 74 2c 20 62 6f 6f 6c 65 61 (comment, boolea
1db0: 6e 56 61 6c 75 65 2c 20 66 61 69 6c 75 72 65 4d nValue, failureM
1dc0: 65 73 73 61 67 65 29 20 7b 0d 0a 20 20 20 20 69 essage) {.. i
1dd0: 66 20 28 21 62 6f 6f 6c 65 61 6e 56 61 6c 75 65 f (!booleanValue
1de0: 29 0d 0a 20 20 20 20 20 20 20 20 53 6e 65 67 6f ).. Snego
1df0: 70 61 74 54 68 72 6f 77 45 78 63 65 70 74 69 6f patThrowExceptio
1e00: 6e 28 6e 65 77 20 4a 73 55 6e 69 74 2e 46 61 69 n(new JsUnit.Fai
1e10: 6c 75 72 65 28 63 6f 6d 6d 65 6e 74 2c 20 66 61 lure(comment, fa
1e20: 69 6c 75 72 65 4d 65 73 73 61 67 65 29 29 3b 0d ilureMessage));.
1e30: 0a 20 20 20 20 20 20 20 20 2f 2f 74 68 72 6f 77 . //throw
1e40: 20 6e 65 77 20 4a 73 55 6e 69 74 2e 46 61 69 6c new JsUnit.Fail
1e50: 75 72 65 28 63 6f 6d 6d 65 6e 74 2c 20 66 61 69 ure(comment, fai
1e60: 6c 75 72 65 4d 65 73 73 61 67 65 29 3b 0d 0a 7d lureMessage);..}
1e70: 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 43 68 65 63 ..../**.. * Chec
1e80: 6b 73 20 74 68 61 74 20 74 68 65 20 67 69 76 65 ks that the give
1e90: 6e 20 62 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 20 n boolean value
1ea0: 69 73 20 74 72 75 65 2e 0d 0a 20 2a 20 40 70 61 is true... * @pa
1eb0: 72 61 6d 20 63 6f 6d 6d 65 6e 74 20 6f 70 74 69 ram comment opti
1ec0: 6f 6e 61 6c 2c 20 64 69 73 70 6c 61 79 65 64 20 onal, displayed
1ed0: 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 66 in the case of f
1ee0: 61 69 6c 75 72 65 0d 0a 20 2a 20 40 76 61 6c 75 ailure.. * @valu
1ef0: 65 20 76 61 6c 75 65 20 74 68 61 74 20 69 73 20 e value that is
1f00: 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20 74 expected to be t
1f10: 72 75 65 0d 0a 20 2a 20 40 74 68 72 6f 77 73 20 rue.. * @throws
1f20: 4a 73 55 6e 69 74 2e 46 61 69 6c 75 72 65 20 69 JsUnit.Failure i
1f30: 66 20 74 68 65 20 67 69 76 65 6e 20 76 61 6c 75 f the given valu
1f40: 65 20 69 73 20 6e 6f 74 20 74 72 75 65 0d 0a 20 e is not true..
1f50: 2a 20 40 74 68 72 6f 77 73 20 4a 73 55 6e 69 74 * @throws JsUnit
1f60: 49 6e 76 61 6c 69 64 41 73 73 65 72 74 69 6f 6e InvalidAssertion
1f70: 41 72 67 75 6d 65 6e 74 20 69 66 20 74 68 65 20 Argument if the
1f80: 67 69 76 65 6e 20 76 61 6c 75 65 20 69 73 20 6e given value is n
1f90: 6f 74 20 61 20 62 6f 6f 6c 65 61 6e 20 6f 72 20 ot a boolean or
1fa0: 69 66 20 61 6e 20 69 6e 63 6f 72 72 65 63 74 20 if an incorrect
1fb0: 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 number of argume
1fc0: 6e 74 73 20 69 73 20 70 61 73 73 65 64 0d 0a 20 nts is passed..
1fd0: 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 73 73 */..function ass
1fe0: 65 72 74 28 29 20 7b 0d 0a 20 20 20 20 4a 73 55 ert() {.. JsU
1ff0: 6e 69 74 2e 5f 76 61 6c 69 64 61 74 65 41 72 67 nit._validateArg
2000: 75 6d 65 6e 74 73 28 31 2c 20 61 72 67 75 6d 65 uments(1, argume
2010: 6e 74 73 29 3b 0d 0a 20 20 20 20 76 61 72 20 62 nts);.. var b
2020: 6f 6f 6c 65 61 6e 56 61 6c 75 65 20 3d 20 4a 73 ooleanValue = Js
2030: 55 6e 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 Unit._nonComment
2040: 41 72 67 28 31 2c 20 31 2c 20 61 72 67 75 6d 65 Arg(1, 1, argume
2050: 6e 74 73 29 3b 0d 0a 0d 0a 20 20 20 20 69 66 20 nts);.... if
2060: 28 74 79 70 65 6f 66 28 62 6f 6f 6c 65 61 6e 56 (typeof(booleanV
2070: 61 6c 75 65 29 20 21 3d 20 27 62 6f 6f 6c 65 61 alue) != 'boolea
2080: 6e 27 29 0d 0a 20 20 20 20 20 20 20 20 53 6e 65 n').. Sne
2090: 67 6f 70 61 74 54 68 72 6f 77 45 78 63 65 70 74 gopatThrowExcept
20a0: 69 6f 6e 28 6e 65 77 20 4a 73 55 6e 69 74 2e 41 ion(new JsUnit.A
20b0: 73 73 65 72 74 69 6f 6e 41 72 67 75 6d 65 6e 74 ssertionArgument
20c0: 45 72 72 6f 72 28 27 42 61 64 20 61 72 67 75 6d Error('Bad argum
20d0: 65 6e 74 20 74 6f 20 61 73 73 65 72 74 28 62 6f ent to assert(bo
20e0: 6f 6c 65 61 6e 29 27 29 29 3b 0d 0a 20 20 20 20 olean)'));..
20f0: 20 20 20 20 2f 2f 74 68 72 6f 77 20 6e 65 77 20 //throw new
2100: 4a 73 55 6e 69 74 2e 41 73 73 65 72 74 69 6f 6e JsUnit.Assertion
2110: 41 72 67 75 6d 65 6e 74 45 72 72 6f 72 28 27 42 ArgumentError('B
2120: 61 64 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 61 ad argument to a
2130: 73 73 65 72 74 28 62 6f 6f 6c 65 61 6e 29 27 29 ssert(boolean)')
2140: 3b 0d 0a 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e ;.... JsUnit.
2150: 5f 61 73 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f _assert(JsUnit._
2160: 63 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 61 72 commentArg(1, ar
2170: 67 75 6d 65 6e 74 73 29 2c 20 62 6f 6f 6c 65 61 guments), boolea
2180: 6e 56 61 6c 75 65 20 3d 3d 3d 20 74 72 75 65 2c nValue === true,
2190: 20 27 43 61 6c 6c 20 74 6f 20 61 73 73 65 72 74 'Call to assert
21a0: 28 62 6f 6f 6c 65 61 6e 29 20 77 69 74 68 20 66 (boolean) with f
21b0: 61 6c 73 65 27 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a alse');..}..../*
21c0: 2a 0d 0a 20 2a 20 53 79 6e 6f 6e 79 6d 20 66 6f *.. * Synonym fo
21d0: 72 20 61 73 73 65 72 74 54 72 75 65 0d 0a 20 2a r assertTrue.. *
21e0: 20 40 73 65 65 20 23 61 73 73 65 72 74 0d 0a 20 @see #assert..
21f0: 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 73 73 */..function ass
2200: 65 72 74 54 72 75 65 28 29 20 7b 0d 0a 20 20 20 ertTrue() {..
2210: 20 4a 73 55 6e 69 74 2e 5f 76 61 6c 69 64 61 74 JsUnit._validat
2220: 65 41 72 67 75 6d 65 6e 74 73 28 31 2c 20 61 72 eArguments(1, ar
2230: 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20 61 guments);.. a
2240: 73 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f 63 6f ssert(JsUnit._co
2250: 6d 6d 65 6e 74 41 72 67 28 31 2c 20 61 72 67 75 mmentArg(1, argu
2260: 6d 65 6e 74 73 29 2c 20 4a 73 55 6e 69 74 2e 5f ments), JsUnit._
2270: 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 28 31 2c nonCommentArg(1,
2280: 20 31 2c 20 61 72 67 75 6d 65 6e 74 73 29 29 3b 1, arguments));
2290: 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 43 ..}..../**.. * C
22a0: 68 65 63 6b 73 20 74 68 61 74 20 61 20 62 6f 6f hecks that a boo
22b0: 6c 65 61 6e 20 76 61 6c 75 65 20 69 73 20 66 61 lean value is fa
22c0: 6c 73 65 2e 0d 0a 20 2a 20 40 70 61 72 61 6d 20 lse... * @param
22d0: 63 6f 6d 6d 65 6e 74 20 6f 70 74 69 6f 6e 61 6c comment optional
22e0: 2c 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 , displayed in t
22f0: 68 65 20 63 61 73 65 20 6f 66 20 66 61 69 6c 75 he case of failu
2300: 72 65 0d 0a 20 2a 20 40 76 61 6c 75 65 20 76 61 re.. * @value va
2310: 6c 75 65 20 74 68 61 74 20 69 73 20 65 78 70 65 lue that is expe
2320: 63 74 65 64 20 74 6f 20 62 65 20 66 61 6c 73 65 cted to be false
2330: 0d 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 55 .. * @throws JsU
2340: 6e 69 74 2e 46 61 69 6c 75 72 65 20 69 66 20 76 nit.Failure if v
2350: 61 6c 75 65 20 69 73 20 6e 6f 74 20 66 61 6c 73 alue is not fals
2360: 65 0d 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 e.. * @throws Js
2370: 55 6e 69 74 49 6e 76 61 6c 69 64 41 73 73 65 72 UnitInvalidAsser
2380: 74 69 6f 6e 41 72 67 75 6d 65 6e 74 20 69 66 20 tionArgument if
2390: 74 68 65 20 67 69 76 65 6e 20 76 61 6c 75 65 20 the given value
23a0: 69 73 20 6e 6f 74 20 61 20 62 6f 6f 6c 65 61 6e is not a boolean
23b0: 20 6f 72 20 69 66 20 61 6e 20 69 6e 63 6f 72 72 or if an incorr
23c0: 65 63 74 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 ect number of ar
23d0: 67 75 6d 65 6e 74 73 20 69 73 20 70 61 73 73 65 guments is passe
23e0: 64 0d 0a 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e d.. */..function
23f0: 20 61 73 73 65 72 74 46 61 6c 73 65 28 29 20 7b assertFalse() {
2400: 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f 76 61 .. JsUnit._va
2410: 6c 69 64 61 74 65 41 72 67 75 6d 65 6e 74 73 28 lidateArguments(
2420: 31 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 1, arguments);..
2430: 20 20 20 20 76 61 72 20 62 6f 6f 6c 65 61 6e 56 var booleanV
2440: 61 6c 75 65 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e alue = JsUnit._n
2450: 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 onCommentArg(1,
2460: 31 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 1, arguments);..
2470: 0d 0a 20 20 20 20 69 66 20 28 74 79 70 65 6f 66 .. if (typeof
2480: 28 62 6f 6f 6c 65 61 6e 56 61 6c 75 65 29 20 21 (booleanValue) !
2490: 3d 20 27 62 6f 6f 6c 65 61 6e 27 29 0d 0a 20 20 = 'boolean')..
24a0: 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 throw new
24b0: 4a 73 55 6e 69 74 2e 41 73 73 65 72 74 69 6f 6e JsUnit.Assertion
24c0: 41 72 67 75 6d 65 6e 74 45 72 72 6f 72 28 27 42 ArgumentError('B
24d0: 61 64 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 61 ad argument to a
24e0: 73 73 65 72 74 46 61 6c 73 65 28 62 6f 6f 6c 65 ssertFalse(boole
24f0: 61 6e 29 27 29 3b 0d 0a 0d 0a 20 20 20 20 4a 73 an)');.... Js
2500: 55 6e 69 74 2e 5f 61 73 73 65 72 74 28 4a 73 55 Unit._assert(JsU
2510: 6e 69 74 2e 5f 63 6f 6d 6d 65 6e 74 41 72 67 28 nit._commentArg(
2520: 31 2c 20 61 72 67 75 6d 65 6e 74 73 29 2c 20 62 1, arguments), b
2530: 6f 6f 6c 65 61 6e 56 61 6c 75 65 20 3d 3d 3d 20 ooleanValue ===
2540: 66 61 6c 73 65 2c 20 27 43 61 6c 6c 20 74 6f 20 false, 'Call to
2550: 61 73 73 65 72 74 46 61 6c 73 65 28 62 6f 6f 6c assertFalse(bool
2560: 65 61 6e 29 20 77 69 74 68 20 74 72 75 65 27 29 ean) with true')
2570: 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 ;..}..../**.. *
2580: 43 68 65 63 6b 73 20 74 68 61 74 20 74 77 6f 20 Checks that two
2590: 76 61 6c 75 65 73 20 61 72 65 20 65 71 75 61 6c values are equal
25a0: 20 28 75 73 69 6e 67 20 3d 3d 3d 29 0d 0a 20 2a (using ===).. *
25b0: 20 40 70 61 72 61 6d 20 63 6f 6d 6d 65 6e 74 20 @param comment
25c0: 6f 70 74 69 6f 6e 61 6c 2c 20 64 69 73 70 6c 61 optional, displa
25d0: 79 65 64 20 69 6e 20 74 68 65 20 63 61 73 65 20 yed in the case
25e0: 6f 66 20 66 61 69 6c 75 72 65 0d 0a 20 2a 20 40 of failure.. * @
25f0: 70 61 72 61 6d 20 65 78 70 65 63 74 65 64 20 74 param expected t
2600: 68 65 20 65 78 70 65 63 74 65 64 20 76 61 6c 75 he expected valu
2610: 65 0d 0a 20 2a 20 40 70 61 72 61 6d 20 61 63 74 e.. * @param act
2620: 75 61 6c 20 74 68 65 20 61 63 74 75 61 6c 20 76 ual the actual v
2630: 61 6c 75 65 0d 0a 20 2a 20 40 74 68 72 6f 77 73 alue.. * @throws
2640: 20 4a 73 55 6e 69 74 2e 46 61 69 6c 75 72 65 20 JsUnit.Failure
2650: 69 66 20 74 68 65 20 76 61 6c 75 65 73 20 61 72 if the values ar
2660: 65 20 6e 6f 74 20 65 71 75 61 6c 0d 0a 20 2a 20 e not equal.. *
2670: 40 74 68 72 6f 77 73 20 4a 73 55 6e 69 74 49 6e @throws JsUnitIn
2680: 76 61 6c 69 64 41 73 73 65 72 74 69 6f 6e 41 72 validAssertionAr
2690: 67 75 6d 65 6e 74 20 69 66 20 61 6e 20 69 6e 63 gument if an inc
26a0: 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 20 6f 66 orrect number of
26b0: 20 61 72 67 75 6d 65 6e 74 73 20 69 73 20 70 61 arguments is pa
26c0: 73 73 65 64 0d 0a 20 2a 2f 0d 0a 66 75 6e 63 74 ssed.. */..funct
26d0: 69 6f 6e 20 61 73 73 65 72 74 45 71 75 61 6c 73 ion assertEquals
26e0: 28 29 20 7b 0d 0a 20 20 20 20 4a 73 55 6e 69 74 () {.. JsUnit
26f0: 2e 5f 76 61 6c 69 64 61 74 65 41 72 67 75 6d 65 ._validateArgume
2700: 6e 74 73 28 32 2c 20 61 72 67 75 6d 65 6e 74 73 nts(2, arguments
2710: 29 3b 0d 0a 20 20 20 20 76 61 72 20 76 61 72 31 );.. var var1
2720: 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e 43 6f = JsUnit._nonCo
2730: 6d 6d 65 6e 74 41 72 67 28 31 2c 20 32 2c 20 61 mmentArg(1, 2, a
2740: 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20 rguments);..
2750: 76 61 72 20 76 61 72 32 20 3d 20 4a 73 55 6e 69 var var2 = JsUni
2760: 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 t._nonCommentArg
2770: 28 32 2c 20 32 2c 20 61 72 67 75 6d 65 6e 74 73 (2, 2, arguments
2780: 29 3b 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f );.. JsUnit._
2790: 61 73 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f 63 assert(JsUnit._c
27a0: 6f 6d 6d 65 6e 74 41 72 67 28 32 2c 20 61 72 67 ommentArg(2, arg
27b0: 75 6d 65 6e 74 73 29 2c 20 4a 73 55 6e 69 74 2e uments), JsUnit.
27c0: 5f 63 68 65 63 6b 45 71 75 61 6c 73 28 76 61 72 _checkEquals(var
27d0: 31 2c 20 76 61 72 32 29 2c 20 27 45 78 70 65 63 1, var2), 'Expec
27e0: 74 65 64 20 27 20 2b 20 4a 73 55 6e 69 74 2e 5f ted ' + JsUnit._
27f0: 64 69 73 70 6c 61 79 53 74 72 69 6e 67 46 6f 72 displayStringFor
2800: 56 61 6c 75 65 28 76 61 72 31 29 20 2b 20 27 20 Value(var1) + '
2810: 62 75 74 20 77 61 73 20 27 20 2b 20 4a 73 55 6e but was ' + JsUn
2820: 69 74 2e 5f 64 69 73 70 6c 61 79 53 74 72 69 6e it._displayStrin
2830: 67 46 6f 72 56 61 6c 75 65 28 76 61 72 32 29 29 gForValue(var2))
2840: 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 ;..}..../**.. *
2850: 43 68 65 63 6b 73 20 74 68 61 74 20 74 77 6f 20 Checks that two
2860: 76 61 6c 75 65 73 20 61 72 65 20 6e 6f 74 20 65 values are not e
2870: 71 75 61 6c 20 28 75 73 69 6e 67 20 21 3d 3d 29 qual (using !==)
2880: 0d 0a 20 2a 20 40 70 61 72 61 6d 20 63 6f 6d 6d .. * @param comm
2890: 65 6e 74 20 6f 70 74 69 6f 6e 61 6c 2c 20 64 69 ent optional, di
28a0: 73 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 63 splayed in the c
28b0: 61 73 65 20 6f 66 20 66 61 69 6c 75 72 65 0d 0a ase of failure..
28c0: 20 2a 20 40 70 61 72 61 6d 20 76 61 6c 75 65 31 * @param value1
28d0: 20 61 20 76 61 6c 75 65 0d 0a 20 2a 20 40 70 61 a value.. * @pa
28e0: 72 61 6d 20 76 61 6c 75 65 32 20 61 6e 6f 74 68 ram value2 anoth
28f0: 65 72 20 76 61 6c 75 65 0d 0a 20 2a 20 40 74 68 er value.. * @th
2900: 72 6f 77 73 20 4a 73 55 6e 69 74 2e 46 61 69 6c rows JsUnit.Fail
2910: 75 72 65 20 69 66 20 74 68 65 20 76 61 6c 75 65 ure if the value
2920: 73 20 61 72 65 20 65 71 75 61 6c 0d 0a 20 2a 20 s are equal.. *
2930: 40 74 68 72 6f 77 73 20 4a 73 55 6e 69 74 49 6e @throws JsUnitIn
2940: 76 61 6c 69 64 41 73 73 65 72 74 69 6f 6e 41 72 validAssertionAr
2950: 67 75 6d 65 6e 74 20 69 66 20 61 6e 20 69 6e 63 gument if an inc
2960: 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 20 6f 66 orrect number of
2970: 20 61 72 67 75 6d 65 6e 74 73 20 69 73 20 70 61 arguments is pa
2980: 73 73 65 64 0d 0a 20 2a 2f 0d 0a 66 75 6e 63 74 ssed.. */..funct
2990: 69 6f 6e 20 61 73 73 65 72 74 4e 6f 74 45 71 75 ion assertNotEqu
29a0: 61 6c 73 28 29 20 7b 0d 0a 20 20 20 20 4a 73 55 als() {.. JsU
29b0: 6e 69 74 2e 5f 76 61 6c 69 64 61 74 65 41 72 67 nit._validateArg
29c0: 75 6d 65 6e 74 73 28 32 2c 20 61 72 67 75 6d 65 uments(2, argume
29d0: 6e 74 73 29 3b 0d 0a 20 20 20 20 76 61 72 20 76 nts);.. var v
29e0: 61 72 31 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e 6f ar1 = JsUnit._no
29f0: 6e 43 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 32 nCommentArg(1, 2
2a00: 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 , arguments);..
2a10: 20 20 20 76 61 72 20 76 61 72 32 20 3d 20 4a 73 var var2 = Js
2a20: 55 6e 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 Unit._nonComment
2a30: 41 72 67 28 32 2c 20 32 2c 20 61 72 67 75 6d 65 Arg(2, 2, argume
2a40: 6e 74 73 29 3b 0d 0a 20 20 20 20 4a 73 55 6e 69 nts);.. JsUni
2a50: 74 2e 5f 61 73 73 65 72 74 28 4a 73 55 6e 69 74 t._assert(JsUnit
2a60: 2e 5f 63 6f 6d 6d 65 6e 74 41 72 67 28 32 2c 20 ._commentArg(2,
2a70: 61 72 67 75 6d 65 6e 74 73 29 2c 20 76 61 72 31 arguments), var1
2a80: 20 21 3d 3d 20 76 61 72 32 2c 20 27 45 78 70 65 !== var2, 'Expe
2a90: 63 74 65 64 20 6e 6f 74 20 74 6f 20 62 65 20 27 cted not to be '
2aa0: 20 2b 20 4a 73 55 6e 69 74 2e 5f 64 69 73 70 6c + JsUnit._displ
2ab0: 61 79 53 74 72 69 6e 67 46 6f 72 56 61 6c 75 65 ayStringForValue
2ac0: 28 76 61 72 32 29 29 3b 0d 0a 7d 0d 0a 0d 0a 2f (var2));..}..../
2ad0: 2a 2a 0d 0a 20 2a 20 43 68 65 63 6b 73 20 74 68 **.. * Checks th
2ae0: 61 74 20 61 20 76 61 6c 75 65 20 69 73 20 6e 75 at a value is nu
2af0: 6c 6c 0d 0a 20 2a 20 40 70 61 72 61 6d 20 63 6f ll.. * @param co
2b00: 6d 6d 65 6e 74 20 6f 70 74 69 6f 6e 61 6c 2c 20 mment optional,
2b10: 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 65 displayed in the
2b20: 20 63 61 73 65 20 6f 66 20 66 61 69 6c 75 72 65 case of failure
2b30: 0d 0a 20 2a 20 40 70 61 72 61 6d 20 76 61 6c 75 .. * @param valu
2b40: 65 20 74 68 65 20 76 61 6c 75 65 0d 0a 20 2a 20 e the value.. *
2b50: 40 74 68 72 6f 77 73 20 4a 73 55 6e 69 74 2e 46 @throws JsUnit.F
2b60: 61 69 6c 75 72 65 20 69 66 20 74 68 65 20 76 61 ailure if the va
2b70: 6c 75 65 20 69 73 20 6e 6f 74 20 6e 75 6c 6c 0d lue is not null.
2b80: 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 55 6e . * @throws JsUn
2b90: 69 74 49 6e 76 61 6c 69 64 41 73 73 65 72 74 69 itInvalidAsserti
2ba0: 6f 6e 41 72 67 75 6d 65 6e 74 20 69 66 20 61 6e onArgument if an
2bb0: 20 69 6e 63 6f 72 72 65 63 74 20 6e 75 6d 62 65 incorrect numbe
2bc0: 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 69 r of arguments i
2bd0: 73 20 70 61 73 73 65 64 0d 0a 20 2a 2f 0d 0a 66 s passed.. */..f
2be0: 75 6e 63 74 69 6f 6e 20 61 73 73 65 72 74 4e 75 unction assertNu
2bf0: 6c 6c 28 29 20 7b 0d 0a 20 20 20 20 4a 73 55 6e ll() {.. JsUn
2c00: 69 74 2e 5f 76 61 6c 69 64 61 74 65 41 72 67 75 it._validateArgu
2c10: 6d 65 6e 74 73 28 31 2c 20 61 72 67 75 6d 65 6e ments(1, argumen
2c20: 74 73 29 3b 0d 0a 20 20 20 20 76 61 72 20 61 56 ts);.. var aV
2c30: 61 72 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e ar = JsUnit._non
2c40: 43 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 31 2c CommentArg(1, 1,
2c50: 20 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 arguments);..
2c60: 20 20 4a 73 55 6e 69 74 2e 5f 61 73 73 65 72 74 JsUnit._assert
2c70: 28 4a 73 55 6e 69 74 2e 5f 63 6f 6d 6d 65 6e 74 (JsUnit._comment
2c80: 41 72 67 28 31 2c 20 61 72 67 75 6d 65 6e 74 73 Arg(1, arguments
2c90: 29 2c 20 61 56 61 72 20 3d 3d 3d 20 6e 75 6c 6c ), aVar === null
2ca0: 2c 20 27 45 78 70 65 63 74 65 64 20 27 20 2b 20 , 'Expected ' +
2cb0: 4a 73 55 6e 69 74 2e 5f 64 69 73 70 6c 61 79 53 JsUnit._displayS
2cc0: 74 72 69 6e 67 46 6f 72 56 61 6c 75 65 28 6e 75 tringForValue(nu
2cd0: 6c 6c 29 20 2b 20 27 20 62 75 74 20 77 61 73 20 ll) + ' but was
2ce0: 27 20 2b 20 4a 73 55 6e 69 74 2e 5f 64 69 73 70 ' + JsUnit._disp
2cf0: 6c 61 79 53 74 72 69 6e 67 46 6f 72 56 61 6c 75 layStringForValu
2d00: 65 28 61 56 61 72 29 29 3b 0d 0a 7d 0d 0a 0d 0a e(aVar));..}....
2d10: 2f 2a 2a 0d 0a 20 2a 20 43 68 65 63 6b 73 20 74 /**.. * Checks t
2d20: 68 61 74 20 61 20 76 61 6c 75 65 20 69 73 20 6e hat a value is n
2d30: 6f 74 20 6e 75 6c 6c 0d 0a 20 2a 20 40 70 61 72 ot null.. * @par
2d40: 61 6d 20 63 6f 6d 6d 65 6e 74 20 6f 70 74 69 6f am comment optio
2d50: 6e 61 6c 2c 20 64 69 73 70 6c 61 79 65 64 20 69 nal, displayed i
2d60: 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 66 61 n the case of fa
2d70: 69 6c 75 72 65 0d 0a 20 2a 20 40 70 61 72 61 6d ilure.. * @param
2d80: 20 76 61 6c 75 65 20 74 68 65 20 76 61 6c 75 65 value the value
2d90: 0d 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 55 .. * @throws JsU
2da0: 6e 69 74 2e 46 61 69 6c 75 72 65 20 69 66 20 74 nit.Failure if t
2db0: 68 65 20 76 61 6c 75 65 20 69 73 20 6e 75 6c 6c he value is null
2dc0: 0d 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 55 .. * @throws JsU
2dd0: 6e 69 74 49 6e 76 61 6c 69 64 41 73 73 65 72 74 nitInvalidAssert
2de0: 69 6f 6e 41 72 67 75 6d 65 6e 74 20 69 66 20 61 ionArgument if a
2df0: 6e 20 69 6e 63 6f 72 72 65 63 74 20 6e 75 6d 62 n incorrect numb
2e00: 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 er of arguments
2e10: 69 73 20 70 61 73 73 65 64 0d 0a 20 2a 2f 0d 0a is passed.. */..
2e20: 66 75 6e 63 74 69 6f 6e 20 61 73 73 65 72 74 4e function assertN
2e30: 6f 74 4e 75 6c 6c 28 29 20 7b 0d 0a 20 20 20 20 otNull() {..
2e40: 4a 73 55 6e 69 74 2e 5f 76 61 6c 69 64 61 74 65 JsUnit._validate
2e50: 41 72 67 75 6d 65 6e 74 73 28 31 2c 20 61 72 67 Arguments(1, arg
2e60: 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20 76 61 uments);.. va
2e70: 72 20 61 56 61 72 20 3d 20 4a 73 55 6e 69 74 2e r aVar = JsUnit.
2e80: 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 28 31 _nonCommentArg(1
2e90: 2c 20 31 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b , 1, arguments);
2ea0: 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f 61 73 .. JsUnit._as
2eb0: 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f 63 6f 6d sert(JsUnit._com
2ec0: 6d 65 6e 74 41 72 67 28 31 2c 20 61 72 67 75 6d mentArg(1, argum
2ed0: 65 6e 74 73 29 2c 20 4a 73 55 6e 69 74 2e 5f 63 ents), JsUnit._c
2ee0: 68 65 63 6b 4e 6f 74 4e 75 6c 6c 28 61 56 61 72 heckNotNull(aVar
2ef0: 29 2c 20 27 45 78 70 65 63 74 65 64 20 6e 6f 74 ), 'Expected not
2f00: 20 74 6f 20 62 65 20 27 20 2b 20 4a 73 55 6e 69 to be ' + JsUni
2f10: 74 2e 5f 64 69 73 70 6c 61 79 53 74 72 69 6e 67 t._displayString
2f20: 46 6f 72 56 61 6c 75 65 28 6e 75 6c 6c 29 29 3b ForValue(null));
2f30: 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 43 ..}..../**.. * C
2f40: 68 65 63 6b 73 20 74 68 61 74 20 61 20 76 61 6c hecks that a val
2f50: 75 65 20 69 73 20 75 6e 64 65 66 69 6e 65 64 0d ue is undefined.
2f60: 0a 20 2a 20 40 70 61 72 61 6d 20 63 6f 6d 6d 65 . * @param comme
2f70: 6e 74 20 6f 70 74 69 6f 6e 61 6c 2c 20 64 69 73 nt optional, dis
2f80: 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 63 61 played in the ca
2f90: 73 65 20 6f 66 20 66 61 69 6c 75 72 65 0d 0a 20 se of failure..
2fa0: 2a 20 40 70 61 72 61 6d 20 76 61 6c 75 65 20 74 * @param value t
2fb0: 68 65 20 76 61 6c 75 65 0d 0a 20 2a 20 40 74 68 he value.. * @th
2fc0: 72 6f 77 73 20 4a 73 55 6e 69 74 2e 46 61 69 6c rows JsUnit.Fail
2fd0: 75 72 65 20 69 66 20 74 68 65 20 76 61 6c 75 65 ure if the value
2fe0: 20 69 73 20 6e 6f 74 20 75 6e 64 65 66 69 6e 65 is not undefine
2ff0: 64 0d 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 d.. * @throws Js
3000: 55 6e 69 74 49 6e 76 61 6c 69 64 41 73 73 65 72 UnitInvalidAsser
3010: 74 69 6f 6e 41 72 67 75 6d 65 6e 74 20 69 66 20 tionArgument if
3020: 61 6e 20 69 6e 63 6f 72 72 65 63 74 20 6e 75 6d an incorrect num
3030: 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 ber of arguments
3040: 20 69 73 20 70 61 73 73 65 64 0d 0a 20 2a 2f 0d is passed.. */.
3050: 0a 66 75 6e 63 74 69 6f 6e 20 61 73 73 65 72 74 .function assert
3060: 55 6e 64 65 66 69 6e 65 64 28 29 20 7b 0d 0a 20 Undefined() {..
3070: 20 20 20 4a 73 55 6e 69 74 2e 5f 76 61 6c 69 64 JsUnit._valid
3080: 61 74 65 41 72 67 75 6d 65 6e 74 73 28 31 2c 20 ateArguments(1,
3090: 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 arguments);..
30a0: 20 76 61 72 20 61 56 61 72 20 3d 20 4a 73 55 6e var aVar = JsUn
30b0: 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 it._nonCommentAr
30c0: 67 28 31 2c 20 31 2c 20 61 72 67 75 6d 65 6e 74 g(1, 1, argument
30d0: 73 29 3b 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e s);.. JsUnit.
30e0: 5f 61 73 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f _assert(JsUnit._
30f0: 63 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 61 72 commentArg(1, ar
3100: 67 75 6d 65 6e 74 73 29 2c 20 61 56 61 72 20 3d guments), aVar =
3110: 3d 3d 20 4a 53 55 4e 49 54 5f 55 4e 44 45 46 49 == JSUNIT_UNDEFI
3120: 4e 45 44 5f 56 41 4c 55 45 2c 20 27 45 78 70 65 NED_VALUE, 'Expe
3130: 63 74 65 64 20 27 20 2b 20 4a 73 55 6e 69 74 2e cted ' + JsUnit.
3140: 5f 64 69 73 70 6c 61 79 53 74 72 69 6e 67 46 6f _displayStringFo
3150: 72 56 61 6c 75 65 28 4a 53 55 4e 49 54 5f 55 4e rValue(JSUNIT_UN
3160: 44 45 46 49 4e 45 44 5f 56 41 4c 55 45 29 20 2b DEFINED_VALUE) +
3170: 20 27 20 62 75 74 20 77 61 73 20 27 20 2b 20 4a ' but was ' + J
3180: 73 55 6e 69 74 2e 5f 64 69 73 70 6c 61 79 53 74 sUnit._displaySt
3190: 72 69 6e 67 46 6f 72 56 61 6c 75 65 28 61 56 61 ringForValue(aVa
31a0: 72 29 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a r));..}..../**..
31b0: 20 2a 20 43 68 65 63 6b 73 20 74 68 61 74 20 61 * Checks that a
31c0: 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 75 6e value is not un
31d0: 64 65 66 69 6e 65 64 0d 0a 20 2a 20 40 70 61 72 defined.. * @par
31e0: 61 6d 20 63 6f 6d 6d 65 6e 74 20 6f 70 74 69 6f am comment optio
31f0: 6e 61 6c 2c 20 64 69 73 70 6c 61 79 65 64 20 69 nal, displayed i
3200: 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 66 61 n the case of fa
3210: 69 6c 75 72 65 0d 0a 20 2a 20 40 70 61 72 61 6d ilure.. * @param
3220: 20 76 61 6c 75 65 20 74 68 65 20 76 61 6c 75 65 value the value
3230: 0d 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 55 .. * @throws JsU
3240: 6e 69 74 2e 46 61 69 6c 75 72 65 20 69 66 20 74 nit.Failure if t
3250: 68 65 20 76 61 6c 75 65 20 69 73 20 75 6e 64 65 he value is unde
3260: 66 69 6e 65 64 0d 0a 20 2a 20 40 74 68 72 6f 77 fined.. * @throw
3270: 73 20 4a 73 55 6e 69 74 49 6e 76 61 6c 69 64 41 s JsUnitInvalidA
3280: 73 73 65 72 74 69 6f 6e 41 72 67 75 6d 65 6e 74 ssertionArgument
3290: 20 69 66 20 61 6e 20 69 6e 63 6f 72 72 65 63 74 if an incorrect
32a0: 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d number of argum
32b0: 65 6e 74 73 20 69 73 20 70 61 73 73 65 64 0d 0a ents is passed..
32c0: 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 73 */..function as
32d0: 73 65 72 74 4e 6f 74 55 6e 64 65 66 69 6e 65 64 sertNotUndefined
32e0: 28 29 20 7b 0d 0a 20 20 20 20 4a 73 55 6e 69 74 () {.. JsUnit
32f0: 2e 5f 76 61 6c 69 64 61 74 65 41 72 67 75 6d 65 ._validateArgume
3300: 6e 74 73 28 31 2c 20 61 72 67 75 6d 65 6e 74 73 nts(1, arguments
3310: 29 3b 0d 0a 20 20 20 20 76 61 72 20 61 56 61 72 );.. var aVar
3320: 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e 43 6f = JsUnit._nonCo
3330: 6d 6d 65 6e 74 41 72 67 28 31 2c 20 31 2c 20 61 mmentArg(1, 1, a
3340: 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20 rguments);..
3350: 4a 73 55 6e 69 74 2e 5f 61 73 73 65 72 74 28 4a JsUnit._assert(J
3360: 73 55 6e 69 74 2e 5f 63 6f 6d 6d 65 6e 74 41 72 sUnit._commentAr
3370: 67 28 31 2c 20 61 72 67 75 6d 65 6e 74 73 29 2c g(1, arguments),
3380: 20 4a 73 55 6e 69 74 2e 5f 63 68 65 63 6b 4e 6f JsUnit._checkNo
3390: 74 55 6e 64 65 66 69 6e 65 64 28 61 56 61 72 29 tUndefined(aVar)
33a0: 2c 20 27 45 78 70 65 63 74 65 64 20 6e 6f 74 20 , 'Expected not
33b0: 74 6f 20 62 65 20 27 20 2b 20 4a 73 55 6e 69 74 to be ' + JsUnit
33c0: 2e 5f 64 69 73 70 6c 61 79 53 74 72 69 6e 67 46 ._displayStringF
33d0: 6f 72 56 61 6c 75 65 28 4a 53 55 4e 49 54 5f 55 orValue(JSUNIT_U
33e0: 4e 44 45 46 49 4e 45 44 5f 56 41 4c 55 45 29 29 NDEFINED_VALUE))
33f0: 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 ;..}..../**.. *
3400: 43 68 65 63 6b 73 20 74 68 61 74 20 61 20 76 61 Checks that a va
3410: 6c 75 65 20 69 73 20 4e 61 4e 20 28 4e 6f 74 20 lue is NaN (Not
3420: 61 20 4e 75 6d 62 65 72 29 0d 0a 20 2a 20 40 70 a Number).. * @p
3430: 61 72 61 6d 20 63 6f 6d 6d 65 6e 74 20 6f 70 74 aram comment opt
3440: 69 6f 6e 61 6c 2c 20 64 69 73 70 6c 61 79 65 64 ional, displayed
3450: 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 in the case of
3460: 66 61 69 6c 75 72 65 0d 0a 20 2a 20 40 70 61 72 failure.. * @par
3470: 61 6d 20 76 61 6c 75 65 20 74 68 65 20 76 61 6c am value the val
3480: 75 65 0d 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a ue.. * @throws J
3490: 73 55 6e 69 74 2e 46 61 69 6c 75 72 65 20 69 66 sUnit.Failure if
34a0: 20 74 68 65 20 76 61 6c 75 65 20 69 73 20 61 20 the value is a
34b0: 6e 75 6d 62 65 72 0d 0a 20 2a 20 40 74 68 72 6f number.. * @thro
34c0: 77 73 20 4a 73 55 6e 69 74 49 6e 76 61 6c 69 64 ws JsUnitInvalid
34d0: 41 73 73 65 72 74 69 6f 6e 41 72 67 75 6d 65 6e AssertionArgumen
34e0: 74 20 69 66 20 61 6e 20 69 6e 63 6f 72 72 65 63 t if an incorrec
34f0: 74 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 t number of argu
3500: 6d 65 6e 74 73 20 69 73 20 70 61 73 73 65 64 0d ments is passed.
3510: 0a 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 . */..function a
3520: 73 73 65 72 74 4e 61 4e 28 29 20 7b 0d 0a 20 20 ssertNaN() {..
3530: 20 20 4a 73 55 6e 69 74 2e 5f 76 61 6c 69 64 61 JsUnit._valida
3540: 74 65 41 72 67 75 6d 65 6e 74 73 28 31 2c 20 61 teArguments(1, a
3550: 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20 rguments);..
3560: 76 61 72 20 61 56 61 72 20 3d 20 4a 73 55 6e 69 var aVar = JsUni
3570: 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 t._nonCommentArg
3580: 28 31 2c 20 31 2c 20 61 72 67 75 6d 65 6e 74 73 (1, 1, arguments
3590: 29 3b 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f );.. JsUnit._
35a0: 61 73 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f 63 assert(JsUnit._c
35b0: 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 61 72 67 ommentArg(1, arg
35c0: 75 6d 65 6e 74 73 29 2c 20 69 73 4e 61 4e 28 61 uments), isNaN(a
35d0: 56 61 72 29 2c 20 27 45 78 70 65 63 74 65 64 20 Var), 'Expected
35e0: 4e 61 4e 27 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a NaN');..}..../**
35f0: 0d 0a 20 2a 20 43 68 65 63 6b 73 20 74 68 61 74 .. * Checks that
3600: 20 61 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 a value is not
3610: 4e 61 4e 20 28 69 2e 65 2e 20 69 73 20 61 20 6e NaN (i.e. is a n
3620: 75 6d 62 65 72 29 0d 0a 20 2a 20 40 70 61 72 61 umber).. * @para
3630: 6d 20 63 6f 6d 6d 65 6e 74 20 6f 70 74 69 6f 6e m comment option
3640: 61 6c 2c 20 64 69 73 70 6c 61 79 65 64 20 69 6e al, displayed in
3650: 20 74 68 65 20 63 61 73 65 20 6f 66 20 66 61 69 the case of fai
3660: 6c 75 72 65 0d 0a 20 2a 20 40 70 61 72 61 6d 20 lure.. * @param
3670: 76 61 6c 75 65 20 74 68 65 20 76 61 6c 75 65 0d value the value.
3680: 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 55 6e . * @throws JsUn
3690: 69 74 2e 46 61 69 6c 75 72 65 20 69 66 20 74 68 it.Failure if th
36a0: 65 20 76 61 6c 75 65 20 69 73 20 6e 6f 74 20 61 e value is not a
36b0: 20 6e 75 6d 62 65 72 0d 0a 20 2a 20 40 74 68 72 number.. * @thr
36c0: 6f 77 73 20 4a 73 55 6e 69 74 49 6e 76 61 6c 69 ows JsUnitInvali
36d0: 64 41 73 73 65 72 74 69 6f 6e 41 72 67 75 6d 65 dAssertionArgume
36e0: 6e 74 20 69 66 20 61 6e 20 69 6e 63 6f 72 72 65 nt if an incorre
36f0: 63 74 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 ct number of arg
3700: 75 6d 65 6e 74 73 20 69 73 20 70 61 73 73 65 64 uments is passed
3710: 0d 0a 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e 20 .. */..function
3720: 61 73 73 65 72 74 4e 6f 74 4e 61 4e 28 29 20 7b assertNotNaN() {
3730: 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f 76 61 .. JsUnit._va
3740: 6c 69 64 61 74 65 41 72 67 75 6d 65 6e 74 73 28 lidateArguments(
3750: 31 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 1, arguments);..
3760: 20 20 20 20 76 61 72 20 61 56 61 72 20 3d 20 4a var aVar = J
3770: 73 55 6e 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e sUnit._nonCommen
3780: 74 41 72 67 28 31 2c 20 31 2c 20 61 72 67 75 6d tArg(1, 1, argum
3790: 65 6e 74 73 29 3b 0d 0a 20 20 20 20 4a 73 55 6e ents);.. JsUn
37a0: 69 74 2e 5f 61 73 73 65 72 74 28 4a 73 55 6e 69 it._assert(JsUni
37b0: 74 2e 5f 63 6f 6d 6d 65 6e 74 41 72 67 28 31 2c t._commentArg(1,
37c0: 20 61 72 67 75 6d 65 6e 74 73 29 2c 20 21 69 73 arguments), !is
37d0: 4e 61 4e 28 61 56 61 72 29 2c 20 27 45 78 70 65 NaN(aVar), 'Expe
37e0: 63 74 65 64 20 6e 6f 74 20 4e 61 4e 27 29 3b 0d cted not NaN');.
37f0: 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 43 68 .}..../**.. * Ch
3800: 65 63 6b 73 20 74 68 61 74 20 61 6e 20 6f 62 6a ecks that an obj
3810: 65 63 74 20 69 73 20 65 71 75 61 6c 20 74 6f 20 ect is equal to
3820: 61 6e 6f 74 68 65 72 20 75 73 69 6e 67 20 3d 3d another using ==
3830: 3d 20 66 6f 72 20 70 72 69 6d 69 74 69 76 65 73 = for primitives
3840: 20 61 6e 64 20 74 68 65 69 72 20 6f 62 6a 65 63 and their objec
3850: 74 20 63 6f 75 6e 74 65 72 70 61 72 74 73 20 62 t counterparts b
3860: 75 74 20 61 6c 73 6f 20 64 65 73 63 65 64 69 6e ut also descedin
3870: 67 0d 0a 20 2a 20 69 6e 74 6f 20 63 6f 6c 6c 65 g.. * into colle
3880: 63 74 69 6f 6e 73 20 61 6e 64 20 63 61 6c 6c 69 ctions and calli
3890: 6e 67 20 61 73 73 65 72 74 4f 62 6a 65 63 74 45 ng assertObjectE
38a0: 71 75 61 6c 73 20 66 6f 72 20 65 61 63 68 20 65 quals for each e
38b0: 6c 65 6d 65 6e 74 0d 0a 20 2a 20 40 70 61 72 61 lement.. * @para
38c0: 6d 20 63 6f 6d 6d 65 6e 74 20 6f 70 74 69 6f 6e m comment option
38d0: 61 6c 2c 20 64 69 73 70 6c 61 79 65 64 20 69 6e al, displayed in
38e0: 20 74 68 65 20 63 61 73 65 20 6f 66 20 66 61 69 the case of fai
38f0: 6c 75 72 65 0d 0a 20 2a 20 40 70 61 72 61 6d 20 lure.. * @param
3900: 76 61 6c 75 65 20 74 68 65 20 65 78 70 65 63 74 value the expect
3910: 65 64 20 76 61 6c 75 65 0d 0a 20 2a 20 40 70 61 ed value.. * @pa
3920: 72 61 6d 20 76 61 6c 75 65 20 74 68 65 20 61 63 ram value the ac
3930: 74 75 61 6c 20 76 61 6c 75 65 0d 0a 20 2a 20 40 tual value.. * @
3940: 74 68 72 6f 77 73 20 4a 73 55 6e 69 74 2e 46 61 throws JsUnit.Fa
3950: 69 6c 75 72 65 20 69 66 20 74 68 65 20 61 63 74 ilure if the act
3960: 75 61 6c 20 76 61 6c 75 65 20 64 6f 65 73 20 6e ual value does n
3970: 6f 74 20 65 71 75 61 6c 20 74 68 65 20 65 78 70 ot equal the exp
3980: 65 63 74 65 64 20 76 61 6c 75 65 0d 0a 20 2a 20 ected value.. *
3990: 40 74 68 72 6f 77 73 20 4a 73 55 6e 69 74 49 6e @throws JsUnitIn
39a0: 76 61 6c 69 64 41 73 73 65 72 74 69 6f 6e 41 72 validAssertionAr
39b0: 67 75 6d 65 6e 74 20 69 66 20 61 6e 20 69 6e 63 gument if an inc
39c0: 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 20 6f 66 orrect number of
39d0: 20 61 72 67 75 6d 65 6e 74 73 20 69 73 20 70 61 arguments is pa
39e0: 73 73 65 64 0d 0a 20 2a 2f 0d 0a 66 75 6e 63 74 ssed.. */..funct
39f0: 69 6f 6e 20 61 73 73 65 72 74 4f 62 6a 65 63 74 ion assertObject
3a00: 45 71 75 61 6c 73 28 29 20 7b 0d 0a 20 20 20 20 Equals() {..
3a10: 4a 73 55 6e 69 74 2e 5f 76 61 6c 69 64 61 74 65 JsUnit._validate
3a20: 41 72 67 75 6d 65 6e 74 73 28 32 2c 20 61 72 67 Arguments(2, arg
3a30: 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20 76 61 uments);.. va
3a40: 72 20 76 61 72 31 20 3d 20 4a 73 55 6e 69 74 2e r var1 = JsUnit.
3a50: 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 28 31 _nonCommentArg(1
3a60: 2c 20 32 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b , 2, arguments);
3a70: 0d 0a 20 20 20 20 76 61 72 20 76 61 72 32 20 3d .. var var2 =
3a80: 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d JsUnit._nonComm
3a90: 65 6e 74 41 72 67 28 32 2c 20 32 2c 20 61 72 67 entArg(2, 2, arg
3aa0: 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20 76 61 uments);.. va
3ab0: 72 20 66 61 69 6c 75 72 65 4d 65 73 73 61 67 65 r failureMessage
3ac0: 20 3d 20 4a 73 55 6e 69 74 2e 5f 63 6f 6d 6d 65 = JsUnit._comme
3ad0: 6e 74 41 72 67 28 32 2c 20 61 72 67 75 6d 65 6e ntArg(2, argumen
3ae0: 74 73 29 20 3f 20 4a 73 55 6e 69 74 2e 5f 63 6f ts) ? JsUnit._co
3af0: 6d 6d 65 6e 74 41 72 67 28 32 2c 20 61 72 67 75 mmentArg(2, argu
3b00: 6d 65 6e 74 73 29 20 3a 20 27 27 3b 0d 0a 20 20 ments) : '';..
3b10: 20 20 69 66 20 28 76 61 72 31 20 3d 3d 3d 20 76 if (var1 === v
3b20: 61 72 32 29 0d 0a 20 20 20 20 20 20 20 20 72 65 ar2).. re
3b30: 74 75 72 6e 3b 0d 0a 0d 0a 20 20 20 20 76 61 72 turn;.... var
3b40: 20 69 73 45 71 75 61 6c 20 3d 20 66 61 6c 73 65 isEqual = false
3b50: 3b 0d 0a 0d 0a 20 20 20 20 76 61 72 20 74 79 70 ;.... var typ
3b60: 65 4f 66 56 61 72 31 20 3d 20 4a 73 55 6e 69 74 eOfVar1 = JsUnit
3b70: 2e 5f 74 72 75 65 54 79 70 65 4f 66 28 76 61 72 ._trueTypeOf(var
3b80: 31 29 3b 0d 0a 20 20 20 20 76 61 72 20 74 79 70 1);.. var typ
3b90: 65 4f 66 56 61 72 32 20 3d 20 4a 73 55 6e 69 74 eOfVar2 = JsUnit
3ba0: 2e 5f 74 72 75 65 54 79 70 65 4f 66 28 76 61 72 ._trueTypeOf(var
3bb0: 32 29 3b 0d 0a 0d 0a 20 20 20 20 69 66 20 28 74 2);.... if (t
3bc0: 79 70 65 4f 66 56 61 72 31 20 3d 3d 20 74 79 70 ypeOfVar1 == typ
3bd0: 65 4f 66 56 61 72 32 29 20 7b 0d 0a 20 20 20 20 eOfVar2) {..
3be0: 20 20 20 20 76 61 72 20 70 72 69 6d 69 74 69 76 var primitiv
3bf0: 65 45 71 75 61 6c 69 74 79 50 72 65 64 69 63 61 eEqualityPredica
3c00: 74 65 20 3d 20 4a 73 55 6e 69 74 2e 50 52 49 4d te = JsUnit.PRIM
3c10: 49 54 49 56 45 5f 45 51 55 41 4c 49 54 59 5f 50 ITIVE_EQUALITY_P
3c20: 52 45 44 49 43 41 54 45 53 5b 74 79 70 65 4f 66 REDICATES[typeOf
3c30: 56 61 72 31 5d 3b 0d 0a 20 20 20 20 20 20 20 20 Var1];..
3c40: 69 66 20 28 70 72 69 6d 69 74 69 76 65 45 71 75 if (primitiveEqu
3c50: 61 6c 69 74 79 50 72 65 64 69 63 61 74 65 29 20 alityPredicate)
3c60: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 {.. i
3c70: 73 45 71 75 61 6c 20 3d 20 70 72 69 6d 69 74 69 sEqual = primiti
3c80: 76 65 45 71 75 61 6c 69 74 79 50 72 65 64 69 63 veEqualityPredic
3c90: 61 74 65 28 76 61 72 31 2c 20 76 61 72 32 29 3b ate(var1, var2);
3ca0: 0d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 .. } else
3cb0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
3cc0: 76 61 72 20 65 78 70 65 63 74 65 64 4b 65 79 73 var expectedKeys
3cd0: 20 3d 20 4a 73 55 6e 69 74 2e 55 74 69 6c 2e 67 = JsUnit.Util.g
3ce0: 65 74 4b 65 79 73 28 76 61 72 31 29 2e 73 6f 72 etKeys(var1).sor
3cf0: 74 28 29 2e 6a 6f 69 6e 28 22 2c 20 22 29 3b 0d t().join(", ");.
3d00: 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 . var
3d10: 20 61 63 74 75 61 6c 4b 65 79 73 20 3d 20 4a 73 actualKeys = Js
3d20: 55 6e 69 74 2e 55 74 69 6c 2e 67 65 74 4b 65 79 Unit.Util.getKey
3d30: 73 28 76 61 72 32 29 2e 73 6f 72 74 28 29 2e 6a s(var2).sort().j
3d40: 6f 69 6e 28 22 2c 20 22 29 3b 0d 0a 20 20 20 20 oin(", ");..
3d50: 20 20 20 20 20 20 20 20 69 66 20 28 65 78 70 65 if (expe
3d60: 63 74 65 64 4b 65 79 73 20 21 3d 20 61 63 74 75 ctedKeys != actu
3d70: 61 6c 4b 65 79 73 29 20 7b 0d 0a 20 20 20 20 20 alKeys) {..
3d80: 20 20 20 20 20 20 20 20 20 20 20 4a 73 55 6e 69 JsUni
3d90: 74 2e 5f 61 73 73 65 72 74 28 66 61 69 6c 75 72 t._assert(failur
3da0: 65 4d 65 73 73 61 67 65 2c 20 66 61 6c 73 65 2c eMessage, false,
3db0: 20 27 45 78 70 65 63 74 65 64 20 6b 65 79 73 20 'Expected keys
3dc0: 22 27 20 2b 20 65 78 70 65 63 74 65 64 4b 65 79 "' + expectedKey
3dd0: 73 20 2b 20 27 22 20 62 75 74 20 66 6f 75 6e 64 s + '" but found
3de0: 20 22 27 20 2b 20 61 63 74 75 61 6c 4b 65 79 73 "' + actualKeys
3df0: 20 2b 20 27 22 27 29 3b 0d 0a 20 20 20 20 20 20 + '"');..
3e00: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
3e10: 20 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 for (var i
3e20: 69 6e 20 76 61 72 31 29 20 7b 0d 0a 20 20 20 20 in var1) {..
3e30: 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 65 asse
3e40: 72 74 4f 62 6a 65 63 74 45 71 75 61 6c 73 28 66 rtObjectEquals(f
3e50: 61 69 6c 75 72 65 4d 65 73 73 61 67 65 20 2b 20 ailureMessage +
3e60: 27 20 66 6f 75 6e 64 20 6e 65 73 74 65 64 20 27 ' found nested '
3e70: 20 2b 20 74 79 70 65 4f 66 56 61 72 31 20 2b 20 + typeOfVar1 +
3e80: 27 40 27 20 2b 20 69 20 2b 20 27 5c 6e 27 2c 20 '@' + i + '\n',
3e90: 76 61 72 31 5b 69 5d 2c 20 76 61 72 32 5b 69 5d var1[i], var2[i]
3ea0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 );..
3eb0: 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 }.. i
3ec0: 73 45 71 75 61 6c 20 3d 20 74 72 75 65 3b 0d 0a sEqual = true;..
3ed0: 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d }.. }
3ee0: 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f 61 73 .. JsUnit._as
3ef0: 73 65 72 74 28 66 61 69 6c 75 72 65 4d 65 73 73 sert(failureMess
3f00: 61 67 65 2c 20 69 73 45 71 75 61 6c 2c 20 27 45 age, isEqual, 'E
3f10: 78 70 65 63 74 65 64 20 27 20 2b 20 4a 73 55 6e xpected ' + JsUn
3f20: 69 74 2e 5f 64 69 73 70 6c 61 79 53 74 72 69 6e it._displayStrin
3f30: 67 46 6f 72 56 61 6c 75 65 28 76 61 72 31 29 20 gForValue(var1)
3f40: 2b 20 27 20 62 75 74 20 77 61 73 20 27 20 2b 20 + ' but was ' +
3f50: 4a 73 55 6e 69 74 2e 5f 64 69 73 70 6c 61 79 53 JsUnit._displayS
3f60: 74 72 69 6e 67 46 6f 72 56 61 6c 75 65 28 76 61 tringForValue(va
3f70: 72 32 29 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d r2));..}..../**.
3f80: 0a 20 2a 20 43 68 65 63 6b 73 20 74 68 61 74 20 . * Checks that
3f90: 61 6e 20 61 72 72 61 79 20 69 73 20 65 71 75 61 an array is equa
3fa0: 6c 20 74 6f 20 61 6e 6f 74 68 65 72 20 62 79 20 l to another by
3fb0: 63 68 65 63 6b 69 6e 67 20 74 68 61 74 20 62 6f checking that bo
3fc0: 74 68 20 61 72 65 20 61 72 72 61 79 73 20 61 6e th are arrays an
3fd0: 64 20 74 68 65 6e 20 63 6f 6d 70 61 72 69 6e 67 d then comparing
3fe0: 20 74 68 65 69 72 20 65 6c 65 6d 65 6e 74 73 20 their elements
3ff0: 75 73 69 6e 67 20 61 73 73 65 72 74 4f 62 6a 65 using assertObje
4000: 63 74 45 71 75 61 6c 73 0d 0a 20 2a 20 40 70 61 ctEquals.. * @pa
4010: 72 61 6d 20 63 6f 6d 6d 65 6e 74 20 6f 70 74 69 ram comment opti
4020: 6f 6e 61 6c 2c 20 64 69 73 70 6c 61 79 65 64 20 onal, displayed
4030: 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 66 in the case of f
4040: 61 69 6c 75 72 65 0d 0a 20 2a 20 40 70 61 72 61 ailure.. * @para
4050: 6d 20 76 61 6c 75 65 20 74 68 65 20 65 78 70 65 m value the expe
4060: 63 74 65 64 20 61 72 72 61 79 0d 0a 20 2a 20 40 cted array.. * @
4070: 70 61 72 61 6d 20 76 61 6c 75 65 20 74 68 65 20 param value the
4080: 61 63 74 75 61 6c 20 61 72 72 61 79 0d 0a 20 2a actual array.. *
4090: 20 40 74 68 72 6f 77 73 20 4a 73 55 6e 69 74 2e @throws JsUnit.
40a0: 46 61 69 6c 75 72 65 20 69 66 20 74 68 65 20 61 Failure if the a
40b0: 63 74 75 61 6c 20 76 61 6c 75 65 20 64 6f 65 73 ctual value does
40c0: 20 6e 6f 74 20 65 71 75 61 6c 20 74 68 65 20 65 not equal the e
40d0: 78 70 65 63 74 65 64 20 76 61 6c 75 65 0d 0a 20 xpected value..
40e0: 2a 20 40 74 68 72 6f 77 73 20 4a 73 55 6e 69 74 * @throws JsUnit
40f0: 49 6e 76 61 6c 69 64 41 73 73 65 72 74 69 6f 6e InvalidAssertion
4100: 41 72 67 75 6d 65 6e 74 20 69 66 20 61 6e 20 69 Argument if an i
4110: 6e 63 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 20 ncorrect number
4120: 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 69 73 20 of arguments is
4130: 70 61 73 73 65 64 0d 0a 20 2a 2f 0d 0a 66 75 6e passed.. */..fun
4140: 63 74 69 6f 6e 20 61 73 73 65 72 74 41 72 72 61 ction assertArra
4150: 79 45 71 75 61 6c 73 28 29 20 7b 0d 0a 20 20 20 yEquals() {..
4160: 20 4a 73 55 6e 69 74 2e 5f 76 61 6c 69 64 61 74 JsUnit._validat
4170: 65 41 72 67 75 6d 65 6e 74 73 28 32 2c 20 61 72 eArguments(2, ar
4180: 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20 76 guments);.. v
4190: 61 72 20 61 72 72 61 79 31 20 3d 20 4a 73 55 6e ar array1 = JsUn
41a0: 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 it._nonCommentAr
41b0: 67 28 31 2c 20 32 2c 20 61 72 67 75 6d 65 6e 74 g(1, 2, argument
41c0: 73 29 3b 0d 0a 20 20 20 20 76 61 72 20 61 72 72 s);.. var arr
41d0: 61 79 32 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e 6f ay2 = JsUnit._no
41e0: 6e 43 6f 6d 6d 65 6e 74 41 72 67 28 32 2c 20 32 nCommentArg(2, 2
41f0: 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 , arguments);..
4200: 20 20 20 69 66 20 28 4a 73 55 6e 69 74 2e 5f 74 if (JsUnit._t
4210: 72 75 65 54 79 70 65 4f 66 28 61 72 72 61 79 31 rueTypeOf(array1
4220: 29 20 21 3d 20 27 41 72 72 61 79 27 20 7c 7c 20 ) != 'Array' ||
4230: 4a 73 55 6e 69 74 2e 5f 74 72 75 65 54 79 70 65 JsUnit._trueType
4240: 4f 66 28 61 72 72 61 79 32 29 20 21 3d 20 27 41 Of(array2) != 'A
4250: 72 72 61 79 27 29 20 7b 0d 0a 20 20 20 20 20 20 rray') {..
4260: 20 20 74 68 72 6f 77 20 6e 65 77 20 4a 73 55 6e throw new JsUn
4270: 69 74 2e 41 73 73 65 72 74 69 6f 6e 41 72 67 75 it.AssertionArgu
4280: 6d 65 6e 74 45 72 72 6f 72 28 27 4e 6f 6e 2d 61 mentError('Non-a
4290: 72 72 61 79 20 70 61 73 73 65 64 20 74 6f 20 61 rray passed to a
42a0: 73 73 65 72 74 41 72 72 61 79 45 71 75 61 6c 73 ssertArrayEquals
42b0: 27 29 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 ');.. }..
42c0: 61 73 73 65 72 74 4f 62 6a 65 63 74 45 71 75 61 assertObjectEqua
42d0: 6c 73 28 4a 73 55 6e 69 74 2e 5f 63 6f 6d 6d 65 ls(JsUnit._comme
42e0: 6e 74 41 72 67 28 32 2c 20 61 72 67 75 6d 65 6e ntArg(2, argumen
42f0: 74 73 29 2c 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e ts), JsUnit._non
4300: 43 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 32 2c CommentArg(1, 2,
4310: 20 61 72 67 75 6d 65 6e 74 73 29 2c 20 4a 73 55 arguments), JsU
4320: 6e 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 nit._nonCommentA
4330: 72 67 28 32 2c 20 32 2c 20 61 72 67 75 6d 65 6e rg(2, 2, argumen
4340: 74 73 29 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d ts));..}..../**.
4350: 0a 20 2a 20 43 68 65 63 6b 73 20 74 68 61 74 20 . * Checks that
4360: 61 20 76 61 6c 75 65 20 65 76 61 6c 75 61 74 65 a value evaluate
4370: 73 20 74 6f 20 74 72 75 65 20 69 6e 20 74 68 65 s to true in the
4380: 20 73 65 6e 73 65 20 74 68 61 74 20 76 61 6c 75 sense that valu
4390: 65 20 3d 3d 20 74 72 75 65 0d 0a 20 2a 20 40 70 e == true.. * @p
43a0: 61 72 61 6d 20 63 6f 6d 6d 65 6e 74 20 6f 70 74 aram comment opt
43b0: 69 6f 6e 61 6c 2c 20 64 69 73 70 6c 61 79 65 64 ional, displayed
43c0: 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 in the case of
43d0: 66 61 69 6c 75 72 65 0d 0a 20 2a 20 40 70 61 72 failure.. * @par
43e0: 61 6d 20 76 61 6c 75 65 20 74 68 65 20 76 61 6c am value the val
43f0: 75 65 0d 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a ue.. * @throws J
4400: 73 55 6e 69 74 2e 46 61 69 6c 75 72 65 20 69 66 sUnit.Failure if
4410: 20 74 68 65 20 61 63 74 75 61 6c 20 76 61 6c 75 the actual valu
4420: 65 20 64 6f 65 73 20 6e 6f 74 20 65 76 61 6c 75 e does not evalu
4430: 61 74 65 20 74 6f 20 74 72 75 65 0d 0a 20 2a 20 ate to true.. *
4440: 40 74 68 72 6f 77 73 20 4a 73 55 6e 69 74 49 6e @throws JsUnitIn
4450: 76 61 6c 69 64 41 73 73 65 72 74 69 6f 6e 41 72 validAssertionAr
4460: 67 75 6d 65 6e 74 20 69 66 20 61 6e 20 69 6e 63 gument if an inc
4470: 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 20 6f 66 orrect number of
4480: 20 61 72 67 75 6d 65 6e 74 73 20 69 73 20 70 61 arguments is pa
4490: 73 73 65 64 0d 0a 20 2a 2f 0d 0a 66 75 6e 63 74 ssed.. */..funct
44a0: 69 6f 6e 20 61 73 73 65 72 74 45 76 61 6c 75 61 ion assertEvalua
44b0: 74 65 73 54 6f 54 72 75 65 28 29 20 7b 0d 0a 20 tesToTrue() {..
44c0: 20 20 20 4a 73 55 6e 69 74 2e 5f 76 61 6c 69 64 JsUnit._valid
44d0: 61 74 65 41 72 67 75 6d 65 6e 74 73 28 31 2c 20 ateArguments(1,
44e0: 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 arguments);..
44f0: 20 76 61 72 20 76 61 6c 75 65 20 3d 20 4a 73 55 var value = JsU
4500: 6e 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 nit._nonCommentA
4510: 72 67 28 31 2c 20 31 2c 20 61 72 67 75 6d 65 6e rg(1, 1, argumen
4520: 74 73 29 3b 0d 0a 20 20 20 20 69 66 20 28 21 76 ts);.. if (!v
4530: 61 6c 75 65 29 0d 0a 20 20 20 20 20 20 20 20 66 alue).. f
4540: 61 69 6c 28 4a 73 55 6e 69 74 2e 5f 63 6f 6d 6d ail(JsUnit._comm
4550: 65 6e 74 41 72 67 28 31 2c 20 61 72 67 75 6d 65 entArg(1, argume
4560: 6e 74 73 29 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a nts));..}..../**
4570: 0d 0a 20 2a 20 43 68 65 63 6b 73 20 74 68 61 74 .. * Checks that
4580: 20 61 20 76 61 6c 75 65 20 65 76 61 6c 75 61 74 a value evaluat
4590: 65 73 20 74 6f 20 66 61 6c 73 65 20 69 6e 20 74 es to false in t
45a0: 68 65 20 73 65 6e 73 65 20 74 68 61 74 20 76 61 he sense that va
45b0: 6c 75 65 20 3d 3d 20 66 61 6c 73 65 0d 0a 20 2a lue == false.. *
45c0: 20 40 70 61 72 61 6d 20 63 6f 6d 6d 65 6e 74 20 @param comment
45d0: 6f 70 74 69 6f 6e 61 6c 2c 20 64 69 73 70 6c 61 optional, displa
45e0: 79 65 64 20 69 6e 20 74 68 65 20 63 61 73 65 20 yed in the case
45f0: 6f 66 20 66 61 69 6c 75 72 65 0d 0a 20 2a 20 40 of failure.. * @
4600: 70 61 72 61 6d 20 76 61 6c 75 65 20 74 68 65 20 param value the
4610: 76 61 6c 75 65 0d 0a 20 2a 20 40 74 68 72 6f 77 value.. * @throw
4620: 73 20 4a 73 55 6e 69 74 2e 46 61 69 6c 75 72 65 s JsUnit.Failure
4630: 20 69 66 20 74 68 65 20 61 63 74 75 61 6c 20 76 if the actual v
4640: 61 6c 75 65 20 64 6f 65 73 20 6e 6f 74 20 65 76 alue does not ev
4650: 61 6c 75 61 74 65 20 74 6f 20 74 72 75 65 0d 0a aluate to true..
4660: 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 55 6e 69 * @throws JsUni
4670: 74 49 6e 76 61 6c 69 64 41 73 73 65 72 74 69 6f tInvalidAssertio
4680: 6e 41 72 67 75 6d 65 6e 74 20 69 66 20 61 6e 20 nArgument if an
4690: 69 6e 63 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 incorrect number
46a0: 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 69 73 of arguments is
46b0: 20 70 61 73 73 65 64 0d 0a 20 2a 2f 0d 0a 66 75 passed.. */..fu
46c0: 6e 63 74 69 6f 6e 20 61 73 73 65 72 74 45 76 61 nction assertEva
46d0: 6c 75 61 74 65 73 54 6f 46 61 6c 73 65 28 29 20 luatesToFalse()
46e0: 7b 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f 76 {.. JsUnit._v
46f0: 61 6c 69 64 61 74 65 41 72 67 75 6d 65 6e 74 73 alidateArguments
4700: 28 31 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b 0d (1, arguments);.
4710: 0a 20 20 20 20 76 61 72 20 76 61 6c 75 65 20 3d . var value =
4720: 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d JsUnit._nonComm
4730: 65 6e 74 41 72 67 28 31 2c 20 31 2c 20 61 72 67 entArg(1, 1, arg
4740: 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20 69 66 uments);.. if
4750: 20 28 76 61 6c 75 65 29 0d 0a 20 20 20 20 20 20 (value)..
4760: 20 20 66 61 69 6c 28 4a 73 55 6e 69 74 2e 5f 63 fail(JsUnit._c
4770: 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 61 72 67 ommentArg(1, arg
4780: 75 6d 65 6e 74 73 29 29 3b 0d 0a 7d 0d 0a 0d 0a uments));..}....
4790: 2f 2a 2a 0d 0a 20 2a 20 43 68 65 63 6b 73 20 74 /**.. * Checks t
47a0: 68 61 74 20 61 20 76 61 6c 75 65 20 69 73 20 74 hat a value is t
47b0: 68 65 20 73 61 6d 65 20 61 73 20 61 6e 20 48 54 he same as an HT
47c0: 4d 4c 20 73 74 72 69 6e 67 20 62 79 20 22 73 74 ML string by "st
47d0: 61 6e 64 61 72 64 69 7a 69 6e 67 22 20 62 6f 74 andardizing" bot
47e0: 68 20 61 6e 64 20 63 6f 6d 70 61 72 69 6e 67 20 h and comparing
47f0: 74 68 65 20 72 65 73 75 6c 74 20 66 6f 72 20 65 the result for e
4800: 71 75 61 6c 69 74 79 2e 0d 0a 20 2a 20 53 74 61 quality... * Sta
4810: 6e 64 61 72 64 69 7a 69 6e 67 20 69 73 20 64 6f ndardizing is do
4820: 6e 65 20 62 79 20 74 65 6d 70 6f 72 61 72 69 6c ne by temporaril
4830: 79 20 63 72 65 61 74 69 6e 67 20 61 20 44 49 56 y creating a DIV
4840: 2c 20 73 65 74 74 69 6e 67 20 74 68 65 20 69 6e , setting the in
4850: 6e 65 72 48 54 4d 4c 20 6f 66 20 74 68 65 20 44 nerHTML of the D
4860: 49 56 20 74 6f 20 74 68 65 20 73 74 72 69 6e 67 IV to the string
4870: 2c 20 61 6e 64 20 61 73 6b 69 6e 67 20 66 6f 72 , and asking for
4880: 0d 0a 20 2a 20 74 68 65 20 69 6e 6e 65 72 48 54 .. * the innerHT
4890: 4d 4c 20 62 61 63 6b 2e 0d 0a 20 2a 20 40 70 61 ML back... * @pa
48a0: 72 61 6d 20 63 6f 6d 6d 65 6e 74 20 6f 70 74 69 ram comment opti
48b0: 6f 6e 61 6c 2c 20 64 69 73 70 6c 61 79 65 64 20 onal, displayed
48c0: 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 20 66 in the case of f
48d0: 61 69 6c 75 72 65 0d 0a 20 2a 20 40 70 61 72 61 ailure.. * @para
48e0: 6d 20 76 61 6c 75 65 31 20 74 68 65 20 65 78 70 m value1 the exp
48f0: 65 63 74 65 64 20 48 54 4d 4c 20 73 74 72 69 6e ected HTML strin
4900: 67 0d 0a 20 2a 20 40 70 61 72 61 6d 20 76 61 6c g.. * @param val
4910: 75 65 32 20 74 68 65 20 61 63 74 75 61 6c 20 48 ue2 the actual H
4920: 54 4d 4c 20 73 74 72 69 6e 67 0d 0a 20 2a 20 40 TML string.. * @
4930: 74 68 72 6f 77 73 20 4a 73 55 6e 69 74 2e 46 61 throws JsUnit.Fa
4940: 69 6c 75 72 65 20 69 66 20 74 68 65 20 73 74 61 ilure if the sta
4950: 6e 64 61 72 64 69 7a 65 64 20 61 63 74 75 61 6c ndardized actual
4960: 20 76 61 6c 75 65 20 64 6f 65 73 20 6e 6f 74 20 value does not
4970: 65 71 75 61 6c 20 74 68 65 20 73 74 61 6e 64 61 equal the standa
4980: 72 64 69 7a 65 64 20 65 78 70 65 63 74 65 64 20 rdized expected
4990: 76 61 6c 75 65 0d 0a 20 2a 20 40 74 68 72 6f 77 value.. * @throw
49a0: 73 20 4a 73 55 6e 69 74 49 6e 76 61 6c 69 64 41 s JsUnitInvalidA
49b0: 73 73 65 72 74 69 6f 6e 41 72 67 75 6d 65 6e 74 ssertionArgument
49c0: 20 69 66 20 61 6e 20 69 6e 63 6f 72 72 65 63 74 if an incorrect
49d0: 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d number of argum
49e0: 65 6e 74 73 20 69 73 20 70 61 73 73 65 64 0d 0a ents is passed..
49f0: 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 73 */..function as
4a00: 73 65 72 74 48 54 4d 4c 45 71 75 61 6c 73 28 29 sertHTMLEquals()
4a10: 20 7b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2f {.. .. //
4a20: 53 6e 65 67 6f 70 61 74 2e 0d 0a 20 20 20 20 4a Snegopat... J
4a30: 73 55 6e 69 74 2e 65 72 72 6f 72 28 22 61 73 73 sUnit.error("ass
4a40: 65 72 74 48 54 4d 4c 45 71 75 61 6c 73 28 29 20 ertHTMLEquals()
4a50: d0 bd d0 b5 20 d0 bf d0 be d0 b4 d0 b4 d0 b5 d1 .... ...........
4a60: 80 d0 b6 d0 b8 d0 b2 d0 b0 d0 b5 d1 82 d1 81 d1 ................
4a70: 8f 20 d0 b2 20 d0 a1 d0 bd d0 b5 d0 b3 d0 be d0 . .. ...........
4a80: bf d0 b0 d1 82 d0 b5 2e 22 29 3b 0d 0a 20 20 20 ........");..
4a90: 20 0d 0a 20 20 20 20 2f 2f 4a 73 55 6e 69 74 2e .. //JsUnit.
4aa0: 5f 76 61 6c 69 64 61 74 65 41 72 67 75 6d 65 6e _validateArgumen
4ab0: 74 73 28 32 2c 20 61 72 67 75 6d 65 6e 74 73 29 ts(2, arguments)
4ac0: 3b 0d 0a 20 20 20 20 2f 2f 76 61 72 20 76 61 72 ;.. //var var
4ad0: 31 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e 43 1 = JsUnit._nonC
4ae0: 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 32 2c 20 ommentArg(1, 2,
4af0: 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 arguments);..
4b00: 20 2f 2f 76 61 72 20 76 61 72 32 20 3d 20 4a 73 //var var2 = Js
4b10: 55 6e 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 Unit._nonComment
4b20: 41 72 67 28 32 2c 20 32 2c 20 61 72 67 75 6d 65 Arg(2, 2, argume
4b30: 6e 74 73 29 3b 0d 0a 20 20 20 20 2f 2f 76 61 72 nts);.. //var
4b40: 20 76 61 72 31 53 74 61 6e 64 61 72 64 69 7a 65 var1Standardize
4b50: 64 20 3d 20 4a 73 55 6e 69 74 2e 55 74 69 6c 2e d = JsUnit.Util.
4b60: 73 74 61 6e 64 61 72 64 69 7a 65 48 54 4d 4c 28 standardizeHTML(
4b70: 76 61 72 31 29 3b 0d 0a 20 20 20 20 2f 2f 76 61 var1);.. //va
4b80: 72 20 76 61 72 32 53 74 61 6e 64 61 72 64 69 7a r var2Standardiz
4b90: 65 64 20 3d 20 4a 73 55 6e 69 74 2e 55 74 69 6c ed = JsUnit.Util
4ba0: 2e 73 74 61 6e 64 61 72 64 69 7a 65 48 54 4d 4c .standardizeHTML
4bb0: 28 76 61 72 32 29 3b 0d 0a 0d 0a 20 20 20 20 2f (var2);.... /
4bc0: 2f 4a 73 55 6e 69 74 2e 5f 61 73 73 65 72 74 28 /JsUnit._assert(
4bd0: 4a 73 55 6e 69 74 2e 5f 63 6f 6d 6d 65 6e 74 41 JsUnit._commentA
4be0: 72 67 28 32 2c 20 61 72 67 75 6d 65 6e 74 73 29 rg(2, arguments)
4bf0: 2c 20 76 61 72 31 53 74 61 6e 64 61 72 64 69 7a , var1Standardiz
4c00: 65 64 20 3d 3d 3d 20 76 61 72 32 53 74 61 6e 64 ed === var2Stand
4c10: 61 72 64 69 7a 65 64 2c 20 27 45 78 70 65 63 74 ardized, 'Expect
4c20: 65 64 20 27 20 2b 20 4a 73 55 6e 69 74 2e 5f 64 ed ' + JsUnit._d
4c30: 69 73 70 6c 61 79 53 74 72 69 6e 67 46 6f 72 56 isplayStringForV
4c40: 61 6c 75 65 28 76 61 72 31 53 74 61 6e 64 61 72 alue(var1Standar
4c50: 64 69 7a 65 64 29 20 2b 20 27 20 62 75 74 20 77 dized) + ' but w
4c60: 61 73 20 27 20 2b 20 4a 73 55 6e 69 74 2e 5f 64 as ' + JsUnit._d
4c70: 69 73 70 6c 61 79 53 74 72 69 6e 67 46 6f 72 56 isplayStringForV
4c80: 61 6c 75 65 28 76 61 72 32 53 74 61 6e 64 61 72 alue(var2Standar
4c90: 64 69 7a 65 64 29 29 3b 0d 0a 20 20 20 20 2f 2f dized));.. //
4ca0: 2f 2f 2f 53 6e 65 67 6f 70 61 74 2e 0d 0a 7d 0d ///Snegopat...}.
4cb0: 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 43 68 65 63 6b .../**.. * Check
4cc0: 73 20 74 68 61 74 20 61 20 68 61 73 68 20 69 73 s that a hash is
4cd0: 20 68 61 73 20 74 68 65 20 73 61 6d 65 20 63 6f has the same co
4ce0: 6e 74 65 6e 74 73 20 61 73 20 61 6e 6f 74 68 65 ntents as anothe
4cf0: 72 20 62 79 20 69 74 65 72 61 74 69 6e 67 20 6f r by iterating o
4d00: 76 65 72 20 74 68 65 20 65 78 70 65 63 74 65 64 ver the expected
4d10: 20 68 61 73 68 20 61 6e 64 20 63 68 65 63 6b 69 hash and checki
4d20: 6e 67 20 74 68 61 74 20 65 61 63 68 0d 0a 20 2a ng that each.. *
4d30: 20 6b 65 79 27 73 20 76 61 6c 75 65 20 69 73 20 key's value is
4d40: 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20 61 present in the a
4d50: 63 74 75 61 6c 20 68 61 73 68 20 61 6e 64 20 63 ctual hash and c
4d60: 61 6c 6c 69 6e 67 20 61 73 73 65 72 74 45 71 75 alling assertEqu
4d70: 61 6c 73 20 6f 6e 20 74 68 65 20 74 77 6f 20 76 als on the two v
4d80: 61 6c 75 65 73 2c 20 61 6e 64 20 74 68 65 6e 20 alues, and then
4d90: 63 68 65 63 6b 69 6e 67 20 74 68 61 74 20 74 68 checking that th
4da0: 65 72 65 20 69 73 0d 0a 20 2a 20 6e 6f 20 6b 65 ere is.. * no ke
4db0: 79 20 69 6e 20 74 68 65 20 61 63 74 75 61 6c 20 y in the actual
4dc0: 68 61 73 68 20 74 68 61 74 20 69 73 6e 27 74 20 hash that isn't
4dd0: 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20 65 present in the e
4de0: 78 70 65 63 74 65 64 20 68 61 73 68 2e 0d 0a 20 xpected hash...
4df0: 2a 20 40 70 61 72 61 6d 20 63 6f 6d 6d 65 6e 74 * @param comment
4e00: 20 6f 70 74 69 6f 6e 61 6c 2c 20 64 69 73 70 6c optional, displ
4e10: 61 79 65 64 20 69 6e 20 74 68 65 20 63 61 73 65 ayed in the case
4e20: 20 6f 66 20 66 61 69 6c 75 72 65 0d 0a 20 2a 20 of failure.. *
4e30: 40 70 61 72 61 6d 20 76 61 6c 75 65 20 74 68 65 @param value the
4e40: 20 65 78 70 65 63 74 65 64 20 68 61 73 68 0d 0a expected hash..
4e50: 20 2a 20 40 70 61 72 61 6d 20 76 61 6c 75 65 20 * @param value
4e60: 74 68 65 20 61 63 74 75 61 6c 20 68 61 73 68 0d the actual hash.
4e70: 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 55 6e . * @throws JsUn
4e80: 69 74 2e 46 61 69 6c 75 72 65 20 69 66 20 74 68 it.Failure if th
4e90: 65 20 61 63 74 75 61 6c 20 68 61 73 68 20 64 6f e actual hash do
4ea0: 65 73 20 6e 6f 74 20 65 76 61 6c 75 61 74 65 20 es not evaluate
4eb0: 74 6f 20 74 72 75 65 0d 0a 20 2a 20 40 74 68 72 to true.. * @thr
4ec0: 6f 77 73 20 4a 73 55 6e 69 74 49 6e 76 61 6c 69 ows JsUnitInvali
4ed0: 64 41 73 73 65 72 74 69 6f 6e 41 72 67 75 6d 65 dAssertionArgume
4ee0: 6e 74 20 69 66 20 61 6e 20 69 6e 63 6f 72 72 65 nt if an incorre
4ef0: 63 74 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 ct number of arg
4f00: 75 6d 65 6e 74 73 20 69 73 20 70 61 73 73 65 64 uments is passed
4f10: 0d 0a 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e 20 .. */..function
4f20: 61 73 73 65 72 74 48 61 73 68 45 71 75 61 6c 73 assertHashEquals
4f30: 28 29 20 7b 0d 0a 20 20 20 20 4a 73 55 6e 69 74 () {.. JsUnit
4f40: 2e 5f 76 61 6c 69 64 61 74 65 41 72 67 75 6d 65 ._validateArgume
4f50: 6e 74 73 28 32 2c 20 61 72 67 75 6d 65 6e 74 73 nts(2, arguments
4f60: 29 3b 0d 0a 20 20 20 20 76 61 72 20 76 61 72 31 );.. var var1
4f70: 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e 43 6f = JsUnit._nonCo
4f80: 6d 6d 65 6e 74 41 72 67 28 31 2c 20 32 2c 20 61 mmentArg(1, 2, a
4f90: 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20 rguments);..
4fa0: 76 61 72 20 76 61 72 32 20 3d 20 4a 73 55 6e 69 var var2 = JsUni
4fb0: 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 t._nonCommentArg
4fc0: 28 32 2c 20 32 2c 20 61 72 67 75 6d 65 6e 74 73 (2, 2, arguments
4fd0: 29 3b 0d 0a 20 20 20 20 66 6f 72 20 28 76 61 72 );.. for (var
4fe0: 20 6b 65 79 20 69 6e 20 76 61 72 31 29 20 7b 0d key in var1) {.
4ff0: 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 4e . assertN
5000: 6f 74 55 6e 64 65 66 69 6e 65 64 28 22 45 78 70 otUndefined("Exp
5010: 65 63 74 65 64 20 68 61 73 68 20 68 61 64 20 6b ected hash had k
5020: 65 79 20 22 20 2b 20 6b 65 79 20 2b 20 22 20 74 ey " + key + " t
5030: 68 61 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e hat was not foun
5040: 64 22 2c 20 76 61 72 32 5b 6b 65 79 5d 29 3b 0d d", var2[key]);.
5050: 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 74 45 . assertE
5060: 71 75 61 6c 73 28 0d 0a 20 20 20 20 20 20 20 20 quals(..
5070: 20 20 20 20 22 56 61 6c 75 65 20 66 6f 72 20 6b "Value for k
5080: 65 79 20 22 20 2b 20 6b 65 79 20 2b 20 22 20 6d ey " + key + " m
5090: 69 73 6d 61 74 63 68 20 2d 20 65 78 70 65 63 74 ismatch - expect
50a0: 65 64 20 3d 20 22 20 2b 20 76 61 72 31 5b 6b 65 ed = " + var1[ke
50b0: 79 5d 20 2b 20 22 2c 20 61 63 74 75 61 6c 20 3d y] + ", actual =
50c0: 20 22 20 2b 20 76 61 72 32 5b 6b 65 79 5d 2c 0d " + var2[key],.
50d0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 . var
50e0: 31 5b 6b 65 79 5d 2c 20 76 61 72 32 5b 6b 65 79 1[key], var2[key
50f0: 5d 0d 0a 20 20 20 20 20 20 20 20 29 3b 0d 0a 20 ].. );..
5100: 20 20 20 7d 0d 0a 20 20 20 20 66 6f 72 20 28 76 }.. for (v
5110: 61 72 20 6b 65 79 20 69 6e 20 76 61 72 32 29 20 ar key in var2)
5120: 7b 0d 0a 20 20 20 20 20 20 20 20 61 73 73 65 72 {.. asser
5130: 74 4e 6f 74 55 6e 64 65 66 69 6e 65 64 28 22 41 tNotUndefined("A
5140: 63 74 75 61 6c 20 68 61 73 68 20 68 61 64 20 6b ctual hash had k
5150: 65 79 20 22 20 2b 20 6b 65 79 20 2b 20 22 20 74 ey " + key + " t
5160: 68 61 74 20 77 61 73 20 6e 6f 74 20 65 78 70 65 hat was not expe
5170: 63 74 65 64 22 2c 20 76 61 72 31 5b 6b 65 79 5d cted", var1[key]
5180: 29 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a );.. }..}....
5190: 2f 2a 2a 0d 0a 20 2a 20 43 68 65 63 6b 73 20 74 /**.. * Checks t
51a0: 68 61 74 20 74 77 6f 20 76 61 6c 75 65 20 61 72 hat two value ar
51b0: 65 20 77 69 74 68 69 6e 20 61 20 74 6f 6c 65 72 e within a toler
51c0: 61 6e 63 65 20 6f 66 20 6f 6e 65 20 61 6e 6f 74 ance of one anot
51d0: 68 65 72 0d 0a 20 2a 20 40 70 61 72 61 6d 20 63 her.. * @param c
51e0: 6f 6d 6d 65 6e 74 20 6f 70 74 69 6f 6e 61 6c 2c omment optional,
51f0: 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 displayed in th
5200: 65 20 63 61 73 65 20 6f 66 20 66 61 69 6c 75 72 e case of failur
5210: 65 0d 0a 20 2a 20 40 70 61 72 61 6d 20 76 61 6c e.. * @param val
5220: 75 65 31 20 61 20 76 61 6c 75 65 0d 0a 20 2a 20 ue1 a value.. *
5230: 40 70 61 72 61 6d 20 76 61 6c 75 65 31 20 61 6e @param value1 an
5240: 6f 74 68 65 72 20 76 61 6c 75 65 0d 0a 20 2a 20 other value.. *
5250: 40 70 61 72 61 6d 20 74 6f 6c 65 72 61 6e 63 65 @param tolerance
5260: 20 74 68 65 20 74 6f 6c 65 72 61 6e 63 65 0d 0a the tolerance..
5270: 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 55 6e 69 * @throws JsUni
5280: 74 2e 46 61 69 6c 75 72 65 20 69 66 20 74 68 65 t.Failure if the
5290: 20 74 77 6f 20 76 61 6c 75 65 73 20 61 72 65 20 two values are
52a0: 6e 6f 74 20 77 69 74 68 69 6e 20 74 6f 6c 65 72 not within toler
52b0: 61 6e 63 65 20 6f 66 20 65 61 63 68 20 6f 74 68 ance of each oth
52c0: 65 72 0d 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a er.. * @throws J
52d0: 73 55 6e 69 74 49 6e 76 61 6c 69 64 41 73 73 65 sUnitInvalidAsse
52e0: 72 74 69 6f 6e 41 72 67 75 6d 65 6e 74 20 69 66 rtionArgument if
52f0: 20 61 6e 20 69 6e 63 6f 72 72 65 63 74 20 6e 75 an incorrect nu
5300: 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 mber of argument
5310: 73 20 69 73 20 70 61 73 73 65 64 0d 0a 20 2a 2f s is passed.. */
5320: 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 73 73 65 72 ..function asser
5330: 74 52 6f 75 67 68 6c 79 45 71 75 61 6c 73 28 29 tRoughlyEquals()
5340: 20 7b 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f {.. JsUnit._
5350: 76 61 6c 69 64 61 74 65 41 72 67 75 6d 65 6e 74 validateArgument
5360: 73 28 33 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b s(3, arguments);
5370: 0d 0a 20 20 20 20 76 61 72 20 65 78 70 65 63 74 .. var expect
5380: 65 64 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e ed = JsUnit._non
5390: 43 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 33 2c CommentArg(1, 3,
53a0: 20 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 arguments);..
53b0: 20 20 76 61 72 20 61 63 74 75 61 6c 20 3d 20 4a var actual = J
53c0: 73 55 6e 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e sUnit._nonCommen
53d0: 74 41 72 67 28 32 2c 20 33 2c 20 61 72 67 75 6d tArg(2, 3, argum
53e0: 65 6e 74 73 29 3b 0d 0a 20 20 20 20 76 61 72 20 ents);.. var
53f0: 74 6f 6c 65 72 61 6e 63 65 20 3d 20 4a 73 55 6e tolerance = JsUn
5400: 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 it._nonCommentAr
5410: 67 28 33 2c 20 33 2c 20 61 72 67 75 6d 65 6e 74 g(3, 3, argument
5420: 73 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 54 s);.. assertT
5430: 72 75 65 28 0d 0a 20 20 20 20 20 20 20 20 22 45 rue(.. "E
5440: 78 70 65 63 74 65 64 20 22 20 2b 20 65 78 70 65 xpected " + expe
5450: 63 74 65 64 20 2b 20 22 2c 20 62 75 74 20 67 6f cted + ", but go
5460: 74 20 22 20 2b 20 61 63 74 75 61 6c 20 2b 20 22 t " + actual + "
5470: 20 77 68 69 63 68 20 77 61 73 20 6d 6f 72 65 20 which was more
5480: 74 68 61 6e 20 22 20 2b 20 74 6f 6c 65 72 61 6e than " + toleran
5490: 63 65 20 2b 20 22 20 61 77 61 79 22 2c 0d 0a 20 ce + " away",..
54a0: 20 20 20 20 20 20 20 4d 61 74 68 2e 61 62 73 28 Math.abs(
54b0: 65 78 70 65 63 74 65 64 20 2d 20 61 63 74 75 61 expected - actua
54c0: 6c 29 20 3c 20 74 6f 6c 65 72 61 6e 63 65 0d 0a l) < tolerance..
54d0: 20 20 20 20 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a );..}..../**
54e0: 0d 0a 20 2a 20 43 68 65 63 6b 73 20 74 68 61 74 .. * Checks that
54f0: 20 61 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 63 6f a collection co
5500: 6e 74 61 69 6e 73 20 61 20 76 61 6c 75 65 20 62 ntains a value b
5510: 79 20 63 68 65 63 6b 69 6e 67 20 74 68 61 74 20 y checking that
5520: 63 6f 6c 6c 65 63 74 69 6f 6e 2e 69 6e 64 65 78 collection.index
5530: 4f 66 28 76 61 6c 75 65 29 20 69 73 20 6e 6f 74 Of(value) is not
5540: 20 2d 31 0d 0a 20 2a 20 40 70 61 72 61 6d 20 63 -1.. * @param c
5550: 6f 6d 6d 65 6e 74 20 6f 70 74 69 6f 6e 61 6c 2c omment optional,
5560: 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 displayed in th
5570: 65 20 63 61 73 65 20 6f 66 20 66 61 69 6c 75 72 e case of failur
5580: 65 0d 0a 20 2a 20 40 70 61 72 61 6d 20 63 6f 6c e.. * @param col
5590: 6c 65 63 74 69 6f 6e 20 74 68 65 20 63 6f 6c 6c lection the coll
55a0: 65 63 74 69 6f 6e 0d 0a 20 2a 20 40 70 61 72 61 ection.. * @para
55b0: 6d 20 76 61 6c 75 65 20 74 68 65 20 76 61 6c 75 m value the valu
55c0: 65 0d 0a 20 2a 20 40 74 68 72 6f 77 73 20 4a 73 e.. * @throws Js
55d0: 55 6e 69 74 2e 46 61 69 6c 75 72 65 20 69 66 20 Unit.Failure if
55e0: 74 68 65 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 64 the collection d
55f0: 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 oes not contain
5600: 74 68 65 20 76 61 6c 75 65 0d 0a 20 2a 20 40 74 the value.. * @t
5610: 68 72 6f 77 73 20 4a 73 55 6e 69 74 49 6e 76 61 hrows JsUnitInva
5620: 6c 69 64 41 73 73 65 72 74 69 6f 6e 41 72 67 75 lidAssertionArgu
5630: 6d 65 6e 74 20 69 66 20 61 6e 20 69 6e 63 6f 72 ment if an incor
5640: 72 65 63 74 20 6e 75 6d 62 65 72 20 6f 66 20 61 rect number of a
5650: 72 67 75 6d 65 6e 74 73 20 61 72 65 20 70 61 73 rguments are pas
5660: 73 65 64 0d 0a 20 2a 2f 0d 0a 66 75 6e 63 74 69 sed.. */..functi
5670: 6f 6e 20 61 73 73 65 72 74 43 6f 6e 74 61 69 6e on assertContain
5680: 73 28 29 20 7b 0d 0a 20 20 20 20 4a 73 55 6e 69 s() {.. JsUni
5690: 74 2e 5f 76 61 6c 69 64 61 74 65 41 72 67 75 6d t._validateArgum
56a0: 65 6e 74 73 28 32 2c 20 61 72 67 75 6d 65 6e 74 ents(2, argument
56b0: 73 29 3b 0d 0a 20 20 20 20 76 61 72 20 76 61 6c s);.. var val
56c0: 75 65 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e ue = JsUnit._non
56d0: 43 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 32 2c CommentArg(1, 2,
56e0: 20 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 arguments);..
56f0: 20 20 76 61 72 20 63 6f 6c 6c 65 63 74 69 6f 6e var collection
5700: 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e 43 6f = JsUnit._nonCo
5710: 6d 6d 65 6e 74 41 72 67 28 32 2c 20 32 2c 20 61 mmentArg(2, 2, a
5720: 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 20 20 20 20 rguments);..
5730: 61 73 73 65 72 74 54 72 75 65 28 0d 0a 20 20 20 assertTrue(..
5740: 20 20 20 20 20 22 45 78 70 65 63 74 65 64 20 27 "Expected '
5750: 22 20 2b 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 2b " + collection +
5760: 20 22 27 20 74 6f 20 63 6f 6e 74 61 69 6e 20 27 "' to contain '
5770: 22 20 2b 20 76 61 6c 75 65 20 2b 20 22 27 22 2c " + value + "'",
5780: 0d 0a 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 .. collec
5790: 74 69 6f 6e 2e 69 6e 64 65 78 4f 66 28 76 61 6c tion.indexOf(val
57a0: 75 65 29 20 21 3d 20 2d 31 0d 0a 20 20 20 20 29 ue) != -1.. )
57b0: 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 ;..}..../**.. *
57c0: 43 68 65 63 6b 73 20 74 68 61 74 20 74 77 6f 20 Checks that two
57d0: 61 72 72 61 79 73 20 68 61 76 65 20 74 68 65 20 arrays have the
57e0: 73 61 6d 65 20 63 6f 6e 74 65 6e 74 73 2c 20 69 same contents, i
57f0: 67 6e 6f 72 69 6e 67 20 74 68 65 20 6f 72 64 65 gnoring the orde
5800: 72 20 6f 66 20 74 68 65 20 63 6f 6e 74 65 6e 74 r of the content
5810: 73 0d 0a 20 2a 20 40 70 61 72 61 6d 20 63 6f 6d s.. * @param com
5820: 6d 65 6e 74 20 6f 70 74 69 6f 6e 61 6c 2c 20 64 ment optional, d
5830: 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 isplayed in the
5840: 63 61 73 65 20 6f 66 20 66 61 69 6c 75 72 65 0d case of failure.
5850: 0a 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 . * @param array
5860: 31 20 66 69 72 73 74 20 61 72 72 61 79 0d 0a 20 1 first array..
5870: 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 32 20 * @param array2
5880: 73 65 63 6f 6e 64 20 61 72 72 61 79 0d 0a 20 2a second array.. *
5890: 20 40 74 68 72 6f 77 73 20 4a 73 55 6e 69 74 2e @throws JsUnit.
58a0: 46 61 69 6c 75 72 65 20 69 66 20 74 68 65 20 74 Failure if the t
58b0: 77 6f 20 61 72 72 61 79 73 20 63 6f 6e 74 61 69 wo arrays contai
58c0: 6e 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6e 74 n different cont
58d0: 65 6e 74 73 0d 0a 20 2a 20 40 74 68 72 6f 77 73 ents.. * @throws
58e0: 20 4a 73 55 6e 69 74 49 6e 76 61 6c 69 64 41 73 JsUnitInvalidAs
58f0: 73 65 72 74 69 6f 6e 41 72 67 75 6d 65 6e 74 20 sertionArgument
5900: 69 66 20 61 6e 20 69 6e 63 6f 72 72 65 63 74 20 if an incorrect
5910: 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 number of argume
5920: 6e 74 73 20 61 72 65 20 70 61 73 73 65 64 0d 0a nts are passed..
5930: 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e 20 61 73 */..function as
5940: 73 65 72 74 41 72 72 61 79 45 71 75 61 6c 73 49 sertArrayEqualsI
5950: 67 6e 6f 72 69 6e 67 4f 72 64 65 72 28 29 20 7b gnoringOrder() {
5960: 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f 76 61 .. JsUnit._va
5970: 6c 69 64 61 74 65 41 72 67 75 6d 65 6e 74 73 28 lidateArguments(
5980: 32 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 2, arguments);..
5990: 20 20 20 20 76 61 72 20 76 61 72 31 20 3d 20 4a var var1 = J
59a0: 73 55 6e 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e sUnit._nonCommen
59b0: 74 41 72 67 28 31 2c 20 32 2c 20 61 72 67 75 6d tArg(1, 2, argum
59c0: 65 6e 74 73 29 3b 0d 0a 20 20 20 20 76 61 72 20 ents);.. var
59d0: 76 61 72 32 20 3d 20 4a 73 55 6e 69 74 2e 5f 6e var2 = JsUnit._n
59e0: 6f 6e 43 6f 6d 6d 65 6e 74 41 72 67 28 32 2c 20 onCommentArg(2,
59f0: 32 2c 20 61 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 2, arguments);..
5a00: 0d 0a 20 20 20 20 76 61 72 20 6e 6f 74 45 71 75 .. var notEqu
5a10: 61 6c 73 4d 65 73 73 61 67 65 20 3d 20 22 45 78 alsMessage = "Ex
5a20: 70 65 63 74 65 64 20 61 72 72 61 79 73 20 22 20 pected arrays "
5a30: 2b 20 4a 73 55 6e 69 74 2e 5f 64 69 73 70 6c 61 + JsUnit._displa
5a40: 79 53 74 72 69 6e 67 46 6f 72 56 61 6c 75 65 28 yStringForValue(
5a50: 76 61 72 31 29 20 2b 20 22 20 61 6e 64 20 22 20 var1) + " and "
5a60: 2b 20 4a 73 55 6e 69 74 2e 5f 64 69 73 70 6c 61 + JsUnit._displa
5a70: 79 53 74 72 69 6e 67 46 6f 72 56 61 6c 75 65 28 yStringForValue(
5a80: 76 61 72 32 29 20 2b 20 22 20 74 6f 20 62 65 20 var2) + " to be
5a90: 65 71 75 61 6c 20 28 69 67 6e 6f 72 69 6e 67 20 equal (ignoring
5aa0: 6f 72 64 65 72 29 22 3b 0d 0a 20 20 20 20 76 61 order)";.. va
5ab0: 72 20 6e 6f 74 41 72 72 61 79 73 4d 65 73 73 61 r notArraysMessa
5ac0: 67 65 20 3d 20 22 45 78 70 65 63 74 65 64 20 61 ge = "Expected a
5ad0: 72 67 75 6d 65 6e 74 73 20 22 20 2b 20 4a 73 55 rguments " + JsU
5ae0: 6e 69 74 2e 5f 64 69 73 70 6c 61 79 53 74 72 69 nit._displayStri
5af0: 6e 67 46 6f 72 56 61 6c 75 65 28 76 61 72 31 29 ngForValue(var1)
5b00: 20 2b 20 22 20 61 6e 64 20 22 20 2b 20 4a 73 55 + " and " + JsU
5b10: 6e 69 74 2e 5f 64 69 73 70 6c 61 79 53 74 72 69 nit._displayStri
5b20: 6e 67 46 6f 72 56 61 6c 75 65 28 76 61 72 32 29 ngForValue(var2)
5b30: 20 2b 20 22 20 74 6f 20 62 65 20 61 72 72 61 79 + " to be array
5b40: 73 22 3b 0d 0a 0d 0a 20 20 20 20 4a 73 55 6e 69 s";.... JsUni
5b50: 74 2e 5f 61 73 73 65 72 74 28 4a 73 55 6e 69 74 t._assert(JsUnit
5b60: 2e 5f 63 6f 6d 6d 65 6e 74 41 72 67 28 32 2c 20 ._commentArg(2,
5b70: 61 72 67 75 6d 65 6e 74 73 29 2c 20 4a 73 55 6e arguments), JsUn
5b80: 69 74 2e 5f 63 68 65 63 6b 4e 6f 74 4e 75 6c 6c it._checkNotNull
5b90: 28 76 61 72 31 29 2c 20 6e 6f 74 45 71 75 61 6c (var1), notEqual
5ba0: 73 4d 65 73 73 61 67 65 29 3b 0d 0a 20 20 20 20 sMessage);..
5bb0: 4a 73 55 6e 69 74 2e 5f 61 73 73 65 72 74 28 4a JsUnit._assert(J
5bc0: 73 55 6e 69 74 2e 5f 63 6f 6d 6d 65 6e 74 41 72 sUnit._commentAr
5bd0: 67 28 32 2c 20 61 72 67 75 6d 65 6e 74 73 29 2c g(2, arguments),
5be0: 20 4a 73 55 6e 69 74 2e 5f 63 68 65 63 6b 4e 6f JsUnit._checkNo
5bf0: 74 4e 75 6c 6c 28 76 61 72 32 29 2c 20 6e 6f 74 tNull(var2), not
5c00: 45 71 75 61 6c 73 4d 65 73 73 61 67 65 29 3b 0d EqualsMessage);.
5c10: 0a 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f 61 ... JsUnit._a
5c20: 73 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f 63 6f ssert(JsUnit._co
5c30: 6d 6d 65 6e 74 41 72 67 28 32 2c 20 61 72 67 75 mmentArg(2, argu
5c40: 6d 65 6e 74 73 29 2c 20 4a 73 55 6e 69 74 2e 5f ments), JsUnit._
5c50: 63 68 65 63 6b 4e 6f 74 55 6e 64 65 66 69 6e 65 checkNotUndefine
5c60: 64 28 76 61 72 31 2e 6c 65 6e 67 74 68 29 2c 20 d(var1.length),
5c70: 6e 6f 74 41 72 72 61 79 73 4d 65 73 73 61 67 65 notArraysMessage
5c80: 29 3b 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f );.. JsUnit._
5c90: 61 73 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f 63 assert(JsUnit._c
5ca0: 6f 6d 6d 65 6e 74 41 72 67 28 32 2c 20 61 72 67 ommentArg(2, arg
5cb0: 75 6d 65 6e 74 73 29 2c 20 4a 73 55 6e 69 74 2e uments), JsUnit.
5cc0: 5f 63 68 65 63 6b 4e 6f 74 55 6e 64 65 66 69 6e _checkNotUndefin
5cd0: 65 64 28 76 61 72 31 2e 6a 6f 69 6e 29 2c 20 6e ed(var1.join), n
5ce0: 6f 74 41 72 72 61 79 73 4d 65 73 73 61 67 65 29 otArraysMessage)
5cf0: 3b 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f 61 ;.. JsUnit._a
5d00: 73 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f 63 6f ssert(JsUnit._co
5d10: 6d 6d 65 6e 74 41 72 67 28 32 2c 20 61 72 67 75 mmentArg(2, argu
5d20: 6d 65 6e 74 73 29 2c 20 4a 73 55 6e 69 74 2e 5f ments), JsUnit._
5d30: 63 68 65 63 6b 4e 6f 74 55 6e 64 65 66 69 6e 65 checkNotUndefine
5d40: 64 28 76 61 72 32 2e 6c 65 6e 67 74 68 29 2c 20 d(var2.length),
5d50: 6e 6f 74 41 72 72 61 79 73 4d 65 73 73 61 67 65 notArraysMessage
5d60: 29 3b 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e 5f );.. JsUnit._
5d70: 61 73 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f 63 assert(JsUnit._c
5d80: 6f 6d 6d 65 6e 74 41 72 67 28 32 2c 20 61 72 67 ommentArg(2, arg
5d90: 75 6d 65 6e 74 73 29 2c 20 4a 73 55 6e 69 74 2e uments), JsUnit.
5da0: 5f 63 68 65 63 6b 4e 6f 74 55 6e 64 65 66 69 6e _checkNotUndefin
5db0: 65 64 28 76 61 72 32 2e 6a 6f 69 6e 29 2c 20 6e ed(var2.join), n
5dc0: 6f 74 41 72 72 61 79 73 4d 65 73 73 61 67 65 29 otArraysMessage)
5dd0: 3b 0d 0a 0d 0a 20 20 20 20 4a 73 55 6e 69 74 2e ;.... JsUnit.
5de0: 5f 61 73 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f _assert(JsUnit._
5df0: 63 6f 6d 6d 65 6e 74 41 72 67 28 31 2c 20 61 72 commentArg(1, ar
5e00: 67 75 6d 65 6e 74 73 29 2c 20 4a 73 55 6e 69 74 guments), JsUnit
5e10: 2e 5f 63 68 65 63 6b 45 71 75 61 6c 73 28 76 61 ._checkEquals(va
5e20: 72 31 2e 6c 65 6e 67 74 68 2c 20 76 61 72 32 2e r1.length, var2.
5e30: 6c 65 6e 67 74 68 29 2c 20 6e 6f 74 45 71 75 61 length), notEqua
5e40: 6c 73 4d 65 73 73 61 67 65 29 3b 0d 0a 0d 0a 20 lsMessage);....
5e50: 20 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 for (var i =
5e60: 30 3b 20 69 20 3c 20 76 61 72 31 2e 6c 65 6e 67 0; i < var1.leng
5e70: 74 68 3b 20 69 2b 2b 29 20 7b 0d 0a 20 20 20 20 th; i++) {..
5e80: 20 20 20 20 76 61 72 20 66 6f 75 6e 64 20 3d 20 var found =
5e90: 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 20 20 20 false;..
5ea0: 66 6f 72 20 28 76 61 72 20 6a 20 3d 20 30 3b 20 for (var j = 0;
5eb0: 6a 20 3c 20 76 61 72 32 2e 6c 65 6e 67 74 68 3b j < var2.length;
5ec0: 20 6a 2b 2b 29 20 7b 0d 0a 20 20 20 20 20 20 20 j++) {..
5ed0: 20 20 20 20 20 74 72 79 20 7b 0d 0a 20 20 20 20 try {..
5ee0: 20 20 20 20 20 20 20 20 20 20 20 20 61 73 73 65 asse
5ef0: 72 74 4f 62 6a 65 63 74 45 71 75 61 6c 73 28 6e rtObjectEquals(n
5f00: 6f 74 45 71 75 61 6c 73 4d 65 73 73 61 67 65 2c otEqualsMessage,
5f10: 20 76 61 72 31 5b 69 5d 2c 20 76 61 72 32 5b 6a var1[i], var2[j
5f20: 5d 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ]);..
5f30: 20 20 20 20 20 66 6f 75 6e 64 20 3d 20 74 72 75 found = tru
5f40: 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 e;..
5f50: 7d 20 63 61 74 63 68 20 28 69 67 6e 6f 72 65 64 } catch (ignored
5f60: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ) {..
5f70: 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 }.. }..
5f80: 20 20 20 20 20 20 20 4a 73 55 6e 69 74 2e 5f 61 JsUnit._a
5f90: 73 73 65 72 74 28 4a 73 55 6e 69 74 2e 5f 63 6f ssert(JsUnit._co
5fa0: 6d 6d 65 6e 74 41 72 67 28 32 2c 20 61 72 67 75 mmentArg(2, argu
5fb0: 6d 65 6e 74 73 29 2c 20 66 6f 75 6e 64 2c 20 6e ments), found, n
5fc0: 6f 74 45 71 75 61 6c 73 4d 65 73 73 61 67 65 29 otEqualsMessage)
5fd0: 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a 2f ;.. }..}..../
5fe0: 2a 2a 0d 0a 20 2a 20 53 79 6e 6f 6e 79 6d 20 66 **.. * Synonym f
5ff0: 6f 72 20 61 73 73 65 72 74 41 72 72 61 79 45 71 or assertArrayEq
6000: 75 61 6c 73 49 67 6e 6f 72 69 6e 67 4f 72 64 65 ualsIgnoringOrde
6010: 72 0d 0a 20 2a 20 40 73 65 65 20 23 61 73 73 65 r.. * @see #asse
6020: 72 74 41 72 72 61 79 45 71 75 61 6c 73 49 67 6e rtArrayEqualsIgn
6030: 6f 72 69 6e 67 4f 72 64 65 72 0d 0a 20 2a 2f 0d oringOrder.. */.
6040: 0a 66 75 6e 63 74 69 6f 6e 20 61 73 73 65 72 74 .function assert
6050: 45 71 75 61 6c 73 49 67 6e 6f 72 69 6e 67 4f 72 EqualsIgnoringOr
6060: 64 65 72 28 29 20 7b 0d 0a 20 20 20 20 4a 73 55 der() {.. JsU
6070: 6e 69 74 2e 5f 76 61 6c 69 64 61 74 65 41 72 67 nit._validateArg
6080: 75 6d 65 6e 74 73 28 32 2c 20 61 72 67 75 6d 65 uments(2, argume
6090: 6e 74 73 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 nts);.. asser
60a0: 74 41 72 72 61 79 45 71 75 61 6c 73 49 67 6e 6f tArrayEqualsIgno
60b0: 72 69 6e 67 4f 72 64 65 72 28 4a 73 55 6e 69 74 ringOrder(JsUnit
60c0: 2e 5f 63 6f 6d 6d 65 6e 74 41 72 67 28 32 2c 20 ._commentArg(2,
60d0: 61 72 67 75 6d 65 6e 74 73 29 2c 20 4a 73 55 6e arguments), JsUn
60e0: 69 74 2e 5f 6e 6f 6e 43 6f 6d 6d 65 6e 74 41 72 it._nonCommentAr
60f0: 67 28 31 2c 20 32 2c 20 61 72 67 75 6d 65 6e 74 g(1, 2, argument
6100: 73 29 2c 20 4a 73 55 6e 69 74 2e 5f 6e 6f 6e 43 s), JsUnit._nonC
6110: 6f 6d 6d 65 6e 74 41 72 67 28 32 2c 20 32 2c 20 ommentArg(2, 2,
6120: 61 72 67 75 6d 65 6e 74 73 29 29 3b 0d 0a 7d 0d arguments));..}.
6130: 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 43 61 75 73 65 .../**.. * Cause
6140: 73 20 61 20 66 61 69 6c 75 72 65 0d 0a 20 2a 20 s a failure.. *
6150: 40 70 61 72 61 6d 20 66 61 69 6c 75 72 65 4d 65 @param failureMe
6160: 73 73 61 67 65 20 74 68 65 20 6d 65 73 73 61 67 ssage the messag
6170: 65 20 66 6f 72 20 74 68 65 20 66 61 69 6c 75 72 e for the failur
6180: 65 0d 0a 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e e.. */..function
6190: 20 66 61 69 6c 28 66 61 69 6c 75 72 65 4d 65 73 fail(failureMes
61a0: 73 61 67 65 29 20 7b 0d 0a 20 20 20 20 74 68 72 sage) {.. thr
61b0: 6f 77 20 6e 65 77 20 4a 73 55 6e 69 74 2e 46 61 ow new JsUnit.Fa
61c0: 69 6c 75 72 65 28 22 43 61 6c 6c 20 74 6f 20 66 ilure("Call to f
61d0: 61 69 6c 28 29 22 2c 20 66 61 69 6c 75 72 65 4d ail()", failureM
61e0: 65 73 73 61 67 65 29 3b 0d 0a 7d 0d 0a 0d 0a 2f essage);..}..../
61f0: 2a 2a 0d 0a 20 2a 20 43 61 75 73 65 73 20 61 6e **.. * Causes an
6200: 20 65 72 72 6f 72 0d 0a 20 2a 20 40 70 61 72 61 error.. * @para
6210: 6d 20 65 72 72 6f 72 4d 65 73 73 61 67 65 20 74 m errorMessage t
6220: 68 65 20 6d 65 73 73 61 67 65 20 66 6f 72 20 74 he message for t
6230: 68 65 20 65 72 72 6f 72 0d 0a 20 2a 2f 0d 0a 66 he error.. */..f
6240: 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 28 65 72 unction error(er
6250: 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0d 0a 20 rorMessage) {..
6260: 20 20 20 74 68 72 6f 77 20 6e 65 77 20 4a 73 55 throw new JsU
6270: 6e 69 74 45 72 72 6f 72 28 65 72 72 6f 72 4d 65 nitError(errorMe
6280: 73 73 61 67 65 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a ssage);..}..../*
6290: 2a 0d 0a 20 2a 20 40 63 6c 61 73 73 0d 0a 20 2a *.. * @class.. *
62a0: 20 41 20 4a 73 55 6e 69 74 2e 46 61 69 6c 75 72 A JsUnit.Failur
62b0: 65 20 72 65 70 72 65 73 65 6e 74 73 20 61 6e 20 e represents an
62c0: 61 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 75 72 assertion failur
62d0: 65 20 28 6f 72 20 61 20 63 61 6c 6c 20 74 6f 20 e (or a call to
62e0: 66 61 69 6c 28 29 29 20 64 75 72 69 6e 67 20 74 fail()) during t
62f0: 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 he execution of
6300: 61 20 54 65 73 74 20 46 75 6e 63 74 69 6f 6e 0d a Test Function.
6310: 0a 20 2a 20 40 70 61 72 61 6d 20 63 6f 6d 6d 65 . * @param comme
6320: 6e 74 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 63 nt an optional c
6330: 6f 6d 6d 65 6e 74 20 61 62 6f 75 74 20 74 68 65 omment about the
6340: 20 66 61 69 6c 75 72 65 0d 0a 20 2a 20 40 70 61 failure.. * @pa
6350: 72 61 6d 20 6d 65 73 73 61 67 65 20 74 68 65 20 ram message the
6360: 72 65 61 73 6f 6e 20 66 6f 72 20 74 68 65 20 66 reason for the f
6370: 61 69 6c 75 72 65 0d 0a 20 2a 2f 0d 0a 4a 73 55 ailure.. */..JsU
6380: 6e 69 74 2e 46 61 69 6c 75 72 65 20 3d 20 66 75 nit.Failure = fu
6390: 6e 63 74 69 6f 6e 28 63 6f 6d 6d 65 6e 74 2c 20 nction(comment,
63a0: 6d 65 73 73 61 67 65 29 20 7b 0d 0a 20 20 20 20 message) {..
63b0: 2f 2a 2a 0d 0a 20 20 20 20 20 2a 20 44 65 63 6c /**.. * Decl
63c0: 61 72 61 74 69 6f 6e 20 74 68 61 74 20 74 68 69 aration that thi
63d0: 73 20 69 73 20 61 20 4a 73 55 6e 69 74 2e 46 61 s is a JsUnit.Fa
63e0: 69 6c 75 72 65 0d 0a 20 20 20 20 20 2a 20 40 69 ilure.. * @i
63f0: 67 6e 6f 72 65 0d 0a 20 20 20 20 20 2a 2f 0d 0a gnore.. */..
6400: 20 20 20 20 74 68 69 73 2e 69 73 4a 73 55 6e 69 this.isJsUni
6410: 74 46 61 69 6c 75 72 65 20 3d 20 74 72 75 65 3b tFailure = true;
6420: 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 20 .. /**..
6430: 2a 20 41 6e 20 6f 70 74 69 6f 6e 61 6c 20 63 6f * An optional co
6440: 6d 6d 65 6e 74 20 61 62 6f 75 74 20 74 68 65 20 mment about the
6450: 66 61 69 6c 75 72 65 0d 0a 20 20 20 20 20 2a 2f failure.. */
6460: 0d 0a 20 20 20 20 74 68 69 73 2e 63 6f 6d 6d 65 .. this.comme
6470: 6e 74 20 3d 20 63 6f 6d 6d 65 6e 74 3b 0d 0a 20 nt = comment;..
6480: 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 20 2a 20 54 /**.. * T
6490: 68 65 20 72 65 61 73 6f 6e 20 66 6f 72 20 74 68 he reason for th
64a0: 65 20 66 61 69 6c 75 72 65 0d 0a 20 20 20 20 20 e failure..
64b0: 2a 2f 0d 0a 20 20 20 20 74 68 69 73 2e 6a 73 55 */.. this.jsU
64c0: 6e 69 74 4d 65 73 73 61 67 65 20 3d 20 6d 65 73 nitMessage = mes
64d0: 73 61 67 65 3b 0d 0a 20 20 20 20 2f 2a 2a 0d 0a sage;.. /**..
64e0: 20 20 20 20 20 2a 20 54 68 65 20 73 74 61 63 6b * The stack
64f0: 20 74 72 61 63 65 20 61 74 20 74 68 65 20 70 6f trace at the po
6500: 69 6e 74 20 61 74 20 77 68 69 63 68 20 74 68 65 int at which the
6510: 20 66 61 69 6c 75 72 65 20 77 61 73 20 65 6e 63 failure was enc
6520: 6f 75 6e 74 65 72 65 64 0d 0a 20 20 20 20 20 2a ountered.. *
6530: 2f 0d 0a 20 20 20 20 74 68 69 73 2e 73 74 61 63 /.. this.stac
6540: 6b 54 72 61 63 65 20 3d 20 4a 73 55 6e 69 74 2e kTrace = JsUnit.
6550: 55 74 69 6c 2e 67 65 74 53 74 61 63 6b 54 72 61 Util.getStackTra
6560: 63 65 28 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d ce();..}..../**.
6570: 0a 20 2a 20 40 64 65 70 72 65 63 61 74 65 64 0d . * @deprecated.
6580: 0a 20 2a 2f 0d 0a 4a 73 55 6e 69 74 46 61 69 6c . */..JsUnitFail
6590: 75 72 65 20 3d 20 4a 73 55 6e 69 74 2e 46 61 69 ure = JsUnit.Fai
65a0: 6c 75 72 65 3b 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a lure;..../**.. *
65b0: 20 40 63 6c 61 73 73 0d 0a 20 2a 20 41 20 4a 73 @class.. * A Js
65c0: 55 6e 69 74 45 72 72 6f 72 20 72 65 70 72 65 73 UnitError repres
65d0: 65 6e 74 73 20 61 6e 20 65 72 72 6f 72 20 28 61 ents an error (a
65e0: 6e 20 65 78 63 65 70 74 69 6f 6e 20 6f 72 20 61 n exception or a
65f0: 20 63 61 6c 6c 20 74 6f 20 65 72 72 6f 72 28 29 call to error()
6600: 29 20 64 75 72 69 6e 67 20 74 68 65 20 65 78 65 ) during the exe
6610: 63 75 74 69 6f 6e 20 6f 66 20 61 20 54 65 73 74 cution of a Test
6620: 20 46 75 6e 63 74 69 6f 6e 0d 0a 20 2a 20 40 70 Function.. * @p
6630: 61 72 61 6d 20 64 65 73 63 72 69 70 74 69 6f 6e aram description
6640: 20 74 68 65 20 72 65 61 73 6f 6e 20 66 6f 72 20 the reason for
6650: 74 68 65 20 66 61 69 6c 75 72 65 0d 0a 20 2a 2f the failure.. */
6660: 0d 0a 4a 73 55 6e 69 74 2e 45 72 72 6f 72 20 3d ..JsUnit.Error =
6670: 20 66 75 6e 63 74 69 6f 6e 28 64 65 73 63 72 69 function(descri
6680: 70 74 69 6f 6e 29 20 7b 0d 0a 20 20 20 20 2f 2a ption) {.. /*
6690: 2a 0d 0a 20 20 20 20 20 2a 20 54 68 65 20 64 65 *.. * The de
66a0: 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 scription of the
66b0: 20 65 72 72 6f 72 0d 0a 20 20 20 20 20 2a 2f 0d error.. */.
66c0: 0a 20 20 20 20 74 68 69 73 2e 64 65 73 63 72 69 . this.descri
66d0: 70 74 69 6f 6e 20 3d 20 64 65 73 63 72 69 70 74 ption = descript
66e0: 69 6f 6e 3b 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 ion;.. /**..
66f0: 20 20 20 20 2a 20 54 68 65 20 73 74 61 63 6b 20 * The stack
6700: 74 72 61 63 65 20 61 74 20 74 68 65 20 70 6f 69 trace at the poi
6710: 6e 74 20 61 74 20 77 68 69 63 68 20 74 68 65 20 nt at which the
6720: 65 72 72 6f 72 20 77 61 73 20 65 6e 63 6f 75 6e error was encoun
6730: 74 65 72 65 64 0d 0a 20 20 20 20 20 2a 2f 0d 0a tered.. */..
6740: 20 20 20 20 74 68 69 73 2e 73 74 61 63 6b 54 72 this.stackTr
6750: 61 63 65 20 3d 20 4a 73 55 6e 69 74 2e 55 74 69 ace = JsUnit.Uti
6760: 6c 2e 67 65 74 53 74 61 63 6b 54 72 61 63 65 28 l.getStackTrace(
6770: 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a );..}..../**.. *
6780: 20 40 64 65 70 72 65 63 61 74 65 64 0d 0a 20 2a @deprecated.. *
6790: 2f 0d 0a 4a 73 55 6e 69 74 45 72 72 6f 72 20 3d /..JsUnitError =
67a0: 20 4a 73 55 6e 69 74 2e 45 72 72 6f 72 3b 0d 0a JsUnit.Error;..
67b0: 0d 0a 2f 2a 2a 0d 0a 20 2a 20 40 63 6c 61 73 73 ../**.. * @class
67c0: 0d 0a 20 2a 20 41 20 4a 73 55 6e 69 74 41 73 73 .. * A JsUnitAss
67d0: 65 72 74 69 6f 6e 41 72 67 75 6d 65 6e 74 45 72 ertionArgumentEr
67e0: 72 6f 72 20 72 65 70 72 65 73 65 6e 74 73 20 61 ror represents a
67f0: 6e 20 69 6e 76 61 6c 69 64 20 63 61 6c 6c 20 74 n invalid call t
6800: 6f 20 61 6e 20 61 73 73 65 72 74 69 6f 6e 20 66 o an assertion f
6810: 75 6e 63 74 69 6f 6e 20 2d 20 65 69 74 68 65 72 unction - either
6820: 20 61 6e 20 69 6e 76 61 6c 69 64 20 61 72 67 75 an invalid argu
6830: 6d 65 6e 74 20 74 79 70 65 0d 0a 20 2a 20 6f 72 ment type.. * or
6840: 20 61 6e 20 69 6e 63 6f 72 72 65 63 74 20 6e 75 an incorrect nu
6850: 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 mber of argument
6860: 73 0d 0a 20 2a 20 40 70 61 72 61 6d 20 64 65 73 s.. * @param des
6870: 63 72 69 70 74 69 6f 6e 20 61 20 64 65 73 63 72 cription a descr
6880: 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 61 72 iption of the ar
6890: 67 75 6d 65 6e 74 20 65 72 72 6f 72 0d 0a 20 2a gument error.. *
68a0: 2f 0d 0a 4a 73 55 6e 69 74 2e 41 73 73 65 72 74 /..JsUnit.Assert
68b0: 69 6f 6e 41 72 67 75 6d 65 6e 74 45 72 72 6f 72 ionArgumentError
68c0: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 64 65 73 63 = function(desc
68d0: 72 69 70 74 69 6f 6e 29 20 7b 0d 0a 20 20 20 20 ription) {..
68e0: 2f 2a 2a 0d 0a 20 20 20 20 20 2a 20 41 20 64 65 /**.. * A de
68f0: 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 scription of the
6900: 20 61 72 67 75 6d 65 6e 74 20 65 72 72 6f 72 0d argument error.
6910: 0a 20 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 68 . */.. th
6920: 69 73 2e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d is.description =
6930: 20 64 65 73 63 72 69 70 74 69 6f 6e 3b 0d 0a 7d description;..}
6940: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 69 73 4c ....function isL
6950: 6f 61 64 65 64 28 29 20 7b 0d 0a 20 20 20 20 72 oaded() {.. r
6960: 65 74 75 72 6e 20 69 73 54 65 73 74 50 61 67 65 eturn isTestPage
6970: 4c 6f 61 64 65 64 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a Loaded;..}..../*
6980: 2a 0d 0a 20 2a 20 40 70 72 69 76 61 74 65 0d 0a *.. * @private..
6990: 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 65 */..function se
69a0: 74 55 70 28 29 20 7b 0d 0a 7d 0d 0a 0d 0a 2f 2a tUp() {..}..../*
69b0: 2a 0d 0a 20 2a 20 40 70 72 69 76 61 74 65 0d 0a *.. * @private..
69c0: 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e 20 74 65 */..function te
69d0: 61 72 44 6f 77 6e 28 29 20 7b 0d 0a 7d 0d 0a 0d arDown() {..}...
69e0: 0a 2f 2f 53 6e 65 67 6f 70 61 74 2e 0d 0a 2f 2f .//Snegopat...//
69f0: 20 54 4f 44 4f 3a 20 d1 80 d0 b5 d0 b0 d0 bb d0 TODO: .........
6a00: b8 d0 b7 d0 be d0 b2 d0 b0 d1 82 d1 8c 20 d0 bf ............. ..
6a10: d0 be d0 bb d0 bd d0 be d1 86 d0 b5 d0 bd d0 bd ................
6a20: d1 8b d0 b9 20 d1 82 d1 80 d0 b5 d0 b9 d1 81 d0 .... ...........
6a30: b5 d1 80 2f d0 bb d0 be d0 b3 d0 b3 d0 b5 d1 80 .../............
6a40: 2e 0d 0a 66 75 6e 63 74 69 6f 6e 20 53 6e 65 67 ...function Sneg
6a50: 6f 70 61 74 54 72 61 63 65 28 6d 65 73 73 61 67 opatTrace(messag
6a60: 65 2c 20 76 61 6c 75 65 2c 20 6d 61 72 6b 65 72 e, value, marker
6a70: 29 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 20 74 65 )..{.. var te
6a80: 78 74 20 3d 20 6d 65 73 73 61 67 65 3b 0d 0a 20 xt = message;..
6a90: 20 20 20 0d 0a 20 20 20 20 69 66 20 28 76 61 6c .. if (val
6aa0: 75 65 29 0d 0a 20 20 20 20 20 20 20 20 74 65 78 ue).. tex
6ab0: 74 20 2b 3d 20 27 3a 20 27 20 2b 20 4a 73 55 6e t += ': ' + JsUn
6ac0: 69 74 2e 5f 64 69 73 70 6c 61 79 53 74 72 69 6e it._displayStrin
6ad0: 67 46 6f 72 56 61 6c 75 65 28 76 61 6c 75 65 29 gForValue(value)
6ae0: 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 ;.. ..
6af0: 20 4d 65 73 73 61 67 65 28 74 65 78 74 2c 20 6d Message(text, m
6b00: 61 72 6b 65 72 29 3b 0d 0a 7d 0d 0a 2f 2f 2f 2f arker);..}..////
6b10: 2f 53 6e 65 67 6f 70 61 74 2e 0d 0a 0d 0a 66 75 /Snegopat.....fu
6b20: 6e 63 74 69 6f 6e 20 77 61 72 6e 28 29 20 7b 0d nction warn() {.
6b30: 0a 20 20 20 20 53 6e 65 67 6f 70 61 74 54 72 61 . SnegopatTra
6b40: 63 65 28 61 72 67 75 6d 65 6e 74 73 5b 30 5d 2c ce(arguments[0],
6b50: 20 61 72 67 75 6d 65 6e 74 73 5b 31 5d 2c 20 6d arguments[1], m
6b60: 45 78 63 31 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e Exc1);..}....fun
6b70: 63 74 69 6f 6e 20 69 6e 66 6f 72 6d 28 29 20 7b ction inform() {
6b80: 0d 0a 20 20 20 20 53 6e 65 67 6f 70 61 74 54 72 .. SnegopatTr
6b90: 61 63 65 28 61 72 67 75 6d 65 6e 74 73 5b 30 5d ace(arguments[0]
6ba0: 2c 20 61 72 67 75 6d 65 6e 74 73 5b 31 5d 2c 20 , arguments[1],
6bb0: 6d 49 6e 66 6f 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 mInfo);..}....fu
6bc0: 6e 63 74 69 6f 6e 20 69 6e 66 6f 28 29 20 7b 0d nction info() {.
6bd0: 0a 20 20 20 20 53 6e 65 67 6f 70 61 74 54 72 61 . SnegopatTra
6be0: 63 65 28 61 72 67 75 6d 65 6e 74 73 5b 30 5d 2c ce(arguments[0],
6bf0: 20 61 72 67 75 6d 65 6e 74 73 5b 31 5d 29 3b 0d arguments[1]);.
6c00: 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 64 .}....function d
6c10: 65 62 75 67 28 29 20 7b 0d 0a 20 20 20 20 53 6e ebug() {.. Sn
6c20: 65 67 6f 70 61 74 54 72 61 63 65 28 61 72 67 75 egopatTrace(argu
6c30: 6d 65 6e 74 73 5b 30 5d 2c 20 61 72 67 75 6d 65 ments[0], argume
6c40: 6e 74 73 5b 31 5d 2c 20 6d 4e 6f 6e 65 29 3b 0d nts[1], mNone);.
6c50: 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 40 63 .}..../**.. * @c
6c60: 6c 61 73 73 0d 0a 20 2a 20 41 20 4a 73 55 6e 69 lass.. * A JsUni
6c70: 74 54 65 73 74 53 75 69 74 65 20 72 65 70 72 65 tTestSuite repre
6c80: 73 65 6e 74 73 20 61 20 73 75 69 74 65 20 6f 66 sents a suite of
6c90: 20 4a 73 55 6e 69 74 20 54 65 73 74 20 50 61 67 JsUnit Test Pag
6ca0: 65 73 2e 20 20 54 65 73 74 20 50 61 67 65 73 20 es. Test Pages
6cb0: 61 6e 64 20 54 65 73 74 20 53 75 69 74 65 73 20 and Test Suites
6cc0: 63 61 6e 20 62 65 20 61 64 64 65 64 20 74 6f 20 can be added to
6cd0: 61 0d 0a 20 2a 20 4a 73 55 6e 69 74 54 65 73 74 a.. * JsUnitTest
6ce0: 53 75 69 74 65 0d 0a 20 2a 20 40 63 6f 6e 73 74 Suite.. * @const
6cf0: 72 75 63 74 6f 72 0d 0a 20 2a 2f 0d 0a 66 75 6e ructor.. */..fun
6d00: 63 74 69 6f 6e 20 4a 73 55 6e 69 74 54 65 73 74 ction JsUnitTest
6d10: 53 75 69 74 65 28 29 20 7b 0d 0a 20 20 20 20 2f Suite() {.. /
6d20: 2a 2a 0d 0a 20 20 20 20 20 2a 20 44 65 63 6c 61 **.. * Decla
6d30: 72 65 73 20 74 68 61 74 20 74 68 69 73 20 6f 62 res that this ob
6d40: 6a 65 63 74 20 69 73 20 61 20 4a 73 55 6e 69 74 ject is a JsUnit
6d50: 54 65 73 74 53 75 69 74 65 0d 0a 20 20 20 20 20 TestSuite..
6d60: 2a 2f 0d 0a 20 20 20 20 74 68 69 73 2e 69 73 4a */.. this.isJ
6d70: 73 55 6e 69 74 54 65 73 74 53 75 69 74 65 20 3d sUnitTestSuite =
6d80: 20 74 72 75 65 3b 0d 0a 20 20 20 20 2f 2a 2a 0d true;.. /**.
6d90: 0a 20 20 20 20 20 2a 20 40 70 72 69 76 61 74 65 . * @private
6da0: 0d 0a 20 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 .. */.. t
6db0: 68 69 73 2e 5f 74 65 73 74 50 61 67 65 73 20 3d his._testPages =
6dc0: 20 41 72 72 61 79 28 29 3b 0d 0a 20 20 20 20 2f Array();.. /
6dd0: 2a 2a 0d 0a 20 20 20 20 20 2a 20 40 70 72 69 76 **.. * @priv
6de0: 61 74 65 0d 0a 20 20 20 20 20 2a 2f 0d 0a 20 20 ate.. */..
6df0: 20 20 74 68 69 73 2e 5f 70 61 67 65 49 6e 64 65 this._pageInde
6e00: 78 20 3d 20 30 3b 0d 0a 0d 0a 20 20 20 20 66 6f x = 0;.... fo
6e10: 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 r (var i = 0; i
6e20: 3c 20 61 72 67 75 6d 65 6e 74 73 2e 6c 65 6e 67 < arguments.leng
6e30: 74 68 3b 20 69 2b 2b 29 20 7b 0d 0a 20 20 20 20 th; i++) {..
6e40: 20 20 20 20 69 66 20 28 61 72 67 75 6d 65 6e 74 if (argument
6e50: 73 5b 69 5d 2e 5f 74 65 73 74 50 61 67 65 73 29 s[i]._testPages)
6e60: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
6e70: 74 68 69 73 2e 61 64 64 54 65 73 74 53 75 69 74 this.addTestSuit
6e80: 65 28 61 72 67 75 6d 65 6e 74 73 5b 69 5d 29 3b e(arguments[i]);
6e90: 0d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 .. } else
6ea0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
6eb0: 74 68 69 73 2e 61 64 64 54 65 73 74 50 61 67 65 this.addTestPage
6ec0: 28 61 72 67 75 6d 65 6e 74 73 5b 69 5d 29 3b 0d (arguments[i]);.
6ed0: 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 . }..
6ee0: 7d 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 }..}..../**.. *
6ef0: 41 64 64 73 20 61 20 54 65 73 74 20 50 61 67 65 Adds a Test Page
6f00: 20 74 6f 20 74 68 65 20 73 75 69 74 65 0d 0a 20 to the suite..
6f10: 2a 20 40 70 61 72 61 6d 20 70 61 67 65 4e 61 6d * @param pageNam
6f20: 65 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 e the path to th
6f30: 65 20 54 65 73 74 20 50 61 67 65 0d 0a 20 2a 2f e Test Page.. */
6f40: 0d 0a 4a 73 55 6e 69 74 54 65 73 74 53 75 69 74 ..JsUnitTestSuit
6f50: 65 2e 70 72 6f 74 6f 74 79 70 65 2e 61 64 64 54 e.prototype.addT
6f60: 65 73 74 50 61 67 65 20 3d 20 66 75 6e 63 74 69 estPage = functi
6f70: 6f 6e 20 28 70 61 67 65 29 20 7b 0d 0a 20 20 20 on (page) {..
6f80: 20 74 68 69 73 2e 5f 74 65 73 74 50 61 67 65 73 this._testPages
6f90: 5b 74 68 69 73 2e 5f 74 65 73 74 50 61 67 65 73 [this._testPages
6fa0: 2e 6c 65 6e 67 74 68 5d 20 3d 20 70 61 67 65 3b .length] = page;
6fb0: 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 41 ..}..../**.. * A
6fc0: 64 64 73 20 61 20 54 65 73 74 20 53 75 69 74 65 dds a Test Suite
6fd0: 20 74 6f 20 74 68 65 20 73 75 69 74 65 0d 0a 20 to the suite..
6fe0: 2a 20 40 70 61 72 61 6d 20 73 75 69 74 65 20 61 * @param suite a
6ff0: 6e 6f 74 68 65 72 20 4a 73 55 6e 69 74 54 65 73 nother JsUnitTes
7000: 74 53 75 69 74 65 20 6f 62 6a 65 63 74 0d 0a 20 tSuite object..
7010: 2a 2f 0d 0a 0d 0a 4a 73 55 6e 69 74 54 65 73 74 */....JsUnitTest
7020: 53 75 69 74 65 2e 70 72 6f 74 6f 74 79 70 65 2e Suite.prototype.
7030: 61 64 64 54 65 73 74 53 75 69 74 65 20 3d 20 66 addTestSuite = f
7040: 75 6e 63 74 69 6f 6e 20 28 73 75 69 74 65 29 20 unction (suite)
7050: 7b 0d 0a 20 20 20 20 66 6f 72 20 28 76 61 72 20 {.. for (var
7060: 69 20 3d 20 30 3b 20 69 20 3c 20 73 75 69 74 65 i = 0; i < suite
7070: 2e 5f 74 65 73 74 50 61 67 65 73 2e 6c 65 6e 67 ._testPages.leng
7080: 74 68 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 20 20 th; i++)..
7090: 20 20 74 68 69 73 2e 61 64 64 54 65 73 74 50 61 this.addTestPa
70a0: 67 65 28 73 75 69 74 65 2e 5f 74 65 73 74 50 61 ge(suite._testPa
70b0: 67 65 73 5b 69 5d 29 3b 0d 0a 7d 0d 0a 0d 0a 2f ges[i]);..}..../
70c0: 2a 2a 0d 0a 20 2a 20 57 68 65 74 68 65 72 20 74 **.. * Whether t
70d0: 68 65 20 73 75 69 74 65 20 63 6f 6e 74 61 69 6e he suite contain
70e0: 73 20 61 6e 79 20 54 65 73 74 20 50 61 67 65 73 s any Test Pages
70f0: 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e 69 74 54 65 73 .. */..JsUnitTes
7100: 74 53 75 69 74 65 2e 70 72 6f 74 6f 74 79 70 65 tSuite.prototype
7110: 2e 63 6f 6e 74 61 69 6e 73 54 65 73 74 50 61 67 .containsTestPag
7120: 65 73 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 es = function ()
7130: 20 7b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 74 {.. return t
7140: 68 69 73 2e 5f 74 65 73 74 50 61 67 65 73 2e 6c his._testPages.l
7150: 65 6e 67 74 68 20 3e 20 30 3b 0d 0a 7d 0d 0a 0d ength > 0;..}...
7160: 0a 2f 2a 2a 0d 0a 20 2a 20 4d 6f 76 65 73 20 74 ./**.. * Moves t
7170: 68 65 20 73 75 69 74 65 20 6f 6e 20 74 6f 20 69 he suite on to i
7180: 74 73 20 6e 65 78 74 20 54 65 73 74 20 50 61 67 ts next Test Pag
7190: 65 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e 69 74 54 65 e.. */..JsUnitTe
71a0: 73 74 53 75 69 74 65 2e 70 72 6f 74 6f 74 79 70 stSuite.prototyp
71b0: 65 2e 6e 65 78 74 50 61 67 65 20 3d 20 66 75 6e e.nextPage = fun
71c0: 63 74 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 20 20 ction () {..
71d0: 72 65 74 75 72 6e 20 74 68 69 73 2e 5f 74 65 73 return this._tes
71e0: 74 50 61 67 65 73 5b 74 68 69 73 2e 5f 70 61 67 tPages[this._pag
71f0: 65 49 6e 64 65 78 2b 2b 5d 3b 0d 0a 7d 0d 0a 0d eIndex++];..}...
7200: 0a 2f 2a 2a 0d 0a 20 2a 20 57 68 65 74 68 65 72 ./**.. * Whether
7210: 20 74 68 65 20 73 75 69 74 65 20 68 61 73 20 6d the suite has m
7220: 6f 72 65 20 54 65 73 74 20 50 61 67 65 73 0d 0a ore Test Pages..
7230: 20 2a 2f 0d 0a 4a 73 55 6e 69 74 54 65 73 74 53 */..JsUnitTestS
7240: 75 69 74 65 2e 70 72 6f 74 6f 74 79 70 65 2e 68 uite.prototype.h
7250: 61 73 4d 6f 72 65 50 61 67 65 73 20 3d 20 66 75 asMorePages = fu
7260: 6e 63 74 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 20 nction () {..
7270: 20 72 65 74 75 72 6e 20 74 68 69 73 2e 5f 70 61 return this._pa
7280: 67 65 49 6e 64 65 78 20 3c 20 74 68 69 73 2e 5f geIndex < this._
7290: 74 65 73 74 50 61 67 65 73 2e 6c 65 6e 67 74 68 testPages.length
72a0: 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 ;..}..../**.. *
72b0: 50 72 6f 64 75 63 65 73 20 61 20 63 6f 70 79 20 Produces a copy
72c0: 6f 66 20 74 68 65 20 73 75 69 74 65 0d 0a 20 2a of the suite.. *
72d0: 2f 0d 0a 4a 73 55 6e 69 74 54 65 73 74 53 75 69 /..JsUnitTestSui
72e0: 74 65 2e 70 72 6f 74 6f 74 79 70 65 2e 63 6c 6f te.prototype.clo
72f0: 6e 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 ne = function ()
7300: 20 7b 0d 0a 20 20 20 20 76 61 72 20 63 6c 6f 6e {.. var clon
7310: 65 20 3d 20 6e 65 77 20 4a 73 55 6e 69 74 54 65 e = new JsUnitTe
7320: 73 74 53 75 69 74 65 28 29 3b 0d 0a 20 20 20 20 stSuite();..
7330: 63 6c 6f 6e 65 2e 5f 74 65 73 74 50 61 67 65 73 clone._testPages
7340: 20 3d 20 74 68 69 73 2e 5f 74 65 73 74 50 61 67 = this._testPag
7350: 65 73 3b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 es;.. return
7360: 63 6c 6f 6e 65 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 46 clone;..}....//F
7370: 6f 72 20 6c 65 67 61 63 79 20 73 75 70 70 6f 72 or legacy suppor
7380: 74 20 2d 20 4a 73 55 6e 69 74 54 65 73 74 53 75 t - JsUnitTestSu
7390: 69 74 65 20 75 73 65 64 20 74 6f 20 62 65 20 63 ite used to be c
73a0: 61 6c 6c 65 64 20 6a 73 55 6e 69 74 54 65 73 74 alled jsUnitTest
73b0: 53 75 69 74 65 0d 0a 2f 2f 53 6e 65 67 6f 70 61 Suite..//Snegopa
73c0: 74 2e 20 0d 0a 2f 2f 20 d0 9f d0 be 20 d0 bd d0 t. ..// .... ...
73d0: b5 d0 b8 d0 b7 d0 b2 d0 b5 d1 81 d1 82 d0 bd d1 ................
73e0: 8b d0 bc 20 d0 bc d0 bd d0 b5 20 d0 bf d1 80 d0 ... ...... .....
73f0: b8 d1 87 d0 b8 d0 bd d0 b0 d0 bc 20 d1 8d d1 82 ........... ....
7400: d0 b0 20 d0 ba d0 be d0 bd d1 81 d1 82 d1 80 d1 .. .............
7410: 83 d0 ba d1 86 d0 b8 d1 8f 20 d0 bf d1 80 d0 b8 ......... ......
7420: d0 b2 d0 be d0 b4 d0 b8 d1 82 20 d0 ba 20 d1 82 .......... .. ..
7430: d0 be d0 bc d1 83 2c 20 d1 87 d1 82 d0 be 0d 0a ......, ........
7440: 2f 2f 20 d0 b4 d0 b2 d0 b8 d0 b6 d0 be d0 ba 20 // ............
7450: d0 a1 d0 bd d0 b5 d0 b3 d0 be d0 bf d0 b0 d1 82 ................
7460: d0 b0 20 d0 bf d0 b5 d1 80 d0 b5 d1 81 d1 82 d0 .. .............
7470: b0 d0 b5 d1 82 20 d0 b2 d0 b8 d0 b4 d0 b5 d1 82 ..... ..........
7480: d1 8c 20 d0 bc d0 b0 d0 ba d1 80 d0 be d1 81 d1 .. .............
7490: 8b 2e 0d 0a 2f 2f 76 61 72 20 6a 73 55 6e 69 74 ....//var jsUnit
74a0: 54 65 73 74 53 75 69 74 65 20 3d 20 4a 73 55 6e TestSuite = JsUn
74b0: 69 74 54 65 73 74 53 75 69 74 65 3b 0d 0a 2f 2f itTestSuite;..//
74c0: 2f 2f 2f 53 6e 65 67 6f 70 61 74 2e 0d 0a 0d 0a ///Snegopat.....
74d0: 66 75 6e 63 74 69 6f 6e 20 73 65 74 4a 73 55 6e function setJsUn
74e0: 69 74 54 72 61 63 65 72 28 61 4a 73 55 6e 69 74 itTracer(aJsUnit
74f0: 54 72 61 63 65 72 29 20 7b 0d 0a 20 20 20 20 74 Tracer) {.. t
7500: 6f 70 2e 74 72 61 63 65 72 20 3d 20 61 4a 73 55 op.tracer = aJsU
7510: 6e 69 74 54 72 61 63 65 72 3b 0d 0a 7d 0d 0a 0d nitTracer;..}...
7520: 0a 66 75 6e 63 74 69 6f 6e 20 6a 73 55 6e 69 74 .function jsUnit
7530: 47 65 74 50 61 72 6d 28 6e 61 6d 65 29 20 7b 0d GetParm(name) {.
7540: 0a 20 20 20 20 72 65 74 75 72 6e 20 74 6f 70 2e . return top.
7550: 70 61 72 61 6d 73 2e 67 65 74 28 6e 61 6d 65 29 params.get(name)
7560: 3b 0d 0a 7d 0d 0a 0d 0a 4a 73 55 6e 69 74 2e 5f ;..}....JsUnit._
7570: 6e 65 77 4f 6e 4c 6f 61 64 45 76 65 6e 74 20 3d newOnLoadEvent =
7580: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 function() {..
7590: 20 20 20 69 73 54 65 73 74 50 61 67 65 4c 6f 61 isTestPageLoa
75a0: 64 65 64 20 3d 20 74 72 75 65 3b 0d 0a 7d 0d 0a ded = true;..}..
75b0: 0d 0a 4a 73 55 6e 69 74 2e 5f 73 65 74 4f 6e 4c ..JsUnit._setOnL
75c0: 6f 61 64 20 3d 20 66 75 6e 63 74 69 6f 6e 28 77 oad = function(w
75d0: 69 6e 64 6f 77 52 65 66 2c 20 6f 6e 6c 6f 61 64 indowRef, onload
75e0: 48 61 6e 64 6c 65 72 29 20 7b 0d 0a 20 20 20 20 Handler) {..
75f0: 20 20 20 0d 0a 20 20 20 20 2f 2f 53 6e 65 67 6f .. //Snego
7600: 70 61 74 2e 0d 0a 20 20 20 20 4a 73 55 6e 69 74 pat... JsUnit
7610: 2e 66 61 69 6c 28 22 5f 73 65 74 4f 6e 4c 6f 61 .fail("_setOnLoa
7620: 64 28 29 20 d0 bd d0 b5 20 d0 bf d0 be d0 b4 d0 d() .... .......
7630: b4 d0 b5 d1 80 d0 b6 d0 b8 d0 b2 d0 b0 d0 b5 d1 ................
7640: 82 d1 81 d1 8f 20 d0 b2 20 d0 a1 d0 bd d0 b5 d0 ..... .. .......
7650: b3 d0 be d0 bf d0 b0 d1 82 d0 b5 2e 22 29 3b 0d ............");.
7660: 0a 20 20 20 20 2f 2f 2f 2f 2f 53 6e 65 67 6f 70 . /////Snegop
7670: 61 74 2e 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f at... .. /
7680: 2a 0d 0a 20 20 20 20 76 61 72 20 69 73 4b 6f 6e *.. var isKon
7690: 71 75 65 72 6f 72 20 3d 20 6e 61 76 69 67 61 74 queror = navigat
76a0: 6f 72 2e 75 73 65 72 41 67 65 6e 74 2e 69 6e 64 or.userAgent.ind
76b0: 65 78 4f 66 28 27 4b 6f 6e 71 75 65 72 6f 72 2f exOf('Konqueror/
76c0: 27 29 20 21 3d 20 2d 31 3b 0d 0a 0d 0a 20 20 20 ') != -1;....
76d0: 20 69 66 20 28 74 79 70 65 6f 66 28 77 69 6e 64 if (typeof(wind
76e0: 6f 77 52 65 66 2e 61 74 74 61 63 68 45 76 65 6e owRef.attachEven
76f0: 74 29 20 21 3d 20 27 75 6e 64 65 66 69 6e 65 64 t) != 'undefined
7700: 27 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 2f 2f ') {.. //
7710: 20 49 6e 74 65 72 6e 65 74 20 45 78 70 6c 6f 72 Internet Explor
7720: 65 72 2c 20 4f 70 65 72 61 0d 0a 20 20 20 20 20 er, Opera..
7730: 20 20 20 77 69 6e 64 6f 77 52 65 66 2e 61 74 74 windowRef.att
7740: 61 63 68 45 76 65 6e 74 28 22 6f 6e 6c 6f 61 64 achEvent("onload
7750: 22 2c 20 6f 6e 6c 6f 61 64 48 61 6e 64 6c 65 72 ", onloadHandler
7760: 29 3b 0d 0a 20 20 20 20 7d 20 65 6c 73 65 20 69 );.. } else i
7770: 66 20 28 74 79 70 65 6f 66 28 77 69 6e 64 6f 77 f (typeof(window
7780: 52 65 66 2e 61 64 64 45 76 65 6e 74 4c 69 73 74 Ref.addEventList
7790: 65 6e 65 72 29 20 21 3d 20 27 75 6e 64 65 66 69 ener) != 'undefi
77a0: 6e 65 64 27 20 26 26 20 21 69 73 4b 6f 6e 71 75 ned' && !isKonqu
77b0: 65 72 6f 72 29 20 7b 0d 0a 20 20 20 20 20 20 20 eror) {..
77c0: 20 2f 2f 20 4d 6f 7a 69 6c 6c 61 0d 0a 20 20 20 // Mozilla..
77d0: 20 20 20 20 20 2f 2f 20 65 78 63 6c 75 64 65 20 // exclude
77e0: 4b 6f 6e 71 75 65 72 6f 72 20 64 75 65 20 74 6f Konqueror due to
77f0: 20 6c 6f 61 64 20 69 73 73 75 65 73 0d 0a 20 20 load issues..
7800: 20 20 20 20 20 20 77 69 6e 64 6f 77 52 65 66 2e windowRef.
7810: 61 64 64 45 76 65 6e 74 4c 69 73 74 65 6e 65 72 addEventListener
7820: 28 22 6c 6f 61 64 22 2c 20 6f 6e 6c 6f 61 64 48 ("load", onloadH
7830: 61 6e 64 6c 65 72 2c 20 66 61 6c 73 65 29 3b 0d andler, false);.
7840: 0a 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 . } else if (
7850: 74 79 70 65 6f 66 28 77 69 6e 64 6f 77 52 65 66 typeof(windowRef
7860: 2e 64 6f 63 75 6d 65 6e 74 2e 61 64 64 45 76 65 .document.addEve
7870: 6e 74 4c 69 73 74 65 6e 65 72 29 20 21 3d 20 27 ntListener) != '
7880: 75 6e 64 65 66 69 6e 65 64 27 20 26 26 20 21 69 undefined' && !i
7890: 73 4b 6f 6e 71 75 65 72 6f 72 29 20 7b 0d 0a 20 sKonqueror) {..
78a0: 20 20 20 20 20 20 20 2f 2f 20 44 4f 4d 20 32 20 // DOM 2
78b0: 45 76 65 6e 74 73 0d 0a 20 20 20 20 20 20 20 20 Events..
78c0: 2f 2f 20 65 78 63 6c 75 64 65 20 4d 6f 7a 69 6c // exclude Mozil
78d0: 6c 61 2c 20 4b 6f 6e 71 75 65 72 6f 72 20 64 75 la, Konqueror du
78e0: 65 20 74 6f 20 6c 6f 61 64 20 69 73 73 75 65 73 e to load issues
78f0: 0d 0a 20 20 20 20 20 20 20 20 77 69 6e 64 6f 77 .. window
7900: 52 65 66 2e 64 6f 63 75 6d 65 6e 74 2e 61 64 64 Ref.document.add
7910: 45 76 65 6e 74 4c 69 73 74 65 6e 65 72 28 22 6c EventListener("l
7920: 6f 61 64 22 2c 20 6f 6e 6c 6f 61 64 48 61 6e 64 oad", onloadHand
7930: 6c 65 72 2c 20 66 61 6c 73 65 29 3b 0d 0a 20 20 ler, false);..
7940: 20 20 7d 20 65 6c 73 65 20 69 66 20 28 74 79 70 } else if (typ
7950: 65 6f 66 28 77 69 6e 64 6f 77 52 65 66 2e 6f 6e eof(windowRef.on
7960: 6c 6f 61 64 29 20 21 3d 20 27 75 6e 64 65 66 69 load) != 'undefi
7970: 6e 65 64 27 20 26 26 20 77 69 6e 64 6f 77 52 65 ned' && windowRe
7980: 66 2e 6f 6e 6c 6f 61 64 29 20 7b 0d 0a 20 20 20 f.onload) {..
7990: 20 20 20 20 20 77 69 6e 64 6f 77 52 65 66 2e 6a windowRef.j
79a0: 73 75 6e 69 74 5f 6f 72 69 67 69 6e 61 6c 5f 6f sunit_original_o
79b0: 6e 6c 6f 61 64 20 3d 20 77 69 6e 64 6f 77 52 65 nload = windowRe
79c0: 66 2e 6f 6e 6c 6f 61 64 3b 0d 0a 20 20 20 20 20 f.onload;..
79d0: 20 20 20 77 69 6e 64 6f 77 52 65 66 2e 6f 6e 6c windowRef.onl
79e0: 6f 61 64 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 oad = function()
79f0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
7a00: 77 69 6e 64 6f 77 52 65 66 2e 6a 73 75 6e 69 74 windowRef.jsunit
7a10: 5f 6f 72 69 67 69 6e 61 6c 5f 6f 6e 6c 6f 61 64 _original_onload
7a20: 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ();..
7a30: 20 6f 6e 6c 6f 61 64 48 61 6e 64 6c 65 72 28 29 onloadHandler()
7a40: 3b 0d 0a 20 20 20 20 20 20 20 20 7d 3b 0d 0a 20 ;.. };..
7a50: 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 } else {..
7a60: 20 20 20 20 20 2f 2f 20 62 72 6f 77 73 65 72 73 // browsers
7a70: 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 73 75 70 that do not sup
7a80: 70 6f 72 74 20 77 69 6e 64 6f 77 52 65 66 2e 61 port windowRef.a
7a90: 74 74 61 63 68 45 76 65 6e 74 20 6f 72 0d 0a 20 ttachEvent or..
7aa0: 20 20 20 20 20 20 20 2f 2f 20 77 69 6e 64 6f 77 // window
7ab0: 52 65 66 2e 61 64 64 45 76 65 6e 74 4c 69 73 74 Ref.addEventList
7ac0: 65 6e 65 72 20 77 69 6c 6c 20 6f 76 65 72 72 69 ener will overri
7ad0: 64 65 20 61 20 70 61 67 65 27 73 20 6f 77 6e 20 de a page's own
7ae0: 6f 6e 6c 6f 61 64 20 65 76 65 6e 74 0d 0a 20 20 onload event..
7af0: 20 20 20 20 20 20 77 69 6e 64 6f 77 52 65 66 2e windowRef.
7b00: 6f 6e 6c 6f 61 64 20 3d 20 6f 6e 6c 6f 61 64 48 onload = onloadH
7b10: 61 6e 64 6c 65 72 3b 0d 0a 20 20 20 20 7d 0d 0a andler;.. }..
7b20: 20 20 20 20 2a 2f 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a */..}..../**
7b30: 0d 0a 20 2a 20 40 63 6c 61 73 73 0d 0a 20 2a 20 .. * @class.. *
7b40: 40 63 6f 6e 73 74 72 75 63 74 6f 72 0d 0a 20 2a @constructor.. *
7b50: 20 43 6f 6e 74 61 69 6e 73 20 75 74 69 6c 69 74 Contains utilit
7b60: 79 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 y functions for
7b70: 74 68 65 20 4a 73 55 6e 69 74 20 66 72 61 6d 65 the JsUnit frame
7b80: 77 6f 72 6b 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e 69 work.. */..JsUni
7b90: 74 2e 55 74 69 6c 20 3d 20 7b 7d 3b 0d 0a 0d 0a t.Util = {};....
7ba0: 2f 2a 2a 0d 0a 20 2a 20 53 74 61 6e 64 61 72 64 /**.. * Standard
7bb0: 69 7a 65 73 20 61 6e 20 48 54 4d 4c 20 73 74 72 izes an HTML str
7bc0: 69 6e 67 20 62 79 20 74 65 6d 70 6f 72 61 72 69 ing by temporari
7bd0: 6c 79 20 63 72 65 61 74 69 6e 67 20 61 20 44 49 ly creating a DI
7be0: 56 2c 20 73 65 74 74 69 6e 67 20 69 74 73 20 69 V, setting its i
7bf0: 6e 6e 65 72 48 54 4d 4c 20 74 6f 20 74 68 65 20 nnerHTML to the
7c00: 73 74 72 69 6e 67 2c 20 61 6e 64 20 74 68 65 20 string, and the
7c10: 61 73 6b 69 6e 67 20 66 6f 72 0d 0a 20 2a 20 74 asking for.. * t
7c20: 68 65 20 69 6e 6e 65 72 48 54 4d 4c 20 62 61 63 he innerHTML bac
7c30: 6b 0d 0a 20 2a 20 40 70 61 72 61 6d 20 68 74 6d k.. * @param htm
7c40: 6c 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e 69 74 2e 55 l.. */..JsUnit.U
7c50: 74 69 6c 2e 73 74 61 6e 64 61 72 64 69 7a 65 48 til.standardizeH
7c60: 54 4d 4c 20 3d 20 66 75 6e 63 74 69 6f 6e 28 68 TML = function(h
7c70: 74 6d 6c 29 20 7b 0d 0a 20 20 20 20 2f 2f 53 6e tml) {.. //Sn
7c80: 65 67 6f 70 61 74 2e 0d 0a 20 20 20 20 4a 73 55 egopat... JsU
7c90: 6e 69 74 2e 66 61 69 6c 28 22 73 74 61 6e 64 61 nit.fail("standa
7ca0: 72 64 69 7a 65 48 54 4d 4c 28 29 20 d0 bd d0 b5 rdizeHTML() ....
7cb0: 20 d0 bf d0 be d0 b4 d0 b4 d0 b5 d1 80 d0 b6 d0 ...............
7cc0: b8 d0 b2 d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 d0 b2 ............. ..
7cd0: 20 d0 a1 d0 bd d0 b5 d0 b3 d0 be d0 bf d0 b0 d1 ...............
7ce0: 82 d0 b5 2e 22 29 3b 0d 0a 20 20 20 20 2f 2f 76 ....");.. //v
7cf0: 61 72 20 74 72 61 6e 73 6c 61 74 6f 72 20 3d 20 ar translator =
7d00: 64 6f 63 75 6d 65 6e 74 2e 63 72 65 61 74 65 45 document.createE
7d10: 6c 65 6d 65 6e 74 28 22 44 49 56 22 29 3b 0d 0a lement("DIV");..
7d20: 20 20 20 20 2f 2f 74 72 61 6e 73 6c 61 74 6f 72 //translator
7d30: 2e 69 6e 6e 65 72 48 54 4d 4c 20 3d 20 68 74 6d .innerHTML = htm
7d40: 6c 3b 0d 0a 20 20 20 20 2f 2f 72 65 74 75 72 6e l;.. //return
7d50: 20 4a 73 55 6e 69 74 2e 55 74 69 6c 2e 74 72 69 JsUnit.Util.tri
7d60: 6d 28 74 72 61 6e 73 6c 61 74 6f 72 2e 69 6e 6e m(translator.inn
7d70: 65 72 48 54 4d 4c 29 3b 0d 0a 20 20 20 20 2f 2f erHTML);.. //
7d80: 2f 2f 2f 53 6e 65 67 6f 70 61 74 2e 0d 0a 7d 0d ///Snegopat...}.
7d90: 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 52 65 74 75 72 .../**.. * Retur
7da0: 6e 73 20 77 68 65 74 68 65 72 20 74 68 65 20 67 ns whether the g
7db0: 69 76 65 6e 20 73 74 72 69 6e 67 20 69 73 20 62 iven string is b
7dc0: 6c 61 6e 6b 20 61 66 74 65 72 20 62 65 69 6e 67 lank after being
7dd0: 20 74 72 69 6d 6d 65 64 20 6f 66 20 77 68 69 74 trimmed of whit
7de0: 65 73 70 61 63 65 0d 0a 20 2a 20 40 70 61 72 61 espace.. * @para
7df0: 6d 20 73 74 72 69 6e 67 0d 0a 20 2a 2f 0d 0a 4a m string.. */..J
7e00: 73 55 6e 69 74 2e 55 74 69 6c 2e 69 73 42 6c 61 sUnit.Util.isBla
7e10: 6e 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 28 73 74 nk = function(st
7e20: 72 69 6e 67 29 20 7b 0d 0a 20 20 20 20 72 65 74 ring) {.. ret
7e30: 75 72 6e 20 4a 73 55 6e 69 74 2e 55 74 69 6c 2e urn JsUnit.Util.
7e40: 74 72 69 6d 28 73 74 72 69 6e 67 29 20 3d 3d 20 trim(string) ==
7e50: 27 27 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 '';..}..../**..
7e60: 2a 20 49 6d 70 6c 65 6d 65 6e 74 65 64 20 68 65 * Implemented he
7e70: 72 65 20 62 65 63 61 75 73 65 20 74 68 65 20 4a re because the J
7e80: 61 76 61 53 63 72 69 70 74 20 41 72 72 61 79 2e avaScript Array.
7e90: 70 75 73 68 28 61 6e 4f 62 6a 65 63 74 29 20 61 push(anObject) a
7ea0: 6e 64 20 41 72 72 61 79 2e 70 6f 70 28 29 20 66 nd Array.pop() f
7eb0: 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 6e 6f 74 unctions are not
7ec0: 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 49 45 available in IE
7ed0: 20 35 2e 30 0d 0a 20 2a 20 40 70 61 72 61 6d 20 5.0.. * @param
7ee0: 61 6e 41 72 72 61 79 20 74 68 65 20 61 72 72 61 anArray the arra
7ef0: 79 20 6f 6e 74 6f 20 77 68 69 63 68 20 74 6f 20 y onto which to
7f00: 70 75 73 68 0d 0a 20 2a 20 40 70 61 72 61 6d 20 push.. * @param
7f10: 61 6e 4f 62 6a 65 63 74 20 74 68 65 20 6f 62 6a anObject the obj
7f20: 65 63 74 20 74 6f 20 70 75 73 68 20 6f 6e 74 6f ect to push onto
7f30: 20 74 68 65 20 61 72 72 61 79 0d 0a 20 2a 2f 0d the array.. */.
7f40: 0a 4a 73 55 6e 69 74 2e 55 74 69 6c 2e 70 75 73 .JsUnit.Util.pus
7f50: 68 20 3d 20 66 75 6e 63 74 69 6f 6e 28 61 6e 41 h = function(anA
7f60: 72 72 61 79 2c 20 61 6e 4f 62 6a 65 63 74 29 20 rray, anObject)
7f70: 7b 0d 0a 20 20 20 20 61 6e 41 72 72 61 79 5b 61 {.. anArray[a
7f80: 6e 41 72 72 61 79 2e 6c 65 6e 67 74 68 5d 20 3d nArray.length] =
7f90: 20 61 6e 4f 62 6a 65 63 74 3b 0d 0a 7d 0d 0a 0d anObject;..}...
7fa0: 0a 2f 2a 2a 0d 0a 20 2a 20 49 6d 70 6c 65 6d 65 ./**.. * Impleme
7fb0: 6e 74 65 64 20 68 65 72 65 20 62 65 63 61 75 73 nted here becaus
7fc0: 65 20 74 68 65 20 4a 61 76 61 53 63 72 69 70 74 e the JavaScript
7fd0: 20 41 72 72 61 79 2e 70 75 73 68 28 61 6e 4f 62 Array.push(anOb
7fe0: 6a 65 63 74 29 20 61 6e 64 20 41 72 72 61 79 2e ject) and Array.
7ff0: 70 6f 70 28 29 20 66 75 6e 63 74 69 6f 6e 73 20 pop() functions
8000: 61 72 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c are not availabl
8010: 65 20 69 6e 20 49 45 20 35 2e 30 0d 0a 20 2a 20 e in IE 5.0.. *
8020: 40 70 61 72 61 6d 20 61 6e 41 72 72 61 79 20 74 @param anArray t
8030: 68 65 20 61 72 72 61 79 20 66 72 6f 6d 20 77 68 he array from wh
8040: 69 63 68 20 74 6f 20 70 6f 70 0d 0a 20 2a 2f 0d ich to pop.. */.
8050: 0a 4a 73 55 6e 69 74 2e 55 74 69 6c 2e 70 6f 70 .JsUnit.Util.pop
8060: 20 3d 20 66 75 6e 63 74 69 6f 6e 20 70 6f 70 28 = function pop(
8070: 61 6e 41 72 72 61 79 29 20 7b 0d 0a 20 20 20 20 anArray) {..
8080: 69 66 20 28 61 6e 41 72 72 61 79 2e 6c 65 6e 67 if (anArray.leng
8090: 74 68 20 3e 3d 20 31 29 20 7b 0d 0a 20 20 20 20 th >= 1) {..
80a0: 20 20 20 20 64 65 6c 65 74 65 20 61 6e 41 72 72 delete anArr
80b0: 61 79 5b 61 6e 41 72 72 61 79 2e 6c 65 6e 67 74 ay[anArray.lengt
80c0: 68 20 2d 20 31 5d 3b 0d 0a 20 20 20 20 20 20 20 h - 1];..
80d0: 20 61 6e 41 72 72 61 79 2e 6c 65 6e 67 74 68 2d anArray.length-
80e0: 2d 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a -;.. }..}....
80f0: 2f 2a 2a 0d 0a 20 2a 20 52 65 74 75 72 6e 73 20 /**.. * Returns
8100: 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 the name of the
8110: 67 69 76 65 6e 20 66 75 6e 63 74 69 6f 6e 2c 20 given function,
8120: 6f 72 20 27 61 6e 6f 6e 79 6d 6f 75 73 27 20 69 or 'anonymous' i
8130: 66 20 69 74 20 68 61 73 20 6e 6f 20 6e 61 6d 65 f it has no name
8140: 0d 0a 20 2a 20 40 70 61 72 61 6d 20 61 46 75 6e .. * @param aFun
8150: 63 74 69 6f 6e 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e ction.. */..JsUn
8160: 69 74 2e 55 74 69 6c 2e 67 65 74 46 75 6e 63 74 it.Util.getFunct
8170: 69 6f 6e 4e 61 6d 65 20 3d 20 66 75 6e 63 74 69 ionName = functi
8180: 6f 6e 28 61 46 75 6e 63 74 69 6f 6e 29 20 7b 0d on(aFunction) {.
8190: 0a 20 20 20 20 76 61 72 20 72 65 67 65 78 70 52 . var regexpR
81a0: 65 73 75 6c 74 20 3d 20 61 46 75 6e 63 74 69 6f esult = aFunctio
81b0: 6e 2e 74 6f 53 74 72 69 6e 67 28 29 2e 6d 61 74 n.toString().mat
81c0: 63 68 28 2f 66 75 6e 63 74 69 6f 6e 28 5c 73 2a ch(/function(\s*
81d0: 29 28 5c 77 2a 29 2f 29 3b 0d 0a 20 20 20 20 69 )(\w*)/);.. i
81e0: 66 20 28 72 65 67 65 78 70 52 65 73 75 6c 74 20 f (regexpResult
81f0: 26 26 20 72 65 67 65 78 70 52 65 73 75 6c 74 2e && regexpResult.
8200: 6c 65 6e 67 74 68 20 3e 3d 20 32 20 26 26 20 72 length >= 2 && r
8210: 65 67 65 78 70 52 65 73 75 6c 74 5b 32 5d 29 20 egexpResult[2])
8220: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 {.. r
8230: 65 74 75 72 6e 20 72 65 67 65 78 70 52 65 73 75 eturn regexpResu
8240: 6c 74 5b 32 5d 3b 0d 0a 20 20 20 20 7d 0d 0a 20 lt[2];.. }..
8250: 20 20 20 72 65 74 75 72 6e 20 27 61 6e 6f 6e 79 return 'anony
8260: 6d 6f 75 73 27 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a mous';..}..../**
8270: 0d 0a 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 .. * Returns the
8280: 20 63 75 72 72 65 6e 74 20 73 74 61 63 6b 20 74 current stack t
8290: 72 61 63 65 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e 69 race.. */..JsUni
82a0: 74 2e 55 74 69 6c 2e 67 65 74 53 74 61 63 6b 54 t.Util.getStackT
82b0: 72 61 63 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 race = function(
82c0: 29 20 7b 0d 0a 20 20 20 20 76 61 72 20 72 65 73 ) {.. var res
82d0: 75 6c 74 20 3d 20 27 27 3b 0d 0a 0d 0a 20 20 20 ult = '';....
82e0: 20 69 66 20 28 74 79 70 65 6f 66 28 61 72 67 75 if (typeof(argu
82f0: 6d 65 6e 74 73 2e 63 61 6c 6c 65 72 29 20 21 3d ments.caller) !=
8300: 20 27 75 6e 64 65 66 69 6e 65 64 27 29 20 7b 20 'undefined') {
8310: 2f 2f 20 49 45 2c 20 6e 6f 74 20 45 43 4d 41 0d // IE, not ECMA.
8320: 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 . for (va
8330: 72 20 61 20 3d 20 61 72 67 75 6d 65 6e 74 73 2e r a = arguments.
8340: 63 61 6c 6c 65 72 3b 20 61 20 21 3d 20 6e 75 6c caller; a != nul
8350: 6c 3b 20 61 20 3d 20 61 2e 63 61 6c 6c 65 72 29 l; a = a.caller)
8360: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
8370: 72 65 73 75 6c 74 20 2b 3d 20 27 3e 20 27 20 2b result += '> ' +
8380: 20 4a 73 55 6e 69 74 2e 55 74 69 6c 2e 67 65 74 JsUnit.Util.get
8390: 46 75 6e 63 74 69 6f 6e 4e 61 6d 65 28 61 2e 63 FunctionName(a.c
83a0: 61 6c 6c 65 65 29 20 2b 20 27 5c 6e 27 3b 0d 0a allee) + '\n';..
83b0: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
83c0: 61 2e 63 61 6c 6c 65 72 20 3d 3d 20 61 29 20 7b a.caller == a) {
83d0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
83e0: 20 20 72 65 73 75 6c 74 20 2b 3d 20 27 2a 27 3b result += '*';
83f0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
8400: 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 break;..
8410: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
8420: 20 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 65 }.. }.. e
8430: 6c 73 65 20 7b 20 2f 2f 20 4d 6f 7a 69 6c 6c 61 lse { // Mozilla
8440: 2c 20 6e 6f 74 20 45 43 4d 41 0d 0a 20 20 20 20 , not ECMA..
8450: 20 20 20 20 2f 2f 20 66 61 6b 65 20 61 6e 20 65 // fake an e
8460: 78 63 65 70 74 69 6f 6e 20 73 6f 20 77 65 20 63 xception so we c
8470: 61 6e 20 67 65 74 20 4d 6f 7a 69 6c 6c 61 27 73 an get Mozilla's
8480: 20 65 72 72 6f 72 20 73 74 61 63 6b 0d 0a 20 20 error stack..
8490: 20 20 20 20 20 20 74 72 79 0d 0a 20 20 20 20 20 try..
84a0: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 {..
84b0: 20 20 66 6f 6f 2e 62 61 72 3b 0d 0a 20 20 20 20 foo.bar;..
84c0: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 63 }.. c
84d0: 61 74 63 68 28 65 78 63 65 70 74 69 6f 6e 29 0d atch(exception).
84e0: 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 . {..
84f0: 20 20 20 20 20 20 20 20 76 61 72 20 73 74 61 63 var stac
8500: 6b 20 3d 20 4a 73 55 6e 69 74 2e 55 74 69 6c 2e k = JsUnit.Util.
8510: 70 61 72 73 65 45 72 72 6f 72 53 74 61 63 6b 28 parseErrorStack(
8520: 65 78 63 65 70 74 69 6f 6e 29 3b 0d 0a 20 20 20 exception);..
8530: 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 for (va
8540: 72 20 69 20 3d 20 31 3b 20 69 20 3c 20 73 74 61 r i = 1; i < sta
8550: 63 6b 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b 29 0d ck.length; i++).
8560: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a . {..
8570: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8580: 72 65 73 75 6c 74 20 2b 3d 20 27 3e 20 27 20 2b result += '> ' +
8590: 20 73 74 61 63 6b 5b 69 5d 20 2b 20 27 5c 6e 27 stack[i] + '\n'
85a0: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d ;.. }
85b0: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 .. }..
85c0: 20 7d 0d 0a 0d 0a 20 20 20 20 72 65 74 75 72 6e }.... return
85d0: 20 72 65 73 75 6c 74 3b 0d 0a 7d 0d 0a 0d 0a 2f result;..}..../
85e0: 2a 2a 0d 0a 20 2a 20 52 65 74 75 72 6e 73 20 61 **.. * Returns a
85f0: 6e 20 61 72 72 61 79 20 6f 66 20 73 74 61 63 6b n array of stack
8600: 20 74 72 61 63 65 20 65 6c 65 6d 65 6e 74 73 20 trace elements
8610: 66 72 6f 6d 20 74 68 65 20 67 69 76 65 6e 20 65 from the given e
8620: 78 63 65 70 74 69 6f 6e 0d 0a 20 2a 20 40 70 61 xception.. * @pa
8630: 72 61 6d 20 65 78 63 65 70 74 69 6f 6e 0d 0a 20 ram exception..
8640: 2a 2f 0d 0a 4a 73 55 6e 69 74 2e 55 74 69 6c 2e */..JsUnit.Util.
8650: 70 61 72 73 65 45 72 72 6f 72 53 74 61 63 6b 20 parseErrorStack
8660: 3d 20 66 75 6e 63 74 69 6f 6e 28 65 78 63 65 70 = function(excep
8670: 74 69 6f 6e 29 20 7b 0d 0a 20 20 20 20 76 61 72 tion) {.. var
8680: 20 73 74 61 63 6b 20 3d 20 5b 5d 3b 0d 0a 20 20 stack = [];..
8690: 20 20 76 61 72 20 6e 61 6d 65 3b 0d 0a 0d 0a 20 var name;....
86a0: 20 20 20 69 66 20 28 21 65 78 63 65 70 74 69 6f if (!exceptio
86b0: 6e 20 7c 7c 20 21 65 78 63 65 70 74 69 6f 6e 2e n || !exception.
86c0: 73 74 61 63 6b 29 20 7b 0d 0a 20 20 20 20 20 20 stack) {..
86d0: 20 20 72 65 74 75 72 6e 20 73 74 61 63 6b 3b 0d return stack;.
86e0: 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 76 61 . }.... va
86f0: 72 20 73 74 61 63 6b 6c 69 73 74 20 3d 20 65 78 r stacklist = ex
8700: 63 65 70 74 69 6f 6e 2e 73 74 61 63 6b 2e 73 70 ception.stack.sp
8710: 6c 69 74 28 27 5c 6e 27 29 3b 0d 0a 0d 0a 20 20 lit('\n');....
8720: 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 for (var i = 0
8730: 3b 20 69 20 3c 20 73 74 61 63 6b 6c 69 73 74 2e ; i < stacklist.
8740: 6c 65 6e 67 74 68 20 2d 20 31 3b 20 69 2b 2b 29 length - 1; i++)
8750: 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 {.. var
8760: 66 72 61 6d 65 64 61 74 61 20 3d 20 73 74 61 63 framedata = stac
8770: 6b 6c 69 73 74 5b 69 5d 3b 0d 0a 0d 0a 20 20 20 klist[i];....
8780: 20 20 20 20 20 6e 61 6d 65 20 3d 20 66 72 61 6d name = fram
8790: 65 64 61 74 61 2e 6d 61 74 63 68 28 2f 5e 28 5c edata.match(/^(\
87a0: 77 2a 29 2f 29 5b 31 5d 3b 0d 0a 20 20 20 20 20 w*)/)[1];..
87b0: 20 20 20 69 66 20 28 21 6e 61 6d 65 29 20 7b 0d if (!name) {.
87c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d . nam
87d0: 65 20 3d 20 27 61 6e 6f 6e 79 6d 6f 75 73 27 3b e = 'anonymous';
87e0: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a 20 .. }....
87f0: 20 20 20 20 20 20 20 73 74 61 63 6b 5b 73 74 61 stack[sta
8800: 63 6b 2e 6c 65 6e 67 74 68 5d 20 3d 20 6e 61 6d ck.length] = nam
8810: 65 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 2f e;.. }.. /
8820: 2f 20 72 65 6d 6f 76 65 20 74 6f 70 20 6c 65 76 / remove top lev
8830: 65 6c 20 61 6e 6f 6e 79 6d 6f 75 73 20 66 75 6e el anonymous fun
8840: 63 74 69 6f 6e 73 20 74 6f 20 6d 61 74 63 68 20 ctions to match
8850: 49 45 0d 0a 0d 0a 20 20 20 20 77 68 69 6c 65 20 IE.... while
8860: 28 73 74 61 63 6b 2e 6c 65 6e 67 74 68 20 26 26 (stack.length &&
8870: 20 73 74 61 63 6b 5b 73 74 61 63 6b 2e 6c 65 6e stack[stack.len
8880: 67 74 68 20 2d 20 31 5d 20 3d 3d 20 27 61 6e 6f gth - 1] == 'ano
8890: 6e 79 6d 6f 75 73 27 29 20 7b 0d 0a 20 20 20 20 nymous') {..
88a0: 20 20 20 20 73 74 61 63 6b 2e 6c 65 6e 67 74 68 stack.length
88b0: 20 3d 20 73 74 61 63 6b 2e 6c 65 6e 67 74 68 20 = stack.length
88c0: 2d 20 31 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 - 1;.. }..
88d0: 20 72 65 74 75 72 6e 20 73 74 61 63 6b 3b 0d 0a return stack;..
88e0: 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 53 74 72 }..../**.. * Str
88f0: 69 70 73 20 77 68 69 74 65 73 70 61 63 65 20 66 ips whitespace f
8900: 72 6f 6d 20 65 69 74 68 65 72 20 65 6e 64 20 6f rom either end o
8910: 66 20 74 68 65 20 67 69 76 65 6e 20 73 74 72 69 f the given stri
8920: 6e 67 0d 0a 20 2a 20 40 70 61 72 61 6d 20 73 74 ng.. * @param st
8930: 72 69 6e 67 0d 0a 20 2a 2f 0d 0a 4a 73 55 6e 69 ring.. */..JsUni
8940: 74 2e 55 74 69 6c 2e 74 72 69 6d 20 3d 20 66 75 t.Util.trim = fu
8950: 6e 63 74 69 6f 6e 28 73 74 72 69 6e 67 29 20 7b nction(string) {
8960: 0d 0a 20 20 20 20 69 66 20 28 73 74 72 69 6e 67 .. if (string
8970: 20 3d 3d 20 6e 75 6c 6c 29 0d 0a 20 20 20 20 20 == null)..
8980: 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d return null;.
8990: 0a 0d 0a 20 20 20 20 76 61 72 20 73 74 61 72 74 ... var start
89a0: 69 6e 67 49 6e 64 65 78 20 3d 20 30 3b 0d 0a 20 ingIndex = 0;..
89b0: 20 20 20 76 61 72 20 65 6e 64 69 6e 67 49 6e 64 var endingInd
89c0: 65 78 20 3d 20 73 74 72 69 6e 67 2e 6c 65 6e 67 ex = string.leng
89d0: 74 68 20 2d 20 31 3b 0d 0a 0d 0a 20 20 20 20 76 th - 1;.... v
89e0: 61 72 20 73 69 6e 67 6c 65 57 68 69 74 65 73 70 ar singleWhitesp
89f0: 61 63 65 52 65 67 65 78 20 3d 20 2f 5c 73 2f 3b aceRegex = /\s/;
8a00: 0d 0a 20 20 20 20 77 68 69 6c 65 20 28 73 74 72 .. while (str
8a10: 69 6e 67 2e 73 75 62 73 74 72 69 6e 67 28 73 74 ing.substring(st
8a20: 61 72 74 69 6e 67 49 6e 64 65 78 2c 20 73 74 61 artingIndex, sta
8a30: 72 74 69 6e 67 49 6e 64 65 78 20 2b 20 31 29 2e rtingIndex + 1).
8a40: 6d 61 74 63 68 28 73 69 6e 67 6c 65 57 68 69 74 match(singleWhit
8a50: 65 73 70 61 63 65 52 65 67 65 78 29 29 0d 0a 20 espaceRegex))..
8a60: 20 20 20 20 20 20 20 73 74 61 72 74 69 6e 67 49 startingI
8a70: 6e 64 65 78 2b 2b 3b 0d 0a 0d 0a 20 20 20 20 77 ndex++;.... w
8a80: 68 69 6c 65 20 28 73 74 72 69 6e 67 2e 73 75 62 hile (string.sub
8a90: 73 74 72 69 6e 67 28 65 6e 64 69 6e 67 49 6e 64 string(endingInd
8aa0: 65 78 2c 20 65 6e 64 69 6e 67 49 6e 64 65 78 20 ex, endingIndex
8ab0: 2b 20 31 29 2e 6d 61 74 63 68 28 73 69 6e 67 6c + 1).match(singl
8ac0: 65 57 68 69 74 65 73 70 61 63 65 52 65 67 65 78 eWhitespaceRegex
8ad0: 29 29 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 69 )).. endi
8ae0: 6e 67 49 6e 64 65 78 2d 2d 3b 0d 0a 0d 0a 20 20 ngIndex--;....
8af0: 20 20 69 66 20 28 65 6e 64 69 6e 67 49 6e 64 65 if (endingInde
8b00: 78 20 3c 20 73 74 61 72 74 69 6e 67 49 6e 64 65 x < startingInde
8b10: 78 29 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 x).. retu
8b20: 72 6e 20 27 27 3b 0d 0a 0d 0a 20 20 20 20 72 65 rn '';.... re
8b30: 74 75 72 6e 20 73 74 72 69 6e 67 2e 73 75 62 73 turn string.subs
8b40: 74 72 69 6e 67 28 73 74 61 72 74 69 6e 67 49 6e tring(startingIn
8b50: 64 65 78 2c 20 65 6e 64 69 6e 67 49 6e 64 65 78 dex, endingIndex
8b60: 20 2b 20 31 29 3b 0d 0a 7d 0d 0a 0d 0a 4a 73 55 + 1);..}....JsU
8b70: 6e 69 74 2e 55 74 69 6c 2e 67 65 74 4b 65 79 73 nit.Util.getKeys
8b80: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 6f 62 6a 29 = function(obj)
8b90: 20 7b 0d 0a 20 20 20 20 76 61 72 20 6b 65 79 73 {.. var keys
8ba0: 20 3d 20 5b 5d 3b 0d 0a 20 20 20 20 66 6f 72 20 = [];.. for
8bb0: 28 76 61 72 20 6b 65 79 20 69 6e 20 6f 62 6a 29 (var key in obj)
8bc0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 4a 73 55 6e {.. JsUn
8bd0: 69 74 2e 55 74 69 6c 2e 70 75 73 68 28 6b 65 79 it.Util.push(key
8be0: 73 2c 20 6b 65 79 29 3b 0d 0a 20 20 20 20 7d 0d s, key);.. }.
8bf0: 0a 20 20 20 20 72 65 74 75 72 6e 20 6b 65 79 73 . return keys
8c00: 3b 0d 0a 7d 0d 0a 0d 0a 4a 73 55 6e 69 74 2e 55 ;..}....JsUnit.U
8c10: 74 69 6c 2e 69 6e 68 65 72 69 74 20 3d 20 66 75 til.inherit = fu
8c20: 6e 63 74 69 6f 6e 28 73 75 70 65 72 63 6c 61 73 nction(superclas
8c30: 73 2c 20 73 75 62 63 6c 61 73 73 29 20 7b 0d 0a s, subclass) {..
8c40: 20 20 20 20 76 61 72 20 78 20 3d 20 66 75 6e 63 var x = func
8c50: 74 69 6f 6e 28 29 20 7b 7d 3b 0d 0a 20 20 20 20 tion() {};..
8c60: 78 2e 70 72 6f 74 6f 74 79 70 65 20 3d 20 73 75 x.prototype = su
8c70: 70 65 72 63 6c 61 73 73 2e 70 72 6f 74 6f 74 79 perclass.prototy
8c80: 70 65 3b 0d 0a 20 20 20 20 73 75 62 63 6c 61 73 pe;.. subclas
8c90: 73 2e 70 72 6f 74 6f 74 79 70 65 20 3d 20 6e 65 s.prototype = ne
8ca0: 77 20 78 28 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 53 w x();..}....//S
8cb0: 6e 65 67 6f 70 61 74 2e 0d 0a 2f 2f 4a 73 55 6e negopat...//JsUn
8cc0: 69 74 2e 5f 73 65 74 4f 6e 4c 6f 61 64 28 77 69 it._setOnLoad(wi
8cd0: 6e 64 6f 77 2c 20 4a 73 55 6e 69 74 2e 5f 6e 65 ndow, JsUnit._ne
8ce0: 77 4f 6e 4c 6f 61 64 45 76 65 6e 74 29 3b 0d 0a wOnLoadEvent);..
8cf0: 2f 2f 2f 2f 2f 53 6e 65 67 6f 70 61 74 2e 0d 0a /////Snegopat...
8d00: 0d 0a 0d 0a ....