/* The contents of this file are subject to the Netscape Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/NPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is Mozilla Communicator client code, released March * 31, 1998. * * The Initial Developer of the Original Code is Netscape Communications * Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All * Rights Reserved. * * Contributor(s): * */ /** Filename: RegExp_multiline.js Description: 'Tests RegExps multiline property' Author: Nick Lerissa Date: March 12, 1998 */ var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"'; var VERSION = 'no version'; startTest(); var TITLE = 'RegExp: multiline'; writeHeaderToLog('Executing script: RegExp_multiline.js'); writeHeaderToLog( SECTION + " "+ TITLE); var count = 0; var testcases = new Array(); // First we do a series of tests with RegExp.multiline set to false (default value) // Following this we do the same tests with RegExp.multiline set true(**). // RegExp.multiline testcases[count++] = new TestCase ( SECTION, "RegExp.multiline", false, RegExp.multiline); // (multiline == false) '123\n456'.match(/^4../) testcases[count++] = new TestCase ( SECTION, "(multiline == false) '123\\n456'.match(/^4../)", null, '123\n456'.match(/^4../)); // (multiline == false) 'a11\na22\na23\na24'.match(/^a../g) testcases[count++] = new TestCase ( SECTION, "(multiline == false) 'a11\\na22\\na23\\na24'.match(/^a../g)", String(['a11']), String('a11\na22\na23\na24'.match(/^a../g))); // (multiline == false) 'a11\na22'.match(/^.+^./) testcases[count++] = new TestCase ( SECTION, "(multiline == false) 'a11\na22'.match(/^.+^./)", null, 'a11\na22'.match(/^.+^./)); // (multiline == false) '123\n456'.match(/.3$/) testcases[count++] = new TestCase ( SECTION, "(multiline == false) '123\\n456'.match(/.3$/)", null, '123\n456'.match(/.3$/)); // (multiline == false) 'a11\na22\na23\na24'.match(/a..$/g) testcases[count++] = new TestCase ( SECTION, "(multiline == false) 'a11\\na22\\na23\\na24'.match(/a..$/g)", String(['a24']), String('a11\na22\na23\na24'.match(/a..$/g))); // (multiline == false) 'abc\ndef'.match(/c$...$/) testcases[count++] = new TestCase ( SECTION, "(multiline == false) 'abc\ndef'.match(/c$...$/)", null, 'abc\ndef'.match(/c$...$/)); // (multiline == false) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) testcases[count++] = new TestCase ( SECTION, "(multiline == false) 'a11\\na22\\na23\\na24'.match(new RegExp('a..$','g'))", String(['a24']), String('a11\na22\na23\na24'.match(new RegExp('a..$','g')))); // (multiline == false) 'abc\ndef'.match(new RegExp('c$...$')) testcases[count++] = new TestCase ( SECTION, "(multiline == false) 'abc\ndef'.match(new RegExp('c$...$'))", null, 'abc\ndef'.match(new RegExp('c$...$'))); // **Now we do the tests with RegExp.multiline set to true // RegExp.multiline = true; RegExp.multiline RegExp.multiline = true; testcases[count++] = new TestCase ( SECTION, "RegExp.multiline = true; RegExp.multiline", true, RegExp.multiline); // (multiline == true) '123\n456'.match(/^4../) testcases[count++] = new TestCase ( SECTION, "(multiline == true) '123\\n456'.match(/^4../)", String(['456']), String('123\n456'.match(/^4../))); // (multiline == true) 'a11\na22\na23\na24'.match(/^a../g) testcases[count++] = new TestCase ( SECTION, "(multiline == true) 'a11\\na22\\na23\\na24'.match(/^a../g)", String(['a11','a22','a23','a24']), String('a11\na22\na23\na24'.match(/^a../g))); // (multiline == true) 'a11\na22'.match(/^.+^./) //testcases[count++] = new TestCase ( SECTION, "(multiline == true) 'a11\na22'.match(/^.+^./)", // String(['a11\na']), String('a11\na22'.match(/^.+^./))); // (multiline == true) '123\n456'.match(/.3$/) testcases[count++] = new TestCase ( SECTION, "(multiline == true) '123\\n456'.match(/.3$/)", String(['23']), String('123\n456'.match(/.3$/))); // (multiline == true) 'a11\na22\na23\na24'.match(/a..$/g) testcases[count++] = new TestCase ( SECTION, "(multiline == true) 'a11\\na22\\na23\\na24'.match(/a..$/g)", String(['a11','a22','a23','a24']), String('a11\na22\na23\na24'.match(/a..$/g))); // (multiline == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g')) testcases[count++] = new TestCase ( SECTION, "(multiline == true) 'a11\\na22\\na23\\na24'.match(new RegExp('a..$','g'))", String(['a11','a22','a23','a24']), String('a11\na22\na23\na24'.match(new RegExp('a..$','g')))); // (multiline == true) 'abc\ndef'.match(/c$....$/) //testcases[count++] = new TestCase ( SECTION, "(multiline == true) 'abc\ndef'.match(/c$.+$/)", // 'c\ndef', String('abc\ndef'.match(/c$.+$/))); RegExp.multiline = false; function test() { for ( tc=0; tc < testcases.length; tc++ ) { testcases[tc].passed = writeTestCaseResult( testcases[tc].expect, testcases[tc].actual, testcases[tc].description +" = "+ testcases[tc].actual ); testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value "; } stopTest(); return ( testcases ); } test();