18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* The contents of this file are subject to the Netscape Public 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * License Version 1.1 (the "License"); you may not use this file 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * except in compliance with the License. You may obtain a copy of 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the License at http://www.mozilla.org/NPL/ 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Software distributed under the License is distributed on an "AS 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * implied. See the License for the specific language governing 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * rights and limitations under the License. 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The Original Code is Mozilla Communicator client code, released March 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 31, 1998. 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The Initial Developer of the Original Code is Netscape Communications 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Corporation. Portions created by Netscape are 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 1998 Netscape Communications Corporation. All 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Rights Reserved. 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Contributor(s): 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Filename: whitespace.js 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Description: 'Tests regular expressions containing \f\n\r\t\v\s\S\ ' 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Author: Nick Lerissa 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Date: March 10, 1998 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/ 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"'; 318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var VERSION = 'no version'; 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project startTest(); 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var TITLE = 'RegExp: \\f\\n\\r\\t\\v\\s\\S '; 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project writeHeaderToLog('Executing script: whitespace.js'); 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project writeHeaderToLog( SECTION + " "+ TITLE); 378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var count = 0; 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var testcases = new Array(); 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var non_whitespace = "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~`!@#$%^&*()-+={[}]|\\:;'<,>./?1234567890" + '"'; 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var whitespace = "\f\n\r\t\v "; 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // be sure all whitespace is matched by \s 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[count++] = new TestCase ( SECTION, 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "'" + whitespace + "'.match(new RegExp('\\s+'))", 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String([whitespace]), String(whitespace.match(new RegExp('\\s+')))); 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // be sure all non-whitespace is matched by \S 508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[count++] = new TestCase ( SECTION, 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "'" + non_whitespace + "'.match(new RegExp('\\S+'))", 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String([non_whitespace]), String(non_whitespace.match(new RegExp('\\S+')))); 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // be sure all non-whitespace is not matched by \s 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[count++] = new TestCase ( SECTION, 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "'" + non_whitespace + "'.match(new RegExp('\\s'))", 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project null, non_whitespace.match(new RegExp('\\s'))); 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // be sure all whitespace is not matched by \S 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[count++] = new TestCase ( SECTION, 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "'" + whitespace + "'.match(new RegExp('\\S'))", 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project null, whitespace.match(new RegExp('\\S'))); 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var s = non_whitespace + whitespace; 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // be sure all digits are matched by \s 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[count++] = new TestCase ( SECTION, 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "'" + s + "'.match(new RegExp('\\s+'))", 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String([whitespace]), String(s.match(new RegExp('\\s+')))); 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project s = whitespace + non_whitespace; 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // be sure all non-whitespace are matched by \S 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[count++] = new TestCase ( SECTION, 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "'" + s + "'.match(new RegExp('\\S+'))", 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String([non_whitespace]), String(s.match(new RegExp('\\S+')))); 778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // '1233345find me345'.match(new RegExp('[a-z\\s][a-z\\s]+')) 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[count++] = new TestCase ( SECTION, "'1233345find me345'.match(new RegExp('[a-z\\s][a-z\\s]+'))", 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String(["find me"]), String('1233345find me345'.match(new RegExp('[a-z\\s][a-z\\s]+')))); 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project var i; 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // be sure all whitespace characters match individually 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for (i = 0; i < whitespace.length; ++i) 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project s = 'ab' + whitespace[i] + 'cd'; 888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[count++] = new TestCase ( SECTION, 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "'" + s + "'.match(new RegExp('\\\\s'))", 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String([whitespace[i]]), String(s.match(new RegExp('\\s')))); 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[count++] = new TestCase ( SECTION, 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "'" + s + "'.match(/\s/)", 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String([whitespace[i]]), String(s.match(/\s/))); 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // be sure all non_whitespace characters match individually 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for (i = 0; i < non_whitespace.length; ++i) 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project s = ' ' + non_whitespace[i] + ' '; 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[count++] = new TestCase ( SECTION, 1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "'" + s + "'.match(new RegExp('\\\\S'))", 1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String([non_whitespace[i]]), String(s.match(new RegExp('\\S')))); 1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[count++] = new TestCase ( SECTION, 1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project "'" + s + "'.match(/\S/)", 1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project String([non_whitespace[i]]), String(s.match(/\S/))); 1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project function test() 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project { 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project for ( tc=0; tc < testcases.length; tc++ ) { 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[tc].passed = writeTestCaseResult( 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[tc].expect, 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[tc].actual, 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[tc].description +" = "+ 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[tc].actual ); 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value "; 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project stopTest(); 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return ( testcases ); 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project test(); 123