Artifact
98298c746d8b21a00171ecad64689bef71eb517a:
- File
Tests/Automated/TextWindow/testStringUtils.js
— part of check-in
[1b6d89f447]
at
2011-12-09 19:57:18
on branch trunk
— Добавлена функция StringUtils.addSlashes - экранирует служебные символы в строке при помощи слешей (\\), например, для использования строки в регулярном выражении.
(user:
kuntashov
size: 4537)
[more...]
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 53 pt..$uname testS
0020: 74 72 69 6e 67 55 74 69 6c 73 0d 0a 24 64 6e 61 tringUtils..$dna
0030: 6d 65 20 d0 a2 d0 b5 d1 81 d1 82 d1 8b 20 d0 b4 me .......... ..
0040: d0 bb d1 8f 20 d0 ba d0 bb d0 b0 d1 81 d1 81 d0 .... ...........
0050: b0 20 53 74 72 69 6e 67 55 74 69 6c 73 0d 0a 24 . StringUtils..$
0060: 61 64 64 69 6e 20 67 6c 6f 62 61 6c 0d 0a 24 61 addin global..$a
0070: 64 64 69 6e 20 73 74 64 63 6f 6d 6d 61 6e 64 73 ddin stdcommands
0080: 0d 0a 24 61 64 64 69 6e 20 73 74 64 6c 69 62 0d ..$addin stdlib.
0090: 0a 0d 0a 73 74 64 6c 69 62 2e 72 65 71 75 69 72 ...stdlib.requir
00a0: 65 28 27 6a 73 55 6e 69 74 43 6f 72 65 2e 6a 73 e('jsUnitCore.js
00b0: 27 2c 20 53 65 6c 66 53 63 72 69 70 74 29 3b 0d ', SelfScript);.
00c0: 0a 73 74 64 6c 69 62 2e 72 65 71 75 69 72 65 28 .stdlib.require(
00d0: 27 54 65 78 74 57 69 6e 64 6f 77 2e 6a 73 27 2c 'TextWindow.js',
00e0: 20 53 65 6c 66 53 63 72 69 70 74 29 3b 0d 0a 20 SelfScript);..
00f0: 20 0d 0a 2f 2f 7b 20 67 65 74 49 6e 64 65 6e 74 ..//{ getIndent
0100: 28 29 20 20 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d () ..function m
0110: 61 63 72 6f 73 54 65 73 74 5f 67 65 74 49 6e 64 acrosTest_getInd
0120: 65 6e 74 31 5f 4e 6f 74 49 6e 64 65 6e 74 65 64 ent1_NotIndented
0130: 28 29 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 20 73 ()..{.. var s
0140: 20 3d 20 22 22 3b 0d 0a 20 20 20 20 61 73 73 65 = "";.. asse
0150: 72 74 45 71 75 61 6c 73 28 22 22 2c 20 53 74 72 rtEquals("", Str
0160: 69 6e 67 55 74 69 6c 73 2e 67 65 74 49 6e 64 65 ingUtils.getInde
0170: 6e 74 28 73 29 29 3b 0d 0a 20 20 20 20 0d 0a 20 nt(s));.. ..
0180: 20 20 20 73 20 3d 20 22 66 69 72 73 74 20 73 74 s = "first st
0190: 72 69 6e 67 5c 6e 20 20 20 20 20 20 73 65 63 6f ring\n seco
01a0: 6e 64 20 73 74 72 69 6e 67 20 77 69 74 68 20 62 nd string with b
01b0: 69 67 20 69 6e 64 65 6e 74 22 3b 0d 0a 20 20 20 ig indent";..
01c0: 20 61 73 73 65 72 74 45 71 75 61 6c 73 28 22 22 assertEquals(""
01d0: 2c 20 53 74 72 69 6e 67 55 74 69 6c 73 2e 67 65 , StringUtils.ge
01e0: 74 49 6e 64 65 6e 74 28 73 29 29 3b 20 20 20 20 tIndent(s));
01f0: 0d 0a 20 20 20 20 0d 0a 7d 0d 0a 0d 0a 66 75 6e .. ..}....fun
0200: 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 ction macrosTest
0210: 5f 67 65 74 49 6e 64 65 6e 74 32 28 29 0d 0a 7b _getIndent2()..{
0220: 0d 0a 20 20 20 20 76 61 72 20 73 3b 0d 0a 20 20 .. var s;..
0230: 20 20 0d 0a 20 20 20 20 73 20 3d 20 22 20 20 20 .. s = "
0240: 66 69 72 73 74 20 6c 69 6e 65 5c 6e 20 20 20 20 first line\n
0250: 20 20 20 20 5c 6e 73 65 63 6f 6e 64 20 6c 69 6e \nsecond lin
0260: 65 22 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 45 e";.. assertE
0270: 71 75 61 6c 73 28 22 20 20 20 22 2c 20 53 74 72 quals(" ", Str
0280: 69 6e 67 55 74 69 6c 73 2e 67 65 74 49 6e 64 65 ingUtils.getInde
0290: 6e 74 28 73 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 nt(s));..}....fu
02a0: 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 nction macrosTes
02b0: 74 5f 67 65 74 49 6e 64 65 6e 74 33 28 29 0d 0a t_getIndent3()..
02c0: 7b 0d 0a 20 20 20 20 76 61 72 20 73 20 3d 20 22 {.. var s = "
02d0: 20 66 69 72 73 74 20 6c 69 6e 65 5c 6e 20 20 20 first line\n
02e0: 20 20 20 73 65 63 6f 6e 64 20 6c 69 6e 65 22 3b second line";
02f0: 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 61 .. assertEqua
0300: 6c 73 28 22 20 22 2c 20 53 74 72 69 6e 67 55 74 ls(" ", StringUt
0310: 69 6c 73 2e 67 65 74 49 6e 64 65 6e 74 28 73 29 ils.getIndent(s)
0320: 29 3b 20 20 20 20 20 20 20 20 0d 0a 7d 0d 0a 0d ); ..}...
0330: 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 .function macros
0340: 54 65 73 74 5f 67 65 74 49 6e 64 65 6e 74 34 28 Test_getIndent4(
0350: 29 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 20 73 20 )..{.. var s
0360: 3d 20 22 20 20 20 20 20 20 20 66 69 72 73 74 20 = " first
0370: 6c 69 6e 65 5c 6e 73 65 63 6f 6e 64 20 6c 69 6e line\nsecond lin
0380: 65 22 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 45 e";.. assertE
0390: 71 75 61 6c 73 28 22 20 20 20 20 20 20 20 22 2c quals(" ",
03a0: 20 53 74 72 69 6e 67 55 74 69 6c 73 2e 67 65 74 StringUtils.get
03b0: 49 6e 64 65 6e 74 28 73 29 29 3b 20 20 20 20 20 Indent(s));
03c0: 20 20 20 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 ..}....functi
03d0: 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 5f 67 65 on macrosTest_ge
03e0: 74 49 6e 64 65 6e 74 35 5f 45 6d 70 74 79 4c 69 tIndent5_EmptyLi
03f0: 6e 65 73 28 29 0d 0a 7b 0d 0a 20 20 20 20 76 61 nes()..{.. va
0400: 72 20 73 20 3d 20 22 20 20 20 20 20 20 20 5c 6e r s = " \n
0410: 20 20 20 20 20 20 20 5c 6e 20 20 20 20 20 20 20 \n
0420: 66 69 72 73 74 20 6c 69 6e 65 5c 6e 73 65 63 6f first line\nseco
0430: 6e 64 20 6c 69 6e 65 22 3b 0d 0a 20 20 20 20 61 nd line";.. a
0440: 73 73 65 72 74 45 71 75 61 6c 73 28 22 20 20 20 ssertEquals("
0450: 20 20 20 20 22 2c 20 53 74 72 69 6e 67 55 74 69 ", StringUti
0460: 6c 73 2e 67 65 74 49 6e 64 65 6e 74 28 73 29 29 ls.getIndent(s))
0470: 3b 20 20 20 20 20 20 20 20 0d 0a 7d 0d 0a 0d 0a ; ..}....
0480: 2f 2f 7d 0d 0a 0d 0a 2f 2f 7b 20 73 68 69 66 74 //}....//{ shift
0490: 52 69 67 68 74 28 29 0d 0a 66 75 6e 63 74 69 6f Right()..functio
04a0: 6e 20 6d 61 63 72 6f 73 54 65 73 74 5f 73 68 69 n macrosTest_shi
04b0: 66 74 52 69 67 68 74 31 28 29 0d 0a 7b 0d 0a 20 ftRight1()..{..
04c0: 20 20 20 76 61 72 20 73 20 3d 20 22 66 69 72 73 var s = "firs
04d0: 74 20 6c 69 6e 65 5c 6e 73 65 63 6f 6e 64 20 6c t line\nsecond l
04e0: 69 6e 65 5c 6e 74 68 69 72 64 20 6c 69 6e 65 22 ine\nthird line"
04f0: 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 ;.. assertEqu
0500: 61 6c 73 28 22 20 66 69 72 73 74 20 6c 69 6e 65 als(" first line
0510: 5c 6e 20 73 65 63 6f 6e 64 20 6c 69 6e 65 5c 6e \n second line\n
0520: 20 74 68 69 72 64 20 6c 69 6e 65 22 2c 20 53 74 third line", St
0530: 72 69 6e 67 55 74 69 6c 73 2e 73 68 69 66 74 52 ringUtils.shiftR
0540: 69 67 68 74 28 73 2c 20 22 20 22 29 29 3b 0d 0a ight(s, " "));..
0550: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 }....function ma
0560: 63 72 6f 73 54 65 73 74 5f 73 68 69 66 74 52 69 crosTest_shiftRi
0570: 67 68 74 32 28 29 0d 0a 7b 0d 0a 20 20 20 20 76 ght2()..{.. v
0580: 61 72 20 73 20 3d 20 22 20 20 20 20 66 69 72 73 ar s = " firs
0590: 74 20 6c 69 6e 65 5c 6e 20 20 20 20 73 65 63 6f t line\n seco
05a0: 6e 64 20 6c 69 6e 65 5c 6e 20 20 20 20 74 68 69 nd line\n thi
05b0: 72 64 20 6c 69 6e 65 22 3b 0d 0a 20 20 20 20 61 rd line";.. a
05c0: 73 73 65 72 74 45 71 75 61 6c 73 28 22 20 20 20 ssertEquals("
05d0: 20 20 20 20 20 66 69 72 73 74 20 6c 69 6e 65 5c first line\
05e0: 6e 20 20 20 20 20 20 20 20 73 65 63 6f 6e 64 20 n second
05f0: 6c 69 6e 65 5c 6e 20 20 20 20 20 20 20 20 74 68 line\n th
0600: 69 72 64 20 6c 69 6e 65 22 2c 20 53 74 72 69 6e ird line", Strin
0610: 67 55 74 69 6c 73 2e 73 68 69 66 74 52 69 67 68 gUtils.shiftRigh
0620: 74 28 73 2c 20 22 20 20 20 20 22 29 29 3b 0d 0a t(s, " "));..
0630: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 }....function ma
0640: 63 72 6f 73 54 65 73 74 5f 73 68 69 66 74 52 69 crosTest_shiftRi
0650: 67 68 74 33 28 29 0d 0a 7b 0d 0a 20 20 20 20 76 ght3()..{.. v
0660: 61 72 20 73 20 3d 20 22 20 74 68 65 20 6f 6e 6c ar s = " the onl
0670: 79 20 6c 69 6e 65 22 3b 0d 0a 20 20 20 20 61 73 y line";.. as
0680: 73 65 72 74 45 71 75 61 6c 73 28 22 20 20 74 68 sertEquals(" th
0690: 65 20 6f 6e 6c 79 20 6c 69 6e 65 22 2c 20 53 74 e only line", St
06a0: 72 69 6e 67 55 74 69 6c 73 2e 73 68 69 66 74 52 ringUtils.shiftR
06b0: 69 67 68 74 28 73 2c 20 22 20 22 29 29 3b 0d 0a ight(s, " "));..
06c0: 7d 0d 0a 2f 2f 7d 0d 0a 0d 0a 2f 2f 7b 20 73 68 }..//}....//{ sh
06d0: 69 66 74 4c 65 66 74 28 29 0d 0a 66 75 6e 63 74 iftLeft()..funct
06e0: 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 5f 73 ion macrosTest_s
06f0: 68 69 66 74 4c 65 66 74 31 28 29 0d 0a 7b 0d 0a hiftLeft1()..{..
0700: 20 20 20 20 76 61 72 20 73 20 3d 20 22 20 66 69 var s = " fi
0710: 72 73 74 20 6c 69 6e 65 5c 6e 20 73 65 63 6f 6e rst line\n secon
0720: 64 20 6c 69 6e 65 5c 6e 20 74 68 69 72 64 20 6c d line\n third l
0730: 69 6e 65 22 3b 0d 0a 20 20 20 20 61 73 73 65 72 ine";.. asser
0740: 74 45 71 75 61 6c 73 28 22 66 69 72 73 74 20 6c tEquals("first l
0750: 69 6e 65 5c 6e 73 65 63 6f 6e 64 20 6c 69 6e 65 ine\nsecond line
0760: 5c 6e 74 68 69 72 64 20 6c 69 6e 65 22 2c 20 53 \nthird line", S
0770: 74 72 69 6e 67 55 74 69 6c 73 2e 73 68 69 66 74 tringUtils.shift
0780: 4c 65 66 74 28 73 2c 20 22 20 22 29 29 3b 0d 0a Left(s, " "));..
0790: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 }....function ma
07a0: 63 72 6f 73 54 65 73 74 5f 73 68 69 66 74 4c 65 crosTest_shiftLe
07b0: 66 74 32 28 29 0d 0a 7b 0d 0a 20 20 20 20 76 61 ft2()..{.. va
07c0: 72 20 73 20 3d 20 22 20 20 20 20 20 20 20 20 66 r s = " f
07d0: 69 72 73 74 20 6c 69 6e 65 5c 6e 20 20 20 20 20 irst line\n
07e0: 20 20 20 73 65 63 6f 6e 64 20 6c 69 6e 65 5c 6e second line\n
07f0: 20 20 20 20 20 20 20 20 74 68 69 72 64 20 6c 69 third li
0800: 6e 65 22 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 ne";.. assert
0810: 45 71 75 61 6c 73 28 22 20 20 20 20 66 69 72 73 Equals(" firs
0820: 74 20 6c 69 6e 65 5c 6e 20 20 20 20 73 65 63 6f t line\n seco
0830: 6e 64 20 6c 69 6e 65 5c 6e 20 20 20 20 74 68 69 nd line\n thi
0840: 72 64 20 6c 69 6e 65 22 2c 20 53 74 72 69 6e 67 rd line", String
0850: 55 74 69 6c 73 2e 73 68 69 66 74 4c 65 66 74 28 Utils.shiftLeft(
0860: 73 2c 20 22 20 20 20 20 22 29 29 3b 0d 0a 7d 0d s, " "));..}.
0870: 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 ...function macr
0880: 6f 73 54 65 73 74 5f 73 68 69 66 74 4c 65 66 74 osTest_shiftLeft
0890: 33 28 29 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 20 3()..{.. var
08a0: 73 20 3d 20 22 20 20 74 68 65 20 6f 6e 6c 79 20 s = " the only
08b0: 6c 69 6e 65 22 3b 0d 0a 20 20 20 20 61 73 73 65 line";.. asse
08c0: 72 74 45 71 75 61 6c 73 28 22 20 74 68 65 20 6f rtEquals(" the o
08d0: 6e 6c 79 20 6c 69 6e 65 22 2c 20 53 74 72 69 6e nly line", Strin
08e0: 67 55 74 69 6c 73 2e 73 68 69 66 74 4c 65 66 74 gUtils.shiftLeft
08f0: 28 73 2c 20 22 20 22 29 29 3b 0d 0a 7d 0d 0a 2f (s, " "));..}../
0900: 2f 7d 0d 0a 0d 0a 2f 2f 7b 20 65 6e 64 73 57 69 /}....//{ endsWi
0910: 74 68 28 29 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d th()..function m
0920: 61 63 72 6f 73 54 65 73 74 5f 65 6e 64 73 57 69 acrosTest_endsWi
0930: 74 68 31 28 29 0d 0a 7b 0d 0a 20 20 20 20 61 73 th1()..{.. as
0940: 73 65 72 74 54 72 75 65 28 53 74 72 69 6e 67 55 sertTrue(StringU
0950: 74 69 6c 73 2e 65 6e 64 73 57 69 74 68 28 22 22 tils.endsWith(""
0960: 2c 22 22 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e ,""));..}....fun
0970: 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 ction macrosTest
0980: 5f 65 6e 64 73 57 69 74 68 32 28 29 0d 0a 7b 0d _endsWith2()..{.
0990: 0a 20 20 20 20 61 73 73 65 72 74 54 72 75 65 28 . assertTrue(
09a0: 53 74 72 69 6e 67 55 74 69 6c 73 2e 65 6e 64 73 StringUtils.ends
09b0: 57 69 74 68 28 22 61 22 2c 22 61 22 29 29 3b 20 With("a","a"));
09c0: 20 20 20 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 ..}....functi
09d0: 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 5f 65 6e on macrosTest_en
09e0: 64 73 57 69 74 68 33 28 29 0d 0a 7b 0d 0a 20 20 dsWith3()..{..
09f0: 20 20 61 73 73 65 72 74 46 61 6c 73 65 28 53 74 assertFalse(St
0a00: 72 69 6e 67 55 74 69 6c 73 2e 65 6e 64 73 57 69 ringUtils.endsWi
0a10: 74 68 28 22 61 22 2c 22 61 62 22 29 29 3b 20 20 th("a","ab"));
0a20: 20 20 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f ..}....functio
0a30: 6e 20 6d 61 63 72 6f 73 54 65 73 74 5f 65 6e 64 n macrosTest_end
0a40: 73 57 69 74 68 34 28 29 0d 0a 7b 0d 0a 20 20 20 sWith4()..{..
0a50: 20 61 73 73 65 72 74 54 72 75 65 28 53 74 72 69 assertTrue(Stri
0a60: 6e 67 55 74 69 6c 73 2e 65 6e 64 73 57 69 74 68 ngUtils.endsWith
0a70: 28 22 66 69 72 73 74 20 73 74 72 69 6e 67 5c 6e ("first string\n
0a80: 73 65 63 6f 6e 64 20 73 74 72 69 6e 67 22 2c 20 second string",
0a90: 22 69 6e 67 22 29 29 3b 20 20 20 20 0d 0a 7d 0d "ing")); ..}.
0aa0: 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 ...function macr
0ab0: 6f 73 54 65 73 74 5f 65 6e 64 73 57 69 74 68 35 osTest_endsWith5
0ac0: 28 29 0d 0a 7b 0d 0a 20 20 20 20 61 73 73 65 72 ()..{.. asser
0ad0: 74 46 61 6c 73 65 28 53 74 72 69 6e 67 55 74 69 tFalse(StringUti
0ae0: 6c 73 2e 65 6e 64 73 57 69 74 68 28 22 66 69 72 ls.endsWith("fir
0af0: 73 74 20 73 74 72 69 6e 67 5c 6e 73 65 63 6f 6e st string\nsecon
0b00: 64 20 73 74 72 69 6e 67 5c 6e 22 2c 20 22 69 6e d string\n", "in
0b10: 67 22 29 29 3b 20 20 20 20 0d 0a 7d 0d 0a 0d 0a g")); ..}....
0b20: 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 function macrosT
0b30: 65 73 74 5f 65 6e 64 73 57 69 74 68 36 28 29 0d est_endsWith6().
0b40: 0a 7b 0d 0a 20 20 20 20 61 73 73 65 72 74 54 72 .{.. assertTr
0b50: 75 65 28 53 74 72 69 6e 67 55 74 69 6c 73 2e 65 ue(StringUtils.e
0b60: 6e 64 73 57 69 74 68 28 22 66 69 72 73 74 20 73 ndsWith("first s
0b70: 74 72 69 6e 67 5c 6e 73 65 63 6f 6e 64 20 73 74 tring\nsecond st
0b80: 72 69 6e 67 5c 6e 22 2c 20 22 69 6e 67 5c 6e 22 ring\n", "ing\n"
0b90: 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 ));..}....functi
0ba0: 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 5f 65 6e on macrosTest_en
0bb0: 64 73 57 69 74 68 37 28 29 0d 0a 7b 0d 0a 20 20 dsWith7()..{..
0bc0: 20 20 61 73 73 65 72 74 54 72 75 65 28 53 74 72 assertTrue(Str
0bd0: 69 6e 67 55 74 69 6c 73 2e 65 6e 64 73 57 69 74 ingUtils.endsWit
0be0: 68 28 22 66 69 72 73 74 20 73 74 72 69 6e 67 5c h("first string\
0bf0: 6e 73 65 63 6f 6e 64 20 73 74 72 69 6e 67 22 2c nsecond string",
0c00: 20 22 73 65 63 6f 6e 64 20 73 74 72 69 6e 67 22 "second string"
0c10: 29 29 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 7d 0d 0a 0d ));..}....//}...
0c20: 0a 2f 2f 7b 20 74 6f 4c 69 6e 65 73 28 29 0d 0a .//{ toLines()..
0c30: 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 function macrosT
0c40: 65 73 74 5f 74 6f 4c 69 6e 65 73 31 28 29 0d 0a est_toLines1()..
0c50: 7b 0d 0a 20 20 20 20 61 73 73 65 72 74 41 72 72 {.. assertArr
0c60: 61 79 45 71 75 61 6c 73 28 5b 22 22 5d 2c 20 53 ayEquals([""], S
0c70: 74 72 69 6e 67 55 74 69 6c 73 2e 74 6f 4c 69 6e tringUtils.toLin
0c80: 65 73 28 22 22 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 es(""));..}....f
0c90: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 unction macrosTe
0ca0: 73 74 5f 74 6f 4c 69 6e 65 73 32 28 29 0d 0a 7b st_toLines2()..{
0cb0: 0d 0a 20 20 20 20 61 73 73 65 72 74 41 72 72 61 .. assertArra
0cc0: 79 45 71 75 61 6c 73 28 5b 22 74 68 65 20 6f 6e yEquals(["the on
0cd0: 6c 79 20 73 74 72 69 6e 67 22 5d 2c 20 53 74 72 ly string"], Str
0ce0: 69 6e 67 55 74 69 6c 73 2e 74 6f 4c 69 6e 65 73 ingUtils.toLines
0cf0: 28 22 74 68 65 20 6f 6e 6c 79 20 73 74 72 69 6e ("the only strin
0d00: 67 22 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 g"));..}....func
0d10: 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 5f tion macrosTest_
0d20: 74 6f 4c 69 6e 65 73 33 28 29 0d 0a 7b 0d 0a 20 toLines3()..{..
0d30: 20 20 20 61 73 73 65 72 74 41 72 72 61 79 45 71 assertArrayEq
0d40: 75 61 6c 73 28 5b 22 66 69 72 73 74 20 6c 69 6e uals(["first lin
0d50: 65 22 2c 20 22 73 65 63 6f 6e 64 20 6c 69 6e 65 e", "second line
0d60: 22 5d 2c 20 53 74 72 69 6e 67 55 74 69 6c 73 2e "], StringUtils.
0d70: 74 6f 4c 69 6e 65 73 28 22 66 69 72 73 74 20 6c toLines("first l
0d80: 69 6e 65 5c 6e 73 65 63 6f 6e 64 20 6c 69 6e 65 ine\nsecond line
0d90: 22 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 "));..}....funct
0da0: 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 5f 74 ion macrosTest_t
0db0: 6f 4c 69 6e 65 73 34 28 29 0d 0a 7b 0d 0a 20 20 oLines4()..{..
0dc0: 20 20 61 73 73 65 72 74 41 72 72 61 79 45 71 75 assertArrayEqu
0dd0: 61 6c 73 28 5b 22 66 69 72 73 74 20 6c 69 6e 65 als(["first line
0de0: 22 2c 20 22 22 2c 20 22 73 65 63 6f 6e 64 20 6c ", "", "second l
0df0: 69 6e 65 22 2c 22 22 5d 2c 20 53 74 72 69 6e 67 ine",""], String
0e00: 55 74 69 6c 73 2e 74 6f 4c 69 6e 65 73 28 22 66 Utils.toLines("f
0e10: 69 72 73 74 20 6c 69 6e 65 5c 6e 5c 6e 73 65 63 irst line\n\nsec
0e20: 6f 6e 64 20 6c 69 6e 65 5c 6e 22 29 29 3b 0d 0a ond line\n"));..
0e30: 7d 0d 0a 0d 0a 2f 2f 7d 0d 0a 0d 0a 2f 2f 7b 20 }....//}....//{
0e40: 66 72 6f 6d 4c 69 6e 65 73 28 29 0d 0a 66 75 6e fromLines()..fun
0e50: 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 ction macrosTest
0e60: 5f 66 72 6f 6d 4c 69 6e 65 73 31 28 29 0d 0a 7b _fromLines1()..{
0e70: 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 61 .. assertEqua
0e80: 6c 73 28 22 22 2c 20 53 74 72 69 6e 67 55 74 69 ls("", StringUti
0e90: 6c 73 2e 66 72 6f 6d 4c 69 6e 65 73 28 5b 22 22 ls.fromLines([""
0ea0: 5d 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 ]));..}....funct
0eb0: 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 5f 66 ion macrosTest_f
0ec0: 72 6f 6d 4c 69 6e 65 73 32 28 29 0d 0a 7b 0d 0a romLines2()..{..
0ed0: 20 20 20 20 61 73 73 65 72 74 45 71 75 61 6c 73 assertEquals
0ee0: 28 22 74 68 65 20 6f 6e 6c 79 20 73 74 72 69 6e ("the only strin
0ef0: 67 22 2c 20 53 74 72 69 6e 67 55 74 69 6c 73 2e g", StringUtils.
0f00: 66 72 6f 6d 4c 69 6e 65 73 28 5b 22 74 68 65 20 fromLines(["the
0f10: 6f 6e 6c 79 20 73 74 72 69 6e 67 22 5d 29 29 3b only string"]));
0f20: 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 ..}....function
0f30: 6d 61 63 72 6f 73 54 65 73 74 5f 66 72 6f 6d 4c macrosTest_fromL
0f40: 69 6e 65 73 33 28 29 0d 0a 7b 0d 0a 20 20 20 20 ines3()..{..
0f50: 61 73 73 65 72 74 45 71 75 61 6c 73 28 22 66 69 assertEquals("fi
0f60: 72 73 74 20 6c 69 6e 65 5c 6e 73 65 63 6f 6e 64 rst line\nsecond
0f70: 20 6c 69 6e 65 22 2c 20 53 74 72 69 6e 67 55 74 line", StringUt
0f80: 69 6c 73 2e 66 72 6f 6d 4c 69 6e 65 73 28 5b 22 ils.fromLines(["
0f90: 66 69 72 73 74 20 6c 69 6e 65 22 2c 20 22 73 65 first line", "se
0fa0: 63 6f 6e 64 20 6c 69 6e 65 22 5d 29 29 3b 0d 0a cond line"]));..
0fb0: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 }....function ma
0fc0: 63 72 6f 73 54 65 73 74 5f 66 72 6f 6d 4c 69 6e crosTest_fromLin
0fd0: 65 73 34 28 29 0d 0a 7b 0d 0a 20 20 20 20 61 73 es4()..{.. as
0fe0: 73 65 72 74 45 71 75 61 6c 73 28 22 66 69 72 73 sertEquals("firs
0ff0: 74 20 6c 69 6e 65 5c 6e 5c 6e 73 65 63 6f 6e 64 t line\n\nsecond
1000: 20 6c 69 6e 65 5c 6e 22 2c 20 53 74 72 69 6e 67 line\n", String
1010: 55 74 69 6c 73 2e 66 72 6f 6d 4c 69 6e 65 73 28 Utils.fromLines(
1020: 5b 22 66 69 72 73 74 20 6c 69 6e 65 22 2c 20 22 ["first line", "
1030: 22 2c 20 22 73 65 63 6f 6e 64 20 6c 69 6e 65 22 ", "second line"
1040: 2c 22 22 5d 29 29 3b 0d 0a 7d 0d 0a 2f 2f 7d 0d ,""]));..}..//}.
1050: 0a 0d 0a 0d 0a 2f 2f 7b 20 61 64 64 53 6c 61 73 .....//{ addSlas
1060: 68 65 73 28 29 0d 0a 66 75 6e 63 74 69 6f 6e 20 hes()..function
1070: 6d 61 63 72 6f 73 54 65 73 74 5f 61 64 64 53 6c macrosTest_addSl
1080: 61 73 68 65 73 31 28 29 0d 0a 7b 0d 0a 20 20 20 ashes1()..{..
1090: 20 61 73 73 65 72 74 45 71 75 61 6c 73 28 27 5c assertEquals('\
10a0: 5c 25 5c 5c 24 32 5c 5c 24 5c 5c 3e 5c 5c 3c 5c \%\\$2\\$\\>\\<\
10b0: 5c 3e 5c 5c 5c 5c 27 2c 20 53 74 72 69 6e 67 55 \>\\\\', StringU
10c0: 74 69 6c 73 2e 61 64 64 53 6c 61 73 68 65 73 28 tils.addSlashes(
10d0: 27 25 24 32 24 3e 3c 3e 5c 5c 27 29 29 3b 0d 0a '%$2$><>\\'));..
10e0: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 }....function ma
10f0: 63 72 6f 73 54 65 73 74 5f 61 64 64 53 6c 61 73 crosTest_addSlas
1100: 68 65 73 32 28 29 0d 0a 7b 0d 0a 20 20 20 20 61 hes2()..{.. a
1110: 73 73 65 72 74 45 71 75 61 6c 73 28 27 5c 5c 3c ssertEquals('\\<
1120: 5c 5c 3f d0 9a d0 be d0 bd d1 84 d0 b8 d0 b3 d1 \\?.............
1130: 83 d1 80 d0 b0 d1 86 d0 b8 d1 8f 5c 5c 2e d0 98 ...........\\...
1140: d0 bc d1 8f 5c 5c 3e 27 2c 20 53 74 72 69 6e 67 ....\\>', String
1150: 55 74 69 6c 73 2e 61 64 64 53 6c 61 73 68 65 73 Utils.addSlashes
1160: 28 27 3c 3f d0 9a d0 be d0 bd d1 84 d0 b8 d0 b3 ('<?............
1170: d1 83 d1 80 d0 b0 d1 86 d0 b8 d1 8f 2e d0 98 d0 ................
1180: bc d1 8f 3e 27 29 29 3b 0d 0a 7d 0d 0a 2f 2f 7d ...>'));..}..//}
1190: 0d 0a 0d 0a 2f 2a 20 0d 0a 66 75 6e 63 74 69 6f ..../* ..functio
11a0: 6e 20 6d 61 63 72 6f 73 28 29 0d 0a 7b 20 20 20 n macros()..{
11b0: 20 0d 0a 7d 0d 0a 20 2a 2f ..}.. */