Hex Artifact Content Вы: nobody
Вход

Artifact 0718134201aca9bde1e6561f16ca30669477c550:


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 54 65 73 74 52  pt..$uname TestR
0020: 75 6e 6e 65 72 0d 0a 24 64 6e 61 6d 65 20 d0 9c  unner..$dname ..
0030: d0 b5 d0 bd d0 b5 d0 b4 d0 b6 d0 b5 d1 80 20 d1  .............. .
0040: 8e d0 bd d0 b8 d1 82 2d d1 82 d0 b5 d1 81 d1 82  .......-........
0050: d0 be d0 b2 20 d1 81 d0 ba d1 80 d0 b8 d0 bf d1  .... ...........
0060: 82 d0 be d0 b2 0d 0a 24 61 64 64 69 6e 20 53 6e  .......$addin Sn
0070: 65 67 6f 70 61 74 4d 61 69 6e 53 63 72 69 70 74  egopatMainScript
0080: 0d 0a 24 61 64 64 69 6e 20 67 6c 6f 62 61 6c 0d  ..$addin global.
0090: 0a 24 61 64 64 69 6e 20 73 74 64 6c 69 62 0d 0a  .$addin stdlib..
00a0: 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ..//////////////
00b0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
00c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
00d0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
00e0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
00f0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f  //////////..////
0100: 7b 20 43 d0 ba d1 80 d0 b8 d0 bf d1 82 20 22 d0  { C.......... ".
0110: 9c d0 b5 d0 bd d0 b5 d0 b4 d0 b6 d0 b5 d1 80 20  ............... 
0120: d1 8e d0 bd d0 b8 d1 82 2d d1 82 d0 b5 d1 81 d1  ........-.......
0130: 82 d0 be d0 b2 20 d1 81 d0 ba d1 80 d0 b8 d0 bf  ..... ..........
0140: d1 82 d0 be d0 b2 22 20 28 74 65 73 74 72 75 6e  ......" (testrun
0150: 6e 65 72 2e 6a 73 29 20 d0 b4 d0 bb d1 8f 20 d0  ner.js) ...... .
0160: bf d1 80 d0 be d0 b5 d0 ba d1 82 d0 b0 20 22 d0  ............. ".
0170: a1 d0 bd d0 b5 d0 b3 d0 be d0 bf d0 b0 d1 82 22  ..............."
0180: 0d 0a 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 20 d0 9e d0  ..////..//// ...
0190: bf d0 b8 d1 81 d0 b0 d0 bd d0 b8 d0 b5 3a 20 d0  .............: .
01a0: a0 d0 b5 d0 b0 d0 bb d0 b8 d0 b7 d1 83 d0 b5 d1  ................
01b0: 82 20 d0 b0 d0 b2 d1 82 d0 be d0 bc d0 b0 d1 82  . ..............
01c0: d0 b8 d1 87 d0 b5 d1 81 d0 ba d0 b8 d0 b9 20 d0  .............. .
01d0: b7 d0 b0 d0 bf d1 83 d1 81 d0 ba 20 d1 8e d0 bd  ........... ....
01e0: d0 b8 d1 82 2d d1 82 d0 b5 d1 81 d1 82 d0 be d0  ....-...........
01f0: b2 20 d0 b4 d0 bb d1 8f 20 d1 81 d1 80 d0 b8 d0  . ...... .......
0200: bf d1 82 d0 be d0 b2 20 d0 bf d1 80 d0 be d0 b5  ....... ........
0210: d0 ba d1 82 d0 b0 20 22 d0 a1 d0 bd d0 b5 d0 b3  ...... "........
0220: d0 be d0 bf d0 b0 d1 82 22 2e 0d 0a 2f 2f 2f 2f  ........"...////
0230: 20 d0 90 d0 b2 d1 82 d0 be d1 80 3a 20 d0 90 d0   ..........: ...
0240: bb d0 b5 d0 ba d1 81 d0 b0 d0 bd d0 b4 d1 80 20  ............... 
0250: d0 9a d1 83 d0 bd d1 82 d0 b0 d1 88 d0 be d0 b2  ................
0260: 20 3c 6b 75 6e 74 61 73 68 6f 76 40 67 6d 61 69   <kuntashov@gmai
0270: 6c 2e 63 6f 6d 3e 2c 20 68 74 74 70 3a 2f 2f 63  l.com>, http://c
0280: 6f 6d 70 61 75 64 2e 72 75 2f 62 6c 6f 67 0d 0a  ompaud.ru/blog..
0290: 2f 2f 2f 2f 7d 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////}../////////
02a0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
02b0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
02c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
02d0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
02e0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d  ///////////////.
02f0: 0a 0d 0a 67 6c 6f 62 61 6c 2e 63 6f 6e 6e 65 63  ...global.connec
0300: 74 47 6c 6f 62 61 6c 73 28 53 65 6c 66 53 63 72  tGlobals(SelfScr
0310: 69 70 74 29 0d 0a 0d 0a 73 74 64 6c 69 62 2e 72  ipt)....stdlib.r
0320: 65 71 75 69 72 65 28 22 53 65 74 74 69 6e 67 73  equire("Settings
0330: 4d 61 6e 61 67 65 6d 65 6e 74 2e 6a 73 22 2c 20  Management.js", 
0340: 53 65 6c 66 53 63 72 69 70 74 29 3b 0d 0a 0d 0a  SelfScript);....
0350: 76 61 72 20 6a 73 55 6e 69 74 43 6f 72 65 20 3d  var jsUnitCore =
0360: 20 73 74 64 6c 69 62 2e 72 65 71 75 69 72 65 28   stdlib.require(
0370: 22 6a 73 55 6e 69 74 43 6f 72 65 2e 6a 73 22 29  "jsUnitCore.js")
0380: 3b 0d 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ;....///////////
0390: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
03a0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
03b0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
03c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
03d0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f  /////////////../
03e0: 2f 2f 2f 7b 20 d0 9c d0 b0 d0 ba d1 80 d0 be d1  ///{ ...........
03f0: 81 d1 8b 0d 0a 2f 2f 2f 2f 0d 0a 0d 0a 66 75 6e  .....////....fun
0400: 63 74 69 6f 6e 20 6d 61 63 72 6f 73 d0 9f d0 be  ction macros....
0410: d0 ba d0 b0 d0 b7 d0 b0 d1 82 d1 8c 28 29 0d 0a  ............()..
0420: 7b 0d 0a 20 20 20 20 47 65 74 54 65 73 74 52 75  {..    GetTestRu
0430: 6e 6e 65 72 28 29 2e 53 68 6f 77 28 29 3b 0d 0a  nner().Show();..
0440: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61  }....function ma
0450: 63 72 6f 73 d0 a1 d0 ba d1 80 d1 8b d1 82 d1 8c  cros............
0460: 28 29 0d 0a 7b 0d 0a 20 20 20 20 47 65 74 54 65  ()..{..    GetTe
0470: 73 74 52 75 6e 6e 65 72 28 29 2e 43 6c 6f 73 65  stRunner().Close
0480: 28 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2a 20 d0 92 d0  ();..}..../* ...
0490: be d0 b7 d0 b2 d1 80 d0 b0 d1 89 d0 b0 d0 b5 d1  ................
04a0: 82 20 d0 bd d0 b0 d0 b7 d0 b2 d0 b0 d0 bd d0 b8  . ..............
04b0: d0 b5 20 d0 bc d0 b0 d0 ba d1 80 d0 be d1 81 d0  .. .............
04c0: b0 20 d0 bf d0 be 20 d1 83 d0 bc d0 be d0 bb d1  . .... .........
04d0: 87 d0 b0 d0 bd d0 b8 d1 8e 20 2d 20 d0 b2 d1 8b  ......... - ....
04e0: d0 b7 d1 8b d0 b2 d0 b0 d0 b5 d1 82 d1 81 d1 8f  ................
04f0: 2c 20 d0 ba d0 be d0 b3 d0 b4 d0 b0 20 d0 bf d0  , .......... ...
0500: be d0 bb d1 8c d0 b7 d0 be d0 b2 d0 b0 d1 82 d0  ................
0510: b5 d0 bb d1 8c 20 0d 0a d0 b4 d0 b2 d0 b0 d0 b6  ..... ..........
0520: d0 b4 d1 8b 20 d1 89 d0 b5 d0 bb d0 ba d0 b0 d0  .... ...........
0530: b5 d1 82 20 d0 bc d1 8b d1 88 d1 8c d1 8e 20 d0  ... .......... .
0540: bf d0 be 20 d0 bd d0 b0 d0 b7 d0 b2 d0 b0 d0 bd  ... ............
0550: d0 b8 d1 8e 20 d1 81 d0 ba d1 80 d0 b8 d0 bf d1  .... ...........
0560: 82 d0 b0 20 d0 b2 20 d0 be d0 ba d0 bd d0 b5 20  ... .. ........ 
0570: d0 a1 d0 bd d0 b5 d0 b3 d0 be d0 bf d0 b0 d1 82  ................
0580: d0 b0 2e 20 2a 2f 0d 0a 66 75 6e 63 74 69 6f 6e  ... */..function
0590: 20 67 65 74 44 65 66 61 75 6c 74 4d 61 63 72 6f   getDefaultMacro
05a0: 73 28 29 20 7b 0d 0a 20 20 20 20 72 65 74 75 72  s() {..    retur
05b0: 6e 20 27 d0 9f d0 be d0 ba d0 b0 d0 b7 d0 b0 d1  n '.............
05c0: 82 d1 8c 27 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 7d 0d  ...';..}....//}.
05d0: 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  .../////////////
05e0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
05f0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0600: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0610: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
0620: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f  ///////////..///
0630: 2f 7b 20 54 65 73 74 52 75 6e 6e 65 72 0d 0a 2f  /{ TestRunner../
0640: 2f 2f 2f 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20  ///....function 
0650: 54 65 73 74 52 75 6e 6e 65 72 28 29 0d 0a 7b 0d  TestRunner()..{.
0660: 0a 20 20 20 20 54 65 73 74 52 75 6e 6e 65 72 2e  .    TestRunner.
0670: 5f 69 6e 73 74 61 6e 63 65 20 3d 20 74 68 69 73  _instance = this
0680: 3b 0d 0a 0d 0a 20 20 20 20 74 68 69 73 2e 65 72  ;....    this.er
0690: 72 6f 72 43 6f 75 6e 74 20 3d 20 30 3b 0d 0a 20  rorCount = 0;.. 
06a0: 20 20 20 74 68 69 73 2e 73 75 63 63 65 73 73 43     this.successC
06b0: 6f 75 6e 74 20 3d 20 30 3b 0d 0a 20 20 20 20 74  ount = 0;..    t
06c0: 68 69 73 2e 66 61 69 6c 75 72 65 43 6f 75 6e 74  his.failureCount
06d0: 20 3d 20 30 3b 0d 0a 20 20 20 20 0d 0a 20 20 20   = 0;..    ..   
06e0: 20 74 68 69 73 2e 66 6f 72 6d 20 3d 20 6c 6f 61   this.form = loa
06f0: 64 53 63 72 69 70 74 46 6f 72 6d 28 22 73 63 72  dScriptForm("scr
0700: 69 70 74 73 5c 5c 44 65 76 54 6f 6f 6c 73 5c 5c  ipts\\DevTools\\
0710: 74 65 73 74 72 75 6e 6e 65 72 2e 73 73 66 22 2c  testrunner.ssf",
0720: 20 74 68 69 73 29 0d 0a 20 20 20 20 20 20 20 20   this)..        
0730: 0d 0a 20 20 20 20 74 68 69 73 2e 61 6c 6c 54 65  ..    this.allTe
0740: 73 74 73 20 3d 20 74 68 69 73 2e 66 6f 72 6d 2e  sts = this.form.
0750: d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 d1 8b  ................
0760: d0 a4 d0 be d1 80 d0 bc d1 8b 2e d1 82 d0 bf d0  ................
0770: 94 d0 b5 d1 80 d0 b5 d0 b2 d0 be d0 a2 d0 b5 d1  ................
0780: 81 d1 82 d0 be d0 b2 2e d0 97 d0 bd d0 b0 d1 87  ................
0790: d0 b5 d0 bd d0 b8 d0 b5 3b 20 20 20 20 20 20 20  ........;       
07a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a                ..
07b0: 20 20 20 20 74 68 69 73 2e 61 6c 6c 54 65 73 74      this.allTest
07c0: 73 2e d0 9a d0 be d0 bb d0 be d0 bd d0 ba d0 b8  s...............
07d0: 2e d0 94 d0 be d0 b1 d0 b0 d0 b2 d0 b8 d1 82 d1  ................
07e0: 8c 28 22 6f 62 6a 65 63 74 22 29 3b 0d 0a 20 20  .("object");..  
07f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0800: 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 6c 6f     ..    this.lo
0810: 61 64 65 64 54 65 73 74 41 64 64 69 6e 73 20 3d  adedTestAddins =
0820: 20 5b 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20   [];..          
0830: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20             ..   
0840: 20 2f 2f 20 d0 92 d0 b0 d1 80 d0 b8 d0 b0 d0 bd   // ............
0850: d1 82 d1 8b 20 d1 81 d0 be d1 81 d1 82 d0 be d1  .... ...........
0860: 8f d0 bd d0 b8 d0 b9 20 d0 b2 d1 8b d0 bf d0 be  ....... ........
0870: d0 bb d0 bd d0 b5 d0 bd d0 b8 d1 8f 20 d1 82 d0  ............ ...
0880: b5 d1 81 d1 82 d0 be d0 b2 0d 0a 20 20 20 20 74  ...........    t
0890: 68 69 73 2e 53 54 41 54 45 5f 4e 4f 54 5f 52 55  his.STATE_NOT_RU
08a0: 4e 20 3d 20 30 3b 0d 0a 20 20 20 20 74 68 69 73  N = 0;..    this
08b0: 2e 53 54 41 54 45 5f 53 55 43 43 45 53 53 20 3d  .STATE_SUCCESS =
08c0: 20 31 3b 0d 0a 20 20 20 20 74 68 69 73 2e 53 54   1;..    this.ST
08d0: 41 54 45 5f 49 47 4e 4f 52 45 20 20 3d 20 32 3b  ATE_IGNORE  = 2;
08e0: 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 53      ..    this.S
08f0: 54 41 54 45 5f 46 41 49 4c 55 52 45 20 3d 20 33  TATE_FAILURE = 3
0900: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d  ;..            .
0910: 0a 20 20 20 20 2f 2f 20 d0 98 d0 ba d0 be d0 bd  .    // ........
0920: d0 ba d0 b8 20 d1 81 d0 be d1 81 d1 82 d0 be d1  .... ...........
0930: 8f d0 bd d0 b8 d0 b9 2e 0d 0a 20 20 20 20 74 68  ..........    th
0940: 69 73 2e 53 74 61 74 65 49 63 6f 6e 73 20 3d 20  is.StateIcons = 
0950: 7b 20 20 0d 0a 20 20 20 20 20 20 20 20 47 72 61  {  ..        Gra
0960: 79 20 3a 20 74 68 69 73 2e 66 6f 72 6d 2e d0 ad  y : this.form...
0970: d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 d1 8b d0 a4  ................
0980: d0 be d1 80 d0 bc d1 8b 2e d0 9f d0 be d0 bb d0  ................
0990: b5 d0 9a d0 b0 d1 80 d1 82 d0 b8 d0 bd d0 ba d0  ................
09a0: b8 d0 a1 d0 b5 d1 80 d1 8b d0 b9 2e d0 9a d0 b0  ................
09b0: d1 80 d1 82 d0 b8 d0 bd d0 ba d0 b0 2c 0d 0a 20  ............,.. 
09c0: 20 20 20 20 20 20 20 47 72 65 65 6e 3a 20 74 68         Green: th
09d0: 69 73 2e 66 6f 72 6d 2e d0 ad d0 bb d0 b5 d0 bc  is.form.........
09e0: d0 b5 d0 bd d1 82 d1 8b d0 a4 d0 be d1 80 d0 bc  ................
09f0: d1 8b 2e d0 9f d0 be d0 bb d0 b5 d0 9a d0 b0 d1  ................
0a00: 80 d1 82 d0 b8 d0 bd d0 ba d0 b8 d0 97 d0 b5 d0  ................
0a10: bb d0 b5 d0 bd d1 8b d0 b9 2e d0 9a d0 b0 d1 80  ................
0a20: d1 82 d0 b8 d0 bd d0 ba d0 b0 2c 0d 0a 20 20 20  ..........,..   
0a30: 20 20 20 20 20 59 65 6c 6c 6f 77 3a 20 74 68 69       Yellow: thi
0a40: 73 2e 66 6f 72 6d 2e d0 ad d0 bb d0 b5 d0 bc d0  s.form..........
0a50: b5 d0 bd d1 82 d1 8b d0 a4 d0 be d1 80 d0 bc d1  ................
0a60: 8b 2e d0 9f d0 be d0 bb d0 b5 d0 9a d0 b0 d1 80  ................
0a70: d1 82 d0 b8 d0 bd d0 ba d0 b8 d0 96 d0 b5 d0 bb  ................
0a80: d1 82 d1 8b d0 b9 2e d0 9a d0 b0 d1 80 d1 82 d0  ................
0a90: b8 d0 bd d0 ba d0 b0 2c 0d 0a 20 20 20 20 20 20  .......,..      
0aa0: 20 20 52 65 64 3a 20 74 68 69 73 2e 66 6f 72 6d    Red: this.form
0ab0: 2e d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 d1  ................
0ac0: 8b d0 a4 d0 be d1 80 d0 bc d1 8b 2e d0 9f d0 be  ................
0ad0: d0 bb d0 b5 d0 9a d0 b0 d1 80 d1 82 d0 b8 d0 bd  ................
0ae0: d0 ba d0 b8 d0 9a d1 80 d0 b0 d1 81 d0 bd d1 8b  ................
0af0: d0 b9 2e d0 9a d0 b0 d1 80 d1 82 d0 b8 d0 bd d0  ................
0b00: ba d0 b0 0d 0a 20 20 20 20 7d 20 20 20 20 20 20  .....    }      
0b10: 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20            ..    
0b20: 0d 0a 20 20 20 20 2f 2f 20 d0 a4 d0 bb d0 b0 d0  ..    // .......
0b30: b3 2c 20 d1 81 d0 b8 d0 b3 d0 bd d0 b0 d0 bb d0  ., .............
0b40: b8 d0 b7 d0 b8 d1 80 d1 83 d1 8e d1 89 d0 b8 d0  ................
0b50: b9 2c 20 d1 87 d1 82 d0 be 20 d1 82 d0 b5 d1 81  ., ...... ......
0b60: d1 82 d1 8b 20 d0 b7 d0 b0 d0 bf d1 83 d1 81 d0  .... ...........
0b70: ba d0 b0 d0 bb d0 b8 d1 81 d1 8c 2e 0d 0a 20 20  ..............  
0b80: 20 20 74 68 69 73 2e 74 65 73 74 69 6e 67 44 6f    this.testingDo
0b90: 6e 65 20 3d 20 66 61 6c 73 65 3b 0d 0a 0d 0a 20  ne = false;.... 
0ba0: 20 20 20 74 68 69 73 2e 64 65 66 61 75 6c 74 53     this.defaultS
0bb0: 65 74 74 69 6e 67 73 20 3d 20 7b 0d 0a 20 20 20  ettings = {..   
0bc0: 20 20 20 20 20 52 65 6c 6f 61 64 42 65 66 6f 72       ReloadBefor
0bd0: 65 52 75 6e 41 6c 6c 20 3a 20 66 61 6c 73 65 2c  eRunAll : false,
0be0: 0d 0a 20 20 20 20 20 20 20 20 4c 6f 67 4f 6e 53  ..        LogOnS
0bf0: 75 63 63 65 73 73 20 3a 20 66 61 6c 73 65 0d 0a  uccess : false..
0c00: 20 20 20 20 7d 3b 0d 0a 20 20 20 20 0d 0a 20 20      };..    ..  
0c10: 20 20 74 68 69 73 2e 73 65 74 74 69 6e 67 73 20    this.settings 
0c20: 3d 20 53 65 74 74 69 6e 67 73 4d 61 6e 61 67 65  = SettingsManage
0c30: 6d 65 6e 74 2e 43 72 65 61 74 65 4d 61 6e 61 67  ment.CreateManag
0c40: 65 72 28 53 65 6c 66 53 63 72 69 70 74 2e 75 6e  er(SelfScript.un
0c50: 69 71 75 65 4e 61 6d 65 2c 20 74 68 69 73 2e 64  iqueName, this.d
0c60: 65 66 61 75 6c 74 53 65 74 74 69 6e 67 73 29 3b  efaultSettings);
0c70: 0d 0a 20 20 20 20 74 68 69 73 2e 73 65 74 74 69  ..    this.setti
0c80: 6e 67 73 2e 4c 6f 61 64 53 65 74 74 69 6e 67 73  ngs.LoadSettings
0c90: 28 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e 73 65  ();..    this.se
0ca0: 74 74 69 6e 67 73 2e 41 70 70 6c 79 54 6f 46 6f  ttings.ApplyToFo
0cb0: 72 6d 28 74 68 69 73 2e 66 6f 72 6d 29 3b 20 20  rm(this.form);  
0cc0: 20 20 0d 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e    ..}....TestRun
0cd0: 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 53 68  ner.prototype.Sh
0ce0: 6f 77 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29  ow = function ()
0cf0: 0d 0a 7b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f  ..{..    this.fo
0d00: 72 6d 2e 4f 70 65 6e 28 29 3b 0d 0a 7d 0d 0a 0d  rm.Open();..}...
0d10: 0a 54 65 73 74 52 75 6e 6e 65 72 2e 70 72 6f 74  .TestRunner.prot
0d20: 6f 74 79 70 65 2e 43 6c 6f 73 65 20 3d 20 66 75  otype.Close = fu
0d30: 6e 63 74 69 6f 6e 20 28 29 0d 0a 7b 0d 0a 20 20  nction ()..{..  
0d40: 20 20 69 66 20 28 74 68 69 73 2e 66 6f 72 6d 2e    if (this.form.
0d50: 49 73 4f 70 65 6e 28 29 29 0d 0a 20 20 20 20 20  IsOpen())..     
0d60: 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e 43 6c 6f     this.form.Clo
0d70: 73 65 28 29 3b 0d 0a 7d 0d 0a 0d 0a 54 65 73 74  se();..}....Test
0d80: 52 75 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65  Runner.prototype
0d90: 2e 72 65 73 65 74 43 6f 75 6e 74 65 72 73 20 3d  .resetCounters =
0da0: 20 66 75 6e 63 74 69 6f 6e 28 29 0d 0a 7b 0d 0a   function()..{..
0db0: 20 20 20 20 74 68 69 73 2e 65 72 72 6f 72 43 6f      this.errorCo
0dc0: 75 6e 74 20 3d 20 30 3b 0d 0a 20 20 20 20 74 68  unt = 0;..    th
0dd0: 69 73 2e 73 75 63 63 65 73 73 43 6f 75 6e 74 20  is.successCount 
0de0: 3d 20 30 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66  = 0;..    this.f
0df0: 61 69 6c 75 72 65 43 6f 75 6e 74 20 3d 20 30 3b  ailureCount = 0;
0e00: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73  ..    ..    this
0e10: 2e 75 70 64 61 74 65 54 6f 74 61 6c 73 28 29 3b  .updateTotals();
0e20: 0d 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65  ..}....TestRunne
0e30: 72 2e 70 72 6f 74 6f 74 79 70 65 2e 75 70 64 61  r.prototype.upda
0e40: 74 65 54 6f 74 61 6c 73 20 3d 20 66 75 6e 63 74  teTotals = funct
0e50: 69 6f 6e 20 28 29 0d 0a 7b 0d 0a 20 20 20 20 74  ion ()..{..    t
0e60: 68 69 73 2e 66 6f 72 6d 2e d0 ad d0 bb d0 b5 d0  his.form........
0e70: bc d0 b5 d0 bd d1 82 d1 8b d0 a4 d0 be d1 80 d0  ................
0e80: bc d1 8b 2e d0 9a d0 be d0 bb d0 b8 d1 87 d0 b5  ................
0e90: d1 81 d1 82 d0 b2 d0 be d0 a2 d0 b5 d1 81 d1 82  ................
0ea0: d0 be d0 b2 d0 92 d1 81 d0 b5 d0 b3 d0 be 2e d0  ................
0eb0: 97 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8 d0 b5 20  ............... 
0ec0: 3d 20 74 68 69 73 2e 74 65 73 74 73 43 6f 75 6e  = this.testsCoun
0ed0: 74 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f 72  t;..    this.for
0ee0: 6d 2e d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82  m...............
0ef0: d1 8b d0 a4 d0 be d1 80 d0 bc d1 8b 2e d0 9a d0  ................
0f00: be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0 b2 d0  ................
0f10: be d0 a3 d1 81 d0 bf d0 b5 d1 88 d0 bd d1 8b d1  ................
0f20: 85 d0 a2 d0 b5 d1 81 d1 82 d0 be d0 b2 2e d0 97  ................
0f30: d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8 d0 b5 20 3d  .............. =
0f40: 20 74 68 69 73 2e 73 75 63 63 65 73 73 43 6f 75   this.successCou
0f50: 6e 74 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f  nt;..    this.fo
0f60: 72 6d 2e d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1  rm..............
0f70: 82 d1 8b d0 a4 d0 be d1 80 d0 bc d1 8b 2e d0 9a  ................
0f80: d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0 b2  ................
0f90: d0 be d0 9f d1 80 d0 be d0 b2 d0 b0 d0 bb d0 b5  ................
0fa0: d0 bd d0 bd d1 8b d1 85 d0 a2 d0 b5 d1 81 d1 82  ................
0fb0: d0 be d0 b2 2e d0 97 d0 bd d0 b0 d1 87 d0 b5 d0  ................
0fc0: bd d0 b8 d0 b5 20 3d 20 74 68 69 73 2e 66 61 69  ..... = this.fai
0fd0: 6c 75 72 65 43 6f 75 6e 74 3b 0d 0a 7d 0d 0a 0d  lureCount;..}...
0fe0: 0a 54 65 73 74 52 75 6e 6e 65 72 2e 70 72 6f 74  .TestRunner.prot
0ff0: 6f 74 79 70 65 2e 69 6e 69 74 50 72 6f 67 72 65  otype.initProgre
1000: 73 73 42 61 72 20 3d 20 66 75 6e 63 74 69 6f 6e  ssBar = function
1010: 20 28 29 0d 0a 7b 0d 0a 20 20 20 20 74 68 69 73   ()..{..    this
1020: 2e 73 77 69 74 63 68 50 72 6f 67 72 65 73 73 42  .switchProgressB
1030: 61 72 28 74 72 75 65 29 3b 0d 0a 20 20 20 20 74  ar(true);..    t
1040: 68 69 73 2e 66 6f 72 6d 2e d0 ad d0 bb d0 b5 d0  his.form........
1050: bc d0 b5 d0 bd d1 82 d1 8b d0 a4 d0 be d1 80 d0  ................
1060: bc d1 8b 2e d0 98 d0 bd d0 b4 d0 b8 d0 ba d0 b0  ................
1070: d1 82 d0 be d1 80 d0 92 d1 8b d0 bf d0 be d0 bb  ................
1080: d0 bd d0 b5 d0 bd d0 b8 d1 8f 2e d0 9c d0 b8 d0  ................
1090: bd d0 b8 d0 bc d0 b0 d0 bb d1 8c d0 bd d0 be d0  ................
10a0: b5 d0 97 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8 d0  ................
10b0: b5 20 3d 20 30 3b 0d 0a 20 20 20 20 74 68 69 73  . = 0;..    this
10c0: 2e 66 6f 72 6d 2e d0 ad d0 bb d0 b5 d0 bc d0 b5  .form...........
10d0: d0 bd d1 82 d1 8b d0 a4 d0 be d1 80 d0 bc d1 8b  ................
10e0: 2e d0 98 d0 bd d0 b4 d0 b8 d0 ba d0 b0 d1 82 d0  ................
10f0: be d1 80 d0 92 d1 8b d0 bf d0 be d0 bb d0 bd d0  ................
1100: b5 d0 bd d0 b8 d1 8f 2e d0 9c d0 b0 d0 ba d1 81  ................
1110: d0 b8 d0 bc d0 b0 d0 bb d1 8c d0 bd d0 be d0 b5  ................
1120: d0 97 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8 d0 b5  ................
1130: 20 3d 20 74 68 69 73 2e 74 65 73 74 73 43 6f 75   = this.testsCou
1140: 6e 74 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f  nt;..    this.fo
1150: 72 6d 2e d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1  rm..............
1160: 82 d1 8b d0 a4 d0 be d1 80 d0 bc d1 8b 2e d0 98  ................
1170: d0 bd d0 b4 d0 b8 d0 ba d0 b0 d1 82 d0 be d1 80  ................
1180: d0 92 d1 8b d0 bf d0 be d0 bb d0 bd d0 b5 d0 bd  ................
1190: d0 b8 d1 8f 2e d0 a8 d0 b0 d0 b3 20 3d 20 31 3b  ........... = 1;
11a0: 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e  ..    this.form.
11b0: d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 d1 8b  ................
11c0: d0 a4 d0 be d1 80 d0 bc d1 8b 2e d0 98 d0 bd d0  ................
11d0: b4 d0 b8 d0 ba d0 b0 d1 82 d0 be d1 80 d0 92 d1  ................
11e0: 8b d0 bf d0 be d0 bb d0 bd d0 b5 d0 bd d0 b8 d1  ................
11f0: 8f 2e d0 97 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8  ................
1200: d0 b5 20 3d 20 30 3b 20 20 20 20 0d 0a 7d 0d 0a  .. = 0;    ..}..
1210: 0d 0a 54 65 73 74 52 75 6e 6e 65 72 2e 70 72 6f  ..TestRunner.pro
1220: 74 6f 74 79 70 65 2e 70 72 6f 67 72 65 73 73 42  totype.progressB
1230: 61 72 44 6f 53 74 65 70 20 3d 20 66 75 6e 63 74  arDoStep = funct
1240: 69 6f 6e 20 28 29 0d 0a 7b 0d 0a 20 20 20 20 74  ion ()..{..    t
1250: 68 69 73 2e 66 6f 72 6d 2e d0 ad d0 bb d0 b5 d0  his.form........
1260: bc d0 b5 d0 bd d1 82 d1 8b d0 a4 d0 be d1 80 d0  ................
1270: bc d1 8b 2e d0 98 d0 bd d0 b4 d0 b8 d0 ba d0 b0  ................
1280: d1 82 d0 be d1 80 d0 92 d1 8b d0 bf d0 be d0 bb  ................
1290: d0 bd d0 b5 d0 bd d0 b8 d1 8f 2e d0 97 d0 bd d0  ................
12a0: b0 d1 87 d0 b5 d0 bd d0 b8 d0 b5 20 3d 20 74 68  ........... = th
12b0: 69 73 2e 66 6f 72 6d 2e d0 ad d0 bb d0 b5 d0 bc  is.form.........
12c0: d0 b5 d0 bd d1 82 d1 8b d0 a4 d0 be d1 80 d0 bc  ................
12d0: d1 8b 2e d0 98 d0 bd d0 b4 d0 b8 d0 ba d0 b0 d1  ................
12e0: 82 d0 be d1 80 d0 92 d1 8b d0 bf d0 be d0 bb d0  ................
12f0: bd d0 b5 d0 bd d0 b8 d1 8f 2e d0 97 d0 bd d0 b0  ................
1300: d1 87 d0 b5 d0 bd d0 b8 d0 b5 20 2b 20 31 3b 0d  .......... + 1;.
1310: 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65 72  .}....TestRunner
1320: 2e 70 72 6f 74 6f 74 79 70 65 2e 73 77 69 74 63  .prototype.switc
1330: 68 50 72 6f 67 72 65 73 73 42 61 72 20 3d 20 66  hProgressBar = f
1340: 75 6e 63 74 69 6f 6e 20 28 70 72 6f 67 72 65 73  unction (progres
1350: 73 42 61 72 56 69 73 69 62 6c 65 29 0d 0a 7b 0d  sBarVisible)..{.
1360: 0a 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e d0  .    this.form..
1370: ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 d1 8b d0  ................
1380: a4 d0 be d1 80 d0 bc d1 8b 2e d0 9d d0 b0 d0 b4  ................
1390: d0 bf d0 b8 d1 81 d1 8c d0 92 d1 81 d0 b5 d0 b3  ................
13a0: d0 be 2e d0 92 d0 b8 d0 b4 d0 b8 d0 bc d0 be d1  ................
13b0: 81 d1 82 d1 8c 20 3d 20 21 70 72 6f 67 72 65 73  ..... = !progres
13c0: 73 42 61 72 56 69 73 69 62 6c 65 3b 0d 0a 20 20  sBarVisible;..  
13d0: 20 20 74 68 69 73 2e 66 6f 72 6d 2e d0 ad d0 bb    this.form.....
13e0: d0 b5 d0 bc d0 b5 d0 bd d1 82 d1 8b d0 a4 d0 be  ................
13f0: d1 80 d0 bc d1 8b 2e d0 9a d0 be d0 bb d0 b8 d1  ................
1400: 87 d0 b5 d1 81 d1 82 d0 b2 d0 be d0 a2 d0 b5 d1  ................
1410: 81 d1 82 d0 be d0 b2 d0 92 d1 81 d0 b5 d0 b3 d0  ................
1420: be 2e d0 92 d0 b8 d0 b4 d0 b8 d0 bc d0 be d1 81  ................
1430: d1 82 d1 8c 20 3d 20 21 70 72 6f 67 72 65 73 73  .... = !progress
1440: 42 61 72 56 69 73 69 62 6c 65 3b 0d 0a 20 20 20  BarVisible;..   
1450: 20 74 68 69 73 2e 66 6f 72 6d 2e d0 ad d0 bb d0   this.form......
1460: b5 d0 bc d0 b5 d0 bd d1 82 d1 8b d0 a4 d0 be d1  ................
1470: 80 d0 bc d1 8b 2e d0 9d d0 b0 d0 b4 d0 bf d0 b8  ................
1480: d1 81 d1 8c d0 a3 d1 81 d0 bf d0 b5 d1 88 d0 bd  ................
1490: d0 be 2e d0 92 d0 b8 d0 b4 d0 b8 d0 bc d0 be d1  ................
14a0: 81 d1 82 d1 8c 20 3d 20 21 70 72 6f 67 72 65 73  ..... = !progres
14b0: 73 42 61 72 56 69 73 69 62 6c 65 3b 0d 0a 20 20  sBarVisible;..  
14c0: 20 20 74 68 69 73 2e 66 6f 72 6d 2e d0 ad d0 bb    this.form.....
14d0: d0 b5 d0 bc d0 b5 d0 bd d1 82 d1 8b d0 a4 d0 be  ................
14e0: d1 80 d0 bc d1 8b 2e d0 9a d0 be d0 bb d0 b8 d1  ................
14f0: 87 d0 b5 d1 81 d1 82 d0 b2 d0 be d0 a3 d1 81 d0  ................
1500: bf d0 b5 d1 88 d0 bd d1 8b d1 85 d0 a2 d0 b5 d1  ................
1510: 81 d1 82 d0 be d0 b2 2e d0 92 d0 b8 d0 b4 d0 b8  ................
1520: d0 bc d0 be d1 81 d1 82 d1 8c 20 3d 20 21 70 72  .......... = !pr
1530: 6f 67 72 65 73 73 42 61 72 56 69 73 69 62 6c 65  ogressBarVisible
1540: 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f 72 6d  ;..    this.form
1550: 2e d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 d1  ................
1560: 8b d0 a4 d0 be d1 80 d0 bc d1 8b 2e d0 9d d0 b0  ................
1570: d0 b4 d0 bf d0 b8 d1 81 d1 8c d0 9f d1 80 d0 be  ................
1580: d0 b2 d0 b0 d0 bb d0 b5 d0 bd d0 be 2e d0 92 d0  ................
1590: b8 d0 b4 d0 b8 d0 bc d0 be d1 81 d1 82 d1 8c 20  ............... 
15a0: 3d 20 21 70 72 6f 67 72 65 73 73 42 61 72 56 69  = !progressBarVi
15b0: 73 69 62 6c 65 3b 0d 0a 20 20 20 20 74 68 69 73  sible;..    this
15c0: 2e 66 6f 72 6d 2e d0 ad d0 bb d0 b5 d0 bc d0 b5  .form...........
15d0: d0 bd d1 82 d1 8b d0 a4 d0 be d1 80 d0 bc d1 8b  ................
15e0: 2e d0 9a d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1  ................
15f0: 82 d0 b2 d0 be d0 9f d1 80 d0 be d0 b2 d0 b0 d0  ................
1600: bb d0 b5 d0 bd d0 bd d1 8b d1 85 d0 a2 d0 b5 d1  ................
1610: 81 d1 82 d0 be d0 b2 2e d0 92 d0 b8 d0 b4 d0 b8  ................
1620: d0 bc d0 be d1 81 d1 82 d1 8c 20 3d 20 21 70 72  .......... = !pr
1630: 6f 67 72 65 73 73 42 61 72 56 69 73 69 62 6c 65  ogressBarVisible
1640: 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f 72 6d  ;..    this.form
1650: 2e d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 d1  ................
1660: 8b d0 a4 d0 be d1 80 d0 bc d1 8b 2e d0 98 d0 bd  ................
1670: d0 b4 d0 b8 d0 ba d0 b0 d1 82 d0 be d1 80 d0 92  ................
1680: d1 8b d0 bf d0 be d0 bb d0 bd d0 b5 d0 bd d0 b8  ................
1690: d1 8f 2e d0 92 d0 b8 d0 b4 d0 b8 d0 bc d0 be d1  ................
16a0: 81 d1 82 d1 8c 20 3d 20 21 21 70 72 6f 67 72 65  ..... = !!progre
16b0: 73 73 42 61 72 56 69 73 69 62 6c 65 3b 0d 0a 7d  ssBarVisible;..}
16c0: 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65 72 2e 70  ....TestRunner.p
16d0: 72 6f 74 6f 74 79 70 65 2e 75 6e 6c 6f 61 64 41  rototype.unloadA
16e0: 6c 6c 54 65 73 74 73 20 3d 20 66 75 6e 63 74 69  llTests = functi
16f0: 6f 6e 20 28 29 0d 0a 7b 0d 0a 20 20 20 20 74 68  on ()..{..    th
1700: 69 73 2e 61 6c 6c 54 65 73 74 73 2e d0 a1 d1 82  is.allTests.....
1710: d1 80 d0 be d0 ba d0 b8 2e d0 9e d1 87 d0 b8 d1  ................
1720: 81 d1 82 d0 b8 d1 82 d1 8c 28 29 3b 0d 0a 0d 0a  .........();....
1730: 20 20 20 20 66 6f 72 20 28 76 61 72 20 69 3d 30      for (var i=0
1740: 3b 20 69 3c 74 68 69 73 2e 6c 6f 61 64 65 64 54  ; i<this.loadedT
1750: 65 73 74 41 64 64 69 6e 73 2e 6c 65 6e 67 74 68  estAddins.length
1760: 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 7b 0d 0a 20  ; i++)..    {.. 
1770: 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e         if (this.
1780: 6c 6f 61 64 65 64 54 65 73 74 41 64 64 69 6e 73  loadedTestAddins
1790: 5b 69 5d 2e 75 6e 69 71 75 65 4e 61 6d 65 29 0d  [i].uniqueName).
17a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 61 64 64  .            add
17b0: 69 6e 73 2e 75 6e 6c 6f 61 64 41 64 64 69 6e 28  ins.unloadAddin(
17c0: 74 68 69 73 2e 6c 6f 61 64 65 64 54 65 73 74 41  this.loadedTestA
17d0: 64 64 69 6e 73 5b 69 5d 29 3b 0d 0a 20 20 20 20  ddins[i]);..    
17e0: 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68 69  }..    ..    thi
17f0: 73 2e 6c 6f 61 64 65 64 54 65 73 74 41 64 64 69  s.loadedTestAddi
1800: 6e 73 20 3d 20 5b 5d 3b 0d 0a 20 20 20 20 74 68  ns = [];..    th
1810: 69 73 2e 74 65 73 74 69 6e 67 44 6f 6e 65 20 3d  is.testingDone =
1820: 20 66 61 6c 73 65 3b 0d 0a 7d 0d 0a 0d 0a 54 65   false;..}....Te
1830: 73 74 52 75 6e 6e 65 72 2e 70 72 6f 74 6f 74 79  stRunner.prototy
1840: 70 65 2e 6c 6f 61 64 54 65 73 74 73 20 3d 20 66  pe.loadTests = f
1850: 75 6e 63 74 69 6f 6e 28 70 61 74 68 29 0d 0a 7b  unction(path)..{
1860: 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 75      ..    this.u
1870: 6e 6c 6f 61 64 41 6c 6c 54 65 73 74 73 28 29 3b  nloadAllTests();
1880: 0d 0a 0d 0a 20 20 20 20 74 68 69 73 2e 74 65 73  ....    this.tes
1890: 74 73 43 6f 75 6e 74 20 3d 20 30 3b 0d 0a 20 20  tsCount = 0;..  
18a0: 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 77 61 6c    ..    this.wal
18b0: 6b 46 69 6c 65 73 41 6e 64 4c 6f 61 64 28 70 61  kFilesAndLoad(pa
18c0: 74 68 2c 20 74 68 69 73 2e 61 6c 6c 54 65 73 74  th, this.allTest
18d0: 73 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 69  s);..    ..    i
18e0: 66 20 28 74 68 69 73 2e 61 6c 6c 54 65 73 74 73  f (this.allTests
18f0: 2e d0 a1 d1 82 d1 80 d0 be d0 ba d0 b8 2e d0 9a  ................
1900: d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0 b2  ................
1910: d0 be 28 29 20 3d 3d 20 30 29 0d 0a 20 20 20 20  ..() == 0)..    
1920: 7b 0d 0a 20 20 20 20 20 20 20 20 4d 65 73 73 61  {..        Messa
1930: 67 65 28 22 d0 92 20 d0 ba d0 b0 d1 82 d0 b0 d0  ge(".. .........
1940: bb d0 be d0 b3 d0 b5 20 22 20 2b 20 70 61 74 68  ....... " + path
1950: 20 2b 20 22 20 d1 82 d0 b5 d1 81 d1 82 2d d0 ba   + " ........-..
1960: d0 b5 d0 b9 d1 81 d0 be d0 b2 20 d0 bd d0 b5 20  .......... .... 
1970: d0 bd d0 b0 d0 b9 d0 b4 d0 b5 d0 bd d0 be 21 22  ..............!"
1980: 29 3b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75  );..        retu
1990: 72 6e 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20  rn;..    }..    
19a0: 20 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 a0 d0      ..    // ...
19b0: b0 d0 b7 d0 b2 d0 b5 d1 80 d0 bd d0 b5 d0 bc 20  ............... 
19c0: d0 b2 d1 81 d0 b5 20 d1 83 d1 80 d0 be d0 b2 d0  ...... .........
19d0: bd d0 b8 20 d0 b4 d0 b5 d1 80 d0 b5 d0 b2 d0 b0  ... ............
19e0: 2e 0d 0a 20 20 20 20 66 6f 72 28 76 61 72 20 69  ...    for(var i
19f0: 3d 30 3b 20 69 3c 74 68 69 73 2e 61 6c 6c 54 65  =0; i<this.allTe
1a00: 73 74 73 2e d0 a1 d1 82 d1 80 d0 be d0 ba d0 b8  sts.............
1a10: 2e d0 9a d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1  ................
1a20: 82 d0 b2 d0 be 28 29 3b 20 69 2b 2b 29 0d 0a 20  .....(); i++).. 
1a30: 20 20 20 20 20 20 20 74 68 69 73 2e 66 6f 72 6d         this.form
1a40: 2e d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 d1  ................
1a50: 8b d0 a4 d0 be d1 80 d0 bc d1 8b 2e d1 82 d0 bf  ................
1a60: d0 94 d0 b5 d1 80 d0 b5 d0 b2 d0 be d0 a2 d0 b5  ................
1a70: d1 81 d1 82 d0 be d0 b2 2e d0 a0 d0 b0 d0 b7 d0  ................
1a80: b2 d0 b5 d1 80 d0 bd d1 83 d1 82 d1 8c 28 74 68  .............(th
1a90: 69 73 2e 61 6c 6c 54 65 73 74 73 2e d0 a1 d1 82  is.allTests.....
1aa0: d1 80 d0 be d0 ba d0 b8 2e d0 9f d0 be d0 bb d1  ................
1ab0: 83 d1 87 d0 b8 d1 82 d1 8c 28 69 29 2c 20 74 72  .........(i), tr
1ac0: 75 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a  ue);..        ..
1ad0: 20 20 20 20 74 68 69 73 2e 75 70 64 61 74 65 54      this.updateT
1ae0: 6f 74 61 6c 73 28 29 3b 0d 0a 20 20 20 20 74 68  otals();..    th
1af0: 69 73 2e 74 65 73 74 69 6e 67 44 6f 6e 65 20 3d  is.testingDone =
1b00: 20 66 61 6c 73 65 3b 0d 0a 7d 0d 0a 0d 0a 54 65   false;..}....Te
1b10: 73 74 52 75 6e 6e 65 72 2e 70 72 6f 74 6f 74 79  stRunner.prototy
1b20: 70 65 2e 69 73 54 65 73 74 41 64 64 69 6e 46 69  pe.isTestAddinFi
1b30: 6c 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 66 69  le = function(fi
1b40: 6c 65 29 0d 0a 7b 0d 0a 20 20 20 20 2f 2f 20 d0  le)..{..    // .
1b50: 98 d0 bc d1 8f 20 d1 82 d0 b5 d1 81 d1 82 d0 be  ..... ..........
1b60: d0 b2 d0 be d0 b3 d0 be 20 d1 81 d0 ba d1 80 d0  ........ .......
1b70: b8 d0 bf d1 82 d0 b0 20 d0 b4 d0 be d0 bb d0 b6  ....... ........
1b80: d0 bd d0 be 20 d0 bd d0 b0 d1 87 d0 b8 d0 bd d0  .... ...........
1b90: b0 d1 82 d1 8c d1 81 d1 8f 20 d1 81 20 d0 bf d1  ......... .. ...
1ba0: 80 d0 b5 d1 84 d0 b8 d0 ba d1 81 d0 b0 20 22 74  ............. "t
1bb0: 65 73 74 22 0d 0a 20 20 20 20 69 66 20 28 21 66  est"..    if (!f
1bc0: 69 6c 65 2e 4e 61 6d 65 2e 6d 61 74 63 68 28 2f  ile.Name.match(/
1bd0: 5e 74 65 73 74 2f 69 29 29 0d 0a 20 20 20 20 20  ^test/i))..     
1be0: 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b     return false;
1bf0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0  ..    ..    // .
1c00: 9f d0 be d0 b4 d0 b4 d0 b5 d1 80 d0 b6 d0 b8 d0  ................
1c10: b2 d0 b0 d1 8e d1 82 d1 81 d1 8f 20 d0 bf d0 be  ........... ....
1c20: d0 ba d0 b0 20 d1 82 d0 be d0 bb d1 8c d0 ba d0  .... ...........
1c30: be 20 d1 81 d0 ba d1 80 d0 b8 d0 bf d1 82 d1 8b  . ..............
1c40: 2e 0d 0a 20 20 20 20 69 66 20 28 21 66 69 6c 65  ...    if (!file
1c50: 2e 45 78 74 65 6e 73 69 6f 6e 2e 6d 61 74 63 68  .Extension.match
1c60: 28 2f 6a 73 7c 76 62 73 2f 69 29 29 0d 0a 20 20  (/js|vbs/i))..  
1c70: 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c        return fal
1c80: 73 65 3b 0d 0a 0d 0a 20 20 20 20 72 65 74 75 72  se;....    retur
1c90: 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a 54 65  n true;..}....Te
1ca0: 73 74 52 75 6e 6e 65 72 2e 70 72 6f 74 6f 74 79  stRunner.prototy
1cb0: 70 65 2e 77 61 6c 6b 46 69 6c 65 73 41 6e 64 4c  pe.walkFilesAndL
1cc0: 6f 61 64 20 3d 20 66 75 6e 63 74 69 6f 6e 28 70  oad = function(p
1cd0: 61 74 68 2c 20 70 61 72 65 6e 74 4e 6f 64 65 29  ath, parentNode)
1ce0: 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 20 66 20 3d  ..{..    var f =
1cf0: 20 76 38 4e 65 77 28 22 46 69 6c 65 22 2c 20 70   v8New("File", p
1d00: 61 74 68 29 3b 0d 0a 0d 0a 20 20 20 20 76 61 72  ath);....    var
1d10: 20 66 69 6c 65 73 20 3d 20 66 2e 49 73 46 69 6c   files = f.IsFil
1d20: 65 28 29 20 3f 20 5b 20 66 20 5d 20 3a 20 46 69  e() ? [ f ] : Fi
1d30: 6e 64 46 69 6c 65 73 28 70 61 74 68 2c 20 22 2a  ndFiles(path, "*
1d40: 22 2c 20 66 61 6c 73 65 29 3b 0d 0a 20 20 20 20  ", false);..    
1d50: 0d 0a 20 20 20 20 66 6f 72 20 28 76 61 72 20 69  ..    for (var i
1d60: 3d 30 3b 20 69 3c 66 69 6c 65 73 2e 6c 65 6e 67  =0; i<files.leng
1d70: 74 68 3b 20 69 2b 2b 29 0d 0a 20 20 20 20 7b 0d  th; i++)..    {.
1d80: 0a 20 20 20 20 20 20 20 20 76 61 72 20 d0 a4 d0  .        var ...
1d90: b0 d0 b9 d0 bb 20 3d 20 66 69 6c 65 73 5b 69 5d  ..... = files[i]
1da0: 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20  ;..        ..   
1db0: 20 20 20 20 20 69 66 20 28 d0 a4 d0 b0 d0 b9 d0       if (.......
1dc0: bb 2e d0 ad d1 82 d0 be d0 9a d0 b0 d1 82 d0 b0  ................
1dd0: d0 bb d0 be d0 b3 28 29 29 0d 0a 20 20 20 20 20  ......())..     
1de0: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20     {..          
1df0: 20 20 76 61 72 20 6e 65 77 4e 6f 64 65 20 3d 20    var newNode = 
1e00: 74 68 69 73 2e 61 64 64 54 65 73 74 47 72 6f 75  this.addTestGrou
1e10: 70 28 70 61 72 65 6e 74 4e 6f 64 65 2c 20 d0 a4  p(parentNode, ..
1e20: d0 b0 d0 b9 d0 bb 29 3b 0d 0a 20 20 20 20 20 20  ......);..      
1e30: 20 20 20 20 20 20 74 68 69 73 2e 77 61 6c 6b 46        this.walkF
1e40: 69 6c 65 73 41 6e 64 4c 6f 61 64 28 d0 a4 d0 b0  ilesAndLoad(....
1e50: d0 b9 d0 bb 2e d0 9f d0 be d0 bb d0 bd d0 be d0  ................
1e60: b5 d0 98 d0 bc d1 8f 2c 20 6e 65 77 4e 6f 64 65  ......., newNode
1e70: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  );..            
1e80: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f  ..            //
1e90: 20 d0 9f d1 83 d1 81 d1 82 d1 8b d0 b5 20 d0 ba   ............ ..
1ea0: d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 d0 b8 20 d0  .............. .
1eb0: bd d0 b5 20 d0 bf d0 be d0 ba d0 b0 d0 b7 d1 8b  ... ............
1ec0: d0 b2 d0 b0 d0 b5 d0 bc 20 d0 b2 20 d0 b4 d0 b5  ........ .. ....
1ed0: d1 80 d0 b5 d0 b2 d0 b5 20 d1 82 d0 b5 d1 81 d1  ........ .......
1ee0: 82 d0 be d0 b2 2e 0d 0a 20 20 20 20 20 20 20 20  ........        
1ef0: 20 20 20 20 69 66 20 28 6e 65 77 4e 6f 64 65 2e      if (newNode.
1f00: 52 6f 77 73 2e 43 6f 75 6e 74 28 29 20 3d 3d 20  Rows.Count() == 
1f10: 30 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  0)..            
1f20: 20 20 20 20 70 61 72 65 6e 74 4e 6f 64 65 2e 52      parentNode.R
1f30: 6f 77 73 2e 44 65 6c 65 74 65 28 6e 65 77 4e 6f  ows.Delete(newNo
1f40: 64 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d  de);..        }.
1f50: 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66  .        else if
1f60: 20 28 74 68 69 73 2e 69 73 54 65 73 74 41 64 64   (this.isTestAdd
1f70: 69 6e 46 69 6c 65 28 d0 a4 d0 b0 d0 b9 d0 bb 29  inFile(........)
1f80: 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20  )..        {..  
1f90: 20 20 20 20 20 20 20 20 20 20 74 72 79 0d 0a 20            try.. 
1fa0: 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20             {..  
1fb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61                va
1fc0: 72 20 74 65 73 74 41 64 64 69 6e 20 3d 20 74 68  r testAddin = th
1fd0: 69 73 2e 6c 6f 61 64 54 65 73 74 41 64 64 69 6e  is.loadTestAddin
1fe0: 28 d0 a4 d0 b0 d0 b9 d0 bb 2e d0 9f d0 be d0 bb  (...............
1ff0: d0 bd d0 be d0 b5 d0 98 d0 bc d1 8f 29 3b 0d 0a  ............);..
2000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2010: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
2020: 20 20 69 66 20 28 74 65 73 74 41 64 64 69 6e 29    if (testAddin)
2030: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
2040: 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20    {..           
2050: 20 20 20 20 20 20 20 20 20 76 61 72 20 6e 65 77           var new
2060: 4e 6f 64 65 20 3d 20 74 68 69 73 2e 61 64 64 54  Node = this.addT
2070: 65 73 74 43 61 73 65 28 70 61 72 65 6e 74 4e 6f  estCase(parentNo
2080: 64 65 2c 20 74 65 73 74 41 64 64 69 6e 29 3b 0d  de, testAddin);.
2090: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
20a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
20b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
20c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
20d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
20e0: 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ..             
20f0: 20 20 20 20 20 20 20 69 66 20 28 6e 65 77 4e 6f         if (newNo
2100: 64 65 2e 52 6f 77 73 2e 43 6f 75 6e 74 28 29 20  de.Rows.Count() 
2110: 3d 3d 20 30 29 0d 0a 20 20 20 20 20 20 20 20 20  == 0)..         
2120: 20 20 20 20 20 20 20 20 20 20 20 7b 0d 0a 20 20             {..  
2130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2140: 20 20 20 20 20 20 6a 73 55 6e 69 74 43 6f 72 65        jsUnitCore
2150: 2e 77 61 72 6e 28 22 d0 a1 d0 ba d1 80 d0 b8 d0  .warn(".........
2160: bf d1 82 20 d0 bd d0 b5 20 d1 81 d0 be d0 b4 d0  ... .... .......
2170: b5 d1 80 d0 b6 d0 b8 d1 82 20 d0 bc d0 b0 d0 ba  ......... ......
2180: d1 80 d0 be d1 81 d0 be d0 b2 20 d0 b8 20 d0 bd  .......... .. ..
2190: d0 b5 20 d0 b1 d1 83 d0 b4 d0 b5 d1 82 20 d0 b7  .. .......... ..
21a0: d0 b0 d0 b3 d1 80 d1 83 d0 b6 d0 b5 d0 bd 3a 20  ..............: 
21b0: 22 20 2b 20 74 65 73 74 41 64 64 69 6e 2e 66 75  " + testAddin.fu
21c0: 6c 6c 50 61 74 68 29 3b 0d 0a 20 20 20 20 20 20  llPath);..      
21d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
21e0: 20 20 70 61 72 65 6e 74 4e 6f 64 65 2e 52 6f 77    parentNode.Row
21f0: 73 2e 44 65 6c 65 74 65 28 6e 65 77 4e 6f 64 65  s.Delete(newNode
2200: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  );..            
2210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2220: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ..              
2230: 20 20 20 20 20 20 20 20 20 20 61 64 64 69 6e 73            addins
2240: 2e 75 6e 6c 6f 61 64 41 64 64 69 6e 28 74 65 73  .unloadAddin(tes
2250: 74 41 64 64 69 6e 29 3b 0d 0a 20 20 20 20 20 20  tAddin);..      
2260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2270: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20        ..        
2280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2290: 69 66 28 21 74 65 73 74 41 64 64 69 6e 2e 75 6e  if(!testAddin.un
22a0: 69 71 75 65 4e 61 6d 65 2e 6c 65 6e 67 74 68 29  iqueName.length)
22b0: 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   ..             
22c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64                 d
22d0: 65 6c 65 74 65 20 74 65 73 74 41 64 64 69 6e 3b  elete testAddin;
22e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
22f0: 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20              ..  
2300: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2310: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20    }..           
2320: 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 0d 0a           else ..
2330: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2340: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20      {..         
2350: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74                 t
2360: 68 69 73 2e 6c 6f 61 64 65 64 54 65 73 74 41 64  his.loadedTestAd
2370: 64 69 6e 73 2e 70 75 73 68 28 74 65 73 74 41 64  dins.push(testAd
2380: 64 69 6e 29 3b 0d 0a 20 20 20 20 20 20 20 20 20  din);..         
2390: 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20             }..  
23a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d                }.
23b0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a  .            }..
23c0: 20 20 20 20 20 20 20 20 20 20 20 20 63 61 74 63              catc
23d0: 68 20 28 65 29 0d 0a 20 20 20 20 20 20 20 20 20  h (e)..         
23e0: 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20     {..          
23f0: 20 20 20 20 20 20 6a 73 55 6e 69 74 43 6f 72 65        jsUnitCore
2400: 2e 77 61 72 6e 28 22 d0 9e d1 88 d0 b8 d0 b1 d0  .warn(".........
2410: ba d0 b0 20 d0 b7 d0 b0 d0 b3 d1 80 d1 83 d0 b7  ... ............
2420: d0 ba d0 b8 20 d1 81 d0 ba d1 80 d0 b8 d0 bf d1  .... ...........
2430: 82 d0 b0 3a 20 22 20 2b 20 d0 a4 d0 b0 d0 b9 d0  ...: " + .......
2440: bb 2e d0 9f d0 be d0 bb d0 bd d0 be d0 b5 d0 98  ................
2450: d0 bc d1 8f 29 3b 0d 0a 20 20 20 20 20 20 20 20  ....);..        
2460: 20 20 20 20 20 20 20 20 2f 2f 20 54 4f 44 4f 3a          // TODO:
2470: 20 d0 b2 d1 8b d0 b2 d0 be d0 b4 d0 b8 d1 82 d1   ...............
2480: 8c 20 d0 b8 d0 bd d1 84 d0 be d1 80 d0 bc d0 b0  . ..............
2490: d1 86 d0 b8 d1 8e 20 d0 be d0 b1 20 d0 be d1 88  ...... .... ....
24a0: d0 b8 d0 b1 d0 ba d0 b5 20 d0 bf d0 be d0 b4 d1  ........ .......
24b0: 80 d0 be d0 b1 d0 bd d0 b5 d0 b5 2e 0d 0a 20 20  ..............  
24c0: 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20            }..   
24d0: 20 20 20 20 20 7d 20 20 20 20 20 20 20 20 20 20       }          
24e0: 20 20 0d 0a 20 20 20 20 7d 20 20 20 20 20 20 20    ..    }       
24f0: 20 0d 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e   ..}....TestRunn
2500: 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 6c 6f 61  er.prototype.loa
2510: 64 54 65 73 74 41 64 64 69 6e 20 3d 20 66 75 6e  dTestAddin = fun
2520: 63 74 69 6f 6e 28 70 61 74 68 29 0d 0a 7b 0d 0a  ction(path)..{..
2530: 20 20 20 20 76 61 72 20 66 75 6c 6c 4c 6f 61 64      var fullLoad
2540: 53 74 72 69 6e 67 20 3d 20 22 73 63 72 69 70 74  String = "script
2550: 3a 22 20 2b 20 70 61 74 68 3b 0d 0a 20 20 20 20  :" + path;..    
2560: 0d 0a 20 20 20 20 76 61 72 20 74 65 73 74 41 64  ..    var testAd
2570: 64 69 6e 20 3d 20 61 64 64 69 6e 73 2e 62 79 46  din = addins.byF
2580: 75 6c 6c 50 61 74 68 28 66 75 6c 6c 4c 6f 61 64  ullPath(fullLoad
2590: 53 74 72 69 6e 67 29 3b 0d 0a 20 20 20 20 0d 0a  String);..    ..
25a0: 20 20 20 20 69 66 20 28 21 74 65 73 74 41 64 64      if (!testAdd
25b0: 69 6e 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20  in)..    {..    
25c0: 20 20 20 20 2f 2f 20 d0 a2 d0 b5 d1 81 d1 82 2d      // ........-
25d0: d0 b0 d0 b4 d0 b4 d0 b8 d0 bd d1 8b 20 d0 b1 d1  ............ ...
25e0: 83 d0 b4 d0 b5 d0 bc 20 d0 bf d0 be d0 b4 d0 b3  ....... ........
25f0: d1 80 d1 83 d0 b6 d0 b0 d1 82 d1 8c 20 d0 b2 20  ............ .. 
2600: d0 b3 d1 80 d1 83 d0 bf d0 bf d1 83 20 22 d0 9f  ............ "..
2610: d0 be d0 b4 d0 b3 d1 80 d1 83 d0 b6 d0 b0 d0 b5  ................
2620: d0 bc d1 8b d0 b5 20 d0 b1 d0 b8 d0 b1 d0 bb d0  ...... .........
2630: b8 d0 be d1 82 d0 b5 d0 ba d0 b8 22 2e 20 20 20  ...........".   
2640: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 6c       ..        l
2650: 69 62 47 72 6f 75 70 20 3d 20 53 6e 65 67 6f 70  ibGroup = Snegop
2660: 61 74 4d 61 69 6e 53 63 72 69 70 74 2e 41 64 64  atMainScript.Add
2670: 69 6e 73 54 72 65 65 47 72 6f 75 70 73 2e 4c 6f  insTreeGroups.Lo
2680: 61 64 65 64 4c 69 62 73 3b 0d 0a 20 20 20 20 20  adedLibs;..     
2690: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20         ..       
26a0: 20 2f 2f 20 d0 97 d0 b0 d0 b3 d1 80 d1 83 d0 b6   // ............
26b0: d0 b0 d0 b5 d0 bc 20 d1 82 d0 b5 d1 81 d1 82 d0  ...... .........
26c0: be d0 b2 d1 8b d0 b9 20 d0 b0 d0 b4 d0 b4 d0 b8  ....... ........
26d0: d0 bd 2e 0d 0a 20 20 20 20 20 20 20 20 74 72 79  .....        try
26e0: 20 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20 20   ..        {..  
26f0: 20 20 20 20 20 20 20 20 20 74 65 73 74 41 64 64           testAdd
2700: 69 6e 20 3d 20 61 64 64 69 6e 73 2e 6c 6f 61 64  in = addins.load
2710: 41 64 64 69 6e 28 66 75 6c 6c 4c 6f 61 64 53 74  Addin(fullLoadSt
2720: 72 69 6e 67 2c 20 6c 69 62 47 72 6f 75 70 29 3b  ring, libGroup);
2730: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20  ..        }..   
2740: 20 20 20 20 20 63 61 74 63 68 28 65 29 0d 0a 20       catch(e).. 
2750: 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20         {..      
2760: 20 20 20 20 20 20 6a 73 55 6e 69 74 43 6f 72 65        jsUnitCore
2770: 28 22 54 65 73 74 52 75 6e 6e 65 72 3a 3a 6c 6f  ("TestRunner::lo
2780: 61 64 54 65 73 74 41 64 64 69 6e 3a 20 d0 a2 d0  adTestAddin: ...
2790: b5 d1 81 d1 82 d0 be d0 b2 d1 8b d0 b9 20 d1 81  ............. ..
27a0: d0 ba d1 80 d0 b8 d0 bf d1 82 20 d0 bd d0 b5 20  .......... .... 
27b0: d0 b7 d0 b0 d0 b3 d1 80 d1 83 d0 b6 d0 b5 d0 bd  ................
27c0: 3a 20 22 20 2b 20 70 61 74 68 29 3b 0d 0a 20 20  : " + path);..  
27d0: 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e            return
27e0: 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20   null;..        
27f0: 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a  }..    }..    ..
2800: 20 20 20 20 72 65 74 75 72 6e 20 74 65 73 74 41      return testA
2810: 64 64 69 6e 3b 0d 0a 7d 0d 0a 0d 0a 54 65 73 74  ddin;..}....Test
2820: 52 75 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65  Runner.prototype
2830: 2e 61 64 64 54 65 73 74 47 72 6f 75 70 20 3d 20  .addTestGroup = 
2840: 66 75 6e 63 74 69 6f 6e 28 70 61 72 65 6e 74 4e  function(parentN
2850: 6f 64 65 2c 20 d0 a4 d0 b0 d0 b9 d0 bb 29 0d 0a  ode, ........)..
2860: 7b 0d 0a 20 20 20 20 76 61 72 20 6e 65 77 4e 6f  {..    var newNo
2870: 64 65 20 3d 20 70 61 72 65 6e 74 4e 6f 64 65 2e  de = parentNode.
2880: d0 a1 d1 82 d1 80 d0 be d0 ba d0 b8 2e d0 94 d0  ................
2890: be d0 b1 d0 b0 d0 b2 d0 b8 d1 82 d1 8c 28 29 3b  .............();
28a0: 0d 0a 20 20 20 20 6e 65 77 4e 6f 64 65 2e d0 9d  ..    newNode...
28b0: d0 b0 d0 b7 d0 b2 d0 b0 d0 bd d0 b8 d0 b5 d0 a2  ................
28c0: d0 b5 d1 81 d1 82 d0 b0 20 3d 20 d0 a4 d0 b0 d0  ........ = .....
28d0: b9 d0 bb 2e d0 98 d0 bc d1 8f 3b 0d 0a 20 20 20  ..........;..   
28e0: 20 6e 65 77 4e 6f 64 65 2e d0 92 d1 80 d0 b5 d0   newNode........
28f0: bc d1 8f d0 92 d1 8b d0 bf d0 be d0 bb d0 bd d0  ................
2900: b5 d0 bd d0 b8 d1 8f 20 3d 20 30 3b 0d 0a 20 20  ....... = 0;..  
2910: 20 20 6e 65 77 4e 6f 64 65 2e d0 9f d0 be d0 bb    newNode.......
2920: d0 bd d1 8b d0 b9 d0 9f d1 83 d1 82 d1 8c 20 3d  .............. =
2930: 20 d0 a4 d0 b0 d0 b9 d0 bb 2e d0 9f d0 be d0 bb   ...............
2940: d0 bd d0 be d0 b5 d0 98 d0 bc d1 8f 3b 0d 0a 20  ............;.. 
2950: 20 20 20 6e 65 77 4e 6f 64 65 2e d0 a1 d0 be d1     newNode......
2960: 81 d1 82 d0 be d1 8f d0 bd d0 b8 d0 b5 20 3d 20  ............. = 
2970: 74 68 69 73 2e 53 54 41 54 45 5f 4e 4f 54 5f 52  this.STATE_NOT_R
2980: 55 4e 3b 0d 0a 20 20 20 20 6e 65 77 4e 6f 64 65  UN;..    newNode
2990: 2e 6f 62 6a 65 63 74 20 3d 20 6e 75 6c 6c 3b 0d  .object = null;.
29a0: 0a 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 4e  .    return newN
29b0: 6f 64 65 3b 0d 0a 7d 0d 0a 0d 0a 54 65 73 74 52  ode;..}....TestR
29c0: 75 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e  unner.prototype.
29d0: 61 64 64 54 65 73 74 43 61 73 65 20 3d 20 66 75  addTestCase = fu
29e0: 6e 63 74 69 6f 6e 28 70 61 72 65 6e 74 4e 6f 64  nction(parentNod
29f0: 65 2c 20 74 65 73 74 41 64 64 69 6e 29 0d 0a 7b  e, testAddin)..{
2a00: 0d 0a 20 20 20 20 76 61 72 20 6e 65 77 4e 6f 64  ..    var newNod
2a10: 65 20 3d 20 70 61 72 65 6e 74 4e 6f 64 65 2e 52  e = parentNode.R
2a20: 6f 77 73 2e 41 64 64 28 29 3b 0d 0a 20 20 20 20  ows.Add();..    
2a30: 6e 65 77 4e 6f 64 65 2e d0 9d d0 b0 d0 b7 d0 b2  newNode.........
2a40: d0 b0 d0 bd d0 b8 d0 b5 d0 a2 d0 b5 d1 81 d1 82  ................
2a50: d0 b0 20 3d 20 74 65 73 74 41 64 64 69 6e 2e 75  .. = testAddin.u
2a60: 6e 69 71 75 65 4e 61 6d 65 3b 0d 0a 20 20 20 20  niqueName;..    
2a70: 6e 65 77 4e 6f 64 65 2e d0 92 d1 80 d0 b5 d0 bc  newNode.........
2a80: d1 8f d0 92 d1 8b d0 bf d0 be d0 bb d0 bd d0 b5  ................
2a90: d0 bd d0 b8 d1 8f 20 3d 20 30 3b 0d 0a 20 20 20  ...... = 0;..   
2aa0: 20 6e 65 77 4e 6f 64 65 2e d0 9f d0 be d0 bb d0   newNode........
2ab0: bd d1 8b d0 b9 d0 9f d1 83 d1 82 d1 8c 20 3d 20  ............. = 
2ac0: 74 65 73 74 41 64 64 69 6e 2e 66 75 6c 6c 50 61  testAddin.fullPa
2ad0: 74 68 3b 0d 0a 20 20 20 20 6e 65 77 4e 6f 64 65  th;..    newNode
2ae0: 2e d0 a1 d0 be d1 81 d1 82 d0 be d1 8f d0 bd d0  ................
2af0: b8 d0 b5 20 3d 20 74 68 69 73 2e 53 54 41 54 45  ... = this.STATE
2b00: 5f 4e 4f 54 5f 52 55 4e 3b 0d 0a 20 20 20 20 6e  _NOT_RUN;..    n
2b10: 65 77 4e 6f 64 65 2e 6f 62 6a 65 63 74 20 3d 20  ewNode.object = 
2b20: 74 65 73 74 41 64 64 69 6e 3b 0d 0a 0d 0a 20 20  testAddin;....  
2b30: 20 20 2f 2f 20 d0 94 d0 be d0 b1 d0 b0 d0 b2 d0    // ...........
2b40: b8 d0 bc 20 d1 82 d0 b5 d1 81 d1 82 2d d0 bc d0  ... ........-...
2b50: b5 d1 82 d0 be d0 b4 d1 8b 2e 20 d0 a2 d0 b5 d1  .......... .....
2b60: 81 d1 82 2d d0 bc d0 b5 d1 82 d0 be d0 b4 20 2d  ...-.......... -
2b70: 20 d1 8d d1 82 d0 be 20 d0 bc d0 b0 d0 ba d1 80   ...... ........
2b80: d0 be d1 81 d1 8b 20 d1 81 20 d0 b8 d0 bc d0 b5  ...... .. ......
2b90: d0 bd d0 b0 d0 bc d0 b8 20 d0 b2 d0 b8 d0 b4 d0  ........ .......
2ba0: b0 20 6d 61 63 72 6f 73 54 65 73 74 d0 98 d0 bc  . macrosTest....
2bb0: d1 8f d0 a2 d0 b5 d1 81 d1 82 d0 b0 2e 0d 0a 20  ............... 
2bc0: 20 20 20 76 61 72 20 6d 61 63 72 6f 73 65 73 20     var macroses 
2bd0: 3d 20 6e 65 77 20 56 42 41 72 72 61 79 28 74 65  = new VBArray(te
2be0: 73 74 41 64 64 69 6e 2e 6d 61 63 72 6f 73 65 73  stAddin.macroses
2bf0: 28 29 29 2e 74 6f 41 72 72 61 79 28 29 3b 0d 0a  ()).toArray();..
2c00: 20 20 20 20 66 6f 72 28 76 61 72 20 6d 20 69 6e      for(var m in
2c10: 20 6d 61 63 72 6f 73 65 73 29 0d 0a 20 20 20 20   macroses)..    
2c20: 20 20 20 20 69 66 20 28 6d 61 63 72 6f 73 65 73      if (macroses
2c30: 5b 6d 5d 2e 6d 61 74 63 68 28 2f 5e 54 65 73 74  [m].match(/^Test
2c40: 2f 29 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20  /))..           
2c50: 20 74 68 69 73 2e 61 64 64 54 65 73 74 28 6e 65   this.addTest(ne
2c60: 77 4e 6f 64 65 2c 20 6d 61 63 72 6f 73 65 73 5b  wNode, macroses[
2c70: 6d 5d 2c 20 74 65 73 74 41 64 64 69 6e 29 3b 0d  m], testAddin);.
2c80: 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 72  .        ..    r
2c90: 65 74 75 72 6e 20 6e 65 77 4e 6f 64 65 3b 0d 0a  eturn newNode;..
2ca0: 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65 72 2e  }....TestRunner.
2cb0: 70 72 6f 74 6f 74 79 70 65 2e 61 64 64 54 65 73  prototype.addTes
2cc0: 74 20 3d 20 66 75 6e 63 74 69 6f 6e 28 70 61 72  t = function(par
2cd0: 65 6e 74 4e 6f 64 65 2c 20 74 65 73 74 4e 61 6d  entNode, testNam
2ce0: 65 2c 20 74 65 73 74 41 64 64 69 6e 29 0d 0a 7b  e, testAddin)..{
2cf0: 0d 0a 20 20 20 20 76 61 72 20 6e 65 77 4e 6f 64  ..    var newNod
2d00: 65 20 3d 20 70 61 72 65 6e 74 4e 6f 64 65 2e d0  e = parentNode..
2d10: a1 d1 82 d1 80 d0 be d0 ba d0 b8 2e d0 94 d0 be  ................
2d20: d0 b1 d0 b0 d0 b2 d0 b8 d1 82 d1 8c 28 29 3b 0d  ............();.
2d30: 0a 20 20 20 20 6e 65 77 4e 6f 64 65 2e d0 9d d0  .    newNode....
2d40: b0 d0 b7 d0 b2 d0 b0 d0 bd d0 b8 d0 b5 d0 a2 d0  ................
2d50: b5 d1 81 d1 82 d0 b0 20 3d 20 74 65 73 74 4e 61  ....... = testNa
2d60: 6d 65 3b 0d 0a 20 20 20 20 6e 65 77 4e 6f 64 65  me;..    newNode
2d70: 2e d0 92 d1 80 d0 b5 d0 bc d1 8f d0 92 d1 8b d0  ................
2d80: bf d0 be d0 bb d0 bd d0 b5 d0 bd d0 b8 d1 8f 20  ............... 
2d90: 3d 20 30 3b 0d 0a 20 20 20 20 6e 65 77 4e 6f 64  = 0;..    newNod
2da0: 65 2e d0 9f d0 be d0 bb d0 bd d1 8b d0 b9 d0 9f  e...............
2db0: d1 83 d1 82 d1 8c 20 3d 20 74 65 73 74 41 64 64  ...... = testAdd
2dc0: 69 6e 2e 66 75 6c 6c 50 61 74 68 3b 0d 0a 20 20  in.fullPath;..  
2dd0: 20 20 6e 65 77 4e 6f 64 65 2e d0 a1 d0 be d1 81    newNode.......
2de0: d1 82 d0 be d1 8f d0 bd d0 b8 d0 b5 20 3d 20 74  ............ = t
2df0: 68 69 73 2e 53 54 41 54 45 5f 4e 4f 54 5f 52 55  his.STATE_NOT_RU
2e00: 4e 3b 0d 0a 20 20 20 20 6e 65 77 4e 6f 64 65 2e  N;..    newNode.
2e10: 6f 62 6a 65 63 74 20 3d 20 6e 65 77 20 54 65 73  object = new Tes
2e20: 74 28 74 65 73 74 41 64 64 69 6e 2c 20 74 65 73  t(testAddin, tes
2e30: 74 4e 61 6d 65 29 3b 20 20 20 20 0d 0a 20 20 20  tName);    ..   
2e40: 20 0d 0a 20 20 20 20 74 68 69 73 2e 74 65 73 74   ..    this.test
2e50: 73 43 6f 75 6e 74 2b 2b 3b 0d 0a 20 20 20 20 0d  sCount++;..    .
2e60: 0a 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 4e  .    return newN
2e70: 6f 64 65 3b 0d 0a 7d 0d 0a 0d 0a 54 65 73 74 52  ode;..}....TestR
2e80: 75 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e  unner.prototype.
2e90: 72 75 6e 41 6c 6c 54 65 73 74 73 20 3d 20 66 75  runAllTests = fu
2ea0: 6e 63 74 69 6f 6e 28 29 0d 0a 7b 20 20 20 20 0d  nction()..{    .
2eb0: 0a 20 20 20 20 6a 73 55 6e 69 74 43 6f 72 65 2e  .    jsUnitCore.
2ec0: 53 65 74 45 72 72 6f 72 48 61 6e 64 6c 65 72 28  SetErrorHandler(
2ed0: 66 75 6e 63 74 69 6f 6e 20 28 65 78 63 65 70 74  function (except
2ee0: 69 6f 6e 29 20 7b 20 74 68 72 6f 77 20 65 78 63  ion) { throw exc
2ef0: 65 70 74 69 6f 6e 3b 20 7d 29 3b 0d 0a 0d 0a 20  eption; });.... 
2f00: 20 20 20 2f 2a 20 d0 a3 d1 81 d1 82 d0 b0 d0 bd     /* ..........
2f10: d0 b0 d0 b2 d0 bb d0 b8 d0 b2 d0 b0 d0 b5 d0 bc  ................
2f20: 20 d0 b7 d0 b0 d1 80 d0 b0 d0 bd d0 b5 d0 b5 2c   ..............,
2f30: 20 d1 87 d1 82 d0 be d0 b1 d1 8b 20 d1 84 d0 bb   .......... ....
2f40: d0 b0 d0 b3 20 d0 b1 d1 8b d0 bb 20 d0 b2 d0 b7  .... ...... ....
2f50: d0 b2 d0 b5 d0 b4 d0 b5 d0 bd 20 d0 b4 d0 b0 d0  .......... .....
2f60: b6 d0 b5 20 d0 b5 d1 81 d0 bb d0 b8 20 0d 0a 20  ... ........ .. 
2f70: 20 20 20 d0 bd d0 b0 d1 81 20 d0 be d1 81 d1 82     ...... ......
2f80: d0 b0 d0 bd d0 be d0 b2 d0 b8 d1 82 20 d0 ba d0  ............ ...
2f90: b0 d0 ba d0 be d0 b9 2d d0 bd d0 b8 d0 b1 d1 83  .......-........
2fa0: d0 b4 d1 8c 20 d1 8d d0 ba d1 81 d0 b5 d0 bf d1  .... ...........
2fb0: 88 d0 b5 d0 bd 2e 20 2a 2f 0d 0a 20 20 20 20 74  ...... */..    t
2fc0: 68 69 73 2e 74 65 73 74 69 6e 67 44 6f 6e 65 20  his.testingDone 
2fd0: 3d 20 74 72 75 65 3b 0d 0a 0d 0a 20 20 20 20 66  = true;....    f
2fe0: 6f 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69  or (var i = 0; i
2ff0: 20 3c 20 74 68 69 73 2e 61 6c 6c 54 65 73 74 73   < this.allTests
3000: 2e d0 a1 d1 82 d1 80 d0 be d0 ba d0 b8 2e d0 9a  ................
3010: d0 be d0 bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0 b2  ................
3020: d0 be 28 29 3b 20 69 2b 2b 29 0d 0a 20 20 20 20  ..(); i++)..    
3030: 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 d0  {..        var .
3040: a2 d0 b5 d0 ba d1 83 d1 89 d0 b0 d1 8f d0 a1 d1  ................
3050: 82 d1 80 d0 be d0 ba d0 b0 20 3d 20 74 68 69 73  ......... = this
3060: 2e 61 6c 6c 54 65 73 74 73 2e d0 a1 d1 82 d1 80  .allTests.......
3070: d0 be d0 ba d0 b8 2e d0 9f d0 be d0 bb d1 83 d1  ................
3080: 87 d0 b8 d1 82 d1 8c 28 69 29 3b 0d 0a 0d 0a 20  .......(i);.... 
3090: 20 20 20 20 20 20 20 76 61 72 20 62 65 67 69 6e         var begin
30a0: 54 69 6d 65 20 3d 20 6e 65 77 20 44 61 74 65 28  Time = new Date(
30b0: 29 3b 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20  );        ..    
30c0: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 d0 a2      ..        ..
30d0: d0 b5 d0 ba d1 83 d1 89 d0 b0 d1 8f d0 a1 d1 82  ................
30e0: d1 80 d0 be d0 ba d0 b0 2e d0 a1 d0 be d1 81 d1  ................
30f0: 82 d0 be d1 8f d0 bd d0 b8 d0 b5 20 3d 20 74 68  ........... = th
3100: 69 73 2e 72 75 6e 54 65 73 74 28 d0 a2 d0 b5 d0  is.runTest(.....
3110: ba d1 83 d1 89 d0 b0 d1 8f d0 a1 d1 82 d1 80 d0  ................
3120: be d0 ba d0 b0 29 3b 0d 0a 20 20 20 20 20 20 20  .....);..       
3130: 20 0d 0a 20 20 20 20 20 20 20 20 d0 a2 d0 b5 d0   ..        .....
3140: ba d1 83 d1 89 d0 b0 d1 8f d0 a1 d1 82 d1 80 d0  ................
3150: be d0 ba d0 b0 2e d0 92 d1 80 d0 b5 d0 bc d1 8f  ................
3160: d0 92 d1 8b d0 bf d0 be d0 bb d0 bd d0 b5 d0 bd  ................
3170: d0 b8 d1 8f 20 3d 20 28 6e 65 77 20 44 61 74 65  .... = (new Date
3180: 28 29 20 2d 20 62 65 67 69 6e 54 69 6d 65 29 20  () - beginTime) 
3190: 2f 20 31 30 30 30 3b 20 20 20 20 20 20 20 20 0d  / 1000;        .
31a0: 0a 20 20 20 20 7d 20 20 0d 0a 20 20 20 20 0d 0a  .    }  ..    ..
31b0: 20 20 20 20 6a 73 55 6e 69 74 43 6f 72 65 2e 52      jsUnitCore.R
31c0: 65 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 65 72  esetErrorHandler
31d0: 28 29 3b 0d 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75  ();..}....TestRu
31e0: 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 72  nner.prototype.r
31f0: 75 6e 54 65 73 74 20 3d 20 66 75 6e 63 74 69 6f  unTest = functio
3200: 6e 20 28 d0 a1 d1 82 d1 80 d0 be d0 ba d0 b0 d0  n (.............
3210: a2 d0 b5 d1 81 d1 82 d0 be d0 b2 29 0d 0a 7b 20  ...........)..{ 
3220: 20 20 0d 0a 20 20 20 20 76 61 72 20 d0 a1 d0 be    ..    var ....
3230: d1 81 d1 82 d0 be d1 8f d0 bd d0 b8 d0 b5 20 3d  .............. =
3240: 20 74 68 69 73 2e 53 54 41 54 45 5f 53 55 43 43   this.STATE_SUCC
3250: 45 53 53 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20  ESS;..    ..    
3260: 69 66 20 28 d0 a1 d1 82 d1 80 d0 be d0 ba d0 b0  if (............
3270: d0 a2 d0 b5 d1 81 d1 82 d0 be d0 b2 2e 6f 62 6a  .............obj
3280: 65 63 74 20 26 26 20 6a 73 55 6e 69 74 43 6f 72  ect && jsUnitCor
3290: 65 2e 4a 73 55 6e 69 74 2e 5f 74 72 75 65 54 79  e.JsUnit._trueTy
32a0: 70 65 4f 66 28 d0 a1 d1 82 d1 80 d0 be d0 ba d0  peOf(...........
32b0: b0 d0 a2 d0 b5 d1 81 d1 82 d0 be d0 b2 2e 6f 62  ..............ob
32c0: 6a 65 63 74 29 20 3d 3d 20 27 54 65 73 74 27 29  ject) == 'Test')
32d0: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20  ..    {..       
32e0: 20 d0 a1 d0 be d1 81 d1 82 d0 be d1 8f d0 bd d0   ...............
32f0: b8 d0 b5 20 3d 20 74 68 69 73 2e 65 78 65 63 75  ... = this.execu
3300: 74 65 54 65 73 74 46 75 6e 63 74 69 6f 6e 28 d0  teTestFunction(.
3310: a1 d1 82 d1 80 d0 be d0 ba d0 b0 d0 a2 d0 b5 d1  ................
3320: 81 d1 82 d0 be d0 b2 29 3b 0d 0a 20 20 20 20 20  .......);..     
3330: 20 20 20 74 68 69 73 2e 70 72 6f 67 72 65 73 73     this.progress
3340: 42 61 72 44 6f 53 74 65 70 28 29 3b 0d 0a 20 20  BarDoStep();..  
3350: 20 20 7d 0d 0a 20 20 20 20 65 6c 73 65 0d 0a 20    }..    else.. 
3360: 20 20 20 7b 20 20 20 0d 0a 20 20 20 20 20 20 20     {   ..       
3370: 20 69 66 20 28 d0 a1 d1 82 d1 80 d0 be d0 ba d0   if (...........
3380: b0 d0 a2 d0 b5 d1 81 d1 82 d0 be d0 b2 2e d0 a1  ................
3390: d1 82 d1 80 d0 be d0 ba d0 b8 2e d0 9a d0 be d0  ................
33a0: bb d0 b8 d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 28  ...............(
33b0: 29 20 3d 3d 20 30 29 0d 0a 20 20 20 20 20 20 20  ) == 0)..       
33c0: 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73       return this
33d0: 2e 53 54 41 54 45 5f 49 47 4e 4f 52 45 3b 0d 0a  .STATE_IGNORE;..
33e0: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 66 6f      ..        fo
33f0: 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20  r (var i = 0; i 
3400: 3c 20 d0 a1 d1 82 d1 80 d0 be d0 ba d0 b0 d0 a2  < ..............
3410: d0 b5 d1 81 d1 82 d0 be d0 b2 2e d0 a1 d1 82 d1  ................
3420: 80 d0 be d0 ba d0 b8 2e d0 9a d0 be d0 bb d0 b8  ................
3430: d1 87 d0 b5 d1 81 d1 82 d0 b2 d0 be 28 29 3b 20  ............(); 
3440: 69 2b 2b 29 0d 0a 20 20 20 20 20 20 20 20 7b 0d  i++)..        {.
3450: 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72  .            var
3460: 20 d0 a2 d0 b5 d0 ba d1 83 d1 89 d0 b0 d1 8f d0   ...............
3470: a1 d1 82 d1 80 d0 be d0 ba d0 b0 20 3d 20 d0 a1  ........... = ..
3480: d1 82 d1 80 d0 be d0 ba d0 b0 d0 a2 d0 b5 d1 81  ................
3490: d1 82 d0 be d0 b2 2e d0 a1 d1 82 d1 80 d0 be d0  ................
34a0: ba d0 b8 2e d0 9f d0 be d0 bb d1 83 d1 87 d0 b8  ................
34b0: d1 82 d1 8c 28 69 29 3b 0d 0a 0d 0a 20 20 20 20  ....(i);....    
34c0: 20 20 20 20 20 20 20 20 76 61 72 20 62 65 67 69          var begi
34d0: 6e 54 69 6d 65 20 3d 20 6e 65 77 20 44 61 74 65  nTime = new Date
34e0: 28 29 3b 20 20 20 20 20 20 20 20 0d 0a 20 20 20  ();        ..   
34f0: 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20           ..     
3500: 20 20 20 20 20 20 20 d0 a2 d0 b5 d0 ba d1 83 d1         .........
3510: 89 d0 b0 d1 8f d0 a1 d1 82 d1 80 d0 be d0 ba d0  ................
3520: b0 2e d0 a1 d0 be d1 81 d1 82 d0 be d1 8f d0 bd  ................
3530: d0 b8 d0 b5 20 3d 20 74 68 69 73 2e 72 75 6e 54  .... = this.runT
3540: 65 73 74 28 d0 a2 d0 b5 d0 ba d1 83 d1 89 d0 b0  est(............
3550: d1 8f d0 a1 d1 82 d1 80 d0 be d0 ba d0 b0 29 3b  ..............);
3560: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a  ..            ..
3570: 20 20 20 20 20 20 20 20 20 20 20 20 d0 a2 d0 b5              ....
3580: d0 ba d1 83 d1 89 d0 b0 d1 8f d0 a1 d1 82 d1 80  ................
3590: d0 be d0 ba d0 b0 2e d0 92 d1 80 d0 b5 d0 bc d1  ................
35a0: 8f d0 92 d1 8b d0 bf d0 be d0 bb d0 bd d0 b5 d0  ................
35b0: bd d0 b8 d1 8f 20 3d 20 28 6e 65 77 20 44 61 74  ..... = (new Dat
35c0: 65 28 29 20 2d 20 62 65 67 69 6e 54 69 6d 65 29  e() - beginTime)
35d0: 20 2f 20 31 30 30 30 3b 20 20 20 20 20 20 20 20   / 1000;        
35e0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a  ..            ..
35f0: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28              if (
3600: d0 a2 d0 b5 d0 ba d1 83 d1 89 d0 b0 d1 8f d0 a1  ................
3610: d1 82 d1 80 d0 be d0 ba d0 b0 2e d0 a1 d0 be d1  ................
3620: 81 d1 82 d0 be d1 8f d0 bd d0 b8 d0 b5 20 21 3d  ............. !=
3630: 20 74 68 69 73 2e 53 54 41 54 45 5f 53 55 43 43   this.STATE_SUCC
3640: 45 53 53 29 0d 0a 20 20 20 20 20 20 20 20 20 20  ESS)..          
3650: 20 20 20 20 20 20 d0 a1 d0 be d1 81 d1 82 d0 be        ..........
3660: d1 8f d0 bd d0 b8 d0 b5 20 3d 20 74 68 69 73 2e  ........ = this.
3670: 53 54 41 54 45 5f 46 41 49 4c 55 52 45 3b 20 20  STATE_FAILURE;  
3680: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3690: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20             ..   
36a0: 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20           ..     
36b0: 20 20 20 7d 20 20 20 20 0d 0a 20 20 20 20 20 20     }    ..      
36c0: 20 20 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d    ..    }..    .
36d0: 0a 20 20 20 20 72 65 74 75 72 6e 20 d0 a1 d0 be  .    return ....
36e0: d1 81 d1 82 d0 be d1 8f d0 bd d0 b8 d0 b5 3b 0d  ..............;.
36f0: 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65 72  .}....TestRunner
3700: 2e 70 72 6f 74 6f 74 79 70 65 2e 73 65 74 54 65  .prototype.setTe
3710: 73 74 53 74 61 74 75 73 20 3d 20 66 75 6e 63 74  stStatus = funct
3720: 69 6f 6e 28 74 65 73 74 2c 20 65 78 63 65 70 29  ion(test, excep)
3730: 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 20 6d 65 73  ..{..    var mes
3740: 73 61 67 65 20 3d 20 27 d0 a2 d0 b5 d1 81 d1 82  sage = '........
3750: 20 27 20 2b 20 74 65 73 74 2e 66 75 6c 6c 54 65   ' + test.fullTe
3760: 73 74 4e 61 6d 65 20 2b 20 27 20 27 3b 0d 0a 0d  stName + ' ';...
3770: 0a 20 20 20 20 69 66 20 28 65 78 63 65 70 20 3d  .    if (excep =
3780: 3d 20 6e 75 6c 6c 29 20 0d 0a 20 20 20 20 7b 0d  = null) ..    {.
3790: 0a 20 20 20 20 20 20 20 20 74 65 73 74 2e 73 74  .        test.st
37a0: 61 74 75 73 20 3d 20 74 68 69 73 2e 53 54 41 54  atus = this.STAT
37b0: 45 5f 53 55 43 43 45 53 53 3b 0d 0a 20 20 20 20  E_SUCCESS;..    
37c0: 20 20 20 20 74 68 69 73 2e 73 75 63 63 65 73 73      this.success
37d0: 43 6f 75 6e 74 2b 2b 3b 0d 0a 20 20 20 20 20 20  Count++;..      
37e0: 20 20 6d 65 73 73 61 67 65 20 2b 3d 20 27 d0 b2    message += '..
37f0: d1 8b d0 bf d0 be d0 bb d0 bd d0 b5 d0 bd 20 d1  .............. .
3800: 83 d1 81 d0 bf d0 b5 d1 88 d0 bd d0 be 27 3b 0d  .............';.
3810: 0a 20 20 20 20 7d 20 0d 0a 20 20 20 20 65 6c 73  .    } ..    els
3820: 65 20 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20  e ..    {..     
3830: 20 20 20 74 65 73 74 2e 65 78 63 65 70 74 69 6f     test.exceptio
3840: 6e 20 3d 20 65 78 63 65 70 3b 0d 0a 0d 0a 20 20  n = excep;....  
3850: 20 20 20 20 20 20 69 66 20 28 21 65 78 63 65 70        if (!excep
3860: 2e 69 73 4a 73 55 6e 69 74 46 61 69 6c 75 72 65  .isJsUnitFailure
3870: 29 20 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a 20  ) ..        {.. 
3880: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e             this.
3890: 65 72 72 6f 72 43 6f 75 6e 74 2b 2b 3b 0d 0a 20  errorCount++;.. 
38a0: 20 20 20 20 20 20 20 20 20 20 20 74 65 73 74 2e             test.
38b0: 73 74 61 74 75 73 20 3d 20 74 68 69 73 2e 53 54  status = this.ST
38c0: 41 54 45 5f 46 41 49 4c 55 52 45 3b 0d 0a 20 20  ATE_FAILURE;..  
38d0: 20 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 67            messag
38e0: 65 20 2b 3d 20 27 20 d0 be d1 81 d1 82 d0 b0 d0  e += ' .........
38f0: bd d0 be d0 b2 d0 bb d0 b5 d0 bd 20 d0 b8 d0 b7  ........... ....
3900: 2d d0 b7 d0 b0 20 d0 be d1 88 d0 b8 d0 b1 d0 ba  -.... ..........
3910: d0 b8 20 d0 b2 20 d0 bd d0 b5 d0 bc 20 28 65 78  .. .. ...... (ex
3920: 63 65 70 74 69 6f 6e 20 6f 72 20 65 72 72 6f 72  ception or error
3930: 29 27 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a  )';..        }..
3940: 20 20 20 20 20 20 20 20 65 6c 73 65 20 0d 0a 20          else .. 
3950: 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20         {..      
3960: 20 20 20 20 20 20 2f 2f 64 65 62 75 67 67 65 72        //debugger
3970: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74  ;..            t
3980: 68 69 73 2e 66 61 69 6c 75 72 65 43 6f 75 6e 74  his.failureCount
3990: 2b 2b 3b 20 20 20 20 20 20 20 20 20 20 20 20 0d  ++;            .
39a0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 65 73  .            tes
39b0: 74 2e 73 74 61 74 75 73 20 3d 20 74 68 69 73 2e  t.status = this.
39c0: 53 54 41 54 45 5f 46 41 49 4c 55 52 45 3b 0d 0a  STATE_FAILURE;..
39d0: 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 73 73              mess
39e0: 61 67 65 20 2b 3d 20 22 20 d0 bf d1 80 d0 be d0  age += " .......
39f0: b2 d0 b0 d0 bb d0 b8 d0 bb d1 81 d1 8f 20 28 61  ............. (a
3a00: 73 73 65 72 74 69 6f 6e 20 66 61 69 6c 65 64 29  ssertion failed)
3a10: 22 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20  " ..            
3a20: 20 20 20 20 2b 20 28 65 78 63 65 70 2e 63 6f 6d      + (excep.com
3a30: 6d 65 6e 74 20 3f 20 22 5c 6e 5c 74 22 20 2b 20  ment ? "\n\t" + 
3a40: 65 78 63 65 70 2e 63 6f 6d 6d 65 6e 74 20 3a 20  excep.comment : 
3a50: 22 22 29 20 0d 0a 20 20 20 20 20 20 20 20 20 20  "") ..          
3a60: 20 20 20 20 20 20 2b 20 28 65 78 63 65 70 2e 6a        + (excep.j
3a70: 73 55 6e 69 74 4d 65 73 73 61 67 65 20 3f 20 22  sUnitMessage ? "
3a80: 5c 6e 5c 74 22 20 2b 20 65 78 63 65 70 2e 6a 73  \n\t" + excep.js
3a90: 55 6e 69 74 4d 65 73 73 61 67 65 20 3a 20 22 22  UnitMessage : ""
3aa0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 20 20 20  );..        }   
3ab0: 20 20 20 20 20 0d 0a 20 20 20 20 7d 0d 0a 0d 0a       ..    }....
3ac0: 20 20 20 20 74 65 73 74 2e 6d 65 73 73 61 67 65      test.message
3ad0: 20 3d 20 6d 65 73 73 61 67 65 3b 0d 0a 20 20 20   = message;..   
3ae0: 20 0d 0a 20 20 20 20 69 66 20 28 74 65 73 74 2e   ..    if (test.
3af0: 73 74 61 74 75 73 20 21 3d 20 74 68 69 73 2e 53  status != this.S
3b00: 54 41 54 45 5f 53 55 43 43 45 53 53 20 7c 7c 20  TATE_SUCCESS || 
3b10: 74 68 69 73 2e 73 65 74 74 69 6e 67 73 2e 63 75  this.settings.cu
3b20: 72 72 65 6e 74 2e 4c 6f 67 4f 6e 53 75 63 63 65  rrent.LogOnSucce
3b30: 73 73 29 0d 0a 20 20 20 20 20 20 20 20 4d 65 73  ss)..        Mes
3b40: 73 61 67 65 28 6d 65 73 73 61 67 65 29 3b 20 20  sage(message);  
3b50: 20 20 0d 0a 20 20 20 20 0d 0a 20 20 20 20 72 65    ..    ..    re
3b60: 74 75 72 6e 20 74 65 73 74 2e 73 74 61 74 75 73  turn test.status
3b70: 3b 0d 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e  ;..}....TestRunn
3b80: 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 65 78 65  er.prototype.exe
3b90: 63 75 74 65 54 65 73 74 46 75 6e 63 74 69 6f 6e  cuteTestFunction
3ba0: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 d0 a1 d1 82   = function(....
3bb0: d1 80 d0 be d0 ba d0 b0 d0 a2 d0 b5 d1 81 d1 82  ................
3bc0: d0 b0 29 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 20  ..)..{..    var 
3bd0: 74 68 65 54 65 73 74 20 3d 20 d0 a1 d1 82 d1 80  theTest = ......
3be0: d0 be d0 ba d0 b0 d0 a2 d0 b5 d1 81 d1 82 d0 b0  ................
3bf0: 2e 6f 62 6a 65 63 74 3b 0d 0a 20 20 20 20 76 61  .object;..    va
3c00: 72 20 74 65 73 74 41 64 64 69 6e 20 3d 20 74 68  r testAddin = th
3c10: 65 54 65 73 74 2e 61 64 64 69 6e 3b 0d 0a 20 20  eTest.addin;..  
3c20: 20 20 76 61 72 20 74 65 73 74 46 75 6e 63 74 69    var testFuncti
3c30: 6f 6e 4e 61 6d 65 20 3d 20 27 6d 61 63 72 6f 73  onName = 'macros
3c40: 27 20 2b 20 74 68 65 54 65 73 74 2e 74 65 73 74  ' + theTest.test
3c50: 4e 61 6d 65 3b 0d 0a 20 20 20 20 20 0d 0a 20 20  Name;..     ..  
3c60: 20 20 76 61 72 20 65 78 63 65 70 74 69 6f 6e 20    var exception 
3c70: 3d 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 76 61 72  = null;..    var
3c80: 20 74 69 6d 65 42 65 66 6f 72 65 20 3d 20 6e 65   timeBefore = ne
3c90: 77 20 44 61 74 65 28 29 3b 0d 0a 20 20 20 20 0d  w Date();..    .
3ca0: 0a 20 20 20 20 74 72 79 20 0d 0a 20 20 20 20 7b  .    try ..    {
3cb0: 0d 0a 20 20 20 20 20 20 20 69 66 20 28 74 65 73  ..       if (tes
3cc0: 74 41 64 64 69 6e 2e 6f 62 6a 65 63 74 2e 73 65  tAddin.object.se
3cd0: 74 55 70 20 21 3d 3d 20 6a 73 55 6e 69 74 43 6f  tUp !== jsUnitCo
3ce0: 72 65 2e 4a 53 55 4e 49 54 5f 55 4e 44 45 46 49  re.JSUNIT_UNDEFI
3cf0: 4e 45 44 5f 56 41 4c 55 45 29 0d 0a 20 20 20 20  NED_VALUE)..    
3d00: 20 20 20 20 20 20 20 20 74 65 73 74 41 64 64 69          testAddi
3d10: 6e 2e 6f 62 6a 65 63 74 2e 73 65 74 55 70 28 29  n.object.setUp()
3d20: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d  ;..            .
3d30: 0a 20 20 20 20 20 20 20 74 65 73 74 41 64 64 69  .       testAddi
3d40: 6e 2e 6f 62 6a 65 63 74 5b 74 65 73 74 46 75 6e  n.object[testFun
3d50: 63 74 69 6f 6e 4e 61 6d 65 5d 2e 63 61 6c 6c 28  ctionName].call(
3d60: 6e 75 6c 6c 29 3b 0d 0a 20 20 20 20 7d 0d 0a 20  null);..    }.. 
3d70: 20 20 20 63 61 74 63 68 20 28 65 31 29 20 0d 0a     catch (e1) ..
3d80: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 65      {..        e
3d90: 78 63 65 70 74 69 6f 6e 20 3d 20 65 31 3b 0d 0a  xception = e1;..
3da0: 20 20 20 20 7d 0d 0a 20 20 20 20 66 69 6e 61 6c      }..    final
3db0: 6c 79 20 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20  ly ..    {..    
3dc0: 20 20 20 20 74 72 79 20 0d 0a 20 20 20 20 20 20      try ..      
3dd0: 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20    {..           
3de0: 20 69 66 20 28 74 65 73 74 41 64 64 69 6e 2e 6f   if (testAddin.o
3df0: 62 6a 65 63 74 2e 74 65 61 72 44 6f 77 6e 20 21  bject.tearDown !
3e00: 3d 3d 20 6a 73 55 6e 69 74 43 6f 72 65 2e 4a 53  == jsUnitCore.JS
3e10: 55 4e 49 54 5f 55 4e 44 45 46 49 4e 45 44 5f 56  UNIT_UNDEFINED_V
3e20: 41 4c 55 45 29 0d 0a 20 20 20 20 20 20 20 20 20  ALUE)..         
3e30: 20 20 20 20 20 20 20 74 65 73 74 41 64 64 69 6e         testAddin
3e40: 2e 6f 62 6a 65 63 74 2e 74 65 61 72 44 6f 77 6e  .object.tearDown
3e50: 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a  ();..        }..
3e60: 20 20 20 20 20 20 20 20 63 61 74 63 68 20 28 65          catch (e
3e70: 32 29 20 0d 0a 20 20 20 20 20 20 20 20 7b 0d 0a  2) ..        {..
3e80: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 55 6e              //Un
3e90: 6c 69 6b 65 20 4a 55 6e 69 74 2c 20 6f 6e 6c 79  like JUnit, only
3ea0: 20 61 73 73 69 67 6e 20 61 20 74 65 61 72 44 6f   assign a tearDo
3eb0: 77 6e 20 65 78 63 65 70 74 69 6f 6e 20 74 6f 20  wn exception to 
3ec0: 65 78 63 65 70 20 69 66 20 74 68 65 72 65 20 69  excep if there i
3ed0: 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 20 61 6e  s not already an
3ee0: 20 65 78 63 65 70 74 69 6f 6e 20 66 72 6f 6d 20   exception from 
3ef0: 74 68 65 20 74 65 73 74 20 62 6f 64 79 0d 0a 20  the test body.. 
3f00: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65             if (e
3f10: 78 63 65 70 74 69 6f 6e 20 3d 3d 20 6e 75 6c 6c  xception == null
3f20: 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20  )..             
3f30: 20 20 20 65 78 63 65 70 74 69 6f 6e 20 3d 20 65     exception = e
3f40: 32 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20  2;..        }.. 
3f50: 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20     }..    ..    
3f60: d0 a1 d1 82 d1 80 d0 be d0 ba d0 b0 d0 a2 d0 b5  ................
3f70: d1 81 d1 82 d0 b0 2e d0 92 d1 80 d0 b5 d0 bc d1  ................
3f80: 8f d0 92 d1 8b d0 bf d0 be d0 bb d0 bd d0 b5 d0  ................
3f90: bd d0 b8 d1 8f 20 3d 20 28 6e 65 77 20 44 61 74  ..... = (new Dat
3fa0: 65 28 29 20 2d 20 74 69 6d 65 42 65 66 6f 72 65  e() - timeBefore
3fb0: 29 20 2f 20 31 30 30 30 3b 0d 0a 0d 0a 20 20 20  ) / 1000;....   
3fc0: 20 72 65 74 75 72 6e 20 74 68 69 73 2e 73 65 74   return this.set
3fd0: 54 65 73 74 53 74 61 74 75 73 28 74 68 65 54 65  TestStatus(theTe
3fe0: 73 74 2c 20 65 78 63 65 70 74 69 6f 6e 29 3b 0d  st, exception);.
3ff0: 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65 72  .}....TestRunner
4000: 2e 70 72 6f 74 6f 74 79 70 65 2e 67 65 74 44 65  .prototype.getDe
4010: 66 61 75 6c 74 54 65 73 74 73 44 69 72 20 3d 20  faultTestsDir = 
4020: 66 75 6e 63 74 69 6f 6e 28 29 0d 0a 7b 0d 0a 20  function()..{.. 
4030: 20 20 20 76 61 72 20 6d 61 69 6e 46 6f 6c 64 65     var mainFolde
4040: 72 20 3d 20 70 72 6f 66 69 6c 65 52 6f 6f 74 2e  r = profileRoot.
4050: 67 65 74 56 61 6c 75 65 28 22 53 6e 65 67 6f 70  getValue("Snegop
4060: 61 74 2f 4d 61 69 6e 46 6f 6c 64 65 72 22 29 3b  at/MainFolder");
4070: 0d 0a 20 20 20 20 76 61 72 20 66 20 3d 20 76 38  ..    var f = v8
4080: 4e 65 77 28 22 d0 a4 d0 b0 d0 b9 d0 bb 22 2c 20  New("........", 
4090: 6d 61 69 6e 46 6f 6c 64 65 72 20 2b 20 22 73 63  mainFolder + "sc
40a0: 72 69 70 74 73 5c 5c 54 65 73 74 73 22 29 3b 0d  ripts\\Tests");.
40b0: 0a 20 20 20 20 69 66 20 28 66 2e d0 a1 d1 83 d1  .    if (f......
40c0: 89 d0 b5 d1 81 d1 82 d0 b2 d1 83 d0 b5 d1 82 28  ...............(
40d0: 29 20 26 26 20 66 2e d0 ad d1 82 d0 be d0 9a d0  ) && f..........
40e0: b0 d1 82 d0 b0 d0 bb d0 be d0 b3 28 29 29 0d 0a  ...........())..
40f0: 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66          return f
4100: 2e d0 9f d0 be d0 bb d0 bd d0 be d0 b5 d0 98 d0  ................
4110: bc d1 8f 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20  ...;..    ..    
4120: 72 65 74 75 72 6e 20 6d 61 69 6e 46 6f 6c 64 65  return mainFolde
4130: 72 3b 0d 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e  r;..}....TestRun
4140: 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e 53 61  ner.prototype.Sa
4150: 76 65 53 65 74 74 69 6e 67 73 20 3d 20 66 75 6e  veSettings = fun
4160: 63 74 69 6f 6e 20 28 29 0d 0a 7b 0d 0a 20 20 20  ction ()..{..   
4170: 20 74 68 69 73 2e 73 65 74 74 69 6e 67 73 2e 52   this.settings.R
4180: 65 61 64 46 72 6f 6d 46 6f 72 6d 28 74 68 69 73  eadFromForm(this
4190: 2e 66 6f 72 6d 29 3b 0d 0a 20 20 20 20 74 68 69  .form);..    thi
41a0: 73 2e 73 65 74 74 69 6e 67 73 2e 53 61 76 65 53  s.settings.SaveS
41b0: 65 74 74 69 6e 67 73 28 29 3b 0d 0a 20 20 20 20  ettings();..    
41c0: 74 68 69 73 2e 66 6f 72 6d 2e d0 9c d0 be d0 b4  this.form.......
41d0: d0 b8 d1 84 d0 b8 d1 86 d0 b8 d1 80 d0 be d0 b2  ................
41e0: d0 b0 d0 bd d0 bd d0 be d1 81 d1 82 d1 8c 20 3d  .............. =
41f0: 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 74 68 69   false;..    thi
4200: 73 2e 66 6f 72 6d 2e d0 ad d0 bb d0 b5 d0 bc d0  s.form..........
4210: b5 d0 bd d1 82 d1 8b d0 a4 d0 be d1 80 d0 bc d1  ................
4220: 8b 2e d0 9a d0 bd d0 be d0 bf d0 ba d0 b0 d0 9f  ................
4230: d1 80 d0 b8 d0 bc d0 b5 d0 bd d0 b8 d1 82 d1 8c  ................
4240: 2e d0 94 d0 be d1 81 d1 82 d1 83 d0 bf d0 bd d0  ................
4250: be d1 81 d1 82 d1 8c 20 3d 20 66 61 6c 73 65 3b  ....... = false;
4260: 0d 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65  ..}....TestRunne
4270: 72 2e 70 72 6f 74 6f 74 79 70 65 2e 44 69 73 63  r.prototype.Disc
4280: 61 72 64 53 65 74 74 69 6e 67 73 20 3d 20 66 75  ardSettings = fu
4290: 6e 63 74 69 6f 6e 20 28 29 0d 0a 7b 0d 0a 20 20  nction ()..{..  
42a0: 20 20 74 68 69 73 2e 73 65 74 74 69 6e 67 73 2e    this.settings.
42b0: 41 70 70 6c 79 54 6f 46 6f 72 6d 28 74 68 69 73  ApplyToForm(this
42c0: 2e 66 6f 72 6d 29 3b 0d 0a 20 20 20 20 74 68 69  .form);..    thi
42d0: 73 2e 66 6f 72 6d 2e d0 9c d0 be d0 b4 d0 b8 d1  s.form..........
42e0: 84 d0 b8 d1 86 d0 b8 d1 80 d0 be d0 b2 d0 b0 d0  ................
42f0: bd d0 bd d0 be d1 81 d1 82 d1 8c 20 3d 20 66 61  ........... = fa
4300: 6c 73 65 3b 20 20 20 20 0d 0a 7d 0d 0a 0d 0a 54  lse;    ..}....T
4310: 65 73 74 52 75 6e 6e 65 72 2e 70 72 6f 74 6f 74  estRunner.protot
4320: 79 70 65 2e 69 73 54 65 73 74 73 4c 6f 61 64 65  ype.isTestsLoade
4330: 64 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 0d  d = function ().
4340: 0a 7b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 28  .{..    return (
4350: 74 68 69 73 2e 61 6c 6c 54 65 73 74 73 2e 52 6f  this.allTests.Ro
4360: 77 73 2e 43 6f 75 6e 74 28 29 20 3e 20 30 29 3b  ws.Count() > 0);
4370: 0d 0a 7d 0d 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f  ..}..../////////
4380: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
4390: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
43a0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
43b0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
43c0: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d  ///////////////.
43d0: 0a 2f 2f 2f 2f 20 d0 9e d0 91 d0 a0 d0 90 d0 91  .//// ..........
43e0: d0 9e d0 a2 d0 a7 d0 98 d0 9a d0 98 20 d0 a1 d0  ............ ...
43f0: 9e d0 91 d0 ab d0 a2 d0 98 d0 99 20 d0 a4 d0 9e  ........... ....
4400: d0 a0 d0 9c d0 ab 20 d0 98 20 d0 95 d0 95 20 d0  ...... .. .... .
4410: ad d0 9b d0 95 d0 9c d0 95 d0 9d d0 a2 d0 9e d0  ................
4420: 92 2e 0d 0a 2f 2f 2f 2f 0d 0a 0d 0a 54 65 73 74  ....////....Test
4430: 52 75 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65  Runner.prototype
4440: 2e d0 9a d0 bd d0 be d0 bf d0 ba d0 b0 d0 97 d0  ................
4450: b0 d0 b3 d1 80 d1 83 d0 b7 d0 b8 d1 82 d1 8c d0  ................
4460: a2 d0 b5 d1 81 d1 82 d1 8b d0 9d d0 b0 d0 b6 d0  ................
4470: b0 d1 82 d0 b8 d0 b5 20 3d 20 66 75 6e 63 74 69  ....... = functi
4480: 6f 6e 28 d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1  on(.............
4490: 82 29 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 20 d0  .)..{..    var .
44a0: 92 d1 8b d0 b1 d0 be d1 80 d0 9a d0 b0 d1 82 d0  ................
44b0: b0 d0 bb d0 be d0 b3 d0 b0 20 3d 20 76 38 4e 65  ......... = v8Ne
44c0: 77 28 22 d0 94 d0 b8 d0 b0 d0 bb d0 be d0 b3 d0  w(".............
44d0: 92 d1 8b d0 b1 d0 be d1 80 d0 b0 d0 a4 d0 b0 d0  ................
44e0: b9 d0 bb d0 b0 22 2c 20 d0 a0 d0 b5 d0 b6 d0 b8  .....", ........
44f0: d0 bc d0 94 d0 b8 d0 b0 d0 bb d0 be d0 b3 d0 b0  ................
4500: d0 92 d1 8b d0 b1 d0 be d1 80 d0 b0 d0 a4 d0 b0  ................
4510: d0 b9 d0 bb d0 b0 2e d0 92 d1 8b d0 b1 d0 be d1  ................
4520: 80 d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 d0  ................
4530: b0 29 3b 0d 0a 20 20 20 20 d0 92 d1 8b d0 b1 d0  .);..    .......
4540: be d1 80 d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0  ................
4550: b3 d0 b0 2e d0 9f d0 be d0 bb d0 bd d0 be d0 b5  ................
4560: d0 98 d0 bc d1 8f d0 a4 d0 b0 d0 b9 d0 bb d0 b0  ................
4570: 20 3d 20 22 22 3b 0d 0a 20 20 20 20 d0 92 d1 8b   = "";..    ....
4580: d0 b1 d0 be d1 80 d0 9a d0 b0 d1 82 d0 b0 d0 bb  ................
4590: d0 be d0 b3 d0 b0 2e d0 97 d0 b0 d0 b3 d0 be d0  ................
45a0: bb d0 be d0 b2 d0 be d0 ba 20 3d 20 22 d0 92 d1  ......... = "...
45b0: 8b d0 b1 d0 b5 d1 80 d0 b8 d1 82 d0 b5 20 d0 ba  ............. ..
45c0: d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 20 63 20 d1  ............ c .
45d0: 82 d0 b5 d1 81 d1 82 d0 b0 d0 bc d0 b8 22 3b 0d  .............";.
45e0: 0a 20 20 20 20 d0 92 d1 8b d0 b1 d0 be d1 80 d0  .    ...........
45f0: 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 d0 b0 2e  ................
4600: d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 20 3d  .............. =
4610: 20 74 68 69 73 2e 67 65 74 44 65 66 61 75 6c 74   this.getDefault
4620: 54 65 73 74 73 44 69 72 28 29 3b 0d 0a 20 0d 0a  TestsDir();.. ..
4630: 20 20 20 20 69 66 20 28 d0 92 d1 8b d0 b1 d0 be      if (........
4640: d1 80 d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3  ................
4650: d0 b0 2e d0 92 d1 8b d0 b1 d1 80 d0 b0 d1 82 d1  ................
4660: 8c 28 29 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20  .())..    {..   
4670: 20 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e d0       this.form..
4680: 9f d1 83 d1 82 d1 8c 20 3d 20 d0 92 d1 8b d0 b1  ....... = ......
4690: d0 be d1 80 d0 9a d0 b0 d1 82 d0 b0 d0 bb d0 be  ................
46a0: d0 b3 d0 b0 2e d0 9a d0 b0 d1 82 d0 b0 d0 bb d0  ................
46b0: be d0 b3 3b 0d 0a 20 20 20 20 20 20 20 20 74 68  ...;..        th
46c0: 69 73 2e 6c 6f 61 64 54 65 73 74 73 28 d0 92 d1  is.loadTests(...
46d0: 8b d0 b1 d0 be d1 80 d0 9a d0 b0 d1 82 d0 b0 d0  ................
46e0: bb d0 be d0 b3 d0 b0 2e d0 9a d0 b0 d1 82 d0 b0  ................
46f0: d0 bb d0 be d0 b3 29 3b 0d 0a 20 20 20 20 7d 0d  ......);..    }.
4700: 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65 72  .}....TestRunner
4710: 2e 70 72 6f 74 6f 74 79 70 65 2e d0 9a d0 bd d0  .prototype......
4720: be d0 bf d0 ba d0 b0 d0 97 d0 b0 d0 b3 d1 80 d1  ................
4730: 83 d0 b7 d0 b8 d1 82 d1 8c d0 a2 d0 b5 d1 81 d1  ................
4740: 82 d1 8b d0 97 d0 b0 d0 b3 d1 80 d1 83 d0 b7 d0  ................
4750: b8 d1 82 d1 8c d0 a2 d0 b5 d1 81 d1 82 d0 9a d0  ................
4760: b5 d0 b9 d1 81 20 3d 20 66 75 6e 63 74 69 6f 6e  ..... = function
4770: 20 28 d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82   (..............
4780: 29 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 20 d0 92  )..{..    var ..
4790: d1 8b d0 b1 d0 be d1 80 d0 a4 d0 b0 d0 b9 d0 bb  ................
47a0: d0 b0 20 3d 20 76 38 4e 65 77 28 22 d0 94 d0 b8  .. = v8New("....
47b0: d0 b0 d0 bb d0 be d0 b3 d0 92 d1 8b d0 b1 d0 be  ................
47c0: d1 80 d0 b0 d0 a4 d0 b0 d0 b9 d0 bb d0 b0 22 2c  ..............",
47d0: 20 d0 a0 d0 b5 d0 b6 d0 b8 d0 bc d0 94 d0 b8 d0   ...............
47e0: b0 d0 bb d0 be d0 b3 d0 b0 d0 92 d1 8b d0 b1 d0  ................
47f0: be d1 80 d0 b0 d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e  ................
4800: d0 9e d1 82 d0 ba d1 80 d1 8b d1 82 d0 b8 d0 b5  ................
4810: 29 3b 0d 0a 20 20 20 20 d0 92 d1 8b d0 b1 d0 be  );..    ........
4820: d1 80 d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e d0 97 d0  ................
4830: b0 d0 b3 d0 be d0 bb d0 be d0 b2 d0 be d0 ba 20  ............... 
4840: 3d 20 22 d0 92 d1 8b d0 b1 d0 b5 d1 80 d0 b8 d1  = ".............
4850: 82 d0 b5 20 d1 82 d0 b5 d1 81 d1 82 d0 be d0 b2  ... ............
4860: d1 8b d0 b9 20 d1 81 d0 ba d1 80 d0 b8 d0 bf d1  .... ...........
4870: 82 22 3b 0d 0a 20 20 20 20 d0 92 d1 8b d0 b1 d0  .";..    .......
4880: be d1 80 d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e d0 9a  ................
4890: d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 20 3d 20 74  ............ = t
48a0: 68 69 73 2e 67 65 74 44 65 66 61 75 6c 74 54 65  his.getDefaultTe
48b0: 73 74 73 44 69 72 28 29 3b 0d 0a 20 20 20 20 20  stsDir();..     
48c0: 20 20 20 0d 0a 20 20 20 20 69 66 20 28 d0 92 d1     ..    if (...
48d0: 8b d0 b1 d0 be d1 80 d0 a4 d0 b0 d0 b9 d0 bb d0  ................
48e0: b0 2e d0 92 d1 8b d0 b1 d1 80 d0 b0 d1 82 d1 8c  ................
48f0: 28 29 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20  ())..    {..    
4900: 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e d0 9f      this.form...
4910: d1 83 d1 82 d1 8c 20 3d 20 d0 92 d1 8b d0 b1 d0  ...... = .......
4920: be d1 80 d0 a4 d0 b0 d0 b9 d0 bb d0 b0 2e d0 9f  ................
4930: d0 be d0 bb d0 bd d0 be d0 b5 d0 98 d0 bc d1 8f  ................
4940: d0 a4 d0 b0 d0 b9 d0 bb d0 b0 3b 0d 0a 20 20 20  ..........;..   
4950: 20 20 20 20 20 74 68 69 73 2e 6c 6f 61 64 54 65       this.loadTe
4960: 73 74 73 28 d0 92 d1 8b d0 b1 d0 be d1 80 d0 a4  sts(............
4970: d0 b0 d0 b9 d0 bb d0 b0 2e d0 9f d0 be d0 bb d0  ................
4980: bd d0 be d0 b5 d0 98 d0 bc d1 8f d0 a4 d0 b0 d0  ................
4990: b9 d0 bb d0 b0 29 3b 0d 0a 20 20 20 20 7d 0d 0a  .....);..    }..
49a0: 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65 72 2e  }....TestRunner.
49b0: 70 72 6f 74 6f 74 79 70 65 2e 72 65 6c 6f 61 64  prototype.reload
49c0: 54 65 73 74 73 20 3d 20 66 75 6e 63 74 69 6f 6e  Tests = function
49d0: 28 29 0d 0a 7b 0d 0a 20 20 20 20 69 66 20 28 74  ()..{..    if (t
49e0: 68 69 73 2e 69 73 54 65 73 74 73 4c 6f 61 64 65  his.isTestsLoade
49f0: 64 28 29 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20  d())..    {..   
4a00: 20 20 20 20 20 74 68 69 73 2e 73 77 69 74 63 68       this.switch
4a10: 50 72 6f 67 72 65 73 73 42 61 72 28 66 61 6c 73  ProgressBar(fals
4a20: 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 69  e);..        thi
4a30: 73 2e 72 65 73 65 74 43 6f 75 6e 74 65 72 73 28  s.resetCounters(
4a40: 29 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73  );..        this
4a50: 2e 6c 6f 61 64 54 65 73 74 73 28 74 68 69 73 2e  .loadTests(this.
4a60: 66 6f 72 6d 2e d0 9f d1 83 d1 82 d1 8c 29 3b 0d  form.........);.
4a70: 0a 20 20 20 20 7d 0d 0a 7d 0d 0a 0d 0a 54 65 73  .    }..}....Tes
4a80: 74 52 75 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70  tRunner.prototyp
4a90: 65 2e d0 9a d0 bd d0 be d0 bf d0 ba d0 b0 d0 9f  e...............
4aa0: d0 b5 d1 80 d0 b5 d0 b7 d0 b0 d0 b3 d1 80 d1 83  ................
4ab0: d0 b7 d0 b8 d1 82 d1 8c d0 9d d0 b0 d0 b6 d0 b0  ................
4ac0: d1 82 d0 b8 d0 b5 20 3d 20 66 75 6e 63 74 69 6f  ...... = functio
4ad0: 6e 20 28 d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1  n (.............
4ae0: 82 29 0d 0a 7b 0d 0a 20 20 20 20 69 66 20 28 21  .)..{..    if (!
4af0: 74 68 69 73 2e 69 73 54 65 73 74 73 4c 6f 61 64  this.isTestsLoad
4b00: 65 64 28 29 29 0d 0a 20 20 20 20 7b 0d 0a 20 20  ed())..    {..  
4b10: 20 20 20 20 20 20 d0 9f d1 80 d0 b5 d0 b4 d1 83        ..........
4b20: d0 bf d1 80 d0 b5 d0 b6 d0 b4 d0 b5 d0 bd d0 b8  ................
4b30: d0 b5 28 22 d0 a1 d0 bd d0 b0 d1 87 d0 b0 d0 bb  ..("............
4b40: d0 b0 20 d0 b7 d0 b0 d0 b3 d1 80 d1 83 d0 b7 d0  .. .............
4b50: b8 d1 82 d0 b5 20 d1 82 d0 b5 d1 81 d1 82 d1 8b  ..... ..........
4b60: 21 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 72 65  !");..        re
4b70: 74 75 72 6e 3b 0d 0a 20 20 20 20 7d 0d 0a 20 20  turn;..    }..  
4b80: 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 72 65 6c    ..    this.rel
4b90: 6f 61 64 54 65 73 74 73 28 29 3b 0d 0a 7d 0d 0a  oadTests();..}..
4ba0: 0d 0a 54 65 73 74 52 75 6e 6e 65 72 2e 70 72 6f  ..TestRunner.pro
4bb0: 74 6f 74 79 70 65 2e d0 9a d0 bd d0 be d0 bf d0  totype..........
4bc0: ba d0 b0 d0 92 d1 8b d0 bf d0 be d0 bb d0 bd d0  ................
4bd0: b8 d1 82 d1 8c d0 92 d1 81 d0 b5 d0 a2 d0 b5 d1  ................
4be0: 81 d1 82 d1 8b d0 9d d0 b0 d0 b6 d0 b0 d1 82 d0  ................
4bf0: b8 d0 b5 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28  ... = function (
4c00: d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 29 0d  ..............).
4c10: 0a 7b 0d 0a 20 20 20 20 69 66 20 28 74 68 69 73  .{..    if (this
4c20: 2e 73 65 74 74 69 6e 67 73 2e 63 75 72 72 65 6e  .settings.curren
4c30: 74 2e 52 65 6c 6f 61 64 42 65 66 6f 72 65 52 75  t.ReloadBeforeRu
4c40: 6e 41 6c 6c 20 26 26 20 74 68 69 73 2e 74 65 73  nAll && this.tes
4c50: 74 69 6e 67 44 6f 6e 65 29 0d 0a 20 20 20 20 20  tingDone)..     
4c60: 20 20 20 74 68 69 73 2e 72 65 6c 6f 61 64 54 65     this.reloadTe
4c70: 73 74 73 28 29 3b 0d 0a 0d 0a 20 20 20 20 74 68  sts();....    th
4c80: 69 73 2e 72 65 73 65 74 43 6f 75 6e 74 65 72 73  is.resetCounters
4c90: 28 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e 69 6e  ();..    this.in
4ca0: 69 74 50 72 6f 67 72 65 73 73 42 61 72 28 29 3b  itProgressBar();
4cb0: 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20  ..        ..    
4cc0: 74 68 69 73 2e 72 75 6e 41 6c 6c 54 65 73 74 73  this.runAllTests
4cd0: 28 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74  ();..    ..    t
4ce0: 68 69 73 2e 75 70 64 61 74 65 54 6f 74 61 6c 73  his.updateTotals
4cf0: 28 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e 73 77  ();..    this.sw
4d00: 69 74 63 68 50 72 6f 67 72 65 73 73 42 61 72 28  itchProgressBar(
4d10: 66 61 6c 73 65 29 3b 20 20 20 20 0d 0a 7d 0d 0a  false);    ..}..
4d20: 0d 0a 54 65 73 74 52 75 6e 6e 65 72 2e 70 72 6f  ..TestRunner.pro
4d30: 74 6f 74 79 70 65 2e d0 9a d0 bd d0 be d0 bf d0  totype..........
4d40: ba d0 b0 d0 92 d1 8b d0 bf d0 be d0 bb d0 bd d0  ................
4d50: b8 d1 82 d1 8c d0 92 d1 8b d0 b4 d0 b5 d0 bb d0  ................
4d60: b5 d0 bd d0 bd d1 8b d0 b9 d0 9d d0 b0 d0 b6 d0  ................
4d70: b0 d1 82 d0 b8 d0 b5 20 3d 20 66 75 6e 63 74 69  ....... = functi
4d80: 6f 6e 20 28 d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd  on (............
4d90: d1 82 29 0d 0a 7b 0d 0a 20 20 20 20 6a 73 55 6e  ..)..{..    jsUn
4da0: 69 74 43 6f 72 65 2e 53 65 74 45 72 72 6f 72 48  itCore.SetErrorH
4db0: 61 6e 64 6c 65 72 28 66 75 6e 63 74 69 6f 6e 28  andler(function(
4dc0: 65 29 7b 20 74 68 72 6f 77 20 65 3b 20 7d 29 3b  e){ throw e; });
4dd0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 4d 65 73 73  ..    ..    Mess
4de0: 61 67 65 28 22 d0 9d d0 b5 20 d1 80 d0 b5 d0 b0  age(".... ......
4df0: d0 bb d0 b8 d0 b7 d0 be d0 b2 d0 b0 d0 bd d0 be  ................
4e00: 22 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 6a  ");..    ..    j
4e10: 73 55 6e 69 74 43 6f 72 65 2e 52 65 73 65 74 45  sUnitCore.ResetE
4e20: 72 72 6f 72 48 61 6e 64 6c 65 72 28 29 3b 0d 0a  rrorHandler();..
4e30: 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65 72 2e  }....TestRunner.
4e40: 70 72 6f 74 6f 74 79 70 65 2e d1 82 d0 bf d0 94  prototype.......
4e50: d0 b5 d1 80 d0 b5 d0 b2 d0 be d0 a2 d0 b5 d1 81  ................
4e60: d1 82 d0 be d0 b2 d0 9f d1 80 d0 b8 d0 92 d1 8b  ................
4e70: d0 b2 d0 be d0 b4 d0 b5 d0 a1 d1 82 d1 80 d0 be  ................
4e80: d0 ba d0 b8 20 3d 20 66 75 6e 63 74 69 6f 6e 28  .... = function(
4e90: d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 2c 20  .............., 
4ea0: d0 9e d1 84 d0 be d1 80 d0 bc d0 bb d0 b5 d0 bd  ................
4eb0: d0 b8 d0 b5 d0 a1 d1 82 d1 80 d0 be d0 ba d0 b8  ................
4ec0: 2c 20 d0 94 d0 b0 d0 bd d0 bd d1 8b d0 b5 d0 a1  , ..............
4ed0: d1 82 d1 80 d0 be d0 ba d0 b8 29 0d 0a 7b 0d 0a  ..........)..{..
4ee0: 20 20 20 20 76 61 72 20 d0 af d1 87 d0 b5 d0 b9      var ........
4ef0: d0 ba d0 b8 20 3d 20 d0 9e d1 84 d0 be d1 80 d0  .... = .........
4f00: bc d0 bb d0 b5 d0 bd d0 b8 d0 b5 d0 a1 d1 82 d1  ................
4f10: 80 d0 be d0 ba d0 b8 2e 76 61 6c 2e d0 af d1 87  ........val.....
4f20: d0 b5 d0 b9 d0 ba d0 b8 3b 0d 0a 20 20 20 20 20  ........;..     
4f30: 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 a3 d1 81     ..    // ....
4f40: d1 82 d0 b0 d0 bd d0 b0 d0 b2 d0 bb d0 b8 d0 b2  ................
4f50: d0 b0 d0 b5 d0 bc 20 d0 b8 d0 ba d0 be d0 bd d0  ...... .........
4f60: ba d1 83 20 d1 81 d0 be d1 81 d1 82 d0 be d1 8f  ... ............
4f70: d0 bd d0 b8 d1 8f 20 d0 b2 d1 8b d0 bf d0 be d0  ...... .........
4f80: bb d0 bd d0 b5 d0 bd d0 b8 d1 8f 2e 0d 0a 20 20  ..............  
4f90: 20 20 76 61 72 20 d0 a1 d0 be d1 81 d1 82 d0 be    var ..........
4fa0: d1 8f d0 bd d0 b8 d0 b5 20 3d 20 d0 94 d0 b0 d0  ........ = .....
4fb0: bd d0 bd d1 8b d0 b5 d0 a1 d1 82 d1 80 d0 be d0  ................
4fc0: ba d0 b8 2e 76 61 6c 2e d0 a1 d0 be d1 81 d1 82  ....val.........
4fd0: d0 be d1 8f d0 bd d0 b8 d0 b5 3b 0d 0a 20 20 20  ..........;..   
4fe0: 20 0d 0a 20 20 20 20 69 66 20 28 d0 a1 d0 be d1   ..    if (.....
4ff0: 81 d1 82 d0 be d1 8f d0 bd d0 b8 d0 b5 20 3d 3d  ............. ==
5000: 20 74 68 69 73 2e 53 54 41 54 45 5f 53 55 43 43   this.STATE_SUCC
5010: 45 53 53 29 0d 0a 20 20 20 20 20 20 20 20 d0 af  ESS)..        ..
5020: d1 87 d0 b5 d0 b9 d0 ba d0 b8 2e d0 9d d0 b0 d0  ................
5030: b7 d0 b2 d0 b0 d0 bd d0 b8 d0 b5 d0 a2 d0 b5 d1  ................
5040: 81 d1 82 d0 b0 2e d0 a3 d1 81 d1 82 d0 b0 d0 bd  ................
5050: d0 be d0 b2 d0 b8 d1 82 d1 8c d0 9a d0 b0 d1 80  ................
5060: d1 82 d0 b8 d0 bd d0 ba d1 83 28 74 68 69 73 2e  ..........(this.
5070: 53 74 61 74 65 49 63 6f 6e 73 2e 47 72 65 65 6e  StateIcons.Green
5080: 29 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20  )        ..     
5090: 20 20 20 0d 0a 20 20 20 20 65 6c 73 65 20 69 66     ..    else if
50a0: 20 28 d0 a1 d0 be d1 81 d1 82 d0 be d1 8f d0 bd   (..............
50b0: d0 b8 d0 b5 20 3d 3d 20 74 68 69 73 2e 53 54 41  .... == this.STA
50c0: 54 45 5f 49 47 4e 4f 52 45 29 0d 0a 20 20 20 20  TE_IGNORE)..    
50d0: 20 20 20 20 d0 af d1 87 d0 b5 d0 b9 d0 ba d0 b8      ............
50e0: 2e d0 9d d0 b0 d0 b7 d0 b2 d0 b0 d0 bd d0 b8 d0  ................
50f0: b5 d0 a2 d0 b5 d1 81 d1 82 d0 b0 2e d0 a3 d1 81  ................
5100: d1 82 d0 b0 d0 bd d0 be d0 b2 d0 b8 d1 82 d1 8c  ................
5110: d0 9a d0 b0 d1 80 d1 82 d0 b8 d0 bd d0 ba d1 83  ................
5120: 28 74 68 69 73 2e 53 74 61 74 65 49 63 6f 6e 73  (this.StateIcons
5130: 2e 59 65 6c 6c 6f 77 29 0d 0a 20 20 20 20 20 20  .Yellow)..      
5140: 20 20 0d 0a 20 20 20 20 65 6c 73 65 20 69 66 20    ..    else if 
5150: 28 d0 a1 d0 be d1 81 d1 82 d0 be d1 8f d0 bd d0  (...............
5160: b8 d0 b5 20 3d 3d 20 74 68 69 73 2e 53 54 41 54  ... == this.STAT
5170: 45 5f 46 41 49 4c 55 52 45 29 0d 0a 20 20 20 20  E_FAILURE)..    
5180: 20 20 20 20 d0 af d1 87 d0 b5 d0 b9 d0 ba d0 b8      ............
5190: 2e d0 9d d0 b0 d0 b7 d0 b2 d0 b0 d0 bd d0 b8 d0  ................
51a0: b5 d0 a2 d0 b5 d1 81 d1 82 d0 b0 2e d0 a3 d1 81  ................
51b0: d1 82 d0 b0 d0 bd d0 be d0 b2 d0 b8 d1 82 d1 8c  ................
51c0: d0 9a d0 b0 d1 80 d1 82 d0 b8 d0 bd d0 ba d1 83  ................
51d0: 28 74 68 69 73 2e 53 74 61 74 65 49 63 6f 6e 73  (this.StateIcons
51e0: 2e 52 65 64 29 0d 0a 20 20 20 20 20 20 20 20 0d  .Red)..        .
51f0: 0a 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20  .    else..     
5200: 20 20 20 d0 af d1 87 d0 b5 d0 b9 d0 ba d0 b8 2e     .............
5210: d0 9d d0 b0 d0 b7 d0 b2 d0 b0 d0 bd d0 b8 d0 b5  ................
5220: d0 a2 d0 b5 d1 81 d1 82 d0 b0 2e d0 a3 d1 81 d1  ................
5230: 82 d0 b0 d0 bd d0 be d0 b2 d0 b8 d1 82 d1 8c d0  ................
5240: 9a d0 b0 d1 80 d1 82 d0 b8 d0 bd d0 ba d1 83 28  ...............(
5250: 74 68 69 73 2e 53 74 61 74 65 49 63 6f 6e 73 2e  this.StateIcons.
5260: 47 72 61 79 29 0d 0a 20 20 20 20 20 20 20 20 0d  Gray)..        .
5270: 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65 72  .}....TestRunner
5280: 2e 70 72 6f 74 6f 74 79 70 65 2e d0 9a d0 bd d0  .prototype......
5290: be d0 bf d0 ba d0 b0 d0 9d d0 b0 d1 81 d1 82 d1  ................
52a0: 80 d0 be d0 b9 d0 ba d0 b8 d0 9d d0 b0 d0 b6 d0  ................
52b0: b0 d1 82 d0 b8 d0 b5 20 3d 20 66 75 6e 63 74 69  ....... = functi
52c0: 6f 6e 20 28 d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd  on (............
52d0: d1 82 29 0d 0a 7b 0d 0a 20 20 20 20 74 68 69 73  ..)..{..    this
52e0: 2e 73 65 74 74 69 6e 67 73 2e 41 70 70 6c 79 54  .settings.ApplyT
52f0: 6f 46 6f 72 6d 28 74 68 69 73 2e 66 6f 72 6d 29  oForm(this.form)
5300: 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f 72 6d  ;..    this.form
5310: 2e d0 9f d0 b0 d0 bd d0 b5 d0 bb d1 8c 2e d0 a2  ................
5320: d0 b5 d0 ba d1 83 d1 89 d0 b0 d1 8f d0 a1 d1 82  ................
5330: d1 80 d0 b0 d0 bd d0 b8 d1 86 d0 b0 20 3d 20 74  ............ = t
5340: 68 69 73 2e 66 6f 72 6d 2e d0 9f d0 b0 d0 bd d0  his.form........
5350: b5 d0 bb d1 8c 2e d0 a1 d1 82 d1 80 d0 b0 d0 bd  ................
5360: d0 b8 d1 86 d1 8b 2e d0 9d d0 b0 d1 81 d1 82 d1  ................
5370: 80 d0 be d0 b9 d0 ba d0 b8 3b 0d 0a 7d 0d 0a 0d  .........;..}...
5380: 0a 54 65 73 74 52 75 6e 6e 65 72 2e 70 72 6f 74  .TestRunner.prot
5390: 6f 74 79 70 65 2e d0 9a d0 bd d0 be d0 bf d0 ba  otype...........
53a0: d0 b0 d0 9d d0 b0 d0 b7 d0 b0 d0 b4 d0 9d d0 b0  ................
53b0: d0 b6 d0 b0 d1 82 d0 b8 d0 b5 20 3d 20 66 75 6e  .......... = fun
53c0: 63 74 69 6f 6e 20 28 d0 ad d0 bb d0 b5 d0 bc d0  ction (.........
53d0: b5 d0 bd d1 82 29 0d 0a 7b 0d 0a 20 20 20 20 69  .....)..{..    i
53e0: 66 20 28 74 68 69 73 2e 66 6f 72 6d 2e d0 9c d0  f (this.form....
53f0: be d0 b4 d0 b8 d1 84 d0 b8 d1 86 d0 b8 d1 80 d0  ................
5400: be d0 b2 d0 b0 d0 bd d0 bd d0 be d1 81 d1 82 d1  ................
5410: 8c 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20  .)..    {..     
5420: 20 20 20 76 61 72 20 61 6e 73 77 20 3d 20 44 6f     var answ = Do
5430: 51 75 65 72 79 42 6f 78 28 22 d0 9d d0 b0 d1 81  QueryBox("......
5440: d1 82 d1 80 d0 be d0 b9 d0 ba d0 b8 20 d0 b1 d1  ............ ...
5450: 8b d0 bb d0 b8 20 d0 b8 d0 b7 d0 bc d0 b5 d0 bd  ..... ..........
5460: d0 b5 d0 bd d1 8b 2e 20 d0 a1 d0 be d1 85 d1 80  ....... ........
5470: d0 b0 d0 bd d0 b8 d1 82 d1 8c 3f 22 2c 20 51 75  ..........?", Qu
5480: 65 73 74 69 6f 6e 44 69 61 6c 6f 67 4d 6f 64 65  estionDialogMode
5490: 2e 59 65 73 4e 6f 43 61 6e 63 65 6c 29 3b 0d 0a  .YesNoCancel);..
54a0: 20 20 20 20 20 20 20 20 76 61 72 20 72 65 74 43          var retC
54b0: 6f 64 65 73 20 3d 20 44 69 61 6c 6f 67 52 65 74  odes = DialogRet
54c0: 75 72 6e 43 6f 64 65 3b 0d 0a 20 20 20 20 20 20  urnCode;..      
54d0: 20 20 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28    ..        if (
54e0: 61 6e 73 77 20 3d 3d 20 72 65 74 43 6f 64 65 73  answ == retCodes
54f0: 2e 43 61 6e 63 65 6c 29 0d 0a 20 20 20 20 20 20  .Cancel)..      
5500: 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0d 0a 20        return;.. 
5510: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20             ..   
5520: 20 20 20 20 20 69 66 20 28 61 6e 73 77 20 3d 3d       if (answ ==
5530: 20 72 65 74 43 6f 64 65 73 2e 59 65 73 29 0d 0a   retCodes.Yes)..
5540: 20 20 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20          {..     
5550: 20 20 20 20 20 20 20 74 68 69 73 2e 53 61 76 65         this.Save
5560: 53 65 74 74 69 6e 67 73 28 29 3b 0d 0a 20 20 20  Settings();..   
5570: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20       }..        
5580: 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 7b 0d  else..        {.
5590: 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20  .            // 
55a0: d0 9e d1 82 d0 ba d0 b0 d1 82 d0 b8 d0 bc 20 d0  .............. .
55b0: b8 d0 b7 d0 bc d0 b5 d0 bd d0 b5 d0 bd d0 b8 d1  ................
55c0: 8f 20 d0 bd d0 b0 d1 81 d1 82 d1 80 d0 be d0 b5  . ..............
55d0: d0 ba 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20  .....           
55e0: 20 74 68 69 73 2e 44 69 73 63 61 72 64 53 65 74   this.DiscardSet
55f0: 74 69 6e 67 73 28 29 3b 0d 0a 20 20 20 20 20 20  tings();..      
5600: 20 20 7d 20 20 20 20 20 20 20 20 0d 0a 20 20 20    }        ..   
5610: 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68   }..    ..    th
5620: 69 73 2e 66 6f 72 6d 2e d0 9f d0 b0 d0 bd d0 b5  is.form.........
5630: d0 bb d1 8c 2e d0 a2 d0 b5 d0 ba d1 83 d1 89 d0  ................
5640: b0 d1 8f d0 a1 d1 82 d1 80 d0 b0 d0 bd d0 b8 d1  ................
5650: 86 d0 b0 20 3d 20 74 68 69 73 2e 66 6f 72 6d 2e  ... = this.form.
5660: d0 9f d0 b0 d0 bd d0 b5 d0 bb d1 8c 2e d0 a1 d1  ................
5670: 82 d1 80 d0 b0 d0 bd d0 b8 d1 86 d1 8b 2e d0 a2  ................
5680: d0 b5 d1 81 d1 82 d0 b8 d1 80 d0 be d0 b2 d0 b0  ................
5690: d0 bd d0 b8 d0 b5 3b 20 20 20 20 20 20 20 20 0d  ......;        .
56a0: 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65 72  .}....TestRunner
56b0: 2e 70 72 6f 74 6f 74 79 70 65 2e d0 9a d0 bd d0  .prototype......
56c0: be d0 bf d0 ba d0 b0 d0 9f d1 80 d0 b8 d0 bc d0  ................
56d0: b5 d0 bd d0 b8 d1 82 d1 8c d0 9d d0 b0 d0 b6 d0  ................
56e0: b0 d1 82 d0 b8 d0 b5 20 3d 20 66 75 6e 63 74 69  ....... = functi
56f0: 6f 6e 20 28 d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd  on (............
5700: d1 82 29 0d 0a 7b 0d 0a 20 20 20 20 74 68 69 73  ..)..{..    this
5710: 2e 53 61 76 65 53 65 74 74 69 6e 67 73 28 29 3b  .SaveSettings();
5720: 0d 0a 7d 0d 0a 0d 0a 54 65 73 74 52 75 6e 6e 65  ..}....TestRunne
5730: 72 2e 70 72 6f 74 6f 74 79 70 65 2e d0 90 d0 b2  r.prototype.....
5740: d1 82 d0 be d0 bc d0 b0 d1 82 d0 b8 d1 87 d0 b5  ................
5750: d1 81 d0 ba d0 b8 d0 9f d0 b5 d1 80 d0 b5 d0 b7  ................
5760: d0 b0 d0 b3 d1 80 d1 83 d0 b6 d0 b0 d1 82 d1 8c  ................
5770: d0 9f d0 b5 d1 80 d0 b5 d0 b4 d0 92 d1 8b d0 bf  ................
5780: d0 be d0 bb d0 bd d0 b5 d0 bd d0 b8 d0 b5 d0 bc  ................
5790: d0 9f d1 80 d0 b8 d0 98 d0 b7 d0 bc d0 b5 d0 bd  ................
57a0: d0 b5 d0 bd d0 b8 d0 b8 20 3d 20 66 75 6e 63 74  ........ = funct
57b0: 69 6f 6e 20 28 d0 ad d0 bb d0 b5 d0 bc d0 b5 d0  ion (...........
57c0: bd d1 82 29 0d 0a 7b 0d 0a 20 20 20 20 74 68 69  ...)..{..    thi
57d0: 73 2e 66 6f 72 6d 2e d0 9c d0 be d0 b4 d0 b8 d1  s.form..........
57e0: 84 d0 b8 d1 86 d0 b8 d1 80 d0 be d0 b2 d0 b0 d0  ................
57f0: bd d0 bd d0 be d1 81 d1 82 d1 8c 20 3d 20 74 72  ........... = tr
5800: 75 65 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f  ue;..    this.fo
5810: 72 6d 2e d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1  rm..............
5820: 82 d1 8b d0 a4 d0 be d1 80 d0 bc d1 8b 2e d0 9a  ................
5830: d0 bd d0 be d0 bf d0 ba d0 b0 d0 9f d1 80 d0 b8  ................
5840: d0 bc d0 b5 d0 bd d0 b8 d1 82 d1 8c 2e d0 94 d0  ................
5850: be d1 81 d1 82 d1 83 d0 bf d0 bd d0 be d1 81 d1  ................
5860: 82 d1 8c 20 3d 20 74 72 75 65 3b 0d 0a 7d 0d 0a  ... = true;..}..
5870: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 54 65 73             ..Tes
5880: 74 52 75 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70  tRunner.prototyp
5890: 65 2e 4c 6f 67 4f 6e 53 75 63 63 65 73 73 d0 9f  e.LogOnSuccess..
58a0: d1 80 d0 b8 d0 98 d0 b7 d0 bc d0 b5 d0 bd d0 b5  ................
58b0: d0 bd d0 b8 d0 b8 20 3d 20 66 75 6e 63 74 69 6f  ...... = functio
58c0: 6e 28 d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82  n(..............
58d0: 29 0d 0a 7b 0d 0a 20 20 20 20 74 68 69 73 2e 66  )..{..    this.f
58e0: 6f 72 6d 2e d0 9c d0 be d0 b4 d0 b8 d1 84 d0 b8  orm.............
58f0: d1 86 d0 b8 d1 80 d0 be d0 b2 d0 b0 d0 bd d0 bd  ................
5900: d0 be d1 81 d1 82 d1 8c 20 3d 20 74 72 75 65 3b  ........ = true;
5910: 0d 0a 20 20 20 20 74 68 69 73 2e 66 6f 72 6d 2e  ..    this.form.
5920: d0 ad d0 bb d0 b5 d0 bc d0 b5 d0 bd d1 82 d1 8b  ................
5930: d0 a4 d0 be d1 80 d0 bc d1 8b 2e d0 9a d0 bd d0  ................
5940: be d0 bf d0 ba d0 b0 d0 9f d1 80 d0 b8 d0 bc d0  ................
5950: b5 d0 bd d0 b8 d1 82 d1 8c 2e d0 94 d0 be d1 81  ................
5960: d1 82 d1 83 d0 bf d0 bd d0 be d1 81 d1 82 d1 8c  ................
5970: 20 3d 20 74 72 75 65 3b 0d 0a 7d 0d 0a 20 20 20   = true;..}..   
5980: 20 20 20 20 20 20 20 20 0d 0a 54 65 73 74 52 75          ..TestRu
5990: 6e 6e 65 72 2e 70 72 6f 74 6f 74 79 70 65 2e d0  nner.prototype..
59a0: 9f d1 80 d0 b8 d0 9e d1 82 d0 ba d1 80 d1 8b d1  ................
59b0: 82 d0 b8 d0 b8 20 3d 20 66 75 6e 63 74 69 6f 6e  ..... = function
59c0: 20 28 29 0d 0a 7b 20 20 20 0d 0a 20 20 20 20 74   ()..{   ..    t
59d0: 68 69 73 2e 72 65 73 65 74 43 6f 75 6e 74 65 72  his.resetCounter
59e0: 73 28 29 3b 0d 0a 20 20 20 20 74 68 69 73 2e 73  s();..    this.s
59f0: 77 69 74 63 68 50 72 6f 67 72 65 73 73 42 61 72  witchProgressBar
5a00: 28 66 61 6c 73 65 29 3b 0d 0a 20 20 20 20 74 68  (false);..    th
5a10: 69 73 2e 66 6f 72 6d 2e d0 ad d0 bb d0 b5 d0 bc  is.form.........
5a20: d0 b5 d0 bd d1 82 d1 8b d0 a4 d0 be d1 80 d0 bc  ................
5a30: d1 8b 2e d0 9a d0 bd d0 be d0 bf d0 ba d0 b0 d0  ................
5a40: 9f d1 80 d0 b8 d0 bc d0 b5 d0 bd d0 b8 d1 82 d1  ................
5a50: 8c 2e d0 94 d0 be d1 81 d1 82 d1 83 d0 bf d0 bd  ................
5a60: d0 be d1 81 d1 82 d1 8c 20 3d 20 66 61 6c 73 65  ........ = false
5a70: 3b 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e  ;    ..    this.
5a80: 66 6f 72 6d 2e d0 9f d1 83 d1 82 d1 8c 20 3d 20  form......... = 
5a90: 22 3c d0 a2 d0 b5 d1 81 d1 82 d1 8b 20 d0 bd d0  "<.......... ...
5aa0: b5 20 d0 b7 d0 b0 d0 b3 d1 80 d1 83 d0 b6 d0 b5  . ..............
5ab0: d0 bd d1 8b 3e 22 3b 0d 0a 7d 0d 0a 0d 0a 54 65  ....>";..}....Te
5ac0: 73 74 52 75 6e 6e 65 72 2e 70 72 6f 74 6f 74 79  stRunner.prototy
5ad0: 70 65 2e d0 9f d1 80 d0 b8 d0 97 d0 b0 d0 ba d1  pe..............
5ae0: 80 d1 8b d1 82 d0 b8 d0 b8 20 3d 20 66 75 6e 63  ......... = func
5af0: 74 69 6f 6e 20 28 29 0d 0a 7b 0d 0a 20 20 20 20  tion ()..{..    
5b00: 74 68 69 73 2e 75 6e 6c 6f 61 64 41 6c 6c 54 65  this.unloadAllTe
5b10: 73 74 73 28 29 3b 20 20 20 20 0d 0a 7d 0d 0a 2f  sts();    ..}../
5b20: 2f 2f 2f 7d 20 54 65 73 74 52 75 6e 6e 65 72 0d  ///} TestRunner.
5b30: 0a 0d 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  .../////////////
5b40: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
5b50: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
5b60: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
5b70: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
5b80: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f  ///////////..///
5b90: 2f 7b 20 d0 92 d0 a1 d0 9f d0 9e d0 9c d0 9e d0  /{ .............
5ba0: 93 d0 90 d0 a2 d0 95 d0 9b d0 ac d0 9d d0 ab d0  ................
5bb0: 95 20 d0 9e d0 91 d0 aa d0 95 d0 9a d0 a2 d0 ab  . ..............
5bc0: 20 d0 98 20 d0 a4 d0 a3 d0 9d d0 9a d0 a6 d0 98   .. ............
5bd0: d0 98 2e 0d 0a 2f 2f 2f 2f 0d 0a 0d 0a 66 75 6e  .....////....fun
5be0: 63 74 69 6f 6e 20 46 69 6e 64 46 69 6c 65 73 28  ction FindFiles(
5bf0: 70 61 74 68 2c 20 6d 61 73 6b 29 0d 0a 7b 0d 0a  path, mask)..{..
5c00: 20 20 20 20 2f 2f 20 d0 98 d0 b7 20 73 6e 65 67      // .... sneg
5c10: 6f 70 61 74 2e 6a 73 2e 0d 0a 20 20 20 20 2f 2f  opat.js...    //
5c20: 20 54 4f 44 4f 3a 20 d0 9f d0 b5 d1 80 d0 b5 d0   TODO: .........
5c30: bd d0 b5 d1 81 d1 82 d0 b8 20 d0 b2 20 d0 b1 d0  ......... .. ...
5c40: b8 d0 b1 d0 bb d0 b8 d0 be d1 82 d0 b5 d0 ba d1  ................
5c50: 83 20 55 74 69 6c 73 2e 0d 0a 09 2f 2f 20 d0 9d  . Utils....// ..
5c60: d0 b0 20 4e 54 2d d1 81 d0 b8 d1 81 d1 82 d0 b5  .. NT-..........
5c70: d0 bc d0 b0 d1 85 20 d0 bf d0 be d1 80 d1 8f d0  ...... .........
5c80: b4 d0 be d0 ba 20 d0 b2 d1 8b d0 b4 d0 b0 d1 87  ..... ..........
5c90: d0 b8 20 d1 84 d0 b0 d0 b9 d0 bb d0 be d0 b2 20  .. ............ 
5ca0: d0 b2 20 46 69 6e 64 46 69 72 73 74 46 69 6c 65  .. FindFirstFile
5cb0: 2f 46 69 6e 64 4e 65 78 74 46 69 6c 65 20 d0 bd  /FindNextFile ..
5cc0: d0 b5 d0 be d0 bf d1 80 d0 b5 d0 b4 d0 b5 d0 bb  ................
5cd0: d0 b5 d0 bd 2c 20 d1 82 d0 b5 20 d0 be d0 bd d0  ...., .... .....
5ce0: b8 20 d0 9d d0 95 d0 9e d0 91 d0 af d0 97 d0 90  . ..............
5cf0: d0 a2 d0 95 d0 9b d0 ac d0 9d d0 9e 0d 0a 09 2f  .............../
5d00: 2f 20 d0 b2 d1 8b d0 b4 d0 b0 d1 8e d1 82 d1 81  / ..............
5d10: d1 8f 20 d0 be d1 82 d1 81 d0 be d1 80 d1 82 d0  .. .............
5d20: b8 d1 80 d0 be d0 b2 d0 b0 d0 bd d0 bd d1 8b d0  ................
5d30: bc d0 b8 20 d0 bf d0 be 20 d0 b8 d0 bc d0 b5 d0  ... .... .......
5d40: bd d0 b0 d0 bc 2c 20 d0 bf d0 be d1 8d d1 82 d0  ....., .........
5d50: be d0 bc d1 83 20 d0 bd d0 b0 20 d1 80 d0 b0 d0  ..... .... .....
5d60: b7 d0 bd d1 8b d1 85 20 d0 bc d0 b0 d1 88 d0 b8  ....... ........
5d70: d0 bd d0 b0 d1 85 20 d0 bc d0 be d0 b3 d1 83 d1  ...... .........
5d80: 82 20 d0 b2 d1 8b d0 b4 d0 b0 d0 b2 d0 b0 d1 82  . ..............
5d90: d1 8c d1 81 d1 8f 20 d0 b2 20 d1 80 d0 b0 d0 b7  ...... .. ......
5da0: d0 bd d0 be d0 bc 20 d0 bf d0 be d1 80 d1 8f d0  ...... .........
5db0: b4 d0 ba d0 b5 2e 0d 0a 09 2f 2f 20 d0 9a d1 80  .........// ....
5dc0: d0 be d0 bc d0 b5 20 d1 82 d0 be d0 b3 d0 be 2c  ...... ........,
5dd0: 20 d0 ba d0 b0 d1 82 d0 b0 d0 bb d0 be d0 b3 d0   ...............
5de0: b8 20 d0 b8 20 d1 84 d0 b0 d0 b9 d0 bb d1 8b 20  . .. .......... 
5df0: d0 bc d0 be d0 b3 d1 83 d1 82 20 d0 b2 d1 8b d0  .......... .....
5e00: b4 d0 b0 d0 b2 d0 b0 d1 82 d1 8c d1 81 d1 8f 20  ............... 
5e10: d0 b2 d0 bf d0 b5 d1 80 d0 b5 d0 bc d0 b5 d1 88  ................
5e20: d0 ba d1 83 2e 0d 0a 09 2f 2f 20 d0 a2 d0 b0 d0  ........// .....
5e30: ba d0 b6 d0 b5 20 d0 b2 20 d0 b4 d0 be d0 ba d1  ..... .. .......
5e40: 83 d0 bc d0 b5 d0 bd d1 82 d0 b0 d1 86 d0 b8 d0  ................
5e50: b8 20 d0 ba 20 d0 9d d0 b0 d0 b9 d1 82 d0 b8 d0  . .. ...........
5e60: a4 d0 b0 d0 b9 d0 bb d1 8b 20 d0 bd d0 b5 d1 82  ......... ......
5e70: 20 d0 bd d0 b8 d0 ba d0 b0 d0 ba d0 be d0 b3 d0   ...............
5e80: be 20 d1 83 d0 bf d0 be d0 bc d0 b8 d0 bd d0 b0  . ..............
5e90: d0 bd d0 b8 d1 8f 20 d0 be 20 d0 bf d0 be d1 80  ...... .. ......
5ea0: d1 8f d0 b4 d0 ba d0 b5 20 d0 b2 d1 8b d0 b4 d0  ........ .......
5eb0: b0 d1 87 d0 b8 20 d1 84 d0 b0 d0 b9 d0 bb d0 be  ..... ..........
5ec0: d0 b2 2e 0d 0a 09 2f 2f 20 d0 92 20 d1 81 d0 bb  ......// .. ....
5ed0: d1 83 d1 87 d0 b0 d0 b5 20 d0 b7 d0 b0 d0 b2 d0  ........ .......
5ee0: b8 d1 81 d0 b8 d0 bc d0 be d1 81 d1 82 d0 b8 20  ............... 
5ef0: d0 be d0 b4 d0 bd d0 be d0 b3 d0 be 20 d1 81 d1  ............ ...
5f00: 82 d0 b0 d0 bd d0 b4 d0 b0 d1 80 d1 82 d0 bd d0  ................
5f10: be d0 b3 d0 be 20 d1 81 d0 ba d1 80 d0 b8 d0 bf  ..... ..........
5f20: d1 82 d0 b0 20 d0 be d1 82 20 d0 b4 d1 80 d1 83  .... .... ......
5f30: d0 b3 d0 be d0 b3 d0 be 20 28 d0 bd d0 b0 d0 bf  ........ (......
5f40: d1 80 d0 b8 d0 bc d0 b5 d1 80 2c 20 73 6e 65 67  .........., sneg
5f50: 6f 70 61 74 77 6e 64 2e 6a 73 20 d0 bf d1 80 d0  opatwnd.js .....
5f60: b8 0d 0a 09 2f 2f 20 d0 b7 d0 b0 d0 b3 d1 80 d1  ....// .........
5f70: 83 d0 b7 d0 ba d0 b5 20 d1 81 d1 80 d0 b0 d0 b7  ....... ........
5f80: d1 83 20 d0 be d0 b1 d1 80 d0 b0 d1 89 d0 b0 d0  .. .............
5f90: b5 d1 82 d1 81 d1 8f 20 d0 ba 20 67 6c 6f 62 61  ....... .. globa
5fa0: 6c 5f 63 6f 6e 74 65 78 74 2e 6a 73 29 20 d1 8d  l_context.js) ..
5fb0: d1 82 d0 be 20 d0 bc d0 be d0 b6 d0 b5 d1 82 20  .... .......... 
5fc0: d0 bf d1 80 d0 b8 d0 b2 d0 b5 d1 81 d1 82 d0 b8  ................
5fd0: 20 d0 ba 20 d0 bf d1 80 d0 be d0 b1 d0 bb d0 b5   .. ............
5fe0: d0 bc d0 b0 d0 bc 2e 0d 0a 09 2f 2f 20 d0 9f d0  ..........// ...
5ff0: be d1 8d d1 82 d0 be d0 bc 20 d0 bf d1 80 d0 b8  ......... ......
6000: d0 bc d0 b5 d0 bc 20 d1 82 d0 b0 d0 ba d0 be d0  ...... .........
6010: b9 20 d0 bf d0 be d1 80 d1 8f d0 b4 d0 be d0 ba  . ..............
6020: 20 d0 b7 d0 b0 d0 b3 d1 80 d1 83 d0 b7 d0 ba d0   ...............
6030: b8 3a 0d 0a 09 2f 2f 20 d0 a1 d0 bd d0 b0 d1 87  .:...// ........
6040: d0 b0 d0 bb d0 b0 20 d0 b7 d0 b0 d0 b3 d1 80 d1  ...... .........
6050: 83 d0 b6 d0 b0 d1 8e d1 82 d1 81 d1 8f 20 d0 b2  ............. ..
6060: d1 81 d0 b5 20 d0 bf d0 be d0 b4 d0 ba d0 b0 d1  .... ...........
6070: 82 d0 be d0 bb d0 be d0 b3 d0 b8 2c 20 d0 be d1  ..........., ...
6080: 82 d1 81 d0 be d1 80 d1 82 d0 b8 d1 80 d0 be d0  ................
6090: b2 d0 b0 d0 bd d0 bd d1 8b d0 b5 20 d0 bf d0 be  ........... ....
60a0: 20 d0 b8 d0 bc d0 b5 d0 bd d0 b8 2e 0d 0a 09 2f   ............../
60b0: 2f 20 d0 97 d0 b0 d1 82 d0 b5 d0 bc 20 d0 b7 d0  / .......... ...
60c0: b0 d0 b3 d1 80 d0 b6 d0 b0 d1 8e d1 82 d1 81 d1  ................
60d0: 8f 20 d0 b2 d1 81 d0 b5 20 d1 84 d0 b0 d0 b9 d0  . ...... .......
60e0: bb d1 8b 2c 20 d0 be d1 82 d1 81 d0 be d1 80 d1  ..., ...........
60f0: 82 d0 b8 d1 80 d0 be d0 b2 d0 b0 d0 bd d0 bd d1  ................
6100: 8b d0 b5 20 d0 bf d0 be 20 d0 b8 d0 bc d0 b5 d0  ... .... .......
6110: bd d0 b8 2e 0d 0a 20 20 20 20 0d 0a 20 20 20 20  ......    ..    
6120: 76 61 72 20 61 6c 6c 46 69 6c 65 73 20 3d 20 6e  var allFiles = n
6130: 65 77 20 41 72 72 61 79 28 29 3b 0d 0a 20 20 20  ew Array();..   
6140: 20 76 61 72 20 66 69 6c 65 73 20 3d 20 6e 65 77   var files = new
6150: 20 41 72 72 61 79 28 29 3b 0d 0a 20 20 20 0d 0a   Array();..   ..
6160: 20 20 20 20 76 61 72 20 66 69 6c 65 73 41 72 72      var filesArr
6170: 61 79 20 3d 20 6e 65 77 20 45 6e 75 6d 65 72 61  ay = new Enumera
6180: 74 6f 72 28 67 6c 6f 62 61 6c 43 6f 6e 74 65 78  tor(globalContex
6190: 74 28 22 7b 32 32 41 32 31 30 33 30 2d 45 31 44  t("{22A21030-E1D
61a0: 36 2d 34 36 41 30 2d 39 34 36 35 2d 46 30 41 35  6-46A0-9465-F0A5
61b0: 34 32 37 42 45 30 31 31 7d 22 29 2e d0 9d d0 b0  427BE011}").....
61c0: d0 b9 d1 82 d0 b8 d0 a4 d0 b0 d0 b9 d0 bb d1 8b  ................
61d0: 28 70 61 74 68 2e 72 65 70 6c 61 63 65 28 2f 5c  (path.replace(/\
61e0: 5c 2f 67 2c 20 27 2f 27 29 2c 20 22 2a 22 2c 20  \/g, '/'), "*", 
61f0: 66 61 6c 73 65 29 29 3b 20 20 20 0d 0a 20 20 20  false));   ..   
6200: 20 66 6f 72 20 28 20 3b 20 21 66 69 6c 65 73 41   for ( ; !filesA
6210: 72 72 61 79 2e 61 74 45 6e 64 28 29 3b 20 66 69  rray.atEnd(); fi
6220: 6c 65 73 41 72 72 61 79 2e 6d 6f 76 65 4e 65 78  lesArray.moveNex
6230: 74 28 29 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20  t())..    {..   
6240: 20 20 20 20 20 76 61 72 20 66 69 6c 65 20 3d 20       var file = 
6250: 66 69 6c 65 73 41 72 72 61 79 2e 69 74 65 6d 28  filesArray.item(
6260: 29 3b 0d 0a 20 20 20 20 20 20 20 20 28 66 69 6c  );..        (fil
6270: 65 2e d0 ad d1 82 d0 be d0 9a d0 b0 d1 82 d0 b0  e...............
6280: d0 bb d0 be d0 b3 28 29 20 3f 20 61 6c 6c 46 69  ......() ? allFi
6290: 6c 65 73 20 3a 20 66 69 6c 65 73 29 2e 70 75 73  les : files).pus
62a0: 68 28 66 69 6c 65 29 3b 0d 0a 20 20 20 20 7d 0d  h(file);..    }.
62b0: 0a 0d 0a 20 20 20 20 76 61 72 20 73 6f 72 74 42  ...    var sortB
62c0: 79 4e 61 6d 65 73 20 3d 20 66 75 6e 63 74 69 6f  yNames = functio
62d0: 6e 20 28 69 31 2c 20 69 32 29 20 7b 20 0d 0a 20  n (i1, i2) { .. 
62e0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 69 31         return i1
62f0: 2e d0 98 d0 bc d1 8f 2e 74 6f 4c 6f 77 65 72 43  ........toLowerC
6300: 61 73 65 28 29 2e 6c 6f 63 61 6c 65 43 6f 6d 70  ase().localeComp
6310: 61 72 65 28 69 32 2e d0 98 d0 bc d1 8f 2e 74 6f  are(i2........to
6320: 4c 6f 77 65 72 43 61 73 65 28 29 29 20 0d 0a 20  LowerCase()) .. 
6330: 20 20 20 7d 3b 0d 0a 0d 0a 20 20 20 20 61 6c 6c     };....    all
6340: 46 69 6c 65 73 2e 73 6f 72 74 28 73 6f 72 74 42  Files.sort(sortB
6350: 79 4e 61 6d 65 73 29 3b 0d 0a 20 20 20 20 66 69  yNames);..    fi
6360: 6c 65 73 2e 73 6f 72 74 28 73 6f 72 74 42 79 4e  les.sort(sortByN
6370: 61 6d 65 73 29 3b 0d 0a 0d 0a 20 20 20 20 66 6f  ames);....    fo
6380: 72 20 28 76 61 72 20 69 3d 30 3b 20 69 3c 66 69  r (var i=0; i<fi
6390: 6c 65 73 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b 29  les.length; i++)
63a0: 0d 0a 20 20 20 20 20 20 20 20 61 6c 6c 46 69 6c  ..        allFil
63b0: 65 73 2e 70 75 73 68 28 66 69 6c 65 73 5b 69 5d  es.push(files[i]
63c0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20  );..        ..  
63d0: 20 20 72 65 74 75 72 6e 20 61 6c 6c 46 69 6c 65    return allFile
63e0: 73 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f  s;..}....functio
63f0: 6e 20 54 65 73 74 28 61 64 64 69 6e 2c 20 74 65  n Test(addin, te
6400: 73 74 4e 61 6d 65 29 0d 0a 7b 0d 0a 20 20 20 20  stName)..{..    
6410: 74 68 69 73 2e 61 64 64 69 6e 20 3d 20 61 64 64  this.addin = add
6420: 69 6e 3b 0d 0a 20 20 20 20 74 68 69 73 2e 66 75  in;..    this.fu
6430: 6c 6c 54 65 73 74 4e 61 6d 65 20 3d 20 61 64 64  llTestName = add
6440: 69 6e 2e 75 6e 69 71 75 65 4e 61 6d 65 20 2b 20  in.uniqueName + 
6450: 22 3a 3a 22 20 2b 20 74 65 73 74 4e 61 6d 65 3b  "::" + testName;
6460: 0d 0a 20 20 20 20 74 68 69 73 2e 74 65 73 74 4e  ..    this.testN
6470: 61 6d 65 20 3d 20 74 65 73 74 4e 61 6d 65 3b 0d  ame = testName;.
6480: 0a 20 20 20 20 74 68 69 73 2e 65 78 65 70 74 69  .    this.exepti
6490: 6f 6e 20 3d 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20  on = null;..    
64a0: 74 68 69 73 2e 6d 65 73 73 61 67 65 20 3d 20 22  this.message = "
64b0: 22 3b 0d 0a 7d 0d 0a 2f 2f 2f 2f 7d 20 d0 92 d0  ";..}..////} ...
64c0: a1 d0 9f d0 9e d0 9c d0 9e d0 93 d0 90 d0 a2 d0  ................
64d0: 95 d0 9b d0 ac d0 9d d0 ab d0 95 20 d0 9e d0 91  ........... ....
64e0: d0 aa d0 95 d0 9a d0 a2 d0 ab 20 d0 98 20 d0 a4  .......... .. ..
64f0: d0 a3 d0 9d d0 9a d0 a6 d0 98 d0 98 2e 0d 0a 0d  ................
6500: 0a 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  .///////////////
6510: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
6520: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
6530: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
6540: 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f 2f  ////////////////
6550: 2f 2f 2f 2f 2f 2f 2f 2f 2f 0d 0a 2f 2f 2f 2f 7b  /////////..////{
6560: 20 53 74 61 72 74 55 70 0d 0a 2f 2f 2f 2f 0d 0a   StartUp..////..
6570: 66 75 6e 63 74 69 6f 6e 20 47 65 74 54 65 73 74  function GetTest
6580: 52 75 6e 6e 65 72 28 29 0d 0a 7b 0d 0a 20 20 20  Runner()..{..   
6590: 20 69 66 20 28 21 54 65 73 74 52 75 6e 6e 65 72   if (!TestRunner
65a0: 2e 5f 69 6e 73 74 61 6e 63 65 29 0d 0a 20 20 20  ._instance)..   
65b0: 20 20 20 20 20 6e 65 77 20 54 65 73 74 52 75 6e       new TestRun
65c0: 6e 65 72 28 29 3b 0d 0a 20 20 20 20 0d 0a 20 20  ner();..    ..  
65d0: 20 20 72 65 74 75 72 6e 20 54 65 73 74 52 75 6e    return TestRun
65e0: 6e 65 72 2e 5f 69 6e 73 74 61 6e 63 65 3b 0d 0a  ner._instance;..
65f0: 7d 0d 0a 0d 0a 47 65 74 54 65 73 74 52 75 6e 6e  }....GetTestRunn
6600: 65 72 28 29 2e 53 68 6f 77 28 29 3b 0d 0a 0d 0a  er().Show();....
6610: 2f 2f 2f 2f 7d 0d 0a 0d 0a 0d 0a                 ////}......