1 /* 2 * The contents of this file are subject to the Netscape Public 3 * License Version 1.1 (the "License"); you may not use this file 4 * except in compliance with the License. You may obtain a copy of 5 * the License at http://www.mozilla.org/NPL/ 6 * 7 * Software distributed under the License is distributed on an "AS IS" 8 * basis, WITHOUT WARRANTY OF ANY KIND, either expressed 9 * or implied. See the License for the specific language governing 10 * rights and limitations under the License. 11 * 12 * The Original Code is mozilla.org code. 13 * 14 * The Initial Developer of the Original Code is Netscape 15 * Communications Corporation. Portions created by Netscape are 16 * Copyright (C) 1998 Netscape Communications Corporation. 17 * All Rights Reserved. 18 * 19 * Contributor(s): pschwartau (at) netscape.com 20 * Date: 06 February 2001 21 * 22 * SUMMARY: Arose from Bugzilla bug 78156: 23 * "m flag of regular expression does not work with $" 24 * 25 * See http://bugzilla.mozilla.org/show_bug.cgi?id=78156 26 * 27 * The m flag means a regular expression should search strings 28 * across multiple lines, i.e. across '\n', '\r'. 29 */ 30 //------------------------------------------------------------------------------------------------- 31 var i = 0; 32 var bug = 78156; 33 var summary = 'Testing regular expressions with ^, $, and the m flag -'; 34 var status = ''; 35 var statusmessages = new Array(); 36 var pattern = ''; 37 var patterns = new Array(); 38 var string = ''; 39 var strings = new Array(); 40 var actualmatch = ''; 41 var actualmatches = new Array(); 42 var expectedmatch = ''; 43 var expectedmatches = new Array(); 44 45 /* 46 * All patterns have an m flag; all strings are multiline. 47 * Looking for digit characters at beginning/end of lines. 48 */ 49 50 string = 'aaa\n789\r\nccc\r\n345'; 51 status = inSection(1); 52 pattern = /^\d/gm; 53 actualmatch = string.match(pattern); 54 expectedmatch = ['7','3']; 55 addThis(); 56 57 status = inSection(2); 58 pattern = /\d$/gm; 59 actualmatch = string.match(pattern); 60 expectedmatch = ['9','5']; 61 addThis(); 62 63 string = 'aaa\n789\r\nccc\r\nddd'; 64 status = inSection(3); 65 pattern = /^\d/gm; 66 actualmatch = string.match(pattern); 67 expectedmatch = ['7']; 68 addThis(); 69 70 status = inSection(4); 71 pattern = /\d$/gm; 72 actualmatch = string.match(pattern); 73 expectedmatch = ['9']; 74 addThis(); 75 76 77 78 //------------------------------------------------------------------------------------------------- 79 test(); 80 //------------------------------------------------------------------------------------------------- 81 82 83 84 function addThis() 85 { 86 statusmessages[i] = status; 87 patterns[i] = pattern; 88 strings[i] = string; 89 actualmatches[i] = actualmatch; 90 expectedmatches[i] = expectedmatch; 91 i++; 92 } 93 94 95 function test() 96 { 97 enterFunc ('test'); 98 printBugNumber (bug); 99 printStatus (summary); 100 testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches); 101 exitFunc ('test'); 102 } 103