|
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 |
|
7 /** |
|
8 Filename: RegExp_multiline.js |
|
9 Description: 'Tests RegExps multiline property' |
|
10 |
|
11 Author: Nick Lerissa |
|
12 Date: March 12, 1998 |
|
13 */ |
|
14 |
|
15 var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"'; |
|
16 var VERSION = 'no version'; |
|
17 startTest(); |
|
18 var TITLE = 'RegExp: multiline'; |
|
19 |
|
20 writeHeaderToLog('Executing script: RegExp_multiline.js'); |
|
21 writeHeaderToLog( SECTION + " "+ TITLE); |
|
22 |
|
23 // First we do a series of tests with RegExp.multiline set to false (default value) |
|
24 // Following this we do the same tests with RegExp.multiline set true(**). |
|
25 // RegExp.multiline |
|
26 new TestCase ( SECTION, "RegExp.multiline", |
|
27 false, RegExp.multiline); |
|
28 |
|
29 // (multiline == false) '123\n456'.match(/^4../) |
|
30 new TestCase ( SECTION, "(multiline == false) '123\\n456'.match(/^4../)", |
|
31 null, '123\n456'.match(/^4../)); |
|
32 |
|
33 // (multiline == false) 'a11\na22\na23\na24'.match(/^a../g) |
|
34 new TestCase ( SECTION, "(multiline == false) 'a11\\na22\\na23\\na24'.match(/^a../g)", |
|
35 String(['a11']), String('a11\na22\na23\na24'.match(/^a../g))); |
|
36 |
|
37 // (multiline == false) 'a11\na22'.match(/^.+^./) |
|
38 new TestCase ( SECTION, "(multiline == false) 'a11\na22'.match(/^.+^./)", |
|
39 null, 'a11\na22'.match(/^.+^./)); |
|
40 |
|
41 // (multiline == false) '123\n456'.match(/.3$/) |
|
42 new TestCase ( SECTION, "(multiline == false) '123\\n456'.match(/.3$/)", |
|
43 null, '123\n456'.match(/.3$/)); |
|
44 |
|
45 // (multiline == false) 'a11\na22\na23\na24'.match(/a..$/g) |
|
46 new TestCase ( SECTION, "(multiline == false) 'a11\\na22\\na23\\na24'.match(/a..$/g)", |
|
47 String(['a24']), String('a11\na22\na23\na24'.match(/a..$/g))); |
|
48 |
|
49 // (multiline == false) 'abc\ndef'.match(/c$...$/) |
|
50 new TestCase ( SECTION, "(multiline == false) 'abc\ndef'.match(/c$...$/)", |
|
51 null, 'abc\ndef'.match(/c$...$/)); |
|
52 |
|
53 // (multiline == false) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) |
|
54 new TestCase ( SECTION, "(multiline == false) 'a11\\na22\\na23\\na24'.match(new RegExp('a..$','g'))", |
|
55 String(['a24']), String('a11\na22\na23\na24'.match(new RegExp('a..$','g')))); |
|
56 |
|
57 // (multiline == false) 'abc\ndef'.match(new RegExp('c$...$')) |
|
58 new TestCase ( SECTION, "(multiline == false) 'abc\ndef'.match(new RegExp('c$...$'))", |
|
59 null, 'abc\ndef'.match(new RegExp('c$...$'))); |
|
60 |
|
61 // **Now we do the tests with RegExp.multiline set to true |
|
62 // RegExp.multiline = true; RegExp.multiline |
|
63 RegExp.multiline = true; |
|
64 new TestCase ( SECTION, "RegExp.multiline = true; RegExp.multiline", |
|
65 true, RegExp.multiline); |
|
66 |
|
67 // (multiline == true) '123\n456'.match(/^4../) |
|
68 new TestCase ( SECTION, "(multiline == true) '123\\n456'.match(/^4../)", |
|
69 String(['456']), String('123\n456'.match(/^4../))); |
|
70 |
|
71 // (multiline == true) 'a11\na22\na23\na24'.match(/^a../g) |
|
72 new TestCase ( SECTION, "(multiline == true) 'a11\\na22\\na23\\na24'.match(/^a../g)", |
|
73 String(['a11','a22','a23','a24']), String('a11\na22\na23\na24'.match(/^a../g))); |
|
74 |
|
75 // (multiline == true) 'a11\na22'.match(/^.+^./) |
|
76 //new TestCase ( SECTION, "(multiline == true) 'a11\na22'.match(/^.+^./)", |
|
77 // String(['a11\na']), String('a11\na22'.match(/^.+^./))); |
|
78 |
|
79 // (multiline == true) '123\n456'.match(/.3$/) |
|
80 new TestCase ( SECTION, "(multiline == true) '123\\n456'.match(/.3$/)", |
|
81 String(['23']), String('123\n456'.match(/.3$/))); |
|
82 |
|
83 // (multiline == true) 'a11\na22\na23\na24'.match(/a..$/g) |
|
84 new TestCase ( SECTION, "(multiline == true) 'a11\\na22\\na23\\na24'.match(/a..$/g)", |
|
85 String(['a11','a22','a23','a24']), String('a11\na22\na23\na24'.match(/a..$/g))); |
|
86 |
|
87 // (multiline == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) |
|
88 new TestCase ( SECTION, "(multiline == true) 'a11\\na22\\na23\\na24'.match(new RegExp('a..$','g'))", |
|
89 String(['a11','a22','a23','a24']), String('a11\na22\na23\na24'.match(new RegExp('a..$','g')))); |
|
90 |
|
91 // (multiline == true) 'abc\ndef'.match(/c$....$/) |
|
92 //new TestCase ( SECTION, "(multiline == true) 'abc\ndef'.match(/c$.+$/)", |
|
93 // 'c\ndef', String('abc\ndef'.match(/c$.+$/))); |
|
94 |
|
95 RegExp.multiline = false; |
|
96 |
|
97 test(); |