Artifact 80da9dc750e1a0c0cafde20ed824be65d36d8d9c:
- File
Tests/Automated/xUnitFor1C/testXUnitAddTestsDesc.js
— part of check-in
[a373498a65]
at
2014-04-18 11:13:22
on branch trunk
— + при записи модуля внешней обработки происходит вставка определений тестовых случаев, если они определены в модуле
+ автоматические тесты поведения скрипта
+ выделен отдельный класс _AppenderTestCaseDescriptionsIntoText вместо функций (user: artbear size: 6286)
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..}..