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 54 pt..$uname testT
0020: 65 78 74 57 69 6e 64 6f 77 0d 0a 24 64 6e 61 6d extWindow..$dnam
0030: 65 20 d0 a2 d0 b5 d1 81 d1 82 d1 8b 20 d0 b4 d0 e .......... ...
0040: bb d1 8f 20 d0 ba d0 bb d0 b0 d1 81 d1 81 d0 b0 ... ............
0050: 20 54 65 78 74 57 69 6e 64 6f 77 0d 0a 24 61 64 TextWindow..$ad
0060: 64 69 6e 20 67 6c 6f 62 61 6c 0d 0a 24 61 64 64 din global..$add
0070: 69 6e 20 73 74 64 63 6f 6d 6d 61 6e 64 73 0d 0a in stdcommands..
0080: 24 61 64 64 69 6e 20 73 74 64 6c 69 62 0d 0a 0d $addin stdlib...
0090: 0a 73 74 64 6c 69 62 2e 72 65 71 75 69 72 65 28 .stdlib.require(
00a0: 27 6a 73 55 6e 69 74 43 6f 72 65 2e 6a 73 27 2c 'jsUnitCore.js',
00b0: 20 53 65 6c 66 53 63 72 69 70 74 29 3b 0d 0a 0d SelfScript);...
00c0: 0a 76 61 72 20 54 57 57 20 3d 20 73 74 64 6c 69 .var TWW = stdli
00d0: 62 2e 72 65 71 75 69 72 65 28 27 54 65 78 74 57 b.require('TextW
00e0: 69 6e 64 6f 77 2e 6a 73 27 29 3b 0d 0a 0d 0a 76 indow.js');....v
00f0: 61 72 20 74 65 78 74 20 3d 20 22 d0 bf d0 b5 d1 ar text = ".....
0100: 80 d0 b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be ....... ........
0110: d0 ba d0 b0 5c 6e d0 b2 d1 82 d0 be d1 80 d0 b0 ....\n..........
0120: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c .. ............\
0130: 6e d1 82 d1 80 d0 b5 d1 82 d1 8c d1 8f 20 d1 81 n............ ..
0140: d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 87 d0 b5 ..........\n....
0150: d1 82 d0 b2 d0 b5 d1 80 d1 82 d0 b0 d1 8f 20 d1 .............. .
0160: 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 2d 20 d1 81 ........... - ..
0170: d0 b0 d0 bc d0 b0 d1 8f 20 d0 b4 d0 bb d0 b8 d0 ........ .......
0180: bd d0 bd d0 b0 d1 8f 20 d0 b8 d0 b7 20 d0 b2 d1 ....... .... ...
0190: 81 d0 b5 d1 85 20 d1 81 d1 82 d1 80 d0 be d0 ba ..... ..........
01a0: 5c 6e 22 0d 0a 20 20 20 20 2b 20 22 d0 bf d1 8f \n".. + "....
01b0: d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ...... .........
01c0: ba d0 b0 20 d0 bf d0 be d0 ba d0 be d1 80 d0 be ... ............
01d0: d1 87 d0 b5 2c 20 d0 bd d0 be 20 d1 82 d0 be d0 ...., .... .....
01e0: b6 d0 b5 20 d0 bd d0 b8 d1 87 d0 b5 d0 b3 d0 be ... ............
01f0: 5c 6e d1 88 d0 b5 d1 81 d1 82 d0 b0 d1 8f 20 d1 \n............ .
0200: 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 81 d0 ...........\n...
0210: b5 d0 b4 d1 8c d0 bc d0 b0 d1 8f 20 d1 81 d1 82 ........... ....
0220: d1 80 d0 be d0 ba d0 b0 22 3b 0d 0a 0d 0a 76 61 ........";....va
0230: 72 20 74 65 78 74 44 6f 63 20 3d 20 6e 75 6c 6c r textDoc = null
0240: 3b 0d 0a 76 61 72 20 74 77 6e 64 20 3d 20 6e 75 ;..var twnd = nu
0250: 6c 6c 3b 0d 0a 20 20 20 20 0d 0a 66 75 6e 63 74 ll;.. ..funct
0260: 69 6f 6e 20 73 65 74 55 70 28 29 0d 0a 7b 0d 0a ion setUp()..{..
0270: 20 20 20 20 74 65 78 74 44 6f 63 20 3d 20 76 38 textDoc = v8
0280: 4e 65 77 28 22 54 65 78 74 44 6f 63 75 6d 65 6e New("TextDocumen
0290: 74 22 29 3b 0d 0a 20 20 20 20 74 65 78 74 44 6f t");.. textDo
02a0: 63 2e 53 65 74 54 65 78 74 28 74 65 78 74 29 3b c.SetText(text);
02b0: 0d 0a 0d 0a 20 20 20 20 74 65 78 74 44 6f 63 2e .... textDoc.
02c0: 53 68 6f 77 28 29 3b 0d 0a 20 20 20 20 0d 0a 20 Show();.. ..
02d0: 20 20 20 74 77 6e 64 20 3d 20 54 57 57 2e 47 65 twnd = TWW.Ge
02e0: 74 54 65 78 74 57 69 6e 64 6f 77 28 29 3b 0d 0a tTextWindow();..
02f0: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 74 65 }....function te
0300: 61 72 44 6f 77 6e 28 29 0d 0a 7b 0d 0a 20 20 20 arDown()..{..
0310: 20 69 66 20 28 74 77 6e 64 29 0d 0a 20 20 20 20 if (twnd)..
0320: 20 20 20 20 64 65 6c 65 74 65 20 74 77 6e 64 3b delete twnd;
0330: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 .. .. // .
0340: a7 d1 82 d0 be d0 b1 d1 8b 20 d0 bf d1 80 d0 b8 ......... ......
0350: 20 d0 b7 d0 b0 d0 ba d1 80 d1 8b d1 82 d0 b8 d0 ...............
0360: b8 20 d0 bd d0 b5 20 d0 b2 d1 8b d0 b4 d0 b0 d0 . .... .........
0370: b2 d0 b0 d0 bb d0 be d1 81 d1 8c 20 d1 81 d0 be ........... ....
0380: d0 be d0 b1 d1 89 d0 b5 d0 bd d0 b8 d0 b5 20 22 .............. "
0390: d0 97 d0 b0 d0 bf d0 b8 d1 81 d0 b0 d1 82 d1 8c ................
03a0: 3f 22 2c 20 d1 81 d0 be d1 85 d1 80 d0 b0 d0 bd ?", ............
03b0: d0 b8 d0 bc 20 d0 b4 d0 be d0 ba d1 83 d0 bc d0 .... ...........
03c0: b5 d0 bd d1 82 20 d0 b2 d0 be 20 d0 b2 d1 80 d0 ..... .... .....
03d0: b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d0 b9 20 d1 84 ............. ..
03e0: d0 b0 d0 b9 d0 bb 2e 0d 0a 20 20 20 20 76 61 72 ......... var
03f0: 20 74 65 6d 70 46 69 6c 65 20 3d 20 67 6c 6f 62 tempFile = glob
0400: 61 6c 43 6f 6e 74 65 78 74 28 22 7b 34 41 39 39 alContext("{4A99
0410: 33 41 42 37 2d 32 46 37 35 2d 34 33 43 46 2d 42 3AB7-2F75-43CF-B
0420: 33 34 41 2d 30 41 44 39 46 46 41 45 45 37 45 33 34A-0AD9FFAEE7E3
0430: 7d 22 29 2e 47 65 74 54 65 6d 70 46 69 6c 65 4e }").GetTempFileN
0440: 61 6d 65 28 29 3b 0d 0a 20 20 20 20 74 65 78 74 ame();.. text
0450: 44 6f 63 2e 57 72 69 74 65 28 74 65 6d 70 46 69 Doc.Write(tempFi
0460: 6c 65 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 le);.. ..
0470: 2f 2f 20 d0 97 d0 b0 d0 ba d1 80 d0 be d0 b5 d0 // .............
0480: bc 20 d0 be d0 ba d0 bd d0 be 20 d1 82 d0 b5 d0 . ........ .....
0490: ba d1 81 d1 82 d0 be d0 b2 d0 be d0 b3 d0 be 20 ...............
04a0: d0 b4 d0 be d0 ba d1 83 d0 bc d0 b5 d0 bd d1 82 ................
04b0: d0 b0 2e 0d 0a 20 20 20 20 73 74 64 63 6f 6d 6d ..... stdcomm
04c0: 61 6e 64 73 2e 46 72 61 6d 65 2e 46 69 6c 65 43 ands.Frame.FileC
04d0: 6c 6f 73 65 2e 73 65 6e 64 28 29 3b 20 20 20 20 lose.send();
04e0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 .. .. // .
04f0: a3 d0 b4 d0 b0 d0 bb d0 b8 d0 bc 20 d0 b2 d1 80 ........... ....
0500: d0 b5 d0 bc d0 b5 d0 bd d0 bd d1 8b d0 b9 20 d1 .............. .
0510: 84 d0 b0 d0 b9 d0 bb 2e 0d 0a 20 20 20 20 76 61 .......... va
0520: 72 20 66 20 3d 20 76 38 4e 65 77 28 22 46 69 6c r f = v8New("Fil
0530: 65 22 2c 20 74 65 6d 70 46 69 6c 65 29 3b 0d 0a e", tempFile);..
0540: 20 20 20 20 67 6c 6f 62 61 6c 43 6f 6e 74 65 78 globalContex
0550: 74 28 22 7b 32 32 41 32 31 30 33 30 2d 45 31 44 t("{22A21030-E1D
0560: 36 2d 34 36 41 30 2d 39 34 36 35 2d 46 30 41 35 6-46A0-9465-F0A5
0570: 34 32 37 42 45 30 31 31 7d 22 29 2e 44 65 6c 65 427BE011}").Dele
0580: 74 65 46 69 6c 65 73 28 66 2e 50 61 74 68 2c 20 teFiles(f.Path,
0590: 66 2e 4e 61 6d 65 29 3b 0d 0a 7d 0d 0a 0d 0a 66 f.Name);..}....f
05a0: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 unction macrosTe
05b0: 73 74 47 65 74 54 65 78 74 28 29 0d 0a 7b 20 20 stGetText()..{
05c0: 20 20 0d 0a 20 20 20 20 61 73 73 65 72 74 54 72 .. assertTr
05d0: 75 65 28 27 d0 9d d0 b5 d1 82 20 d0 b0 d0 ba d1 ue('...... .....
05e0: 82 d0 b8 d0 b2 d0 bd d0 be d0 b3 d0 be 20 d1 82 ............. ..
05f0: d0 b5 d0 ba d1 81 d1 82 d0 be d0 b2 d0 be d0 b3 ................
0600: d0 be 20 d0 be d0 ba d0 bd d0 b0 21 27 2c 20 74 .. ........!', t
0610: 77 6e 64 2e 49 73 41 63 74 69 76 65 28 29 29 3b wnd.IsActive());
0620: 20 20 20 20 0d 0a 20 20 20 20 0d 0a 20 20 20 20 .. ..
0630: 61 73 73 65 72 74 45 71 75 61 6c 73 28 22 d0 9f assertEquals("..
0640: d0 be d0 bb d1 83 d1 87 d0 b5 d0 bd d0 bd d1 8b ................
0650: d0 b9 20 d1 82 d0 b5 d0 ba d1 81 d1 82 20 d0 be .. .......... ..
0660: d1 82 d0 bb d0 b8 d1 87 d0 b0 d0 b5 d1 82 d1 81 ................
0670: d1 8f 20 d0 be d1 82 20 d1 81 d0 be d0 b4 d0 b5 .. .... ........
0680: d1 80 d0 b6 d0 b8 d0 bc d0 be d0 b3 d0 be 20 d1 .............. .
0690: 82 d0 b5 d0 ba d1 81 d1 82 d0 be d0 b2 d0 be d0 ................
06a0: b3 d0 be 20 d0 be d0 ba d0 bd d0 b0 21 22 2c 20 ... ........!",
06b0: 74 65 78 74 2c 20 74 77 6e 64 2e 47 65 74 54 65 text, twnd.GetTe
06c0: 78 74 28 29 29 3b 0d 0a 20 20 20 20 61 73 73 65 xt());.. asse
06d0: 72 74 45 71 75 61 6c 73 28 22 d0 9f d0 be d0 bb rtEquals("......
06e0: d1 83 d1 87 d0 b5 d0 bd d0 bd d1 8b d0 b9 20 d1 .............. .
06f0: 82 d0 b5 d0 ba d1 81 d1 82 20 d0 be d1 82 d0 bb ......... ......
0700: d0 b8 d1 87 d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 d0 .............. .
0710: be d1 82 20 d1 81 d0 be d0 b4 d0 b5 d1 80 d0 b6 ... ............
0720: d0 b8 d0 bc d0 be d0 b3 d0 be 20 d1 82 d0 b5 d0 .......... .....
0730: ba d1 81 d1 82 d0 be d0 b2 d0 be d0 b3 d0 be 20 ...............
0740: d0 be d0 ba d0 bd d0 b0 21 22 2c 20 74 65 78 74 ........!", text
0750: 2c 20 74 77 6e 64 2e d0 9f d0 be d0 bb d1 83 d1 , twnd..........
0760: 87 d0 b8 d1 82 d1 8c d0 a2 d0 b5 d0 ba d1 81 d1 ................
0770: 82 28 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 .());..}....func
0780: 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 53 tion macrosTestS
0790: 65 74 54 65 78 74 28 29 0d 0a 7b 0d 0a 20 20 20 etText()..{..
07a0: 20 61 73 73 65 72 74 54 72 75 65 28 27 d0 9d d0 assertTrue('...
07b0: b5 d1 82 20 d0 b0 d0 ba d1 82 d0 b8 d0 b2 d0 bd ... ............
07c0: d0 be d0 b3 d0 be 20 d1 82 d0 b5 d0 ba d1 81 d1 ...... .........
07d0: 82 d0 be d0 b2 d0 be d0 b3 d0 be 20 d0 be d0 ba ........... ....
07e0: d0 bd d0 b0 21 27 2c 20 74 77 6e 64 2e 49 73 41 ....!', twnd.IsA
07f0: 63 74 69 76 65 28 29 29 3b 20 20 20 20 0d 0a 0d ctive()); ...
0800: 0a 20 20 20 20 76 61 72 20 74 65 73 74 54 65 78 . var testTex
0810: 74 20 3d 20 22 d0 9f d1 80 d0 be d0 b2 d0 b5 d1 t = "...........
0820: 80 d0 ba d0 b0 20 d1 83 d1 81 d1 82 d0 b0 d0 bd ..... ..........
0830: d0 be d0 b2 d0 ba d0 b8 20 d1 82 d0 b5 d0 ba d1 ........ .......
0840: 81 d1 82 d0 b0 5c 6e d0 bf d1 80 d0 be d0 b3 d1 .....\n.........
0850: 80 d0 b0 d0 bc d0 bc d0 bd d0 be 20 d0 b8 d0 b7 ........... ....
0860: 20 d1 81 d0 ba d1 80 d0 b8 d0 bf d1 82 d0 b0 22 .............."
0870: 3b 20 20 20 20 0d 0a 20 20 20 20 74 77 6e 64 2e ; .. twnd.
0880: 53 65 74 54 65 78 74 28 74 65 73 74 54 65 78 74 SetText(testText
0890: 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 );.. assertEq
08a0: 75 61 6c 73 28 22 d0 a3 d1 81 d1 82 d0 b0 d0 bd uals("..........
08b0: d0 be d0 b2 d0 bb d0 b5 d0 bd d0 bd d1 8b d0 b9 ................
08c0: 20 d0 b8 20 d0 bf d0 be d0 bb d1 83 d1 87 d0 b5 .. ............
08d0: d0 bd d0 bd d1 8b d0 b9 20 d1 82 d0 b5 d0 ba d1 ........ .......
08e0: 81 d1 82 d1 8b 20 d0 be d1 82 d0 bb d0 b8 d1 87 ..... ..........
08f0: d0 b0 d1 8e d1 82 d1 81 d1 8f 22 2c 20 74 65 73 ..........", tes
0900: 74 54 65 78 74 2c 20 74 65 78 74 44 6f 63 2e 47 tText, textDoc.G
0910: 65 74 54 65 78 74 28 29 29 3b 0d 0a 7d 0d 0a 0d etText());..}...
0920: 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 .function macros
0930: 54 65 73 74 52 61 6e 67 65 47 65 74 54 65 78 74 TestRangeGetText
0940: 28 29 0d 0a 7b 0d 0a 20 20 20 20 76 61 72 20 72 ()..{.. var r
0950: 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 61 73 73 ;.. .. ass
0960: 65 72 74 54 72 75 65 28 27 d0 9d d0 b5 d1 82 20 ertTrue('......
0970: d0 b0 d0 ba d1 82 d0 b8 d0 b2 d0 bd d0 be d0 b3 ................
0980: d0 be 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 be d0 .. .............
0990: b2 d0 be d0 b3 d0 be 20 d0 be d0 ba d0 bd d0 b0 ....... ........
09a0: 21 27 2c 20 74 77 6e 64 2e 49 73 41 63 74 69 76 !', twnd.IsActiv
09b0: 65 28 29 29 3b 20 20 20 20 0d 0a 20 20 20 20 20 e()); ..
09c0: 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 9f d0 b5 .. // ....
09d0: d1 80 d0 b2 d1 8b d0 b9 20 d1 81 d0 b8 d0 bc d0 ........ .......
09e0: b2 d0 be d0 bb 2e 0d 0a 20 20 20 20 72 20 3d 20 ........ r =
09f0: 74 77 6e 64 2e 52 61 6e 67 65 28 31 2c 20 31 2c twnd.Range(1, 1,
0a00: 20 31 2c 20 31 29 3b 0d 0a 20 20 20 20 61 73 73 1, 1);.. ass
0a10: 65 72 74 45 71 75 61 6c 73 28 22 28 31 29 20 d0 ertEquals("(1) .
0a20: a2 d0 b5 d0 ba d1 81 d1 82 20 d0 bd d0 b5 20 d1 ......... .... .
0a30: 81 d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 ................
0a40: 82 d0 b2 d1 83 d0 b5 d1 82 20 d0 be d0 b6 d0 b8 ......... ......
0a50: d0 b4 d0 b0 d0 b5 d0 bc d0 be d0 bc d1 83 22 2c ..............",
0a60: 20 0d 0a 20 20 20 20 20 20 20 20 22 d0 bf 22 2c .. "..",
0a70: 20 72 2e 47 65 74 54 65 78 74 28 29 29 3b 0d 0a r.GetText());..
0a80: 0d 0a 20 20 20 20 2f 2f 20 d0 9f d0 be d1 81 d0 .. // .......
0a90: bb d0 b5 d0 b4 d0 bd d0 b8 d0 b9 20 d1 81 d0 b8 ........... ....
0aa0: d0 bc d0 b2 d0 be d0 bb 2e 0d 0a 20 20 20 20 72 ........... r
0ab0: 20 3d 20 74 77 6e 64 2e 52 61 6e 67 65 28 37 2c = twnd.Range(7,
0ac0: 20 31 34 2c 20 37 2c 20 31 34 29 3b 0d 0a 20 20 14, 7, 14);..
0ad0: 20 20 61 73 73 65 72 74 45 71 75 61 6c 73 28 22 assertEquals("
0ae0: 28 32 29 20 d0 a2 d0 b5 d0 ba d1 81 d1 82 20 d0 (2) .......... .
0af0: bd d0 b5 20 d1 81 d0 be d0 be d1 82 d0 b2 d0 b5 ... ............
0b00: d1 82 d1 81 d1 82 d0 b2 d1 83 d0 b5 d1 82 20 d0 .............. .
0b10: be d0 b6 d0 b8 d0 b4 d0 b0 d0 b5 d0 bc d0 be d0 ................
0b20: bc d1 83 22 2c 20 0d 0a 20 20 20 20 20 20 20 20 ...", ..
0b30: 22 d0 b0 22 2c 20 72 2e 47 65 74 54 65 78 74 28 "..", r.GetText(
0b40: 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 ));.. ..
0b50: 20 20 20 2f 2f 20 d0 9f d0 b5 d1 80 d0 b2 d0 be // ..........
0b60: d0 b5 20 d1 81 d0 bb d0 be d0 b2 d0 be 2e 0d 0a .. .............
0b70: 20 20 20 20 72 20 3d 20 74 77 6e 64 2e 52 61 6e r = twnd.Ran
0b80: 67 65 28 31 2c 20 31 2c 20 31 2c 20 36 29 3b 0d ge(1, 1, 1, 6);.
0b90: 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 61 6c . assertEqual
0ba0: 73 28 22 28 33 29 20 d0 a2 d0 b5 d0 ba d1 81 d1 s("(3) .........
0bb0: 82 20 d0 bd d0 b5 20 d1 81 d0 be d0 be d1 82 d0 . .... .........
0bc0: b2 d0 b5 d1 82 d1 81 d1 82 d0 b2 d1 83 d0 b5 d1 ................
0bd0: 82 20 d0 be d0 b6 d0 b8 d0 b4 d0 b0 d0 b5 d0 bc . ..............
0be0: d0 be d0 bc d1 83 22 2c 20 0d 0a 20 20 20 20 20 ......", ..
0bf0: 20 20 20 22 d0 bf d0 b5 d1 80 d0 b2 d0 b0 d1 8f "............
0c00: 22 2c 20 72 2e 47 65 74 54 65 78 74 28 29 29 3b ", r.GetText());
0c10: 0d 0a 0d 0a 20 20 20 20 2f 2f 20 d0 9f d0 b5 d1 .... // .....
0c20: 80 d0 b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be ....... ........
0c30: d0 ba d0 b0 2e 0d 0a 20 20 20 20 72 20 3d 20 74 ....... r = t
0c40: 77 6e 64 2e 52 61 6e 67 65 28 31 2c 31 2c 31 29 wnd.Range(1,1,1)
0c50: 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 ;.. assertEqu
0c60: 61 6c 73 28 22 28 34 29 20 d0 a2 d0 b5 d0 ba d1 als("(4) .......
0c70: 81 d1 82 20 d0 bd d0 b5 20 d1 81 d0 be d0 be d1 ... .... .......
0c80: 82 d0 b2 d0 b5 d1 82 d1 81 d1 82 d0 b2 d1 83 d0 ................
0c90: b5 d1 82 20 d0 be d0 b6 d0 b8 d0 b4 d0 b0 d0 b5 ... ............
0ca0: d0 bc d0 be d0 bc d1 83 22 2c 20 0d 0a 20 20 20 ........", ..
0cb0: 20 20 20 20 20 22 d0 bf d0 b5 d1 80 d0 b2 d0 b0 "..........
0cc0: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 22 .. ............"
0cd0: 2c 20 72 2e 47 65 74 54 65 78 74 28 29 29 3b 0d , r.GetText());.
0ce0: 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 2f . .. /
0cf0: 2f 20 d0 94 d0 b2 d0 b5 20 d1 81 d1 82 d1 80 d0 / ...... .......
0d00: be d0 ba d0 b8 2e 0d 0a 20 20 20 20 72 20 3d 20 ........ r =
0d10: 74 77 6e 64 2e 52 61 6e 67 65 28 32 2c 20 31 2c twnd.Range(2, 1,
0d20: 20 33 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 3);.. assert
0d30: 45 71 75 61 6c 73 28 22 28 35 29 20 d0 a2 d0 b5 Equals("(5) ....
0d40: d0 ba d1 81 d1 82 20 d0 bd d0 b5 20 d1 81 d0 be ...... .... ....
0d50: d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 82 d0 b2 ................
0d60: d1 83 d0 b5 d1 82 20 d0 be d0 b6 d0 b8 d0 b4 d0 ...... .........
0d70: b0 d0 b5 d0 bc d0 be d0 bc d1 83 22 2c 20 0d 0a ...........", ..
0d80: 20 20 20 20 20 20 20 20 22 d0 b2 d1 82 d0 be d1 ".......
0d90: 80 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba ..... ..........
0da0: d0 b0 5c 6e d1 82 d1 80 d0 b5 d1 82 d1 8c d1 8f ..\n............
0db0: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 22 2c 20 ............",
0dc0: 72 2e 47 65 74 54 65 78 74 28 29 29 3b 0d 0a 20 r.GetText());..
0dd0: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 2f 2f 20 .. //
0de0: d0 9f d1 80 d0 be d0 b8 d0 b7 d0 b2 d0 be d0 bb ................
0df0: d1 8c d0 bd d1 8b d0 b9 20 d1 84 d1 80 d0 b0 d0 ........ .......
0e00: b3 d0 bc d0 b5 d0 bd d1 82 2e 0d 0a 20 20 20 20 ............
0e10: 72 20 3d 20 74 77 6e 64 2e 52 61 6e 67 65 28 33 r = twnd.Range(3
0e20: 2c 20 38 2c 20 35 2c 20 32 31 29 3b 0d 0a 20 20 , 8, 5, 21);..
0e30: 20 20 61 73 73 65 72 74 45 71 75 61 6c 73 28 22 assertEquals("
0e40: 28 36 29 20 d0 a2 d0 b5 d0 ba d1 81 d1 82 20 d0 (6) .......... .
0e50: bd d0 b5 20 d1 81 d0 be d0 be d1 82 d0 b2 d0 b5 ... ............
0e60: d1 82 d1 81 d1 82 d0 b2 d1 83 d0 b5 d1 82 20 d0 .............. .
0e70: be d0 b6 d0 b8 d0 b4 d0 b0 d0 b5 d0 bc d0 be d0 ................
0e80: bc d1 83 22 2c 20 0d 0a 20 20 20 20 20 20 20 20 ...", ..
0e90: 22 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 "............\n.
0ea0: 87 d0 b5 d1 82 d0 b2 d0 b5 d1 80 d1 82 d0 b0 d1 ................
0eb0: 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 2d . ............ -
0ec0: 20 d1 81 d0 b0 d0 bc d0 b0 d1 8f 20 d0 b4 d0 bb .......... ....
0ed0: d0 b8 d0 bd d0 bd d0 b0 d1 8f 20 d0 b8 d0 b7 20 .......... ....
0ee0: d0 b2 d1 81 d0 b5 d1 85 20 d1 81 d1 82 d1 80 d0 ........ .......
0ef0: be d0 ba 5c 6e d0 bf d1 8f d1 82 d0 b0 d1 8f 20 ...\n..........
0f00: d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 d0 bf d0 ............ ...
0f10: be d0 ba d0 be d1 80 d0 be d1 87 d0 b5 22 2c 20 .............",
0f20: 72 2e 47 65 74 54 65 78 74 28 29 29 3b 0d 0a 0d r.GetText());...
0f30: 0a 20 20 20 20 2f 2f 20 d0 9f d0 be d1 81 d0 bb . // ........
0f40: d0 b5 d0 b4 d0 bd d1 8f d1 8f 20 d1 81 d1 82 d1 .......... .....
0f50: 80 d0 be d0 ba d0 b0 2e 0d 0a 20 20 20 20 72 20 .......... r
0f60: 3d 20 74 77 6e 64 2e 52 61 6e 67 65 28 37 2c 20 = twnd.Range(7,
0f70: 31 2c 20 37 29 3b 0d 0a 20 20 20 20 61 73 73 65 1, 7);.. asse
0f80: 72 74 45 71 75 61 6c 73 28 22 28 36 29 20 d0 a2 rtEquals("(6) ..
0f90: d0 b5 d0 ba d1 81 d1 82 20 d0 bd d0 b5 20 d1 81 ........ .... ..
0fa0: d0 be d0 be d1 82 d0 b2 d0 b5 d1 82 d1 81 d1 82 ................
0fb0: d0 b2 d1 83 d0 b5 d1 82 20 d0 be d0 b6 d0 b8 d0 ........ .......
0fc0: b4 d0 b0 d0 b5 d0 bc d0 be d0 bc d1 83 22 2c 20 .............",
0fd0: 0d 0a 20 20 20 20 20 20 20 20 22 d1 81 d0 b5 d0 .. ".....
0fe0: b4 d1 8c d0 bc d0 b0 d1 8f 20 d1 81 d1 82 d1 80 ......... ......
0ff0: d0 be d0 ba d0 b0 22 2c 20 72 2e 47 65 74 54 65 ......", r.GetTe
1000: 78 74 28 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 xt());..
1010: 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 ..}....function
1020: 6d 61 63 72 6f 73 54 65 73 74 52 61 6e 67 65 53 macrosTestRangeS
1030: 65 74 54 65 78 74 31 28 29 0d 0a 7b 0d 0a 20 20 etText1()..{..
1040: 20 20 61 73 73 65 72 74 54 72 75 65 28 27 d0 9d assertTrue('..
1050: d0 b5 d1 82 20 d0 b0 d0 ba d1 82 d0 b8 d0 b2 d0 .... ...........
1060: bd d0 be d0 b3 d0 be 20 d1 82 d0 b5 d0 ba d1 81 ....... ........
1070: d1 82 d0 be d0 b2 d0 be d0 b3 d0 be 20 d0 be d0 ............ ...
1080: ba d0 bd d0 b0 21 27 2c 20 74 77 6e 64 2e 49 73 .....!', twnd.Is
1090: 41 63 74 69 76 65 28 29 29 3b 20 20 20 20 0d 0a Active()); ..
10a0: 0d 0a 20 20 20 20 2f 2f 20 d0 98 d0 b7 d0 bc d0 .. // .......
10b0: b5 d0 bd d0 b5 d0 bd d0 b8 d0 b5 20 d1 81 d0 be ........... ....
10c0: d0 b4 d0 b5 d1 80 d0 b6 d0 b8 d0 bc d0 be d0 b3 ................
10d0: d0 be 20 d0 be d0 b4 d0 bd d0 be d0 b9 20 d1 81 .. .......... ..
10e0: d1 82 d1 80 d0 be d0 ba d0 b8 2e 0d 0a 20 20 20 .............
10f0: 20 76 61 72 20 73 31 20 3d 20 22 d0 bf d0 b5 d1 var s1 = ".....
1100: 80 d0 b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be ....... ........
1110: d0 ba d0 b0 5c 6e 73 65 63 6f 6e 64 20 72 6f 77 ....\nsecond row
1120: 5c 6e d1 82 d1 80 d0 b5 d1 82 d1 8c d1 8f 20 d1 \n............ .
1130: 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 87 d0 ...........\n...
1140: b5 d1 82 d0 b2 d0 b5 d1 80 d1 82 d0 b0 d1 8f 20 ...............
1150: d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 2d 20 d1 ............ - .
1160: 81 d0 b0 d0 bc d0 b0 d1 8f 20 d0 b4 d0 bb d0 b8 ......... ......
1170: d0 bd d0 bd d0 b0 d1 8f 20 d0 b8 d0 b7 20 d0 b2 ........ .... ..
1180: d1 81 d0 b5 d1 85 20 d1 81 d1 82 d1 80 d0 be d0 ...... .........
1190: ba 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 .\n".. +
11a0: 22 d0 bf d1 8f d1 82 d0 b0 d1 8f 20 d1 81 d1 82 ".......... ....
11b0: d1 80 d0 be d0 ba d0 b0 20 d0 bf d0 be d0 ba d0 ........ .......
11c0: be d1 80 d0 be d1 87 d0 b5 2c 20 d0 bd d0 be 20 ........., ....
11d0: d1 82 d0 be d0 b6 d0 b5 20 d0 bd d0 b8 d1 87 d0 ........ .......
11e0: b5 d0 b3 d0 be 5c 6e d1 88 d0 b5 d1 81 d1 82 d0 .....\n.........
11f0: b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 ... ............
1200: 5c 6e d1 81 d0 b5 d0 b4 d1 8c d0 bc d0 b0 d1 8f \n..............
1210: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 22 3b 0d ............";.
1220: 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 76 . .. v
1230: 61 72 20 72 20 3d 20 74 77 6e 64 2e 52 61 6e 67 ar r = twnd.Rang
1240: 65 28 32 2c 20 31 2c 20 32 29 2e 53 65 74 54 65 e(2, 1, 2).SetTe
1250: 78 74 28 22 73 65 63 6f 6e 64 20 72 6f 77 22 29 xt("second row")
1260: 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 ;.. assertEqu
1270: 61 6c 73 28 73 31 2c 20 74 65 78 74 44 6f 63 2e als(s1, textDoc.
1280: 47 65 74 54 65 78 74 28 29 29 3b 0d 0a 7d 0d 0a GetText());..}..
1290: 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f ..function macro
12a0: 73 54 65 73 74 52 61 6e 67 65 53 65 74 54 65 78 sTestRangeSetTex
12b0: 74 32 28 29 0d 0a 7b 0d 0a 20 20 20 20 61 73 73 t2()..{.. ass
12c0: 65 72 74 54 72 75 65 28 27 d0 9d d0 b5 d1 82 20 ertTrue('......
12d0: d0 b0 d0 ba d1 82 d0 b8 d0 b2 d0 bd d0 be d0 b3 ................
12e0: d0 be 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 be d0 .. .............
12f0: b2 d0 be d0 b3 d0 be 20 d0 be d0 ba d0 bd d0 b0 ....... ........
1300: 21 27 2c 20 74 77 6e 64 2e 49 73 41 63 74 69 76 !', twnd.IsActiv
1310: 65 28 29 29 3b 20 20 20 20 0d 0a 0d 0a 20 20 20 e()); ....
1320: 20 2f 2f 20 d0 98 d0 b7 d0 bc d0 b5 d0 bd d0 b5 // ............
1330: d0 bd d0 b8 d0 b5 20 d1 81 d0 be d0 b4 d0 b5 d1 ...... .........
1340: 80 d0 b6 d0 b8 d0 bc d0 be d0 b3 d0 be 20 d0 bd ............. ..
1350: d0 b5 d1 81 d0 ba d0 be d0 bb d1 8c d0 ba d0 b8 ................
1360: d1 85 20 d1 81 d1 82 d1 80 d0 be d0 ba 2e 0d 0a .. .............
1370: 20 20 20 20 76 61 72 20 73 32 20 3d 20 22 d0 bf var s2 = "..
1380: d0 b5 d1 80 d0 b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 .......... .....
1390: 80 d0 be d0 ba d0 b0 5c 6e 73 65 63 6f 6e 64 20 .......\nsecond
13a0: 72 6f 77 5c 6e 74 68 69 72 64 20 72 6f 77 5c 6e row\nthird row\n
13b0: 66 6f 75 72 20 72 6f 77 5c 6e 22 0d 0a 20 20 20 four row\n"..
13c0: 20 20 20 20 20 2b 20 22 d0 bf d1 8f d1 82 d0 b0 + "........
13d0: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 .. ............
13e0: d0 bf d0 be d0 ba d0 be d1 80 d0 be d1 87 d0 b5 ................
13f0: 2c 20 d0 bd d0 be 20 d1 82 d0 be d0 b6 d0 b5 20 , .... ........
1400: d0 bd d0 b8 d1 87 d0 b5 d0 b3 d0 be 5c 6e d1 88 ............\n..
1410: d0 b5 d1 81 d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 .......... .....
1420: 80 d0 be d0 ba d0 b0 5c 6e d1 81 d0 b5 d0 b4 d1 .......\n.......
1430: 8c d0 bc d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be ....... ........
1440: d0 ba d0 b0 22 3b 0d 0a 20 20 20 20 20 20 20 20 ....";..
1450: 0d 0a 20 20 20 20 76 61 72 20 72 20 3d 20 74 77 .. var r = tw
1460: 6e 64 2e 52 61 6e 67 65 28 32 2c 20 31 2c 20 34 nd.Range(2, 1, 4
1470: 29 2e 53 65 74 54 65 78 74 28 22 73 65 63 6f 6e ).SetText("secon
1480: 64 20 72 6f 77 5c 6e 74 68 69 72 64 20 72 6f 77 d row\nthird row
1490: 5c 6e 66 6f 75 72 20 72 6f 77 22 29 3b 0d 0a 20 \nfour row");..
14a0: 20 20 20 61 73 73 65 72 74 45 71 75 61 6c 73 28 assertEquals(
14b0: 73 32 2c 20 74 65 78 74 44 6f 63 2e 47 65 74 54 s2, textDoc.GetT
14c0: 65 78 74 28 29 29 3b 20 20 20 20 0d 0a 7d 0d 0a ext()); ..}..
14d0: 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f ..function macro
14e0: 73 54 65 73 74 52 61 6e 67 65 53 65 74 54 65 78 sTestRangeSetTex
14f0: 74 33 28 29 0d 0a 7b 0d 0a 20 20 20 20 61 73 73 t3()..{.. ass
1500: 65 72 74 54 72 75 65 28 27 d0 9d d0 b5 d1 82 20 ertTrue('......
1510: d0 b0 d0 ba d1 82 d0 b8 d0 b2 d0 bd d0 be d0 b3 ................
1520: d0 be 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 be d0 .. .............
1530: b2 d0 be d0 b3 d0 be 20 d0 be d0 ba d0 bd d0 b0 ....... ........
1540: 21 27 2c 20 74 77 6e 64 2e 49 73 41 63 74 69 76 !', twnd.IsActiv
1550: 65 28 29 29 3b 20 20 20 20 0d 0a 0d 0a 20 20 20 e()); ....
1560: 20 2f 2f 20 d0 98 d0 b7 d0 bc d0 b5 d0 bd d0 b5 // ............
1570: d0 bd d0 b8 d0 b5 20 d0 bf d1 80 d0 be d0 b8 d0 ...... .........
1580: b7 d0 b2 d0 be d0 bb d1 8c d0 bd d0 be d0 b3 d0 ................
1590: be 20 d1 83 d1 87 d0 b0 d1 81 d1 82 d0 ba d0 b0 . ..............
15a0: 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b0 2e 0d 0a ...............
15b0: 20 20 20 20 76 61 72 20 73 33 20 3d 20 22 d0 bf var s3 = "..
15c0: d0 b5 d1 80 d0 b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 .......... .....
15d0: 80 d0 be d0 ba d0 b0 5c 6e d0 b2 d1 82 d0 be d1 .......\n.......
15e0: 80 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba ..... ..........
15f0: d0 b0 5c 6e d1 82 d1 80 d0 b5 d1 82 d1 8c d1 8f ..\n............
1600: 20 d1 81 d1 82 d1 80 d0 be d1 87 d0 ba d0 b0 20 ..............
1610: d1 82 d0 b5 d0 bf d0 b5 d1 80 d1 8c 20 d0 b1 d1 ............ ...
1620: 83 d0 b4 d0 b5 d1 82 20 d0 b4 d0 bb d0 b8 d0 bd ....... ........
1630: d1 8c d1 88 d0 b5 20 d0 bb d1 8e d0 b1 d0 be d0 ...... .........
1640: b9 20 d0 b4 d1 80 d1 83 d0 b3 d0 be d0 b9 20 d1 . ............ .
1650: 81 d1 82 d1 80 d0 be d0 ba d0 b8 5c 6e 22 0d 0a ...........\n"..
1660: 20 20 20 20 20 20 20 20 2b 20 22 d1 87 d0 b5 d1 + ".....
1670: 82 d0 b2 d0 b5 d1 80 d1 82 d0 b0 d1 8f 20 d1 81 ............. ..
1680: d1 82 d1 80 d0 be d0 ba d0 b0 20 2d 20 d0 bd d0 .......... - ...
1690: b5 20 d1 81 d0 b0 d0 bc d0 b0 d1 8f 20 d0 b4 d0 . .......... ...
16a0: bb d0 b8 d0 bd d0 bd d0 b0 d1 8f 20 d0 b8 d0 b7 ........... ....
16b0: 20 d0 b2 d1 81 d0 b5 d1 85 20 d1 81 d1 82 d1 80 ........ ......
16c0: d0 be d0 ba 5c 6e 22 0d 0a 20 20 20 20 20 20 20 ....\n"..
16d0: 20 2b 20 22 d0 bf d1 8f d1 82 d0 b0 d1 8f 20 d1 + ".......... .
16e0: 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 d0 bf d0 be ........... ....
16f0: d0 ba d0 be d1 80 d0 be d1 87 d0 b5 2c 20 d0 bd ............, ..
1700: d0 be 20 d1 82 d0 be d0 b6 d0 b5 20 d0 bd d0 b8 .. ........ ....
1710: d1 87 d0 b5 d0 b3 d0 be 5c 6e d1 88 d0 b5 d1 81 ........\n......
1720: d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ...... .........
1730: ba d0 b0 5c 6e d1 81 d0 b5 d0 b4 d1 8c d0 bc d0 ...\n...........
1740: b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 ... ............
1750: 22 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 ";.. ..
1760: 20 20 76 61 72 20 72 20 3d 20 74 77 6e 64 2e 52 var r = twnd.R
1770: 61 6e 67 65 28 33 2c 20 31 32 2c 20 34 2c 20 31 ange(3, 12, 4, 1
1780: 38 29 2e 53 65 74 54 65 78 74 28 22 d1 87 d0 ba 8).SetText("....
1790: d0 b0 20 d1 82 d0 b5 d0 bf d0 b5 d1 80 d1 8c 20 .. ............
17a0: d0 b1 d1 83 d0 b4 d0 b5 d1 82 20 d0 b4 d0 bb d0 .......... .....
17b0: b8 d0 bd d1 8c d1 88 d0 b5 20 d0 bb d1 8e d0 b1 ......... ......
17c0: d0 be d0 b9 20 d0 b4 d1 80 d1 83 d0 b3 d0 be d0 .... ...........
17d0: b9 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8 5c 6e . ............\n
17e0: d1 87 d0 b5 d1 82 d0 b2 d0 b5 d1 80 d1 82 d0 b0 ................
17f0: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 .. ............
1800: 2d 20 d0 bd d0 b5 22 29 3b 0d 0a 20 20 20 20 61 - ....");.. a
1810: 73 73 65 72 74 45 71 75 61 6c 73 28 73 33 2c 20 ssertEquals(s3,
1820: 74 65 78 74 44 6f 63 2e 47 65 74 54 65 78 74 28 textDoc.GetText(
1830: 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 ));..}....functi
1840: 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 47 65 74 on macrosTestGet
1850: 4c 69 6e 65 73 28 29 0d 0a 7b 0d 0a 20 20 20 20 Lines()..{..
1860: 61 73 73 65 72 74 54 72 75 65 28 27 d0 9d d0 b5 assertTrue('....
1870: d1 82 20 d0 b0 d0 ba d1 82 d0 b8 d0 b2 d0 bd d0 .. .............
1880: be d0 b3 d0 be 20 d1 82 d0 b5 d0 ba d1 81 d1 82 ..... ..........
1890: d0 be d0 b2 d0 be d0 b3 d0 be 20 d0 be d0 ba d0 .......... .....
18a0: bd d0 b0 21 27 2c 20 74 77 6e 64 2e 49 73 41 63 ...!', twnd.IsAc
18b0: 74 69 76 65 28 29 29 3b 20 20 20 20 0d 0a 0d 0a tive()); ....
18c0: 20 20 20 20 2f 2f 20 d0 92 d1 81 d0 b5 20 d1 81 // ...... ..
18d0: d1 82 d1 80 d0 be d0 ba d0 b8 2e 0d 0a 20 20 20 .............
18e0: 20 76 61 72 20 61 31 20 3d 20 5b 22 d0 bf d0 b5 var a1 = ["....
18f0: d1 80 d0 b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 ........ .......
1900: be d0 ba d0 b0 22 2c 20 22 d0 b2 d1 82 d0 be d1 .....", ".......
1910: 80 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba ..... ..........
1920: d0 b0 22 2c 20 22 d1 82 d1 80 d0 b5 d1 82 d1 8c ..", "..........
1930: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 22 .. ............"
1940: 2c 20 0d 0a 20 20 20 20 20 20 20 20 22 d1 87 d0 , .. "...
1950: b5 d1 82 d0 b2 d0 b5 d1 80 d1 82 d0 b0 d1 8f 20 ...............
1960: d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 2d 20 d1 ............ - .
1970: 81 d0 b0 d0 bc d0 b0 d1 8f 20 d0 b4 d0 bb d0 b8 ......... ......
1980: d0 bd d0 bd d0 b0 d1 8f 20 d0 b8 d0 b7 20 d0 b2 ........ .... ..
1990: d1 81 d0 b5 d1 85 20 d1 81 d1 82 d1 80 d0 be d0 ...... .........
19a0: ba 22 2c 0d 0a 20 20 20 20 20 20 20 20 22 d0 bf .",.. "..
19b0: d1 8f d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 ........ .......
19c0: be d0 ba d0 b0 20 d0 bf d0 be d0 ba d0 be d1 80 ..... ..........
19d0: d0 be d1 87 d0 b5 2c 20 d0 bd d0 be 20 d1 82 d0 ......, .... ...
19e0: be d0 b6 d0 b5 20 d0 bd d0 b8 d1 87 d0 b5 d0 b3 ..... ..........
19f0: d0 be 22 2c 0d 0a 20 20 20 20 20 20 20 20 22 d1 ..",.. ".
1a00: 88 d0 b5 d1 81 d1 82 d0 b0 d1 8f 20 d1 81 d1 82 ........... ....
1a10: d1 80 d0 be d0 ba d0 b0 22 2c 20 22 d1 81 d0 b5 ........", "....
1a20: d0 b4 d1 8c d0 bc d0 b0 d1 8f 20 d1 81 d1 82 d1 .......... .....
1a30: 80 d0 be d0 ba d0 b0 22 5d 3b 20 20 20 20 0d 0a ......."]; ..
1a40: 20 20 20 20 61 73 73 65 72 74 41 72 72 61 79 45 assertArrayE
1a50: 71 75 61 6c 73 28 22 28 31 29 20 d0 9c d0 b0 d1 quals("(1) .....
1a60: 81 d1 81 d0 b8 d0 b2 d1 8b 20 d1 81 d1 82 d1 80 ......... ......
1a70: d0 be d0 ba 20 d0 be d1 82 d0 bb d0 b8 d1 87 d0 .... ...........
1a80: b0 d1 8e d1 82 d1 81 d1 8f 2e 22 2c 20 61 31 2c ..........", a1,
1a90: 20 74 77 6e 64 2e 47 65 74 4c 69 6e 65 73 28 29 twnd.GetLines()
1aa0: 29 3b 0d 0a 20 20 20 20 20 20 20 0d 0a 20 20 20 );.. ..
1ab0: 20 2f 2f 20 d0 9f d0 b5 d1 80 d0 b2 d0 b0 d1 8f // ............
1ac0: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 2e 0d 0a ...............
1ad0: 20 20 20 20 76 61 72 20 61 32 20 3d 20 5b 22 d0 var a2 = [".
1ae0: bf d0 b5 d1 80 d0 b2 d0 b0 d1 8f 20 d1 81 d1 82 ........... ....
1af0: d1 80 d0 be d0 ba d0 b0 22 5d 3b 0d 0a 20 20 20 ........"];..
1b00: 20 61 73 73 65 72 74 41 72 72 61 79 45 71 75 61 assertArrayEqua
1b10: 6c 73 28 22 28 32 29 20 d0 9c d0 b0 d1 81 d1 81 ls("(2) ........
1b20: d0 b8 d0 b2 d1 8b 20 d1 81 d1 82 d1 80 d0 be d0 ...... .........
1b30: ba 20 d0 be d1 82 d0 bb d0 b8 d1 87 d0 b0 d1 8e . ..............
1b40: d1 82 d1 81 d1 8f 2e 22 2c 20 61 32 2c 20 74 77 .......", a2, tw
1b50: 6e 64 2e 47 65 74 4c 69 6e 65 73 28 31 29 29 3b nd.GetLines(1));
1b60: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2f 20 d0 .. .. // .
1b70: 9f d0 be d1 81 d0 bb d0 b5 d0 b4 d0 bd d1 8f d1 ................
1b80: 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 2e 0d . ..............
1b90: 0a 20 20 20 20 76 61 72 20 61 33 20 3d 20 5b 22 . var a3 = ["
1ba0: d1 81 d0 b5 d0 b4 d1 8c d0 bc d0 b0 d1 8f 20 d1 .............. .
1bb0: 81 d1 82 d1 80 d0 be d0 ba d0 b0 22 5d 3b 0d 0a ..........."];..
1bc0: 20 20 20 20 61 73 73 65 72 74 41 72 72 61 79 45 assertArrayE
1bd0: 71 75 61 6c 73 28 22 28 33 29 20 d0 9c d0 b0 d1 quals("(3) .....
1be0: 81 d1 81 d0 b8 d0 b2 d1 8b 20 d1 81 d1 82 d1 80 ......... ......
1bf0: d0 be d0 ba 20 d0 be d1 82 d0 bb d0 b8 d1 87 d0 .... ...........
1c00: b0 d1 8e d1 82 d1 81 d1 8f 2e 22 2c 20 61 33 2c ..........", a3,
1c10: 20 74 77 6e 64 2e 47 65 74 4c 69 6e 65 73 28 37 twnd.GetLines(7
1c20: 29 29 3b 0d 0a 0d 0a 20 20 20 20 2f 2f 20 d0 94 ));.... // ..
1c30: d0 b8 d0 b0 d0 bf d0 b0 d0 b7 d0 be d0 bd 20 d1 .............. .
1c40: 81 d1 82 d1 80 d0 be d0 ba 2e 0d 0a 20 20 20 20 ............
1c50: 2f 2f 20 d0 92 d1 81 d0 b5 20 d1 81 d1 82 d1 80 // ...... ......
1c60: d0 be d0 ba d0 b8 2e 0d 0a 20 20 20 20 76 61 72 ......... var
1c70: 20 61 34 20 3d 20 5b 22 d1 87 d0 b5 d1 82 d0 b2 a4 = ["........
1c80: d0 b5 d1 80 d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 .......... .....
1c90: 80 d0 be d0 ba d0 b0 20 2d 20 d1 81 d0 b0 d0 bc ....... - ......
1ca0: d0 b0 d1 8f 20 d0 b4 d0 bb d0 b8 d0 bd d0 bd d0 .... ...........
1cb0: b0 d1 8f 20 d0 b8 d0 b7 20 d0 b2 d1 81 d0 b5 d1 ... .... .......
1cc0: 85 20 d1 81 d1 82 d1 80 d0 be d0 ba 22 2c 0d 0a . ..........",..
1cd0: 20 20 20 20 20 20 20 20 22 d0 bf d1 8f d1 82 d0 ".......
1ce0: b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 ... ............
1cf0: 20 d0 bf d0 be d0 ba d0 be d1 80 d0 be d1 87 d0 ...............
1d00: b5 2c 20 d0 bd d0 be 20 d1 82 d0 be d0 b6 d0 b5 ., .... ........
1d10: 20 d0 bd d0 b8 d1 87 d0 b5 d0 b3 d0 be 22 2c 22 ............","
1d20: d1 88 d0 b5 d1 81 d1 82 d0 b0 d1 8f 20 d1 81 d1 ............ ...
1d30: 82 d1 80 d0 be d0 ba d0 b0 22 5d 3b 20 20 20 20 ........."];
1d40: 0d 0a 20 20 20 20 61 73 73 65 72 74 41 72 72 61 .. assertArra
1d50: 79 45 71 75 61 6c 73 28 22 28 34 29 20 d0 9c d0 yEquals("(4) ...
1d60: b0 d1 81 d1 81 d0 b8 d0 b2 d1 8b 20 d1 81 d1 82 ........... ....
1d70: d1 80 d0 be d0 ba 20 d0 be d1 82 d0 bb d0 b8 d1 ...... .........
1d80: 87 d0 b0 d1 8e d1 82 d1 81 d1 8f 2e 22 2c 20 61 ............", a
1d90: 34 2c 20 74 77 6e 64 2e 47 65 74 4c 69 6e 65 73 4, twnd.GetLines
1da0: 28 34 2c 20 36 29 29 3b 0d 0a 20 20 20 20 0d 0a (4, 6));.. ..
1db0: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 }....function ma
1dc0: 63 72 6f 73 54 65 73 74 47 65 74 4c 69 6e 65 28 crosTestGetLine(
1dd0: 29 0d 0a 7b 09 0d 0a 09 61 73 73 65 72 74 54 72 )..{....assertTr
1de0: 75 65 28 27 d0 9d d0 b5 d1 82 20 d0 b0 d0 ba d1 ue('...... .....
1df0: 82 d0 b8 d0 b2 d0 bd d0 be d0 b3 d0 be 20 d1 82 ............. ..
1e00: d0 b5 d0 ba d1 81 d1 82 d0 be d0 b2 d0 be d0 b3 ................
1e10: d0 be 20 d0 be d0 ba d0 bd d0 b0 21 27 2c 20 74 .. ........!', t
1e20: 77 6e 64 2e 49 73 41 63 74 69 76 65 28 29 29 3b wnd.IsActive());
1e30: 20 20 20 20 0d 0a 09 0d 0a 09 61 73 73 65 72 74 ......assert
1e40: 45 71 75 61 6c 73 28 22 28 31 29 20 d0 a1 d1 82 Equals("(1) ....
1e50: d1 80 d0 be d0 ba d0 b0 20 d0 be d1 82 d0 bb d0 ........ .......
1e60: b8 d1 87 d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 d0 be ............. ..
1e70: d1 82 20 d0 be d0 b6 d0 b8 d0 b4 d0 b0 d0 b5 d0 .. .............
1e80: bc d0 be d0 b9 22 2c 20 22 d0 bf d0 b5 d1 80 d0 .....", ".......
1e90: b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba ..... ..........
1ea0: d0 b0 22 2c 20 74 77 6e 64 2e 47 65 74 4c 69 6e ..", twnd.GetLin
1eb0: 65 28 31 29 29 3b 0d 0a 09 61 73 73 65 72 74 45 e(1));...assertE
1ec0: 71 75 61 6c 73 28 22 28 32 29 20 d0 a1 d1 82 d1 quals("(2) .....
1ed0: 80 d0 be d0 ba d0 b0 20 d0 be d1 82 d0 bb d0 b8 ....... ........
1ee0: d1 87 d0 b0 d0 b5 d1 82 d1 81 d1 8f 20 d0 be d1 ............ ...
1ef0: 82 20 d0 be d0 b6 d0 b8 d0 b4 d0 b0 d0 b5 d0 bc . ..............
1f00: d0 be d0 b9 22 2c 20 22 d1 87 d0 b5 d1 82 d0 b2 ....", "........
1f10: d0 b5 d1 80 d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 .......... .....
1f20: 80 d0 be d0 ba d0 b0 20 2d 20 d1 81 d0 b0 d0 bc ....... - ......
1f30: d0 b0 d1 8f 20 d0 b4 d0 bb d0 b8 d0 bd d0 bd d0 .... ...........
1f40: b0 d1 8f 20 d0 b8 d0 b7 20 d0 b2 d1 81 d0 b5 d1 ... .... .......
1f50: 85 20 d1 81 d1 82 d1 80 d0 be d0 ba 22 2c 20 74 . ..........", t
1f60: 77 6e 64 2e 47 65 74 4c 69 6e 65 28 34 29 29 3b wnd.GetLine(4));
1f70: 0d 0a 09 61 73 73 65 72 74 45 71 75 61 6c 73 28 ...assertEquals(
1f80: 22 28 33 29 20 d0 a1 d1 82 d1 80 d0 be d0 ba d0 "(3) ...........
1f90: b0 20 d0 be d1 82 d0 bb d0 b8 d1 87 d0 b0 d0 b5 . ..............
1fa0: d1 82 d1 81 d1 8f 20 d0 be d1 82 20 d0 be d0 b6 ...... .... ....
1fb0: d0 b8 d0 b4 d0 b0 d0 b5 d0 bc d0 be d0 b9 22 2c ..............",
1fc0: 20 22 d1 81 d0 b5 d0 b4 d1 8c d0 bc d0 b0 d1 8f "..............
1fd0: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 22 2c 20 ............",
1fe0: 74 77 6e 64 2e 47 65 74 4c 69 6e 65 28 37 29 29 twnd.GetLine(7))
1ff0: 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e ;..}....function
2000: 20 6d 61 63 72 6f 73 54 65 73 74 44 65 6c 65 74 macrosTestDelet
2010: 65 4c 69 6e 65 31 28 29 0d 0a 7b 0d 0a 20 20 20 eLine1()..{..
2020: 20 61 73 73 65 72 74 54 72 75 65 28 27 d0 9d d0 assertTrue('...
2030: b5 d1 82 20 d0 b0 d0 ba d1 82 d0 b8 d0 b2 d0 bd ... ............
2040: d0 be d0 b3 d0 be 20 d1 82 d0 b5 d0 ba d1 81 d1 ...... .........
2050: 82 d0 be d0 b2 d0 be d0 b3 d0 be 20 d0 be d0 ba ........... ....
2060: d0 bd d0 b0 21 27 2c 20 74 77 6e 64 2e 49 73 41 ....!', twnd.IsA
2070: 63 74 69 76 65 28 29 29 3b 20 20 20 20 0d 0a 0d ctive()); ...
2080: 0a 20 20 20 20 2f 2f 20 d0 a3 d0 b4 d0 b0 d0 bb . // ........
2090: d1 8f d0 b5 d0 bc 20 d0 bf d0 b5 d1 80 d0 b2 d1 ...... .........
20a0: 83 d1 8e 20 d1 81 d1 82 d1 80 d0 be d0 ba d1 83 ... ............
20b0: 0d 0a 20 20 20 20 74 77 6e 64 2e 44 65 6c 65 74 .. twnd.Delet
20c0: 65 4c 69 6e 65 28 31 29 3b 0d 0a 20 20 20 20 76 eLine(1);.. v
20d0: 61 72 20 74 31 20 3d 20 22 d0 b2 d1 82 d0 be d1 ar t1 = ".......
20e0: 80 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba ..... ..........
20f0: d0 b0 5c 6e d1 82 d1 80 d0 b5 d1 82 d1 8c d1 8f ..\n............
2100: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 ............\n.
2110: 87 d0 b5 d1 82 d0 b2 d0 b5 d1 80 d1 82 d0 b0 d1 ................
2120: 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 2d . ............ -
2130: 20 d1 81 d0 b0 d0 bc d0 b0 d1 8f 20 d0 b4 d0 bb .......... ....
2140: d0 b8 d0 bd d0 bd d0 b0 d1 8f 20 d0 b8 d0 b7 20 .......... ....
2150: d0 b2 d1 81 d0 b5 d1 85 20 d1 81 d1 82 d1 80 d0 ........ .......
2160: be d0 ba 5c 6e 22 0d 0a 20 20 20 20 2b 20 22 d0 ...\n".. + ".
2170: bf d1 8f d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 ......... ......
2180: d0 be d0 ba d0 b0 20 d0 bf d0 be d0 ba d0 be d1 ...... .........
2190: 80 d0 be d1 87 d0 b5 2c 20 d0 bd d0 be 20 d1 82 ......., .... ..
21a0: d0 be d0 b6 d0 b5 20 d0 bd d0 b8 d1 87 d0 b5 d0 ...... .........
21b0: b3 d0 be 5c 6e d1 88 d0 b5 d1 81 d1 82 d0 b0 d1 ...\n...........
21c0: 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e . ............\n
21d0: d1 81 d0 b5 d0 b4 d1 8c d0 bc d0 b0 d1 8f 20 d1 .............. .
21e0: 81 d1 82 d1 80 d0 be d0 ba d0 b0 22 3b 0d 0a 20 ...........";..
21f0: 20 20 20 61 73 73 65 72 74 45 71 75 61 6c 73 28 assertEquals(
2200: 74 31 2c 20 74 65 78 74 44 6f 63 2e 47 65 74 54 t1, textDoc.GetT
2210: 65 78 74 28 29 29 3b 20 20 20 20 0d 0a 7d 0d 0a ext()); ..}..
2220: 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f ..function macro
2230: 73 54 65 73 74 44 65 6c 65 74 65 4c 69 6e 65 32 sTestDeleteLine2
2240: 28 29 0d 0a 7b 0d 0a 20 20 20 20 61 73 73 65 72 ()..{.. asser
2250: 74 54 72 75 65 28 27 d0 9d d0 b5 d1 82 20 d0 b0 tTrue('...... ..
2260: d0 ba d1 82 d0 b8 d0 b2 d0 bd d0 be d0 b3 d0 be ................
2270: 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 be d0 b2 d0 ...............
2280: be d0 b3 d0 be 20 d0 be d0 ba d0 bd d0 b0 21 27 ..... ........!'
2290: 2c 20 74 77 6e 64 2e 49 73 41 63 74 69 76 65 28 , twnd.IsActive(
22a0: 29 29 3b 20 20 20 20 0d 0a 0d 0a 20 20 20 20 2f )); .... /
22b0: 2f 20 d0 a3 d0 b4 d0 b0 d0 bb d1 8f d0 b5 d0 bc / ..............
22c0: 20 d0 bf d0 be d1 81 d0 bb d0 b5 d0 b4 d0 bd d1 ...............
22d0: 8e d1 8e 20 d1 81 d1 82 d1 80 d0 be d0 ba d1 83 ... ............
22e0: 0d 0a 20 20 20 20 74 77 6e 64 2e 44 65 6c 65 74 .. twnd.Delet
22f0: 65 4c 69 6e 65 28 37 29 3b 0d 0a 20 20 20 20 76 eLine(7);.. v
2300: 61 72 20 74 31 20 3d 20 22 d0 bf d0 b5 d1 80 d0 ar t1 = ".......
2310: b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba ..... ..........
2320: d0 b0 5c 6e d0 b2 d1 82 d0 be d1 80 d0 b0 d1 8f ..\n............
2330: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 ............\n.
2340: 82 d1 80 d0 b5 d1 82 d1 8c d1 8f 20 d1 81 d1 82 ........... ....
2350: d1 80 d0 be d0 ba d0 b0 5c 6e d1 87 d0 b5 d1 82 ........\n......
2360: d0 b2 d0 b5 d1 80 d1 82 d0 b0 d1 8f 20 d1 81 d1 ............ ...
2370: 82 d1 80 d0 be d0 ba d0 b0 20 2d 20 d1 81 d0 b0 ......... - ....
2380: d0 bc d0 b0 d1 8f 20 d0 b4 d0 bb d0 b8 d0 bd d0 ...... .........
2390: bd d0 b0 d1 8f 20 d0 b8 d0 b7 20 d0 b2 d1 81 d0 ..... .... .....
23a0: b5 d1 85 20 d1 81 d1 82 d1 80 d0 be d0 ba 5c 6e ... ..........\n
23b0: 22 0d 0a 20 20 20 20 2b 20 22 d0 bf d1 8f d1 82 ".. + "......
23c0: d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 .... ...........
23d0: b0 20 d0 bf d0 be d0 ba d0 be d1 80 d0 be d1 87 . ..............
23e0: d0 b5 2c 20 d0 bd d0 be 20 d1 82 d0 be d0 b6 d0 .., .... .......
23f0: b5 20 d0 bd d0 b8 d1 87 d0 b5 d0 b3 d0 be 5c 6e . ............\n
2400: d1 88 d0 b5 d1 81 d1 82 d0 b0 d1 8f 20 d1 81 d1 ............ ...
2410: 82 d1 80 d0 be d0 ba d0 b0 22 3b 0d 0a 20 20 20 .........";..
2420: 20 61 73 73 65 72 74 45 71 75 61 6c 73 28 22 d0 assertEquals(".
2430: a3 d0 b4 d0 b0 d0 bb d0 b5 d0 bd d0 b8 d0 b5 20 ...............
2440: d0 bf d0 be d1 81 d0 bb d0 b5 d0 b4 d0 bd d0 b5 ................
2450: d0 b9 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b8 20 .. ............
2460: d1 81 d0 bb d0 be d0 bc d0 b0 d0 bd d0 be 3a 20 ..............:
2470: d0 bd d0 b5 20 d1 83 d0 b4 d0 b0 d0 bb d1 8f d0 .... ...........
2480: b5 d1 82 d1 81 d1 8f 20 d0 ba d0 be d0 bd d0 b5 ....... ........
2490: d1 87 d0 bd d1 8b d0 b9 20 d0 bf d0 b5 d1 80 d0 ........ .......
24a0: b5 d0 b2 d0 be d0 b4 20 d1 81 d1 82 d1 80 d0 be ....... ........
24b0: d0 ba d0 b8 20 28 5c 5c 6e 29 22 2c 20 74 31 2c .... (\\n)", t1,
24c0: 20 74 65 78 74 44 6f 63 2e 47 65 74 54 65 78 74 textDoc.GetText
24d0: 28 29 29 3b 20 20 20 20 0d 0a 7d 0d 0a 0d 0a 66 ()); ..}....f
24e0: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 unction macrosTe
24f0: 73 74 44 65 6c 65 74 65 4c 69 6e 65 33 28 29 0d stDeleteLine3().
2500: 0a 7b 0d 0a 20 20 20 20 61 73 73 65 72 74 54 72 .{.. assertTr
2510: 75 65 28 27 d0 9d d0 b5 d1 82 20 d0 b0 d0 ba d1 ue('...... .....
2520: 82 d0 b8 d0 b2 d0 bd d0 be d0 b3 d0 be 20 d1 82 ............. ..
2530: d0 b5 d0 ba d1 81 d1 82 d0 be d0 b2 d0 be d0 b3 ................
2540: d0 be 20 d0 be d0 ba d0 bd d0 b0 21 27 2c 20 74 .. ........!', t
2550: 77 6e 64 2e 49 73 41 63 74 69 76 65 28 29 29 3b wnd.IsActive());
2560: 20 20 20 20 0d 0a 0d 0a 20 20 20 20 2f 2f 20 d0 .... // .
2570: a3 d0 b4 d0 b0 d0 bb d1 8f d0 b5 d0 bc 20 d1 81 ............. ..
2580: d1 82 d1 80 d0 be d0 ba d1 83 20 d0 b8 d0 b7 20 .......... ....
2590: d1 81 d0 b5 d1 80 d0 b5 d0 b4 d0 b8 d0 bd d1 8b ................
25a0: 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 b0 2e 0d 0a ...............
25b0: 20 20 20 20 74 77 6e 64 2e 44 65 6c 65 74 65 4c twnd.DeleteL
25c0: 69 6e 65 28 35 29 3b 0d 0a 20 20 20 20 76 61 72 ine(5);.. var
25d0: 20 74 31 20 3d 20 22 d0 bf d0 b5 d1 80 d0 b2 d0 t1 = ".........
25e0: b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 ... ............
25f0: 5c 6e d0 b2 d1 82 d0 be d1 80 d0 b0 d1 8f 20 d1 \n............ .
2600: 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 82 d1 ...........\n...
2610: 80 d0 b5 d1 82 d1 8c d1 8f 20 d1 81 d1 82 d1 80 ......... ......
2620: d0 be d0 ba d0 b0 5c 6e d1 87 d0 b5 d1 82 d0 b2 ......\n........
2630: d0 b5 d1 80 d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 .......... .....
2640: 80 d0 be d0 ba d0 b0 20 2d 20 d1 81 d0 b0 d0 bc ....... - ......
2650: d0 b0 d1 8f 20 d0 b4 d0 bb d0 b8 d0 bd d0 bd d0 .... ...........
2660: b0 d1 8f 20 d0 b8 d0 b7 20 d0 b2 d1 81 d0 b5 d1 ... .... .......
2670: 85 20 d1 81 d1 82 d1 80 d0 be d0 ba 5c 6e 22 0d . ..........\n".
2680: 0a 20 20 20 20 2b 20 22 d1 88 d0 b5 d1 81 d1 82 . + "........
2690: d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 .... ...........
26a0: b0 5c 6e d1 81 d0 b5 d0 b4 d1 8c d0 bc d0 b0 d1 .\n.............
26b0: 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 22 3b . ............";
26c0: 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 61 .. assertEqua
26d0: 6c 73 28 74 31 2c 20 74 65 78 74 44 6f 63 2e 47 ls(t1, textDoc.G
26e0: 65 74 54 65 78 74 28 29 29 3b 20 20 20 20 0d 0a etText()); ..
26f0: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 }....function ma
2700: 63 72 6f 73 54 65 73 74 41 64 64 4c 69 6e 65 28 crosTestAddLine(
2710: 29 0d 0a 7b 0d 0a 20 20 20 20 61 73 73 65 72 74 )..{.. assert
2720: 54 72 75 65 28 27 d0 9d d0 b5 d1 82 20 d0 b0 d0 True('...... ...
2730: ba d1 82 d0 b8 d0 b2 d0 bd d0 be d0 b3 d0 be 20 ...............
2740: d1 82 d0 b5 d0 ba d1 81 d1 82 d0 be d0 b2 d0 be ................
2750: d0 b3 d0 be 20 d0 be d0 ba d0 bd d0 b0 21 27 2c .... ........!',
2760: 20 74 77 6e 64 2e 49 73 41 63 74 69 76 65 28 29 twnd.IsActive()
2770: 29 3b 20 20 20 20 0d 0a 20 20 20 20 0d 0a 20 20 ); .. ..
2780: 20 20 76 61 72 20 74 20 3d 20 22 d0 bf d0 b5 d1 var t = ".....
2790: 80 d0 b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be ....... ........
27a0: d0 ba d0 b0 5c 6e d0 b2 d1 82 d0 be d1 80 d0 b0 ....\n..........
27b0: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c .. ............\
27c0: 6e d1 82 d1 80 d0 b5 d1 82 d1 8c d1 8f 20 d1 81 n............ ..
27d0: d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 87 d0 b5 ..........\n....
27e0: d1 82 d0 b2 d0 b5 d1 80 d1 82 d0 b0 d1 8f 20 d1 .............. .
27f0: 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 2d 20 d1 81 ........... - ..
2800: d0 b0 d0 bc d0 b0 d1 8f 20 d0 b4 d0 bb d0 b8 d0 ........ .......
2810: bd d0 bd d0 b0 d1 8f 20 d0 b8 d0 b7 20 d0 b2 d1 ....... .... ...
2820: 81 d0 b5 d1 85 20 d1 81 d1 82 d1 80 d0 be d0 ba ..... ..........
2830: 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 \n".. + "
2840: d0 bf d1 8f d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 .......... .....
2850: 80 d0 be d0 ba d0 b0 20 d0 bf d0 be d0 ba d0 be ....... ........
2860: d1 80 d0 be d1 87 d0 b5 2c 20 d0 bd d0 be 20 d1 ........, .... .
2870: 82 d0 be d0 b6 d0 b5 20 d0 bd d0 b8 d1 87 d0 b5 ....... ........
2880: d0 b3 d0 be 5c 6e d1 88 d0 b5 d1 81 d1 82 d0 b0 ....\n..........
2890: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c .. ............\
28a0: 6e d1 81 d0 b5 d0 b4 d1 8c d0 bc d0 b0 d1 8f 20 n..............
28b0: d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d0 b2 ............\n..
28c0: d0 be d1 81 d1 8c d0 bc d0 b0 d1 8f 20 d1 81 d1 ............ ...
28d0: 82 d1 80 d0 be d0 ba d0 b0 22 3b 0d 0a 20 20 20 .........";..
28e0: 20 74 77 6e 64 2e 41 64 64 4c 69 6e 65 28 22 d0 twnd.AddLine(".
28f0: b2 d0 be d1 81 d1 8c d0 bc d0 b0 d1 8f 20 d1 81 ............. ..
2900: d1 82 d1 80 d0 be d0 ba d0 b0 22 29 3b 0d 0a 20 ..........");..
2910: 20 20 20 61 73 73 65 72 74 45 71 75 61 6c 73 28 assertEquals(
2920: 74 2c 20 74 65 78 74 44 6f 63 2e 47 65 74 54 65 t, textDoc.GetTe
2930: 78 74 28 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e xt());..}....fun
2940: 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 ction macrosTest
2950: 49 6e 73 65 72 74 4c 69 6e 65 31 28 29 0d 0a 7b InsertLine1()..{
2960: 0d 0a 20 20 20 20 61 73 73 65 72 74 54 72 75 65 .. assertTrue
2970: 28 27 d0 9d d0 b5 d1 82 20 d0 b0 d0 ba d1 82 d0 ('...... .......
2980: b8 d0 b2 d0 bd d0 be d0 b3 d0 be 20 d1 82 d0 b5 ........... ....
2990: d0 ba d1 81 d1 82 d0 be d0 b2 d0 be d0 b3 d0 be ................
29a0: 20 d0 be d0 ba d0 bd d0 b0 21 27 2c 20 74 77 6e ........!', twn
29b0: 64 2e 49 73 41 63 74 69 76 65 28 29 29 3b 20 20 d.IsActive());
29c0: 20 20 0d 0a 0d 0a 20 20 20 20 76 61 72 20 74 20 .... var t
29d0: 3d 20 22 d1 8d d1 82 d0 b0 20 d1 81 d1 82 d1 80 = "...... ......
29e0: d0 be d0 ba d0 b0 20 d0 b4 d0 be d0 bb d0 b6 d0 ...... .........
29f0: bd d0 b0 20 d0 b1 d1 8b d1 82 d1 8c 20 d0 bf d0 ... ........ ...
2a00: b5 d1 80 d0 b2 d0 be d0 b9 5c 6e d0 bf d0 b5 d1 .........\n.....
2a10: 80 d0 b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be ....... ........
2a20: d0 ba d0 b0 5c 6e d0 b2 d1 82 d0 be d1 80 d0 b0 ....\n..........
2a30: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c .. ............\
2a40: 6e d1 82 d1 80 d0 b5 d1 82 d1 8c d1 8f 20 d1 81 n............ ..
2a50: d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e 22 0d 0a 20 ..........\n"..
2a60: 20 20 20 20 20 20 20 2b 20 22 d1 87 d0 b5 d1 82 + "......
2a70: d0 b2 d0 b5 d1 80 d1 82 d0 b0 d1 8f 20 d1 81 d1 ............ ...
2a80: 82 d1 80 d0 be d0 ba d0 b0 20 2d 20 d1 81 d0 b0 ......... - ....
2a90: d0 bc d0 b0 d1 8f 20 d0 b4 d0 bb d0 b8 d0 bd d0 ...... .........
2aa0: bd d0 b0 d1 8f 20 d0 b8 d0 b7 20 d0 b2 d1 81 d0 ..... .... .....
2ab0: b5 d1 85 20 d1 81 d1 82 d1 80 d0 be d0 ba 5c 6e ... ..........\n
2ac0: 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 bf ".. + "..
2ad0: d1 8f d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 ........ .......
2ae0: be d0 ba d0 b0 20 d0 bf d0 be d0 ba d0 be d1 80 ..... ..........
2af0: d0 be d1 87 d0 b5 2c 20 d0 bd d0 be 20 d1 82 d0 ......, .... ...
2b00: be d0 b6 d0 b5 20 d0 bd d0 b8 d1 87 d0 b5 d0 b3 ..... ..........
2b10: d0 be 5c 6e d1 88 d0 b5 d1 81 d1 82 d0 b0 d1 8f ..\n............
2b20: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 ............\n.
2b30: 81 d0 b5 d0 b4 d1 8c d0 bc d0 b0 d1 8f 20 d1 81 ............. ..
2b40: d1 82 d1 80 d0 be d0 ba d0 b0 22 3b 0d 0a 0d 0a ..........";....
2b50: 20 20 20 20 74 77 6e 64 2e 49 6e 73 65 72 74 4c twnd.InsertL
2b60: 69 6e 65 28 31 2c 20 22 d1 8d d1 82 d0 b0 20 d1 ine(1, "...... .
2b70: 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 d0 b4 d0 be ........... ....
2b80: d0 bb d0 b6 d0 bd d0 b0 20 d0 b1 d1 8b d1 82 d1 ........ .......
2b90: 8c 20 d0 bf d0 b5 d1 80 d0 b2 d0 be d0 b9 22 29 . ............")
2ba0: 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 ;.. assertEqu
2bb0: 61 6c 73 28 74 2c 20 74 65 78 74 44 6f 63 2e 47 als(t, textDoc.G
2bc0: 65 74 54 65 78 74 28 29 29 3b 0d 0a 7d 0d 0a 0d etText());..}...
2bd0: 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 .function macros
2be0: 54 65 73 74 49 6e 73 65 72 74 4c 69 6e 65 32 28 TestInsertLine2(
2bf0: 29 0d 0a 7b 0d 0a 20 20 20 20 61 73 73 65 72 74 )..{.. assert
2c00: 54 72 75 65 28 27 d0 9d d0 b5 d1 82 20 d0 b0 d0 True('...... ...
2c10: ba d1 82 d0 b8 d0 b2 d0 bd d0 be d0 b3 d0 be 20 ...............
2c20: d1 82 d0 b5 d0 ba d1 81 d1 82 d0 be d0 b2 d0 be ................
2c30: d0 b3 d0 be 20 d0 be d0 ba d0 bd d0 b0 21 27 2c .... ........!',
2c40: 20 74 77 6e 64 2e 49 73 41 63 74 69 76 65 28 29 twnd.IsActive()
2c50: 29 3b 20 20 20 20 0d 0a 0d 0a 20 20 20 20 76 61 ); .... va
2c60: 72 20 74 20 3d 20 22 d0 bf d0 b5 d1 80 d0 b2 d0 r t = ".........
2c70: b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 ... ............
2c80: 5c 6e d0 b2 d1 82 d0 be d1 80 d0 b0 d1 8f 20 d1 \n............ .
2c90: 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 82 d1 ...........\n...
2ca0: 80 d0 b5 d1 82 d1 8c d1 8f 20 d1 81 d1 82 d1 80 ......... ......
2cb0: d0 be d0 ba d0 b0 5c 6e 22 0d 0a 20 20 20 20 20 ......\n"..
2cc0: 20 20 20 2b 20 22 d1 8d d1 82 d0 b0 20 d1 81 d1 + "...... ...
2cd0: 82 d1 80 d0 be d0 ba d0 b0 20 d1 82 d0 b5 d0 bf ......... ......
2ce0: d0 b5 d1 80 d1 8c 20 d0 b1 d1 83 d0 b4 d0 b5 d1 ...... .........
2cf0: 82 20 d1 87 d0 b5 d1 82 d0 b2 d0 b5 d1 80 d1 82 . ..............
2d00: d0 be d0 b9 5c 6e d1 87 d0 b5 d1 82 d0 b2 d0 b5 ....\n..........
2d10: d1 80 d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 ........ .......
2d20: be d0 ba d0 b0 20 2d 20 d1 81 d0 b0 d0 bc d0 b0 ..... - ........
2d30: d1 8f 20 d0 b4 d0 bb d0 b8 d0 bd d0 bd d0 b0 d1 .. .............
2d40: 8f 20 d0 b8 d0 b7 20 d0 b2 d1 81 d0 b5 d1 85 20 . .... ........
2d50: d1 81 d1 82 d1 80 d0 be d0 ba 5c 6e 22 0d 0a 20 ..........\n"..
2d60: 20 20 20 20 20 20 20 2b 20 22 d0 bf d1 8f d1 82 + "......
2d70: d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 .... ...........
2d80: b0 20 d0 bf d0 be d0 ba d0 be d1 80 d0 be d1 87 . ..............
2d90: d0 b5 2c 20 d0 bd d0 be 20 d1 82 d0 be d0 b6 d0 .., .... .......
2da0: b5 20 d0 bd d0 b8 d1 87 d0 b5 d0 b3 d0 be 5c 6e . ............\n
2db0: d1 88 d0 b5 d1 81 d1 82 d0 b0 d1 8f 20 d1 81 d1 ............ ...
2dc0: 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 81 d0 b5 d0 .........\n.....
2dd0: b4 d1 8c d0 bc d0 b0 d1 8f 20 d1 81 d1 82 d1 80 ......... ......
2de0: d0 be d0 ba d0 b0 22 3b 0d 0a 0d 0a 20 20 20 20 ......";....
2df0: 74 77 6e 64 2e 49 6e 73 65 72 74 4c 69 6e 65 28 twnd.InsertLine(
2e00: 34 2c 20 22 d1 8d d1 82 d0 b0 20 d1 81 d1 82 d1 4, "...... .....
2e10: 80 d0 be d0 ba d0 b0 20 d1 82 d0 b5 d0 bf d0 b5 ....... ........
2e20: d1 80 d1 8c 20 d0 b1 d1 83 d0 b4 d0 b5 d1 82 20 .... ..........
2e30: d1 87 d0 b5 d1 82 d0 b2 d0 b5 d1 80 d1 82 d0 be ................
2e40: d0 b9 22 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 ..");.. asser
2e50: 74 45 71 75 61 6c 73 28 74 2c 20 74 65 78 74 44 tEquals(t, textD
2e60: 6f 63 2e 47 65 74 54 65 78 74 28 29 29 3b 0d 0a oc.GetText());..
2e70: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 }....function ma
2e80: 63 72 6f 73 54 65 73 74 49 6e 73 65 72 74 4c 69 crosTestInsertLi
2e90: 6e 65 33 28 29 0d 0a 7b 0d 0a 20 20 20 20 61 73 ne3()..{.. as
2ea0: 73 65 72 74 54 72 75 65 28 27 d0 9d d0 b5 d1 82 sertTrue('......
2eb0: 20 d0 b0 d0 ba d1 82 d0 b8 d0 b2 d0 bd d0 be d0 ...............
2ec0: b3 d0 be 20 d1 82 d0 b5 d0 ba d1 81 d1 82 d0 be ... ............
2ed0: d0 b2 d0 be d0 b3 d0 be 20 d0 be d0 ba d0 bd d0 ........ .......
2ee0: b0 21 27 2c 20 74 77 6e 64 2e 49 73 41 63 74 69 .!', twnd.IsActi
2ef0: 76 65 28 29 29 3b 20 20 20 20 0d 0a 0d 0a 20 20 ve()); ....
2f00: 20 20 76 61 72 20 74 20 3d 20 22 d0 bf d0 b5 d1 var t = ".....
2f10: 80 d0 b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be ....... ........
2f20: d0 ba d0 b0 5c 6e d0 b2 d1 82 d0 be d1 80 d0 b0 ....\n..........
2f30: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c .. ............\
2f40: 6e d1 82 d1 80 d0 b5 d1 82 d1 8c d1 8f 20 d1 81 n............ ..
2f50: d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e 22 0d 0a 20 ..........\n"..
2f60: 20 20 20 20 20 20 20 2b 20 22 d1 87 d0 b5 d1 82 + "......
2f70: d0 b2 d0 b5 d1 80 d1 82 d0 b0 d1 8f 20 d1 81 d1 ............ ...
2f80: 82 d1 80 d0 be d0 ba d0 b0 20 2d 20 d1 81 d0 b0 ......... - ....
2f90: d0 bc d0 b0 d1 8f 20 d0 b4 d0 bb d0 b8 d0 bd d0 ...... .........
2fa0: bd d0 b0 d1 8f 20 d0 b8 d0 b7 20 d0 b2 d1 81 d0 ..... .... .....
2fb0: b5 d1 85 20 d1 81 d1 82 d1 80 d0 be d0 ba 5c 6e ... ..........\n
2fc0: 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 d0 bf ".. + "..
2fd0: d1 8f d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 ........ .......
2fe0: be d0 ba d0 b0 20 d0 bf d0 be d0 ba d0 be d1 80 ..... ..........
2ff0: d0 be d1 87 d0 b5 2c 20 d0 bd d0 be 20 d1 82 d0 ......, .... ...
3000: be d0 b6 d0 b5 20 d0 bd d0 b8 d1 87 d0 b5 d0 b3 ..... ..........
3010: d0 be 5c 6e d1 88 d0 b5 d1 81 d1 82 d0 b0 d1 8f ..\n............
3020: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 ............\n.
3030: 81 d0 b5 d0 b4 d1 8c d0 bc d0 b0 d1 8f 20 d1 81 ............. ..
3040: d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d1 8d d1 82 ..........\n....
3050: d0 b0 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 .. ............
3060: d0 b1 d1 83 d0 b4 d0 b5 d1 82 20 d0 bf d0 be d1 .......... .....
3070: 81 d0 bb d0 b5 d0 b4 d0 bd d0 b5 d0 b9 22 3b 0d .............";.
3080: 0a 0d 0a 20 20 20 20 74 77 6e 64 2e 49 6e 73 65 ... twnd.Inse
3090: 72 74 4c 69 6e 65 28 38 2c 20 22 d1 8d d1 82 d0 rtLine(8, ".....
30a0: b0 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 d0 . ............ .
30b0: b1 d1 83 d0 b4 d0 b5 d1 82 20 d0 bf d0 be d1 81 ......... ......
30c0: d0 bb d0 b5 d0 b4 d0 bd d0 b5 d0 b9 22 29 3b 0d ............");.
30d0: 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 61 6c . assertEqual
30e0: 73 28 74 2c 20 74 65 78 74 44 6f 63 2e 47 65 74 s(t, textDoc.Get
30f0: 54 65 78 74 28 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 Text());..}....f
3100: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 unction macrosTe
3110: 73 74 49 6e 73 65 72 74 4c 69 6e 65 34 28 29 0d stInsertLine4().
3120: 0a 7b 0d 0a 20 20 20 20 76 61 72 20 74 20 3d 20 .{.. var t =
3130: 22 d0 bf d0 b5 d1 80 d0 b2 d0 b0 d1 8f 20 d1 81 "............ ..
3140: d1 82 d1 80 d0 be d0 ba d0 b0 5c 6e d0 b2 d1 82 ..........\n....
3150: d0 be d1 80 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 ........ .......
3160: be d0 ba d0 b0 5c 6e d1 82 d1 80 d0 b5 d1 82 d1 .....\n.........
3170: 8c d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 ... ............
3180: 5c 6e 22 0d 0a 20 20 20 20 20 20 20 20 2b 20 22 \n".. + "
3190: d1 87 d0 b5 d1 82 d0 b2 d0 b5 d1 80 d1 82 d0 b0 ................
31a0: d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 .. ............
31b0: 2d 20 d1 81 d0 b0 d0 bc d0 b0 d1 8f 20 d0 b4 d0 - .......... ...
31c0: bb d0 b8 d0 bd d0 bd d0 b0 d1 8f 20 d0 b8 d0 b7 ........... ....
31d0: 20 d0 b2 d1 81 d0 b5 d1 85 20 d1 81 d1 82 d1 80 ........ ......
31e0: d0 be d0 ba 5c 6e 22 0d 0a 20 20 20 20 20 20 20 ....\n"..
31f0: 20 2b 20 22 d0 bf d1 8f d1 82 d0 b0 d1 8f 20 d1 + ".......... .
3200: 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 d0 bf d0 be ........... ....
3210: d0 ba d0 be d1 80 d0 be d1 87 d0 b5 2c 20 d0 bd ............, ..
3220: d0 be 20 d1 82 d0 be d0 b6 d0 b5 20 d0 bd d0 b8 .. ........ ....
3230: d1 87 d0 b5 d0 b3 d0 be 5c 6e d1 88 d0 b5 d1 81 ........\n......
3240: d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ...... .........
3250: ba d0 b0 5c 6e d1 8d d1 82 d0 b0 20 d1 81 d1 82 ...\n...... ....
3260: d1 80 d0 be d0 ba d0 b0 20 d0 b1 d1 83 d0 b4 d0 ........ .......
3270: b5 d1 82 20 d0 bf d1 80 d0 b5 d0 b4 d0 bf d0 be ... ............
3280: d1 81 d0 bb d0 b5 d0 b4 d0 bd d0 b5 d0 b9 5c 6e ..............\n
3290: d1 81 d0 b5 d0 b4 d1 8c d0 bc d0 b0 d1 8f 20 d1 .............. .
32a0: 81 d1 82 d1 80 d0 be d0 ba d0 b0 22 3b 0d 0a 0d ...........";...
32b0: 0a 20 20 20 20 74 77 6e 64 2e 49 6e 73 65 72 74 . twnd.Insert
32c0: 4c 69 6e 65 28 37 2c 20 22 d1 8d d1 82 d0 b0 20 Line(7, "......
32d0: d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 d0 b1 d1 ............ ...
32e0: 83 d0 b4 d0 b5 d1 82 20 d0 bf d1 80 d0 b5 d0 b4 ....... ........
32f0: d0 bf d0 be d1 81 d0 bb d0 b5 d0 b4 d0 bd d0 b5 ................
3300: d0 b9 22 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 ..");.. asser
3310: 74 45 71 75 61 6c 73 28 74 2c 20 74 65 78 74 44 tEquals(t, textD
3320: 6f 63 2e 47 65 74 54 65 78 74 28 29 29 3b 0d 0a oc.GetText());..
3330: 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 }....function ma
3340: 63 72 6f 73 54 65 73 74 43 6c 65 61 72 28 29 0d crosTestClear().
3350: 0a 7b 0d 0a 20 20 20 20 74 77 6e 64 2e 43 6c 65 .{.. twnd.Cle
3360: 61 72 28 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 ar();.. asser
3370: 74 45 71 75 61 6c 73 28 22 22 2c 20 74 65 78 74 tEquals("", text
3380: 44 6f 63 2e 47 65 74 54 65 78 74 28 29 29 3b 0d Doc.GetText());.
3390: 0a 7d 0d 0a 0d 0a 2f 2f 7b 20 d0 a2 d0 b5 d1 81 .}....//{ ......
33a0: d1 82 d1 8b 20 d0 bc d0 b5 d1 82 d0 be d0 b4 d0 .... ...........
33b0: b0 20 47 65 74 57 6f 72 64 55 6e 64 65 72 43 75 . GetWordUnderCu
33c0: 72 73 6f 72 28 29 0d 0a 0d 0a 2f 2a 0d 0a d0 bf rsor()..../*....
33d0: d0 b5 d1 80 d0 b2 d0 b0 d1 8f 20 d1 81 d1 82 d1 .......... .....
33e0: 80 d0 be d0 ba d0 b0 0d 0a d0 b2 d1 82 d0 be d1 ................
33f0: 80 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba ..... ..........
3400: d0 b0 0d 0a d1 82 d1 80 d0 b5 d1 82 d1 8c d1 8f ................
3410: 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 0d 0a d1 ...............
3420: 87 d0 b5 d1 82 d0 b2 d0 b5 d1 80 d1 82 d0 b0 d1 ................
3430: 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 2d . ............ -
3440: 20 d1 81 d0 b0 d0 bc d0 b0 d1 8f 20 d0 b4 d0 bb .......... ....
3450: d0 b8 d0 bd d0 bd d0 b0 d1 8f 20 d0 b8 d0 b7 20 .......... ....
3460: d0 b2 d1 81 d0 b5 d1 85 20 d1 81 d1 82 d1 80 d0 ........ .......
3470: be d0 ba 0d 0a d0 bf d1 8f d1 82 d0 b0 d1 8f 20 ...............
3480: d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 20 d0 bf d0 ............ ...
3490: be d0 ba d0 be d1 80 d0 be d1 87 d0 b5 2c 20 d0 ............., .
34a0: bd d0 be 20 d1 82 d0 be d0 b6 d0 b5 20 d0 bd d0 ... ........ ...
34b0: b8 d1 87 d0 b5 d0 b3 d0 be 0d 0a d1 88 d0 b5 d1 ................
34c0: 81 d1 82 d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be ....... ........
34d0: d0 ba d0 b0 0d 0a d1 81 d0 b5 d0 b4 d1 8c d0 bc ................
34e0: d0 b0 d1 8f 20 d1 81 d1 82 d1 80 d0 be d0 ba d0 .... ...........
34f0: b0 22 3b 0d 0a 2a 2f 0d 0a 0d 0a 66 75 6e 63 74 .";..*/....funct
3500: 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 47 65 ion macrosTestGe
3510: 74 57 6f 72 64 55 6e 64 65 72 43 75 72 73 6f 72 tWordUnderCursor
3520: 31 28 29 20 7b 0d 0a 20 20 20 20 74 77 6e 64 2e 1() {.. twnd.
3530: 53 65 74 43 61 72 65 74 50 6f 73 28 31 2c 20 31 SetCaretPos(1, 1
3540: 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 );.. assertEq
3550: 75 61 6c 73 28 27 d0 bf d0 b5 d1 80 d0 b2 d0 b0 uals('..........
3560: d1 8f 27 2c 20 74 77 6e 64 2e 47 65 74 57 6f 72 ..', twnd.GetWor
3570: 64 55 6e 64 65 72 43 75 72 73 6f 72 28 29 29 3b dUnderCursor());
3580: 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 ..}....function
3590: 6d 61 63 72 6f 73 54 65 73 74 47 65 74 57 6f 72 macrosTestGetWor
35a0: 64 55 6e 64 65 72 43 75 72 73 6f 72 32 28 29 20 dUnderCursor2()
35b0: 7b 0d 0a 20 20 20 20 74 77 6e 64 2e 53 65 74 43 {.. twnd.SetC
35c0: 61 72 65 74 50 6f 73 28 31 2c 20 31 30 29 3b 0d aretPos(1, 10);.
35d0: 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 61 6c . assertEqual
35e0: 73 28 27 d1 81 d1 82 d1 80 d0 be d0 ba d0 b0 27 s('............'
35f0: 2c 20 74 77 6e 64 2e 47 65 74 57 6f 72 64 55 6e , twnd.GetWordUn
3600: 64 65 72 43 75 72 73 6f 72 28 29 29 3b 0d 0a 7d derCursor());..}
3610: 0d 0a 0d 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 ....function mac
3620: 72 6f 73 54 65 73 74 47 65 74 57 6f 72 64 55 6e rosTestGetWordUn
3630: 64 65 72 43 75 72 73 6f 72 33 28 29 20 7b 0d 0a derCursor3() {..
3640: 20 20 20 20 74 77 6e 64 2e 53 65 74 43 61 72 65 twnd.SetCare
3650: 74 50 6f 73 28 34 2c 20 32 34 29 3b 0d 0a 20 20 tPos(4, 24);..
3660: 20 20 61 73 73 65 72 74 45 71 75 61 6c 73 28 27 assertEquals('
3670: d1 81 d0 b0 d0 bc d0 b0 d1 8f 27 2c 20 74 77 6e ..........', twn
3680: 64 2e 47 65 74 57 6f 72 64 55 6e 64 65 72 43 75 d.GetWordUnderCu
3690: 72 73 6f 72 28 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 rsor());..}....f
36a0: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 unction macrosTe
36b0: 73 74 47 65 74 57 6f 72 64 55 6e 64 65 72 43 75 stGetWordUnderCu
36c0: 72 73 6f 72 35 28 29 20 7b 0d 0a 20 20 20 20 74 rsor5() {.. t
36d0: 77 6e 64 2e 53 65 74 43 61 72 65 74 50 6f 73 28 wnd.SetCaretPos(
36e0: 33 2c 20 31 33 29 3b 0d 0a 20 20 20 20 61 73 73 3, 13);.. ass
36f0: 65 72 74 45 71 75 61 6c 73 28 27 d1 81 d1 82 d1 ertEquals('.....
3700: 80 d0 be d0 ba d0 b0 27 2c 20 74 77 6e 64 2e 47 .......', twnd.G
3710: 65 74 57 6f 72 64 55 6e 64 65 72 43 75 72 73 6f etWordUnderCurso
3720: 72 28 29 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 r());..}....func
3730: 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 73 74 47 tion macrosTestG
3740: 65 74 57 6f 72 64 55 6e 64 65 72 43 75 72 73 6f etWordUnderCurso
3750: 72 36 28 29 20 7b 0d 0a 20 20 20 20 74 77 6e 64 r6() {.. twnd
3760: 2e 53 65 74 43 61 72 65 74 50 6f 73 28 37 2c 20 .SetCaretPos(7,
3770: 31 34 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 14);.. assert
3780: 45 71 75 61 6c 73 28 27 d1 81 d1 82 d1 80 d0 be Equals('........
3790: d0 ba d0 b0 27 2c 20 74 77 6e 64 2e 47 65 74 57 ....', twnd.GetW
37a0: 6f 72 64 55 6e 64 65 72 43 75 72 73 6f 72 28 29 ordUnderCursor()
37b0: 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f );..}....functio
37c0: 6e 20 6d 61 63 72 6f 73 54 65 73 74 47 65 74 57 n macrosTestGetW
37d0: 6f 72 64 55 6e 64 65 72 43 75 72 73 6f 72 37 28 ordUnderCursor7(
37e0: 29 20 7b 0d 0a 20 20 20 20 74 77 6e 64 2e 53 65 ) {.. twnd.Se
37f0: 74 43 61 72 65 74 50 6f 73 28 33 2c 20 37 29 3b tCaretPos(3, 7);
3800: 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 61 .. assertEqua
3810: 6c 73 28 27 27 2c 20 74 77 6e 64 2e 47 65 74 57 ls('', twnd.GetW
3820: 6f 72 64 55 6e 64 65 72 43 75 72 73 6f 72 28 29 ordUnderCursor()
3830: 29 3b 0d 0a 7d 0d 0a 0d 0a 66 75 6e 63 74 69 6f );..}....functio
3840: 6e 20 6d 61 63 72 6f 73 54 65 73 74 47 65 74 57 n macrosTestGetW
3850: 6f 72 64 55 6e 64 65 72 43 75 72 73 6f 72 38 28 ordUnderCursor8(
3860: 29 20 7b 0d 0a 20 20 20 20 74 77 6e 64 2e 53 65 ) {.. twnd.Se
3870: 74 43 61 72 65 74 50 6f 73 28 34 2c 20 31 39 29 tCaretPos(4, 19)
3880: 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 75 ;.. assertEqu
3890: 61 6c 73 28 27 27 2c 20 74 77 6e 64 2e 47 65 74 als('', twnd.Get
38a0: 57 6f 72 64 55 6e 64 65 72 43 75 72 73 6f 72 28 WordUnderCursor(
38b0: 29 29 3b 0d 0a 7d 0d 0a 2f 2f 7d 0d 0a 0d 0a 66 ));..}..//}....f
38c0: 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 54 65 unction macrosTe
38d0: 73 74 47 65 74 56 69 65 77 31 28 29 20 7b 0d 0a stGetView1() {..
38e0: 20 20 20 20 61 73 73 65 72 74 4e 6f 74 4e 75 6c assertNotNul
38f0: 6c 28 74 77 6e 64 2e 47 65 74 56 69 65 77 28 29 l(twnd.GetView()
3900: 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 74 45 71 );.. assertEq
3910: 75 61 6c 73 28 74 77 6e 64 2e 47 65 74 48 77 6e uals(twnd.GetHwn
3920: 64 28 29 2c 20 74 77 6e 64 2e 47 65 74 56 69 65 d(), twnd.GetVie
3930: 77 28 29 2e 68 77 6e 64 29 3b 0d 0a 7d 0d 0a 0d w().hwnd);..}...
3940: 0a 66 75 6e 63 74 69 6f 6e 20 6d 61 63 72 6f 73 .function macros
3950: 54 65 73 74 47 65 74 56 69 65 77 32 28 29 20 7b TestGetView2() {
3960: 0d 0a 20 20 20 20 74 77 6e 64 2e 5f 76 69 65 77 .. twnd._view
3970: 20 3d 20 75 6e 64 65 66 69 6e 65 64 3b 2f 2f 20 = undefined;//
3980: d1 87 d1 82 d0 be d0 b1 d1 8b 20 d0 b3 d0 b0 d1 .......... .....
3990: 80 d0 b0 d0 bd d1 82 d0 b8 d1 80 d0 be d0 b2 d0 ................
39a0: b0 d0 bd d0 bd d0 be 20 d0 be d1 82 d1 80 d0 b0 ....... ........
39b0: d0 b1 d0 be d1 82 d0 b0 d0 bb 20 d0 b0 d0 bb d0 .......... .....
39c0: b3 d0 be d1 80 d0 b8 d1 82 d0 bc 20 d1 80 d0 b5 ........... ....
39d0: d0 ba d1 83 d1 80 d1 81 d0 b8 d0 b2 d0 bd d0 be ................
39e0: d0 b3 d0 be 20 d0 bf d0 be d0 b8 d1 81 d0 ba d0 .... ...........
39f0: b0 20 d0 b2 d1 8c d1 8e d1 85 d0 b8 0d 0a 20 20 . ............
3a00: 20 20 76 61 72 20 76 69 65 77 20 3d 20 74 77 6e var view = twn
3a10: 64 2e 47 65 74 56 69 65 77 28 29 3b 0d 0a 20 20 d.GetView();..
3a20: 20 20 61 73 73 65 72 74 4e 6f 74 55 6e 64 65 66 assertNotUndef
3a30: 69 6e 65 64 28 76 69 65 77 29 3b 0d 0a 20 20 20 ined(view);..
3a40: 20 61 73 73 65 72 74 4e 6f 74 4e 75 6c 6c 28 76 assertNotNull(v
3a50: 69 65 77 29 3b 0d 0a 20 20 20 20 61 73 73 65 72 iew);.. asser
3a60: 74 45 71 75 61 6c 73 28 74 77 6e 64 2e 47 65 74 tEquals(twnd.Get
3a70: 48 77 6e 64 28 29 2c 20 76 69 65 77 2e 68 77 6e Hwnd(), view.hwn
3a80: 64 29 3b 0d 0a 7d 0d 0a d);..}..