1 /* The contents of this file are subject to the Netscape Public 2 * License Version 1.1 (the "License"); you may not use this file 3 * except in compliance with the License. You may obtain a copy of 4 * the License at http://www.mozilla.org/NPL/ 5 * 6 * Software distributed under the License is distributed on an "AS 7 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 8 * implied. See the License for the specific language governing 9 * rights and limitations under the License. 10 * 11 * The Original Code is Mozilla Communicator client code, released March 12 * 31, 1998. 13 * 14 * The Initial Developer of the Original Code is Netscape Communications 15 * Corporation. Portions created by Netscape are 16 * Copyright (C) 1998 Netscape Communications Corporation. All 17 * Rights Reserved. 18 * 19 * Contributor(s): 20 * 21 */ 22 /** 23 Filename: asterisk.js 24 Description: 'Tests regular expressions containing *' 25 26 Author: Nick Lerissa 27 Date: March 10, 1998 28 */ 29 30 var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"'; 31 var VERSION = 'no version'; 32 startTest(); 33 var TITLE = 'RegExp: *'; 34 35 writeHeaderToLog('Executing script: aterisk.js'); 36 writeHeaderToLog( SECTION + " "+ TITLE); 37 38 var count = 0; 39 var testcases = new Array(); 40 41 // 'abcddddefg'.match(new RegExp('d*')) 42 testcases[count++] = new TestCase ( SECTION, "'abcddddefg'.match(new RegExp('d*'))", 43 String([""]), String('abcddddefg'.match(new RegExp('d*')))); 44 45 // 'abcddddefg'.match(new RegExp('cd*')) 46 testcases[count++] = new TestCase ( SECTION, "'abcddddefg'.match(new RegExp('cd*'))", 47 String(["cdddd"]), String('abcddddefg'.match(new RegExp('cd*')))); 48 49 // 'abcdefg'.match(new RegExp('cx*d')) 50 testcases[count++] = new TestCase ( SECTION, "'abcdefg'.match(new RegExp('cx*d'))", 51 String(["cd"]), String('abcdefg'.match(new RegExp('cx*d')))); 52 53 // 'xxxxxxx'.match(new RegExp('(x*)(x+)')) 54 testcases[count++] = new TestCase ( SECTION, "'xxxxxxx'.match(new RegExp('(x*)(x+)'))", 55 String(["xxxxxxx","xxxxxx","x"]), String('xxxxxxx'.match(new RegExp('(x*)(x+)')))); 56 57 // '1234567890'.match(new RegExp('(\\d*)(\\d+)')) 58 testcases[count++] = new TestCase ( SECTION, "'1234567890'.match(new RegExp('(\\d*)(\\d+)'))", 59 String(["1234567890","123456789","0"]), 60 String('1234567890'.match(new RegExp('(\\d*)(\\d+)')))); 61 62 // '1234567890'.match(new RegExp('(\\d*)\\d(\\d+)')) 63 testcases[count++] = new TestCase ( SECTION, "'1234567890'.match(new RegExp('(\\d*)\\d(\\d+)'))", 64 String(["1234567890","12345678","0"]), 65 String('1234567890'.match(new RegExp('(\\d*)\\d(\\d+)')))); 66 67 // 'xxxxxxx'.match(new RegExp('(x+)(x*)')) 68 testcases[count++] = new TestCase ( SECTION, "'xxxxxxx'.match(new RegExp('(x+)(x*)'))", 69 String(["xxxxxxx","xxxxxxx",""]), String('xxxxxxx'.match(new RegExp('(x+)(x*)')))); 70 71 // 'xxxxxxyyyyyy'.match(new RegExp('x*y+$')) 72 testcases[count++] = new TestCase ( SECTION, "'xxxxxxyyyyyy'.match(new RegExp('x*y+$'))", 73 String(["xxxxxxyyyyyy"]), String('xxxxxxyyyyyy'.match(new RegExp('x*y+$')))); 74 75 // 'abcdef'.match(/[\d]*[\s]*bc./) 76 testcases[count++] = new TestCase ( SECTION, "'abcdef'.match(/[\\d]*[\\s]*bc./)", 77 String(["bcd"]), String('abcdef'.match(/[\d]*[\s]*bc./))); 78 79 // 'abcdef'.match(/bc..[\d]*[\s]*/) 80 testcases[count++] = new TestCase ( SECTION, "'abcdef'.match(/bc..[\\d]*[\\s]*/)", 81 String(["bcde"]), String('abcdef'.match(/bc..[\d]*[\s]*/))); 82 83 // 'a1b2c3'.match(/.*/) 84 testcases[count++] = new TestCase ( SECTION, "'a1b2c3'.match(/.*/)", 85 String(["a1b2c3"]), String('a1b2c3'.match(/.*/))); 86 87 // 'a0.b2.c3'.match(/[xyz]*1/) 88 testcases[count++] = new TestCase ( SECTION, "'a0.b2.c3'.match(/[xyz]*1/)", 89 null, 'a0.b2.c3'.match(/[xyz]*1/)); 90 91 function test() 92 { 93 for ( tc=0; tc < testcases.length; tc++ ) { 94 testcases[tc].passed = writeTestCaseResult( 95 testcases[tc].expect, 96 testcases[tc].actual, 97 testcases[tc].description +" = "+ 98 testcases[tc].actual ); 99 testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value "; 100 } 101 stopTest(); 102 return ( testcases ); 103 } 104 105 test(); 106