Home | History | Annotate | Download | only in RegExp
      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: 2001-07-17
     21 *
     22 * SUMMARY: Regression test for Bugzilla bug 72964:
     23 * "String method for pattern matching failed for Chinese Simplified (GB2312)"
     24 *
     25 * See http://bugzilla.mozilla.org/show_bug.cgi?id=72964
     26 */
     27 //-----------------------------------------------------------------------------
     28 var i = 0;
     29 var bug = 72964;
     30 var summary = 'Testing regular expressions containing non-Latin1 characters';
     31 var cnSingleSpace = ' ';
     32 var status = '';
     33 var statusmessages = new Array();
     34 var pattern = '';
     35 var patterns = new Array();
     36 var string = '';
     37 var strings = new Array();
     38 var actualmatch = '';
     39 var actualmatches = new Array();
     40 var expectedmatch = '';
     41 var expectedmatches = new Array();
     42 
     43 
     44 pattern = /[\S]+/;
     45     // 4 low Unicode chars = Latin1; whole string should match
     46     status = inSection(1);
     47     string = '\u00BF\u00CD\u00BB\u00A7';
     48     actualmatch = string.match(pattern);
     49     expectedmatch = Array(string);
     50     addThis();
     51 
     52     // Now put a space in the middle; first half of string should match
     53     status = inSection(2);
     54     string = '\u00BF\u00CD \u00BB\u00A7';
     55     actualmatch = string.match(pattern);
     56     expectedmatch = Array('\u00BF\u00CD');
     57     addThis();
     58 
     59 
     60     // 4 high Unicode chars = non-Latin1; whole string should match
     61     status = inSection(3);
     62     string = '\u4e00\uac00\u4e03\u4e00';
     63     actualmatch = string.match(pattern);
     64     expectedmatch = Array(string);
     65     addThis();
     66 
     67     // Now put a space in the middle; first half of string should match
     68     status = inSection(4);
     69     string = '\u4e00\uac00 \u4e03\u4e00';
     70     actualmatch = string.match(pattern);
     71     expectedmatch = Array('\u4e00\uac00');
     72     addThis();
     73 
     74 
     75 
     76 //-----------------------------------------------------------------------------
     77 test();
     78 //-----------------------------------------------------------------------------
     79 
     80 
     81 
     82 function addThis()
     83 {
     84   statusmessages[i] = status;
     85   patterns[i] = pattern;
     86   strings[i] = string;
     87   actualmatches[i] = actualmatch;
     88   expectedmatches[i] = expectedmatch;
     89   i++;
     90 }
     91 
     92 
     93 function test()
     94 {
     95   enterFunc ('test');
     96   printBugNumber (bug);
     97   printStatus (summary);
     98   testRegExp(statusmessages, patterns, strings, actualmatches, expectedmatches);
     99   exitFunc ('test');
    100 }
    101