js/src/tests/js1_2/regexp/word_boundary.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: word_boundary.js
michael@0 9 Description: 'Tests regular expressions containing \b and \B'
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: \\b and \\B';
michael@0 19
michael@0 20 writeHeaderToLog('Executing script: word_boundary.js');
michael@0 21 writeHeaderToLog( SECTION + " "+ TITLE);
michael@0 22
michael@0 23
michael@0 24 // 'cowboy boyish boy'.match(new RegExp('\bboy\b'))
michael@0 25 new TestCase ( SECTION, "'cowboy boyish boy'.match(new RegExp('\\bboy\\b'))",
michael@0 26 String(["boy"]), String('cowboy boyish boy'.match(new RegExp('\\bboy\\b'))));
michael@0 27
michael@0 28 var boundary_characters = "\f\n\r\t\v~`!@#$%^&*()-+={[}]|\\:;'<,>./? " + '"';
michael@0 29 var non_boundary_characters = '1234567890_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
michael@0 30 var s = '';
michael@0 31 var i;
michael@0 32
michael@0 33 // testing whether all boundary characters are matched when they should be
michael@0 34 for (i = 0; i < boundary_characters.length; ++i)
michael@0 35 {
michael@0 36 s = '123ab' + boundary_characters.charAt(i) + '123c' + boundary_characters.charAt(i);
michael@0 37
michael@0 38 new TestCase ( SECTION,
michael@0 39 "'" + s + "'.match(new RegExp('\\b123[a-z]\\b'))",
michael@0 40 String(["123c"]), String(s.match(new RegExp('\\b123[a-z]\\b'))));
michael@0 41 }
michael@0 42
michael@0 43 // testing whether all non-boundary characters are matched when they should be
michael@0 44 for (i = 0; i < non_boundary_characters.length; ++i)
michael@0 45 {
michael@0 46 s = '123ab' + non_boundary_characters.charAt(i) + '123c' + non_boundary_characters.charAt(i);
michael@0 47
michael@0 48 new TestCase ( SECTION,
michael@0 49 "'" + s + "'.match(new RegExp('\\B123[a-z]\\B'))",
michael@0 50 String(["123c"]), String(s.match(new RegExp('\\B123[a-z]\\B'))));
michael@0 51 }
michael@0 52
michael@0 53 s = '';
michael@0 54
michael@0 55 // testing whether all boundary characters are not matched when they should not be
michael@0 56 for (i = 0; i < boundary_characters.length; ++i)
michael@0 57 {
michael@0 58 s += boundary_characters[i] + "a" + i + "b";
michael@0 59 }
michael@0 60 s += "xa1111bx";
michael@0 61
michael@0 62 new TestCase ( SECTION,
michael@0 63 "'" + s + "'.match(new RegExp('\\Ba\\d+b\\B'))",
michael@0 64 String(["a1111b"]), String(s.match(new RegExp('\\Ba\\d+b\\B'))));
michael@0 65
michael@0 66 new TestCase ( SECTION,
michael@0 67 "'" + s + "'.match(/\\Ba\\d+b\\B/)",
michael@0 68 String(["a1111b"]), String(s.match(/\Ba\d+b\B/)));
michael@0 69
michael@0 70 s = '';
michael@0 71
michael@0 72 // testing whether all non-boundary characters are not matched when they should not be
michael@0 73 for (i = 0; i < non_boundary_characters.length; ++i)
michael@0 74 {
michael@0 75 s += non_boundary_characters[i] + "a" + i + "b";
michael@0 76 }
michael@0 77 s += "(a1111b)";
michael@0 78
michael@0 79 new TestCase ( SECTION,
michael@0 80 "'" + s + "'.match(new RegExp('\\ba\\d+b\\b'))",
michael@0 81 String(["a1111b"]), String(s.match(new RegExp('\\ba\\d+b\\b'))));
michael@0 82
michael@0 83 new TestCase ( SECTION,
michael@0 84 "'" + s + "'.match(/\\ba\\d+b\\b/)",
michael@0 85 String(["a1111b"]), String(s.match(/\ba\d+b\b/)));
michael@0 86
michael@0 87 test();

mercurial