js/src/tests/js1_2/regexp/whitespace.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

michael@0 1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
michael@0 2 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 3 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 5
michael@0 6
michael@0 7 /**
michael@0 8 Filename: whitespace.js
michael@0 9 Description: 'Tests regular expressions containing \f\n\r\t\v\s\S\ '
michael@0 10
michael@0 11 Author: Nick Lerissa
michael@0 12 Date: March 10, 1998
michael@0 13 */
michael@0 14
michael@0 15 var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"';
michael@0 16 var VERSION = 'no version';
michael@0 17 startTest();
michael@0 18 var TITLE = 'RegExp: \\f\\n\\r\\t\\v\\s\\S ';
michael@0 19
michael@0 20 writeHeaderToLog('Executing script: whitespace.js');
michael@0 21 writeHeaderToLog( SECTION + " "+ TITLE);
michael@0 22
michael@0 23
michael@0 24 var non_whitespace = "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~`!@#$%^&*()-+={[}]|\\:;'<,>./?1234567890" + '"';
michael@0 25 var whitespace = "\f\n\r\t\v ";
michael@0 26
michael@0 27 // be sure all whitespace is matched by \s
michael@0 28 new TestCase ( SECTION,
michael@0 29 "'" + whitespace + "'.match(new RegExp('\\s+'))",
michael@0 30 String([whitespace]), String(whitespace.match(new RegExp('\\s+'))));
michael@0 31
michael@0 32 // be sure all non-whitespace is matched by \S
michael@0 33 new TestCase ( SECTION,
michael@0 34 "'" + non_whitespace + "'.match(new RegExp('\\S+'))",
michael@0 35 String([non_whitespace]), String(non_whitespace.match(new RegExp('\\S+'))));
michael@0 36
michael@0 37 // be sure all non-whitespace is not matched by \s
michael@0 38 new TestCase ( SECTION,
michael@0 39 "'" + non_whitespace + "'.match(new RegExp('\\s'))",
michael@0 40 null, non_whitespace.match(new RegExp('\\s')));
michael@0 41
michael@0 42 // be sure all whitespace is not matched by \S
michael@0 43 new TestCase ( SECTION,
michael@0 44 "'" + whitespace + "'.match(new RegExp('\\S'))",
michael@0 45 null, whitespace.match(new RegExp('\\S')));
michael@0 46
michael@0 47 var s = non_whitespace + whitespace;
michael@0 48
michael@0 49 // be sure all digits are matched by \s
michael@0 50 new TestCase ( SECTION,
michael@0 51 "'" + s + "'.match(new RegExp('\\s+'))",
michael@0 52 String([whitespace]), String(s.match(new RegExp('\\s+'))));
michael@0 53
michael@0 54 s = whitespace + non_whitespace;
michael@0 55
michael@0 56 // be sure all non-whitespace are matched by \S
michael@0 57 new TestCase ( SECTION,
michael@0 58 "'" + s + "'.match(new RegExp('\\S+'))",
michael@0 59 String([non_whitespace]), String(s.match(new RegExp('\\S+'))));
michael@0 60
michael@0 61 // '1233345find me345'.match(new RegExp('[a-z\\s][a-z\\s]+'))
michael@0 62 new TestCase ( SECTION, "'1233345find me345'.match(new RegExp('[a-z\\s][a-z\\s]+'))",
michael@0 63 String(["find me"]), String('1233345find me345'.match(new RegExp('[a-z\\s][a-z\\s]+'))));
michael@0 64
michael@0 65 var i;
michael@0 66
michael@0 67 // be sure all whitespace characters match individually
michael@0 68 for (i = 0; i < whitespace.length; ++i)
michael@0 69 {
michael@0 70 s = 'ab' + whitespace[i] + 'cd';
michael@0 71 new TestCase ( SECTION,
michael@0 72 "'" + s + "'.match(new RegExp('\\\\s'))",
michael@0 73 String([whitespace[i]]), String(s.match(new RegExp('\\s'))));
michael@0 74 new TestCase ( SECTION,
michael@0 75 "'" + s + "'.match(/\s/)",
michael@0 76 String([whitespace[i]]), String(s.match(/\s/)));
michael@0 77 }
michael@0 78 // be sure all non_whitespace characters match individually
michael@0 79 for (i = 0; i < non_whitespace.length; ++i)
michael@0 80 {
michael@0 81 s = ' ' + non_whitespace[i] + ' ';
michael@0 82 new TestCase ( SECTION,
michael@0 83 "'" + s + "'.match(new RegExp('\\\\S'))",
michael@0 84 String([non_whitespace[i]]), String(s.match(new RegExp('\\S'))));
michael@0 85 new TestCase ( SECTION,
michael@0 86 "'" + s + "'.match(/\S/)",
michael@0 87 String([non_whitespace[i]]), String(s.match(/\S/)));
michael@0 88 }
michael@0 89
michael@0 90
michael@0 91 test();

mercurial