]> git.saurik.com Git - apple/javascriptcore.git/blame - tests/mozilla/js1_6/browser.js
JavaScriptCore-466.1.tar.gz
[apple/javascriptcore.git] / tests / mozilla / js1_6 / browser.js
CommitLineData
b37bf2e1
A
1/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2/* ***** BEGIN LICENSE BLOCK *****
3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4 *
5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 * http://www.mozilla.org/MPL/
9 *
10 * Software distributed under the License is distributed on an "AS IS" basis,
11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 * for the specific language governing rights and limitations under the
13 * License.
14 *
15 * The Original Code is mozilla.org code.
16 *
17 * The Initial Developer of the Original Code is
18 * Netscape Communications Corporation.
19 * Portions created by the Initial Developer are Copyright (C) 1998
20 * the Initial Developer. All Rights Reserved.
21 *
22 * Contributor(s):
23 *
24 * Alternatively, the contents of this file may be used under the terms of
25 * either the GNU General Public License Version 2 or later (the "GPL"), or
26 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27 * in which case the provisions of the GPL or the LGPL are applicable instead
28 * of those above. If you wish to allow use of your version of this file only
29 * under the terms of either the GPL or the LGPL, and not to allow others to
30 * use your version of this file under the terms of the MPL, indicate your
31 * decision by deleting the provisions above and replace them with the notice
32 * and other provisions required by the GPL or the LGPL. If you do not delete
33 * the provisions above, a recipient may use your version of this file under
34 * the terms of any one of the MPL, the GPL or the LGPL.
35 *
36 * ***** END LICENSE BLOCK ***** */
37
38/*
39 * JavaScript test library shared functions file for running the tests
40 * in the browser. Overrides the shell's print function with document.write
41 * and make everything HTML pretty.
42 *
43 * To run the tests in the browser, use the mkhtml.pl script to generate
44 * html pages that include the shell.js, browser.js (this file), and the
45 * test js file in script tags.
46 *
47 * The source of the page that is generated should look something like this:
48 * <script src="./../shell.js"></script>
49 * <script src="./../browser.js"></script>
50 * <script src="./mytest.js"></script>
51 */
52function writeLineToLog( string ) {
53 document.write( string + "<br>\n");
54}
55
56var testcases = new Array();
57var tc = testcases.length;
58var bug = '';
59var summary = '';
60var description = '';
61var expected = '';
62var actual = '';
63var msg = '';
64
65
66function TestCase(n, d, e, a)
67{
68 this.path = (typeof gTestPath == 'undefined') ? '' : gTestPath;
69 this.name = n;
70 this.description = d;
71 this.expect = e;
72 this.actual = a;
73 this.passed = ( e == a );
74 this.reason = '';
75 this.bugnumber = typeof(bug) != 'undefined' ? bug : '';
76 testcases[tc++] = this;
77}
78
79var gInReportCompare = false;
80
81var _reportCompare = reportCompare;
82
83reportCompare = function(expected, actual, description)
84{
85 gInReportCompare = true;
86
87 var testcase = new TestCase(gTestName, description, expected, actual);
88 testcase.passed = _reportCompare(expected, actual, description);
89
90 gInReportCompare = false;
91};
92
93var _reportFailure = reportFailure;
94reportFailure = function (msg, page, line)
95{
96 var testcase;
97
98 if (gInReportCompare)
99 {
100 testcase = testcases[tc - 1];
101 testcase.passed = false;
102 }
103 else
104 {
105 if (typeof DESCRIPTION == 'undefined')
106 {
107 DESCRIPTION = 'Unknown';
108 }
109 if (typeof EXPECTED == 'undefined')
110 {
111 EXPECTED = 'Unknown';
112 }
113 testcase = new TestCase(gTestName, DESCRIPTION, EXPECTED, "error");
114 if (document.location.href.indexOf('-n.js') != -1)
115 {
116 // negative test
117 testcase.passed = true;
118 }
119 }
120
121 testcase.reason += msg;
122
123 if (typeof(page) != 'undefined')
124 {
125 testcase.reason += ' Page: ' + page;
126 }
127 if (typeof(line) != 'undefined')
128 {
129 testcase.reason += ' Line: ' + line;
130 }
131 if (!testcase.passed)
132 {
133 _reportFailure(msg);
134 }
135
136};
137
138function gc()
139{
140}
141
142function quit()
143{
144}
145
146window.onerror = reportFailure;
147