Hex Artifact Content Вы: nobody
Вход

Artifact 98298c746d8b21a00171ecad64689bef71eb517a:


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                        ..}.. */