Hex Artifact Content Вы: nobody
Вход

Artifact 80da9dc750e1a0c0cafde20ed824be65d36d8d9c:


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 74 65 73 74 5f  pt..$uname test_
0020: 78 55 6e 69 74 41 64 64 54 65 73 74 73 44 65 73  xUnitAddTestsDes
0030: 63 0d 0a 24 64 6e 61 6d 65 20 d0 a2 d0 b5 d1 81  c..$dname ......
0040: d1 82 d1 8b 20 d1 80 d0 b0 d0 b1 d0 be d1 82 d1  .... ...........
0050: 8b 20 78 55 6e 69 74 41 64 64 54 65 73 74 73 44  . xUnitAddTestsD
0060: 65 73 63 2e 6a 73 0d 0a 24 61 64 64 69 6e 20 67  esc.js..$addin g
0070: 6c 6f 62 61 6c 0d 0a 24 61 64 64 69 6e 20 73 74  lobal..$addin st
0080: 64 63 6f 6d 6d 61 6e 64 73 0d 0a 24 61 64 64 69  dcommands..$addi
0090: 6e 20 73 74 64 6c 69 62 0d 0a 0d 0a 2f 2f 67 6c  n stdlib....//gl
00a0: 6f 62 61 6c 2e 63 6f 6e 6e 65 63 74 47 6c 6f 62  obal.connectGlob
00b0: 61 6c 73 28 53 65 6c 66 53 63 72 69 70 74 29 3b  als(SelfScript);
00c0: 0d 0a 0d 0a 2f 2f 20 d1 80 d0 b5 d0 b3 d1 83 d0  ....// .........
00d0: bb d1 8f d1 80 d0 ba d0 b0 20 d0 b4 d0 bb d1 8f  ......... ......
00e0: 20 d0 bf d0 be d0 b8 d1 81 d0 ba d0 b0 20 d0 b2   ............ ..
00f0: d1 81 d0 b5 d1 85 20 d1 84 d1 83 d0 bd d0 ba d1  ...... .........
0100: 86 d0 b8 d0 b9 20 4a 53 63 72 69 70 74 20 2d 20  ..... JScript - 
0110: d1 83 d0 b4 d0 be d0 b1 d0 bd d0 be 20 d1 8e d0  ............ ...
0120: b7 d0 b0 d1 82 d1 8c 20 d0 b2 20 4e 6f 74 65 70  ....... .. Notep
0130: 61 64 2b 2b 20 0d 0a 2f 2f 20 20 20 20 20 20 5e  ad++ ..//      ^
0140: 66 75 6e 63 74 69 6f 6e 5c 73 2a 28 5b 5e 5c 28  function\s*([^\(
0150: 5d 2b 29 5c 28 0d 0a 2f 2f 20 20 20 20 20 20 28  ]+)\(..//      (
0160: 5e 66 75 6e 63 74 69 6f 6e 5c 73 2a 5b 5e 5c 28  ^function\s*[^\(
0170: 5c 73 5d 2b 5c 73 2a 5c 28 29 7c 28 5e 5b 5e 5c  \s]+\s*\()|(^[^\
0180: 2e 5c 73 5d 2b 5c 2e 70 72 6f 74 6f 74 79 70 65  .\s]+\.prototype
0190: 5c 2e 5b 5e 5c 2e 5c 73 5d 2b 5c 73 2b 29 0d 0a  \.[^\.\s]+\s+)..
01a0: 0d 0a 73 74 64 6c 69 62 2e 72 65 71 75 69 72 65  ..stdlib.require
01b0: 28 27 6a 73 55 6e 69 74 43 6f 72 65 2e 6a 73 27  ('jsUnitCore.js'
01c0: 2c 20 53 65 6c 66 53 63 72 69 70 74 29 3b 0d 0a  , SelfScript);..
01d0: 0d 0a 76 61 72 20 6d 61 69 6e 46 6f 6c 64 65 72  ..var mainFolder
01e0: 20 3d 20 70 72 6f 66 69 6c 65 52 6f 6f 74 2e 67   = profileRoot.g
01f0: 65 74 56 61 6c 75 65 28 22 53 6e 65 67 6f 70 61  etValue("Snegopa
0200: 74 2f 4d 61 69 6e 46 6f 6c 64 65 72 22 29 3b 0d  t/MainFolder");.
0210: 0a 76 61 72 20 74 65 73 74 44 69 72 20 3d 20 6d  .var testDir = m
0220: 61 69 6e 46 6f 6c 64 65 72 20 2b 20 27 73 63 72  ainFolder + 'scr
0230: 69 70 74 73 5c 5c 54 65 73 74 73 5c 5c 41 75 74  ipts\\Tests\\Aut
0240: 6f 6d 61 74 65 64 5c 5c 78 55 6e 69 74 46 6f 72  omated\\xUnitFor
0250: 31 43 5c 5c 41 64 64 54 65 73 74 73 44 65 73 63  1C\\AddTestsDesc
0260: 5c 5c 27 3b 0d 0a 76 61 72 20 70 6c 75 67 69 6e  \\';..var plugin
0270: 41 70 70 65 6e 64 65 72 20 3d 20 73 74 64 6c 69  Appender = stdli
0280: 62 2e 72 65 71 75 69 72 65 28 6d 61 69 6e 46 6f  b.require(mainFo
0290: 6c 64 65 72 20 2b 20 27 73 63 72 69 70 74 73 5c  lder + 'scripts\
02a0: 5c 78 55 6e 69 74 41 64 64 54 65 73 74 73 44 65  \xUnitAddTestsDe
02b0: 73 63 2e 6a 73 27 29 3b 20 2f 2f 2c 20 53 65 6c  sc.js'); //, Sel
02c0: 66 53 63 72 69 70 74 29 3b 20 2f 2f 20 d1 87 d1  fScript); // ...
02d0: 82 d0 be d0 b1 d1 8b 20 d0 b2 d1 8b d0 b7 d1 8b  ....... ........
02e0: d0 b2 d0 b0 d1 82 d1 8c 20 d1 84 d1 83 d0 bd d0  ........ .......
02f0: ba d1 86 d0 b8 d0 b8 20 d0 b8 d0 b7 20 d0 be d1  ....... .... ...
0300: 81 d0 bd d0 be d0 b2 d0 bd d0 be d0 b3 d0 be 20  ............... 
0310: d1 81 d0 ba d1 80 d0 b8 d0 bf d1 82 d0 b0 0d 0a  ................
0320: 0d 0a 76 61 72 20 54 57 57 20 3d 20 73 74 64 6c  ..var TWW = stdl
0330: 69 62 2e 72 65 71 75 69 72 65 28 27 54 65 78 74  ib.require('Text
0340: 57 69 6e 64 6f 77 2e 6a 73 27 29 3b 0d 0a 0d 0a  Window.js');....
0350: 76 61 72 20 74 65 78 74 44 6f 63 20 3d 20 6e 75  var textDoc = nu
0360: 6c 6c 3b 0d 0a 76 61 72 20 74 77 6e 64 20 3d 20  ll;..var twnd = 
0370: 6e 75 6c 6c 3b 0d 0a 20 20 20 20 0d 0a 76 61 72  null;..    ..var
0380: 20 61 70 70 65 6e 64 65 72 20 3d 20 6e 75 6c 6c   appender = null
0390: 3b 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 73 65  ;....function se
03a0: 74 55 70 28 29 0d 0a 7b 0d 0a 20 20 20 20 74 65  tUp()..{..    te
03b0: 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 28 22 54  xtDoc = v8New("T
03c0: 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b 0d 0a  extDocument");..
03d0: 09 76 61 72 20 74 65 78 74 20 3d 20 22 d0 a2 d0  .var text = "...
03e0: b0 d0 b1 20 3d 20 d0 9d d0 be d0 b2 d1 8b d0 b9  ... = ..........
03f0: 20 d0 a2 d0 b0 d0 b1 d0 bb d0 b8 d1 86 d0 b0 d0   ...............
0400: 97 d0 bd d0 b0 d1 87 d0 b5 d0 bd d0 b8 d0 b9 3b  ...............;
0410: 5c 6e d0 a2 d0 b0 d0 b1 22 3b 0d 0a 20 20 20 20  \n......";..    
0420: 74 65 78 74 44 6f 63 2e 53 65 74 54 65 78 74 28  textDoc.SetText(
0430: 74 65 78 74 29 3b 0d 0a 0d 0a 20 20 20 20 74 65  text);....    te
0440: 78 74 44 6f 63 2e 53 68 6f 77 28 29 3b 0d 0a 20  xtDoc.Show();.. 
0450: 20 20 20 0d 0a 20 20 20 20 74 77 6e 64 20 3d 20     ..    twnd = 
0460: 54 57 57 2e 47 65 74 54 65 78 74 57 69 6e 64 6f  TWW.GetTextWindo
0470: 77 28 29 3b 0d 0a 0d 0a 20 20 20 20 61 70 70 65  w();....    appe
0480: 6e 64 65 72 20 3d 20 6e 65 77 20 70 6c 75 67 69  nder = new plugi
0490: 6e 41 70 70 65 6e 64 65 72 2e 5f 41 70 70 65 6e  nAppender._Appen
04a0: 64 65 72 54 65 73 74 43 61 73 65 44 65 73 63 72  derTestCaseDescr
04b0: 69 70 74 69 6f 6e 73 49 6e 74 6f 54 65 78 74 28  iptionsIntoText(
04c0: 74 77 6e 64 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e  twnd);..}....fun
04d0: 63 74 69 6f 6e 20 74 65 61 72 44 6f 77 6e 28 29  ction tearDown()
04e0: 0d 0a 7b 0d 0a 20 20 20 20 64 65 73 74 72 6f 79  ..{..    destroy
04f0: 54 65 78 74 57 69 6e 64 6f 77 28 29 3b 0d 0a 7d  TextWindow();..}
0500: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 64 65 73  ....function des
0510: 74 72 6f 79 54 65 78 74 57 69 6e 64 6f 77 28 29  troyTextWindow()
0520: 0d 0a 7b 0d 0a 20 20 20 20 69 66 20 28 74 77 6e  ..{..    if (twn
0530: 64 29 0d 0a 20 20 20 20 20 20 20 20 64 65 6c 65  d)..        dele
0540: 74 65 20 74 77 6e 64 3b 0d 0a 20 20 20 20 0d 0a  te twnd;..    ..
0550: 20 20 20 20 2f 2f 20 d0 a7 d1 82 d0 be d0 b1 d1      // .........
0560: 8b 20 d0 bf d1 80 d0 b8 20 d0 b7 d0 b0 d0 ba d1  . ...... .......
0570: 80 d1 8b d1 82 d0 b8 d0 b8 20 d0 bd d0 b5 20 d0  ......... .... .
0580: b2 d1 8b d0 b4 d0 b0 d0 b2 d0 b0 d0 bb d0 be d1  ................
0590: 81 d1 8c 20 d1 81 d0 be d0 be d0 b1 d1 89 d0 b5  ... ............
05a0: d0 bd d0 b8 d0 b5 20 22 d0 97 d0 b0 d0 bf d0 b8  ...... "........
05b0: d1 81 d0 b0 d1 82 d1 8c 3f 22 2c 20 d1 81 d0 be  ........?", ....
05c0: d1 85 d1 80 d0 b0 d0 bd d0 b8 d0 bc 20 d0 b4 d0  ............ ...
05d0: be d0 ba d1 83 d0 bc d0 b5 d0 bd d1 82 20 d0 b2  ............. ..
05e0: d0 be 20 d0 b2 d1 80 d0 b5 d0 bc d0 b5 d0 bd d0  .. .............
05f0: bd d1 8b d0 b9 20 d1 84 d0 b0 d0 b9 d0 bb 2e 0d  ..... ..........
0600: 0a 20 20 20 20 76 61 72 20 74 65 6d 70 46 69 6c  .    var tempFil
0610: 65 20 3d 20 67 6c 6f 62 61 6c 43 6f 6e 74 65 78  e = globalContex
0620: 74 28 22 7b 34 41 39 39 33 41 42 37 2d 32 46 37  t("{4A993AB7-2F7
0630: 35 2d 34 33 43 46 2d 42 33 34 41 2d 30 41 44 39  5-43CF-B34A-0AD9
0640: 46 46 41 45 45 37 45 33 7d 22 29 2e 47 65 74 54  FFAEE7E3}").GetT
0650: 65 6d 70 46 69 6c 65 4e 61 6d 65 28 29 3b 0d 0a  empFileName();..
0660: 20 20 20 20 74 65 78 74 44 6f 63 2e 57 72 69 74      textDoc.Writ
0670: 65 28 74 65 6d 70 46 69 6c 65 29 3b 0d 0a 20 20  e(tempFile);..  
0680: 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 97 d0 b0 d0    ..    // .....
0690: ba d1 80 d0 be d0 b5 d0 bc 20 d0 be d0 ba d0 bd  ......... ......
06a0: d0 be 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 be d0  .. .............
06b0: b2 d0 be d0 b3 d0 be 20 d0 b4 d0 be d0 ba d1 83  ....... ........
06c0: d0 bc d0 b5 d0 bd d1 82 d0 b0 2e 0d 0a 20 20 20  .............   
06d0: 20 73 74 64 63 6f 6d 6d 61 6e 64 73 2e 46 72 61   stdcommands.Fra
06e0: 6d 65 2e 46 69 6c 65 43 6c 6f 73 65 2e 73 65 6e  me.FileClose.sen
06f0: 64 28 29 3b 20 20 20 20 0d 0a 20 20 20 20 0d 0a  d();    ..    ..
0700: 20 20 20 20 2f 2f 20 d0 a3 d0 b4 d0 b0 d0 bb d0      // .........
0710: b8 d0 bc 20 d0 b2 d1 80 d0 b5 d0 bc d0 b5 d0 bd  ... ............
0720: d0 bd d1 8b d0 b9 20 d1 84 d0 b0 d0 b9 d0 bb 2e  ...... .........
0730: 0d 0a 20 20 20 20 76 61 72 20 66 20 3d 20 76 38  ..    var f = v8
0740: 4e 65 77 28 22 46 69 6c 65 22 2c 20 74 65 6d 70  New("File", temp
0750: 46 69 6c 65 29 3b 0d 0a 20 20 20 20 67 6c 6f 62  File);..    glob
0760: 61 6c 43 6f 6e 74 65 78 74 28 22 7b 32 32 41 32  alContext("{22A2
0770: 31 30 33 30 2d 45 31 44 36 2d 34 36 41 30 2d 39  1030-E1D6-46A0-9
0780: 34 36 35 2d 46 30 41 35 34 32 37 42 45 30 31 31  465-F0A5427BE011
0790: 7d 22 29 2e 44 65 6c 65 74 65 46 69 6c 65 73 28  }").DeleteFiles(
07a0: 66 2e 50 61 74 68 2c 20 66 2e 4e 61 6d 65 29 3b  f.Path, f.Name);
07b0: 0d 0a 7d 0d 0a 0d 0a 53 65 6c 66 53 63 72 69 70  ..}....SelfScrip
07c0: 74 2e 73 65 6c 66 5b 27 6d 61 63 72 6f 73 54 65  t.self['macrosTe
07d0: 73 74 20 d0 92 20 d0 bc d0 be d0 b4 d1 83 d0 bb  st .. ..........
07e0: d0 b5 20 d1 83 d0 b6 d0 b5 20 d0 b5 d1 81 d1 82  .. ...... ......
07f0: d1 8c 20 d0 be d0 bf d0 b8 d1 81 d0 b0 d0 bd d0  .. .............
0800: b8 d1 8f 20 d1 82 d0 b5 d1 81 d1 82 d0 be d0 b2  ... ............
0810: d1 8b d1 85 20 d1 81 d0 bb d1 83 d1 87 d0 b0 d0  .... ...........
0820: b5 d0 b2 27 5d 20 3d 20 66 75 6e 63 74 69 6f 6e  ...'] = function
0830: 28 29 20 7b 0d 0a 0d 0a 20 20 20 20 76 61 72 20  () {....    var 
0840: 74 65 78 74 44 6f 63 20 3d 20 76 38 4e 65 77 28  textDoc = v8New(
0850: 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22 29 3b  "TextDocument");
0860: 0d 0a 09 74 65 78 74 44 6f 63 2e 52 65 61 64 28  ...textDoc.Read(
0870: 74 65 73 74 44 69 72 2b 27 78 55 6e 69 74 41 64  testDir+'xUnitAd
0880: 64 54 65 73 74 73 44 65 73 63 5f d0 a3 d0 b6 d0  dTestsDesc_.....
0890: b5 d0 95 d1 81 d1 82 d1 8c d0 9e d0 bf d0 b8 d1  ................
08a0: 81 d0 b0 d0 bd d0 b8 d1 8f d0 a2 d0 b5 d1 81 d1  ................
08b0: 82 d0 be d0 b2 2e 74 78 74 27 29 0d 0a 09 0d 0a  ......txt').....
08c0: 09 76 61 72 20 70 72 65 64 4c 69 6e 65 43 6f 75  .var predLineCou
08d0: 6e 74 20 3d 20 74 65 78 74 44 6f 63 2e 4c 69 6e  nt = textDoc.Lin
08e0: 65 43 6f 75 6e 74 28 29 3b 0d 0a 09 76 61 72 20  eCount();...var 
08f0: 74 65 78 74 20 3d 20 74 65 78 74 44 6f 63 2e 47  text = textDoc.G
0900: 65 74 54 65 78 74 28 29 3b 0d 0a 09 74 77 6e 64  etText();...twnd
0910: 2e 53 65 74 54 65 78 74 28 74 65 78 74 29 0d 0a  .SetText(text)..
0920: 09 0d 0a 09 61 70 70 65 6e 64 65 72 2e 70 61 72  ....appender.par
0930: 73 65 53 6f 75 72 63 65 73 28 29 3b 0d 0a 09 76  seSources();...v
0940: 61 72 20 70 72 6f 63 4e 61 6d 65 73 20 3d 20 61  ar procNames = a
0950: 70 70 65 6e 64 65 72 2e 67 65 74 54 65 73 74 43  ppender.getTestC
0960: 61 73 65 73 28 29 3b 0d 0a 09 09 61 73 73 65 72  ases();....asser
0970: 74 45 71 75 61 6c 73 28 70 72 6f 63 4e 61 6d 65  tEquals(procName
0980: 73 2e 6c 65 6e 67 74 68 2c 20 32 29 3b 0d 0a 09  s.length, 2);...
0990: 09 0d 0a 09 76 61 72 20 70 72 6f 63 4e 61 6d 65  ....var procName
09a0: 20 3d 20 27 d0 a2 d0 b5 d1 81 d1 82 d0 a1 d0 9e   = '............
09b0: d0 bf d1 86 d0 b8 d1 8f d0 bc d0 b8 5f d0 91 d0  ............_...
09c0: b5 d0 b7 d0 9f d0 b0 d1 80 d0 b0 d0 bc d0 b5 d1  ................
09d0: 82 d1 80 d0 b0 27 0d 0a 09 09 76 61 72 20 72 65  .....'....var re
09e0: 54 65 73 74 43 61 73 65 44 65 73 63 20 3d 20 6e  TestCaseDesc = n
09f0: 65 77 20 52 65 67 45 78 70 28 20 27 5e 5c 5c 73  ew RegExp( '^\\s
0a00: 2a d0 92 d1 81 d0 b5 d0 a2 d0 b5 d1 81 d1 82 d1  *...............
0a10: 8b 5c 5c 2e d0 94 d0 be d0 b1 d0 b0 d0 b2 d0 b8  .\\.............
0a20: d1 82 d1 8c 5c 5c 28 5c 5c 73 2a 22 27 2b 70 72  ....\\(\\s*"'+pr
0a30: 6f 63 4e 61 6d 65 2b 27 22 5c 5c 73 2a 5c 5c 29  ocName+'"\\s*\\)
0a40: 5c 5c 73 2a 3b 5c 5c 73 2a 24 27 2c 20 22 69 67  \\s*;\\s*$', "ig
0a50: 6d 22 29 3b 0d 0a 09 09 61 73 73 65 72 74 46 61  m");....assertFa
0a60: 6c 73 65 28 27 d0 9d d0 b5 20 d0 bd d0 b0 d1 88  lse('.... ......
0a70: d0 bb d0 b8 20 d0 be d0 bf d0 b8 d1 81 d0 b0 d0  .... ...........
0a80: bd d0 b8 d0 b5 20 d1 82 d0 b5 d1 81 d1 82 d0 b0  ..... ..........
0a90: 20 27 2b 70 72 6f 63 4e 61 6d 65 2c 20 72 65 54   '+procName, reT
0aa0: 65 73 74 43 61 73 65 44 65 73 63 2e 74 65 73 74  estCaseDesc.test
0ab0: 28 74 65 78 74 29 29 3b 0d 0a 09 0d 0a 09 73 75  (text));......su
0ac0: 63 63 65 73 73 20 3d 20 61 70 70 65 6e 64 65 72  ccess = appender
0ad0: 2e 61 64 64 54 65 73 74 43 61 73 65 44 65 73 63  .addTestCaseDesc
0ae0: 72 69 70 74 69 6f 6e 73 49 6e 74 6f 54 65 78 74  riptionsIntoText
0af0: 28 29 3b 0d 0a 09 09 61 73 73 65 72 74 54 72 75  ();....assertTru
0b00: 65 28 27 d0 9d d0 b5 20 d1 83 d1 81 d0 bf d0 b5  e('.... ........
0b10: d1 88 d0 bd d0 be 20 d0 b2 d1 8b d0 bf d0 be d0  ...... .........
0b20: bb d0 bd d0 b8 d0 bb d0 b8 20 d1 82 d0 b5 d1 81  ......... ......
0b30: d1 82 21 27 2c 20 73 75 63 63 65 73 73 29 3b 0d  ..!', success);.
0b40: 0a 09 09 61 73 73 65 72 74 45 71 75 61 6c 73 28  ...assertEquals(
0b50: 74 77 6e 64 2e 4c 69 6e 65 73 43 6f 75 6e 74 28  twnd.LinesCount(
0b60: 29 2c 20 70 72 65 64 4c 69 6e 65 43 6f 75 6e 74  ), predLineCount
0b70: 2b 32 29 3b 0d 0a 09 09 0d 0a 09 61 70 70 65 6e  +2);.......appen
0b80: 64 65 72 2e 70 61 72 73 65 53 6f 75 72 63 65 73  der.parseSources
0b90: 28 29 3b 0d 0a 09 76 61 72 20 70 72 6f 63 4e 61  ();...var procNa
0ba0: 6d 65 73 20 3d 20 61 70 70 65 6e 64 65 72 2e 67  mes = appender.g
0bb0: 65 74 54 65 73 74 43 61 73 65 73 28 29 3b 0d 0a  etTestCases();..
0bc0: 09 09 61 73 73 65 72 74 45 71 75 61 6c 73 28 70  ..assertEquals(p
0bd0: 72 6f 63 4e 61 6d 65 73 2e 6c 65 6e 67 74 68 2c  rocNames.length,
0be0: 20 32 29 3b 0d 0a 09 09 0d 0a 09 76 61 72 20 74   2);.......var t
0bf0: 65 78 74 20 3d 20 74 77 6e 64 2e 47 65 74 54 65  ext = twnd.GetTe
0c00: 78 74 28 29 3b 0d 0a 09 0d 0a 09 66 6f 72 28 69  xt();......for(i
0c10: 3d 30 3b 20 69 20 3c 20 70 72 6f 63 4e 61 6d 65  =0; i < procName
0c20: 73 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b 29 20 7b  s.length; i++) {
0c30: 0d 0a 09 09 76 61 72 20 72 65 54 65 73 74 43 61  ....var reTestCa
0c40: 73 65 44 65 73 63 20 3d 20 6e 65 77 20 52 65 67  seDesc = new Reg
0c50: 45 78 70 28 20 27 5e 5c 5c 73 2a d0 92 d1 81 d0  Exp( '^\\s*.....
0c60: b5 d0 a2 d0 b5 d1 81 d1 82 d1 8b 5c 5c 2e d0 94  ...........\\...
0c70: d0 be d0 b1 d0 b0 d0 b2 d0 b8 d1 82 d1 8c 5c 5c  ..............\\
0c80: 28 5c 5c 73 2a 22 27 2b 70 72 6f 63 4e 61 6d 65  (\\s*"'+procName
0c90: 73 5b 69 5d 2b 27 22 5c 5c 73 2a 5c 5c 29 5c 5c  s[i]+'"\\s*\\)\\
0ca0: 73 2a 3b 5c 5c 73 2a 24 27 2c 20 22 69 67 6d 22  s*;\\s*$', "igm"
0cb0: 29 3b 0d 0a 09 09 09 2f 2f 6c 6f 67 67 65 72 2e  );.....//logger.
0cc0: 64 65 62 75 67 28 27 d0 a0 d0 b5 d0 b3 d1 83 d0  debug('.........
0cd0: bb d1 8f d1 80 d0 bd d0 be d0 b5 20 d0 b2 d1 8b  ........... ....
0ce0: d1 80 d0 b0 d0 b6 d0 b5 d0 bd d0 b8 d0 b5 20 d1  .............. .
0cf0: 88 d0 b0 d0 b1 d0 bb d0 be d0 bd d0 b0 20 d0 b7  ............. ..
0d00: d0 b0 d0 bc d0 b5 d0 bd d1 8b 20 27 2b 72 65 54  .......... '+reT
0d10: 65 73 74 43 61 73 65 44 65 73 63 2e 73 6f 75 72  estCaseDesc.sour
0d20: 63 65 29 0d 0a 09 09 61 73 73 65 72 74 54 72 75  ce)....assertTru
0d30: 65 28 27 d0 9d d0 b5 20 d0 bd d0 b0 d1 88 d0 bb  e('.... ........
0d40: d0 b8 20 d0 be d0 bf d0 b8 d1 81 d0 b0 d0 bd d0  .. .............
0d50: b8 d0 b5 20 d1 82 d0 b5 d1 81 d1 82 d0 b0 20 27  ... .......... '
0d60: 2b 70 72 6f 63 4e 61 6d 65 73 5b 69 5d 2c 20 72  +procNames[i], r
0d70: 65 54 65 73 74 43 61 73 65 44 65 73 63 2e 74 65  eTestCaseDesc.te
0d80: 73 74 28 74 65 78 74 29 29 3b 0d 0a 09 7d 0d 0a  st(text));...}..
0d90: 0d 0a 09 09 2f 2f 76 61 72 20 74 78 74 20 3d 20  ....//var txt = 
0da0: 22 d0 bf d0 b5 d1 80 d0 b5 d0 bc 20 d0 9f d1 80  ".......... ....
0db0: d0 b8 d0 bc d0 b5 d1 80 3b 5c 6e d0 9f d1 80 d0  ........;\n.....
0dc0: b8 d0 bc d0 b5 d1 80 20 3d 20 32 3b 22 3b 0d 0a  ....... = 2;";..
0dd0: 09 09 2f 2f 76 61 72 20 61 72 72 53 74 72 69 6e  ..//var arrStrin
0de0: 67 73 20 3d 20 74 78 74 2e 73 70 6c 69 74 28 22  gs = txt.split("
0df0: 5c 6e 22 29 3b 0d 0a 09 09 2f 2f 61 73 73 65 72  \n");....//asser
0e00: 74 54 72 75 65 28 27 d0 9d d0 b5 20 d1 83 d1 81  tTrue('.... ....
0e10: d0 bf d0 b5 d1 88 d0 bd d0 be 20 d0 b2 d1 8b d0  .......... .....
0e20: bf d0 be d0 bb d0 bd d0 b8 d0 bb d0 b8 20 d1 82  ............. ..
0e30: d0 b5 d1 81 d1 82 21 27 2c 20 6f 62 49 6e 74 73  ......!', obInts
0e40: 2e 72 65 6d 6f 76 65 43 6f 6d 6d 65 6e 74 73 28  .removeComments(
0e50: 61 72 72 53 74 72 69 6e 67 73 29 29 3b 0d 0a 7d  arrStrings));..}
0e60: 0d 0a 0d 0a 53 65 6c 66 53 63 72 69 70 74 2e 73  ....SelfScript.s
0e70: 65 6c 66 5b 27 6d 61 63 72 6f 73 54 65 73 74 20  elf['macrosTest 
0e80: d0 92 20 d0 bc d0 be d0 b4 d1 83 d0 bb d0 b5 20  .. ............ 
0e90: d0 b2 d0 be d0 be d0 b1 d1 89 d0 b5 20 d0 bd d0  ............ ...
0ea0: b5 d1 82 20 d1 84 d1 83 d0 bd d0 ba d1 86 d0 b8  ... ............
0eb0: d0 b8 20 d0 9f d0 be d0 bb d1 83 d1 87 d0 b8 d1  .. .............
0ec0: 82 d1 8c d0 a1 d0 bf d0 b8 d1 81 d0 be d0 ba d0  ................
0ed0: a2 d0 b5 d1 81 d1 82 d0 be d0 b2 2c 20 d0 bd d0  ..........., ...
0ee0: be 20 d1 81 d0 b0 d0 bc d0 b8 20 d1 82 d0 b5 d1  . ........ .....
0ef0: 81 d1 82 d0 be d0 b2 d1 8b d0 b5 20 d1 81 d0 bb  ........... ....
0f00: d1 83 d1 87 d0 b0 d0 b8 20 d0 be d0 bf d1 80 d0  ........ .......
0f10: b5 d0 b4 d0 b5 d0 bb d0 b5 d0 bd d1 8b 27 5d 20  .............'] 
0f20: 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a  = function() {..
0f30: 09 2f 2f 70 6c 75 67 69 6e 41 70 70 65 6e 64 65  .//pluginAppende
0f40: 72 2e 6c 6f 67 67 65 72 2e 73 65 74 4c 65 76 65  r.logger.setLeve
0f50: 6c 28 70 6c 75 67 69 6e 41 70 70 65 6e 64 65 72  l(pluginAppender
0f60: 2e 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 44 45  .Log4js.Level.DE
0f70: 42 55 47 29 3b 0d 0a 09 0d 0a 20 20 20 20 76 61  BUG);.....    va
0f80: 72 20 74 65 78 74 44 6f 63 20 3d 20 76 38 4e 65  r textDoc = v8Ne
0f90: 77 28 22 54 65 78 74 44 6f 63 75 6d 65 6e 74 22  w("TextDocument"
0fa0: 29 3b 0d 0a 09 74 65 78 74 44 6f 63 2e 52 65 61  );...textDoc.Rea
0fb0: 64 28 74 65 73 74 44 69 72 2b 27 78 55 6e 69 74  d(testDir+'xUnit
0fc0: 41 64 64 54 65 73 74 73 44 65 73 63 5f d0 9d d0  AddTestsDesc_...
0fd0: b5 d1 82 d0 9f d0 be d0 bb d1 83 d1 87 d0 b8 d1  ................
0fe0: 82 d1 8c d0 a1 d0 bf d0 b8 d1 81 d0 be d0 ba d0  ................
0ff0: a2 d0 b5 d1 81 d1 82 d0 be d0 b2 2e 74 78 74 27  ............txt'
1000: 29 0d 0a 09 0d 0a 09 70 72 65 64 4c 69 6e 65 43  )......predLineC
1010: 6f 75 6e 74 20 3d 20 74 65 78 74 44 6f 63 2e 4c  ount = textDoc.L
1020: 69 6e 65 43 6f 75 6e 74 28 29 0d 0a 09 76 61 72  ineCount()...var
1030: 20 74 65 78 74 20 3d 20 74 65 78 74 44 6f 63 2e   text = textDoc.
1040: 47 65 74 54 65 78 74 28 29 3b 0d 0a 09 74 77 6e  GetText();...twn
1050: 64 2e 53 65 74 54 65 78 74 28 74 65 78 74 29 0d  d.SetText(text).
1060: 0a 09 0d 0a 09 61 70 70 65 6e 64 65 72 2e 70 61  .....appender.pa
1070: 72 73 65 53 6f 75 72 63 65 73 28 29 3b 0d 0a 09  rseSources();...
1080: 76 61 72 20 70 72 6f 63 4e 61 6d 65 73 20 3d 20  var procNames = 
1090: 61 70 70 65 6e 64 65 72 2e 67 65 74 54 65 73 74  appender.getTest
10a0: 43 61 73 65 73 28 29 3b 0d 0a 09 09 61 73 73 65  Cases();....asse
10b0: 72 74 45 71 75 61 6c 73 28 70 72 6f 63 4e 61 6d  rtEquals(procNam
10c0: 65 73 2e 6c 65 6e 67 74 68 2c 20 32 29 3b 0d 0a  es.length, 2);..
10d0: 09 09 0d 0a 09 76 61 72 20 70 72 6f 63 4e 61 6d  .....var procNam
10e0: 65 20 3d 20 27 d0 a2 d0 b5 d1 81 d1 82 d0 a1 d0  e = '...........
10f0: 9e d0 bf d1 86 d0 b8 d1 8f d0 bc d0 b8 5f d0 91  ............._..
1100: d0 b5 d0 b7 d0 9f d0 b0 d1 80 d0 b0 d0 bc d0 b5  ................
1110: d1 82 d1 80 d0 b0 27 0d 0a 09 09 76 61 72 20 72  ......'....var r
1120: 65 54 65 73 74 43 61 73 65 44 65 73 63 20 3d 20  eTestCaseDesc = 
1130: 6e 65 77 20 52 65 67 45 78 70 28 20 27 5e 5c 5c  new RegExp( '^\\
1140: 73 2a d0 92 d1 81 d0 b5 d0 a2 d0 b5 d1 81 d1 82  s*..............
1150: d1 8b 5c 5c 2e d0 94 d0 be d0 b1 d0 b0 d0 b2 d0  ..\\............
1160: b8 d1 82 d1 8c 5c 5c 28 5c 5c 73 2a 22 27 2b 70  .....\\(\\s*"'+p
1170: 72 6f 63 4e 61 6d 65 2b 27 22 5c 5c 73 2a 5c 5c  rocName+'"\\s*\\
1180: 29 5c 5c 73 2a 3b 5c 5c 73 2a 24 27 2c 20 22 69  )\\s*;\\s*$', "i
1190: 67 6d 22 29 3b 0d 0a 09 09 61 73 73 65 72 74 46  gm");....assertF
11a0: 61 6c 73 65 28 27 d0 9d d0 b5 20 d0 bd d0 b0 d1  alse('.... .....
11b0: 88 d0 bb d0 b8 20 d0 be d0 bf d0 b8 d1 81 d0 b0  ..... ..........
11c0: d0 bd d0 b8 d0 b5 20 d1 82 d0 b5 d1 81 d1 82 d0  ...... .........
11d0: b0 20 27 2b 70 72 6f 63 4e 61 6d 65 2c 20 72 65  . '+procName, re
11e0: 54 65 73 74 43 61 73 65 44 65 73 63 2e 74 65 73  TestCaseDesc.tes
11f0: 74 28 74 65 78 74 29 29 3b 0d 0a 09 0d 0a 09 73  t(text));......s
1200: 75 63 63 65 73 73 20 3d 20 61 70 70 65 6e 64 65  uccess = appende
1210: 72 2e 61 64 64 54 65 73 74 43 61 73 65 44 65 73  r.addTestCaseDes
1220: 63 72 69 70 74 69 6f 6e 73 49 6e 74 6f 54 65 78  criptionsIntoTex
1230: 74 28 29 3b 0d 0a 09 09 61 73 73 65 72 74 54 72  t();....assertTr
1240: 75 65 28 27 d0 9d d0 b5 20 d1 83 d1 81 d0 bf d0  ue('.... .......
1250: b5 d1 88 d0 bd d0 be 20 d0 b2 d1 8b d0 bf d0 be  ....... ........
1260: d0 bb d0 bd d0 b8 d0 bb d0 b8 20 d1 82 d0 b5 d1  .......... .....
1270: 81 d1 82 21 27 2c 20 73 75 63 63 65 73 73 29 3b  ...!', success);
1280: 0d 0a 09 09 61 73 73 65 72 74 45 71 75 61 6c 73  ....assertEquals
1290: 28 74 77 6e 64 2e 4c 69 6e 65 73 43 6f 75 6e 74  (twnd.LinesCount
12a0: 28 29 2c 20 70 72 65 64 4c 69 6e 65 43 6f 75 6e  (), predLineCoun
12b0: 74 20 2b 20 31 35 29 3b 0d 0a 09 09 0d 0a 09 61  t + 15);.......a
12c0: 70 70 65 6e 64 65 72 2e 70 61 72 73 65 53 6f 75  ppender.parseSou
12d0: 72 63 65 73 28 29 3b 0d 0a 09 76 61 72 20 70 72  rces();...var pr
12e0: 6f 63 4e 61 6d 65 73 20 3d 20 61 70 70 65 6e 64  ocNames = append
12f0: 65 72 2e 67 65 74 54 65 73 74 43 61 73 65 73 28  er.getTestCases(
1300: 29 3b 0d 0a 09 09 61 73 73 65 72 74 45 71 75 61  );....assertEqua
1310: 6c 73 28 70 72 6f 63 4e 61 6d 65 73 2e 6c 65 6e  ls(procNames.len
1320: 67 74 68 2c 20 32 29 3b 0d 0a 09 09 0d 0a 09 76  gth, 2);.......v
1330: 61 72 20 74 65 78 74 20 3d 20 74 77 6e 64 2e 47  ar text = twnd.G
1340: 65 74 54 65 78 74 28 29 3b 0d 0a 09 0d 0a 09 66  etText();......f
1350: 6f 72 28 69 3d 30 3b 20 69 20 3c 20 70 72 6f 63  or(i=0; i < proc
1360: 4e 61 6d 65 73 2e 6c 65 6e 67 74 68 3b 20 69 2b  Names.length; i+
1370: 2b 29 20 7b 0d 0a 09 09 76 61 72 20 72 65 54 65  +) {....var reTe
1380: 73 74 43 61 73 65 44 65 73 63 20 3d 20 6e 65 77  stCaseDesc = new
1390: 20 52 65 67 45 78 70 28 20 27 5e 5c 5c 73 2a d0   RegExp( '^\\s*.
13a0: 92 d1 81 d0 b5 d0 a2 d0 b5 d1 81 d1 82 d1 8b 5c  ...............\
13b0: 5c 2e d0 94 d0 be d0 b1 d0 b0 d0 b2 d0 b8 d1 82  \...............
13c0: d1 8c 5c 5c 28 5c 5c 73 2a 22 27 2b 70 72 6f 63  ..\\(\\s*"'+proc
13d0: 4e 61 6d 65 73 5b 69 5d 2b 27 22 5c 5c 73 2a 5c  Names[i]+'"\\s*\
13e0: 5c 29 5c 5c 73 2a 3b 5c 5c 73 2a 24 27 2c 20 22  \)\\s*;\\s*$', "
13f0: 69 67 6d 22 29 3b 0d 0a 09 09 09 2f 2f 6c 6f 67  igm");.....//log
1400: 67 65 72 2e 64 65 62 75 67 28 27 d0 a0 d0 b5 d0  ger.debug('.....
1410: b3 d1 83 d0 bb d1 8f d1 80 d0 bd d0 be d0 b5 20  ............... 
1420: d0 b2 d1 8b d1 80 d0 b0 d0 b6 d0 b5 d0 bd d0 b8  ................
1430: d0 b5 20 d1 88 d0 b0 d0 b1 d0 bb d0 be d0 bd d0  .. .............
1440: b0 20 d0 b7 d0 b0 d0 bc d0 b5 d0 bd d1 8b 20 27  . ............ '
1450: 2b 72 65 54 65 73 74 43 61 73 65 44 65 73 63 2e  +reTestCaseDesc.
1460: 73 6f 75 72 63 65 29 0d 0a 09 09 61 73 73 65 72  source)....asser
1470: 74 54 72 75 65 28 27 d0 9d d0 b5 20 d0 bd d0 b0  tTrue('.... ....
1480: d1 88 d0 bb d0 b8 20 d0 be d0 bf d0 b8 d1 81 d0  ...... .........
1490: b0 d0 bd d0 b8 d0 b5 20 d1 82 d0 b5 d1 81 d1 82  ....... ........
14a0: d0 b0 20 27 2b 70 72 6f 63 4e 61 6d 65 73 5b 69  .. '+procNames[i
14b0: 5d 2c 20 72 65 54 65 73 74 43 61 73 65 44 65 73  ], reTestCaseDes
14c0: 63 2e 74 65 73 74 28 74 65 78 74 29 29 3b 0d 0a  c.test(text));..
14d0: 09 7d 0d 0a 7d 0d 0a 0d 0a 53 65 6c 66 53 63 72  .}..}....SelfScr
14e0: 69 70 74 2e 73 65 6c 66 5b 27 6d 61 63 72 6f 73  ipt.self['macros
14f0: 54 65 73 74 20 d0 92 20 d0 bc d0 be d0 b4 d1 83  Test .. ........
1500: d0 bb d0 b5 20 d0 b2 d0 be d0 be d0 b1 d1 89 d0  .... ...........
1510: b5 20 d0 bd d0 b5 d1 82 20 d1 82 d0 b5 d1 81 d1  . ...... .......
1520: 82 d0 be d0 b2 d1 8b d1 85 20 d1 81 d0 bb d1 83  ......... ......
1530: d1 87 d0 b0 d0 b5 d0 b2 27 5d 20 3d 20 66 75 6e  ........'] = fun
1540: 63 74 69 6f 6e 28 29 20 7b 0d 0a 09 0d 0a 20 20  ction() {.....  
1550: 20 20 76 61 72 20 74 65 78 74 44 6f 63 20 3d 20    var textDoc = 
1560: 76 38 4e 65 77 28 22 54 65 78 74 44 6f 63 75 6d  v8New("TextDocum
1570: 65 6e 74 22 29 3b 0d 0a 09 74 65 78 74 44 6f 63  ent");...textDoc
1580: 2e 52 65 61 64 28 74 65 73 74 44 69 72 2b 27 78  .Read(testDir+'x
1590: 55 6e 69 74 41 64 64 54 65 73 74 73 44 65 73 63  UnitAddTestsDesc
15a0: 5f d0 9d d0 b5 d1 82 d0 9e d0 bf d1 80 d0 b5 d0  _...............
15b0: b4 d0 b5 d0 bb d0 b5 d0 bd d0 b8 d0 b9 d0 a2 d0  ................
15c0: b5 d1 81 d1 82 d0 be d0 b2 2e 74 78 74 27 29 0d  ..........txt').
15d0: 0a 09 0d 0a 09 70 72 65 64 4c 69 6e 65 43 6f 75  .....predLineCou
15e0: 6e 74 20 3d 20 74 65 78 74 44 6f 63 2e 4c 69 6e  nt = textDoc.Lin
15f0: 65 43 6f 75 6e 74 28 29 0d 0a 09 70 72 65 64 54  eCount()...predT
1600: 65 78 74 20 3d 20 74 65 78 74 44 6f 63 2e 47 65  ext = textDoc.Ge
1610: 74 54 65 78 74 28 29 0d 0a 09 74 77 6e 64 2e 53  tText()...twnd.S
1620: 65 74 54 65 78 74 28 70 72 65 64 54 65 78 74 29  etText(predText)
1630: 0d 0a 09 0d 0a 09 61 70 70 65 6e 64 65 72 2e 70  ......appender.p
1640: 61 72 73 65 53 6f 75 72 63 65 73 28 29 3b 0d 0a  arseSources();..
1650: 09 76 61 72 20 70 72 6f 63 4e 61 6d 65 73 20 3d  .var procNames =
1660: 20 61 70 70 65 6e 64 65 72 2e 67 65 74 54 65 73   appender.getTes
1670: 74 43 61 73 65 73 28 29 3b 0d 0a 09 09 61 73 73  tCases();....ass
1680: 65 72 74 45 71 75 61 6c 73 28 70 72 6f 63 4e 61  ertEquals(procNa
1690: 6d 65 73 2c 20 6e 75 6c 6c 29 3b 0d 0a 09 0d 0a  mes, null);.....
16a0: 09 73 75 63 63 65 73 73 20 3d 20 61 70 70 65 6e  .success = appen
16b0: 64 65 72 2e 61 64 64 54 65 73 74 43 61 73 65 44  der.addTestCaseD
16c0: 65 73 63 72 69 70 74 69 6f 6e 73 49 6e 74 6f 54  escriptionsIntoT
16d0: 65 78 74 28 29 3b 0d 0a 09 09 61 73 73 65 72 74  ext();....assert
16e0: 46 61 6c 73 65 28 27 d0 9d d0 b5 20 d1 83 d1 81  False('.... ....
16f0: d0 bf d0 b5 d1 88 d0 bd d0 be 20 d0 b2 d1 8b d0  .......... .....
1700: bf d0 be d0 bb d0 bd d0 b8 d0 bb d0 b8 20 d1 82  ............. ..
1710: d0 b5 d1 81 d1 82 21 27 2c 20 73 75 63 63 65 73  ......!', succes
1720: 73 29 3b 0d 0a 09 09 61 73 73 65 72 74 45 71 75  s);....assertEqu
1730: 61 6c 73 28 70 72 65 64 54 65 78 74 2c 20 74 65  als(predText, te
1740: 78 74 44 6f 63 2e 47 65 74 54 65 78 74 28 29 29  xtDoc.GetText())
1750: 3b 0d 0a 09 09 2f 2f 61 73 73 65 72 74 45 71 75  ;....//assertEqu
1760: 61 6c 73 28 54 72 69 6d 41 6c 6c 28 70 72 65 64  als(TrimAll(pred
1770: 54 65 78 74 29 2c 20 54 72 69 6d 41 6c 6c 28 74  Text), TrimAll(t
1780: 65 78 74 44 6f 63 2e 47 65 74 54 65 78 74 28 29  extDoc.GetText()
1790: 29 29 3b 0d 0a 09 09 61 73 73 65 72 74 45 71 75  ));....assertEqu
17a0: 61 6c 73 28 74 77 6e 64 2e 4c 69 6e 65 73 43 6f  als(twnd.LinesCo
17b0: 75 6e 74 28 29 2c 20 70 72 65 64 4c 69 6e 65 43  unt(), predLineC
17c0: 6f 75 6e 74 29 3b 0d 0a 09 0d 0a 09 61 70 70 65  ount);......appe
17d0: 6e 64 65 72 2e 70 61 72 73 65 53 6f 75 72 63 65  nder.parseSource
17e0: 73 28 29 3b 0d 0a 09 76 61 72 20 70 72 6f 63 4e  s();...var procN
17f0: 61 6d 65 73 20 3d 20 61 70 70 65 6e 64 65 72 2e  ames = appender.
1800: 67 65 74 54 65 73 74 43 61 73 65 73 28 29 3b 0d  getTestCases();.
1810: 0a 09 09 61 73 73 65 72 74 45 71 75 61 6c 73 28  ...assertEquals(
1820: 70 72 6f 63 4e 61 6d 65 73 2c 20 6e 75 6c 6c 29  procNames, null)
1830: 3b 0d 0a 09 09 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63  ;......}....func
1840: 74 69 6f 6e 20 54 72 69 6d 41 6c 6c 28 73 72 63  tion TrimAll(src
1850: 29 20 7b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20  ) {..    return 
1860: 73 72 63 2e 72 65 70 6c 61 63 65 28 2f 28 5e 5c  src.replace(/(^\
1870: 73 2a 29 7c 28 5c 73 2a 24 29 2f 67 2c 20 22 22  s*)|(\s*$)/g, ""
1880: 29 3b 20 2f 2f 74 72 69 6d 0d 0a 7d 0d 0a        ); //trim..}..