summaryrefslogtreecommitdiffstats
path: root/Source/JavaScriptCore/tests/mozilla/js1_2/regexp/RegExp_multiline.js
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/tests/mozilla/js1_2/regexp/RegExp_multiline.js')
-rw-r--r--Source/JavaScriptCore/tests/mozilla/js1_2/regexp/RegExp_multiline.js129
1 files changed, 129 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/tests/mozilla/js1_2/regexp/RegExp_multiline.js b/Source/JavaScriptCore/tests/mozilla/js1_2/regexp/RegExp_multiline.js
new file mode 100644
index 0000000..be22261
--- /dev/null
+++ b/Source/JavaScriptCore/tests/mozilla/js1_2/regexp/RegExp_multiline.js
@@ -0,0 +1,129 @@
+/* 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();