initial import
[vuplus_webkit] / Source / JavaScriptCore / tests / mozilla / js1_2 / regexp / RegExp_lastParen.js
1 /* The contents of this file are subject to the Netscape Public
2  * License Version 1.1 (the "License"); you may not use this file
3  * except in compliance with the License. You may obtain a copy of
4  * the License at http://www.mozilla.org/NPL/
5  *
6  * Software distributed under the License is distributed on an "AS
7  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
8  * implied. See the License for the specific language governing
9  * rights and limitations under the License.
10  *
11  * The Original Code is Mozilla Communicator client code, released March
12  * 31, 1998.
13  *
14  * The Initial Developer of the Original Code is Netscape Communications
15  * Corporation. Portions created by Netscape are
16  * Copyright (C) 1998 Netscape Communications Corporation. All
17  * Rights Reserved.
18  *
19  * Contributor(s): 
20  * 
21  */
22 /**
23         Filename:     RegExp_lastParen.js
24         Description:  'Tests RegExps lastParen property'
25
26         Author:       Nick Lerissa
27         Date:         March 12, 1998
28 */
29
30         var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"';
31         var VERSION = 'no version';
32     startTest();
33         var TITLE   = 'RegExp: lastParen';
34
35         writeHeaderToLog('Executing script: RegExp_lastParen.js');
36         writeHeaderToLog( SECTION + " "+ TITLE);
37
38         var count = 0;
39         var testcases = new Array();
40
41     // 'abcd'.match(/(abc)d/); RegExp.lastParen
42     'abcd'.match(/(abc)d/);
43         testcases[count++] = new TestCase ( SECTION, "'abcd'.match(/(abc)d/); RegExp.lastParen",
44                                             'abc', RegExp.lastParen);
45
46     // 'abcd'.match(new RegExp('(abc)d')); RegExp.lastParen
47     'abcd'.match(new RegExp('(abc)d'));
48         testcases[count++] = new TestCase ( SECTION, "'abcd'.match(new RegExp('(abc)d')); RegExp.lastParen",
49                                             'abc', RegExp.lastParen);
50
51     // 'abcd'.match(/(bcd)e/); RegExp.lastParen
52     'abcd'.match(/(bcd)e/);
53         testcases[count++] = new TestCase ( SECTION, "'abcd'.match(/(bcd)e/); RegExp.lastParen",
54                                             'abc', RegExp.lastParen);
55
56     // 'abcdefg'.match(/(a(b(c(d)e)f)g)/); RegExp.lastParen
57     'abcdefg'.match(/(a(b(c(d)e)f)g)/);
58         testcases[count++] = new TestCase ( SECTION, "'abcdefg'.match(/(a(b(c(d)e)f)g)/); RegExp.lastParen",
59                                             'd', RegExp.lastParen);
60
61     // 'abcdefg'.match(/(a(b)c)(d(e)f)/); RegExp.lastParen
62     'abcdefg'.match(/(a(b)c)(d(e)f)/);
63         testcases[count++] = new TestCase ( SECTION, "'abcdefg'.match(/(a(b)c)(d(e)f)/); RegExp.lastParen",
64                                             'e', RegExp.lastParen);
65
66     // 'abcdefg'.match(/(^)abc/); RegExp.lastParen
67     'abcdefg'.match(/(^)abc/);
68         testcases[count++] = new TestCase ( SECTION, "'abcdefg'.match(/(^)abc/); RegExp.lastParen",
69                                             '', RegExp.lastParen);
70
71     // 'abcdefg'.match(/(^a)bc/); RegExp.lastParen
72     'abcdefg'.match(/(^a)bc/);
73         testcases[count++] = new TestCase ( SECTION, "'abcdefg'.match(/(^a)bc/); RegExp.lastParen",
74                                             'a', RegExp.lastParen);
75
76     // 'abcdefg'.match(new RegExp('(^a)bc')); RegExp.lastParen
77     'abcdefg'.match(new RegExp('(^a)bc'));
78         testcases[count++] = new TestCase ( SECTION, "'abcdefg'.match(new RegExp('(^a)bc')); RegExp.lastParen",
79                                             'a', RegExp.lastParen);
80
81     // 'abcdefg'.match(/bc/); RegExp.lastParen
82     'abcdefg'.match(/bc/);
83         testcases[count++] = new TestCase ( SECTION, "'abcdefg'.match(/bc/); RegExp.lastParen",
84                                             '', RegExp.lastParen);
85
86         function test()
87         {
88            for ( tc=0; tc < testcases.length; tc++ ) {
89                 testcases[tc].passed = writeTestCaseResult(
90                 testcases[tc].expect,
91                 testcases[tc].actual,
92                 testcases[tc].description +" = "+
93                 testcases[tc].actual );
94                 testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
95            }
96            stopTest();
97            return ( testcases );
98         }
99
100         test();