initial import
[vuplus_webkit] / Source / JavaScriptCore / tests / mozilla / ecma / Date / 15.9.5.3-2.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     File Name:          15.9.5.3-2.js
24     ECMA Section:       15.9.5.3-2 Date.prototype.valueOf
25     Description:
26
27     The valueOf function returns a number, which is this time value.
28
29     The valueOf function is not generic; it generates a runtime error if
30     its this value is not a Date object.  Therefore it cannot be transferred
31     to other kinds of objects for use as a method.
32
33     Author:             christine@netscape.com
34     Date:               12 november 1997
35 */
36
37     var SECTION = "15.9.5.3-2";
38     var VERSION = "ECMA_1";
39     startTest();
40     var TITLE   = "Date.prototype.valueOf";
41
42     writeHeaderToLog( SECTION + " "+ TITLE);
43
44     var testcases = new Array();
45
46
47     var TZ_ADJUST = TZ_DIFF * msPerHour;
48     var now = (new Date()).valueOf();
49     var UTC_29_FEB_2000 = TIME_2000 + 31*msPerDay + 28*msPerDay;
50     var UTC_1_JAN_2005 = TIME_2000 + TimeInYear(2000) + TimeInYear(2001)+
51     TimeInYear(2002)+TimeInYear(2003)+TimeInYear(2004);
52
53     addTestCase( now );
54     addTestCase( TIME_1970 );
55     addTestCase( TIME_1900 );
56     addTestCase( TIME_2000 );
57     addTestCase( UTC_29_FEB_2000 );
58     addTestCase( UTC_1_JAN_2005 );
59
60     test();
61
62 function addTestCase( t ) {
63     testcases[tc++] = new TestCase( SECTION,
64                                     "(new Date("+t+").valueOf()",
65                                     t,
66                                     (new Date(t)).valueOf() );
67
68     testcases[tc++] = new TestCase( SECTION,
69                                     "(new Date("+(t+1)+").valueOf()",
70                                     t+1,
71                                     (new Date(t+1)).valueOf() );
72
73     testcases[tc++] = new TestCase( SECTION,
74                                     "(new Date("+(t-1)+").valueOf()",
75                                     t-1,
76                                     (new Date(t-1)).valueOf() );
77
78     testcases[tc++] = new TestCase( SECTION,
79                                     "(new Date("+(t-TZ_ADJUST)+").valueOf()",
80                                     t-TZ_ADJUST,
81                                     (new Date(t-TZ_ADJUST)).valueOf() );
82
83     testcases[tc++] = new TestCase( SECTION,
84                                     "(new Date("+(t+TZ_ADJUST)+").valueOf()",
85                                     t+TZ_ADJUST,
86                                     (new Date(t+TZ_ADJUST)).valueOf() );
87 }
88
89 function MyObject( value ) {
90     this.value = value;
91     this.valueOf = Date.prototype.valueOf;
92     this.toString = new Function( "return this+\"\";");
93     return this;
94 }
95 function test() {
96     for ( tc=0; tc < testcases.length; tc++ ) {
97         testcases[tc].passed = writeTestCaseResult(
98                             testcases[tc].expect,
99                             testcases[tc].actual,
100                             testcases[tc].description +" = "+
101                             testcases[tc].actual );
102
103         testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
104     }
105     stopTest();
106     return ( testcases );
107 }