js/src/tests/js1_2/regexp/string_replace.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.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 /**
     8    Filename:     string_replace.js
     9    Description:  'Tests the replace method on Strings using regular expressions'
    11    Author:       Nick Lerissa
    12    Date:         March 11, 1998
    13 */
    15 var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"';
    16 var VERSION = 'no version';
    17 startTest();
    18 var TITLE   = 'String: replace';
    20 writeHeaderToLog('Executing script: string_replace.js');
    21 writeHeaderToLog( SECTION + " "+ TITLE);
    24 // 'adddb'.replace(/ddd/,"XX")
    25 new TestCase ( SECTION, "'adddb'.replace(/ddd/,'XX')",
    26 	       "aXXb", 'adddb'.replace(/ddd/,'XX'));
    28 // 'adddb'.replace(/eee/,"XX")
    29 new TestCase ( SECTION, "'adddb'.replace(/eee/,'XX')",
    30 	       'adddb', 'adddb'.replace(/eee/,'XX'));
    32 // '34 56 78b 12'.replace(new RegExp('[0-9]+b'),'**')
    33 new TestCase ( SECTION, "'34 56 78b 12'.replace(new RegExp('[0-9]+b'),'**')",
    34 	       "34 56 ** 12", '34 56 78b 12'.replace(new RegExp('[0-9]+b'),'**'));
    36 // '34 56 78b 12'.replace(new RegExp('[0-9]+c'),'XX')
    37 new TestCase ( SECTION, "'34 56 78b 12'.replace(new RegExp('[0-9]+c'),'XX')",
    38 	       "34 56 78b 12", '34 56 78b 12'.replace(new RegExp('[0-9]+c'),'XX'));
    40 // 'original'.replace(new RegExp(),'XX')
    41 new TestCase ( SECTION, "'original'.replace(new RegExp(),'XX')",
    42 	       "XXoriginal", 'original'.replace(new RegExp(),'XX'));
    44 // 'qwe ert x\t\n 345654AB'.replace(new RegExp('x\s*\d+(..)$'),'****')
    45 new TestCase ( SECTION, "'qwe ert x\t\n 345654AB'.replace(new RegExp('x\\s*\\d+(..)$'),'****')",
    46 	       "qwe ert ****", 'qwe ert x\t\n 345654AB'.replace(new RegExp('x\\s*\\d+(..)$'),'****'));
    49 /*
    50  * Test replacement over ropes. The char to rope node ratio must be sufficiently
    51  * high for the special-case code to be tested.
    52  */
    53 var stringA = "abcdef";
    54 var stringB = "ghijk";
    55 var stringC = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz";
    56 stringC += stringC;
    57 stringC += stringC;
    58 stringC[0]; /* flatten stringC */
    59 var stringD = "lmn";
    61 new TestCase ( SECTION, "(stringA + stringB + stringC).replace('aa', '')",
    62            stringA + stringB + stringC, (stringA + stringB + stringC).replace('aa', ''));
    64 new TestCase ( SECTION, "(stringA + stringB + stringC).replace('abc', 'AA')",
    65            "AAdefghijk" + stringC, (stringA + stringB + stringC).replace('abc', 'AA'));
    67 new TestCase ( SECTION, "(stringA + stringB + stringC).replace('def', 'AA')",
    68            "abcAAghijk" + stringC, (stringA + stringB + stringC).replace('def', 'AA'));
    70 new TestCase ( SECTION, "(stringA + stringB + stringC).replace('efg', 'AA')",
    71            "abcdAAhijk" + stringC, (stringA + stringB + stringC).replace('efg', 'AA'));
    73 new TestCase ( SECTION, "(stringA + stringB + stringC).replace('fgh', 'AA')",
    74            "abcdeAAijk" + stringC, (stringA + stringB + stringC).replace('fgh', 'AA'));
    76 new TestCase ( SECTION, "(stringA + stringB + stringC).replace('ghi', 'AA')",
    77            "abcdefAAjk" + stringC, (stringA + stringB + stringC).replace('ghi', 'AA'));
    79 new TestCase ( SECTION, "(stringC + stringD).replace('lmn', 'AA')",
    80            stringC + "AA", (stringC + stringD).replace('lmn', 'AA'));
    82 new TestCase ( SECTION, "(stringC + stringD).replace('lmno', 'AA')",
    83            stringC + stringD, (stringC + stringD).replace('lmno', 'AA'));
    85 new TestCase ( SECTION, "(stringC + stringD).replace('mn', 'AA')",
    86            stringC + "lAA", (stringC + stringD).replace('mn', 'AA'));
    88 new TestCase ( SECTION, "(stringC + stringD).replace('n', 'AA')",
    89            stringC + "lmAA", (stringC + stringD).replace('n', 'AA'));
    92 test();

mercurial