]> git.saurik.com Git - apple/javascriptcore.git/blame - tests/mozilla/ecma/Date/15.9.5.36-2.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / mozilla / ecma / Date / 15.9.5.36-2.js
CommitLineData
b37bf2e1
A
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.36-1.js
24 ECMA Section: 15.9.5.36 Date.prototype.setFullYear(year [, mon [, date ]] )
25 Description:
26
27 If mon is not specified, this behaves as if mon were specified with the
28 value getMonth( ). If date is not specified, this behaves as if date were
29 specified with the value getDate( ).
30
31 1. Let t be the result of LocalTime(this time value); but if this time
32 value is NaN, let t be +0.
33 2. Call ToNumber(year).
34 3. If mon is not specified, compute MonthFromTime(t); otherwise, call
35 ToNumber(mon).
36 4. If date is not specified, compute DateFromTime(t); otherwise, call
37 ToNumber(date).
38 5. Compute MakeDay(Result(2), Result(3), Result(4)).
39 6. Compute UTC(MakeDate(Result(5), TimeWithinDay(t))).
40 7. Set the [[Value]] property of the this value to TimeClip(Result(6)).
41 8. Return the value of the [[Value]] property of the this value.
42
43 Author: christine@netscape.com
44 Date: 12 november 1997
45
46 Added test cases for Year 2000 Compatilibity Testing.
47
48*/
49 var SECTION = "15.9.5.36-2";
50 var VERSION = "ECMA_1";
51 startTest();
52
53 writeHeaderToLog( SECTION + " Date.prototype.setFullYear(year [, mon [, date ]] )");
54
55 getTestCases();
56 test();
57
58function test() {
59 for ( tc=0; tc < testcases.length; tc++ ) {
60 testcases[tc].passed = writeTestCaseResult(
61 testcases[tc].expect,
62 testcases[tc].actual,
63 testcases[tc].description +" = "+
64 testcases[tc].actual );
65
66 testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
67 }
68 stopTest();
69 return ( testcases );
70}
71function getTestCases() {
72 // 1970
73
74 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1970);TDATE",
75 UTCDateFromTime(SetFullYear(0,1970)),
76 LocalDateFromTime(SetFullYear(0,1970)) );
77
78 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1970,0);TDATE",
79 UTCDateFromTime(SetFullYear(0,1970,0)),
80 LocalDateFromTime(SetFullYear(0,1970,0)) );
81
82 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1970,0,1);TDATE",
83 UTCDateFromTime(SetFullYear(0,1970,0,1)),
84 LocalDateFromTime(SetFullYear(0,1970,0,1)) );
85/*
86 // 1971
87 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1971);TDATE",
88 UTCDateFromTime(SetFullYear(0,1971)),
89 LocalDateFromTime(SetFullYear(0,1971)) );
90
91 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1971,0);TDATE",
92 UTCDateFromTime(SetFullYear(0,1971,0)),
93 LocalDateFromTime(SetFullYear(0,1971,0)) );
94
95 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1971,0,1);TDATE",
96 UTCDateFromTime(SetFullYear(0,1971,0,1)),
97 LocalDateFromTime(SetFullYear(0,1971,0,1)) );
98
99 // 1999
100 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1999);TDATE",
101 UTCDateFromTime(SetFullYear(0,1999)),
102 LocalDateFromTime(SetFullYear(0,1999)) );
103
104 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1999,11);TDATE",
105 UTCDateFromTime(SetFullYear(0,1999,11)),
106 LocalDateFromTime(SetFullYear(0,1999,11)) );
107
108 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1999,11,31);TDATE",
109 UTCDateFromTime(SetFullYear(0,1999,11,31)),
110 LocalDateFromTime(SetFullYear(0,1999,11,31)) );
111
112 // 2000
113 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2000);TDATE",
114 UTCDateFromTime(SetFullYear(0,2000)),
115 LocalDateFromTime(SetFullYear(0,2000)) );
116
117 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2000,0);TDATE",
118 UTCDateFromTime(SetFullYear(0,2000,0)),
119 LocalDateFromTime(SetFullYear(0,2000,0)) );
120
121 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2000,0,1);TDATE",
122 UTCDateFromTime(SetFullYear(0,2000,0,1)),
123 LocalDateFromTime(SetFullYear(0,2000,0,1)) );
124
125 // feb 29, 2000
126 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2000);TDATE",
127 UTCDateFromTime(SetFullYear(0,2000)),
128 LocalDateFromTime(SetFullYear(0,2000)) );
129
130 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2000,1);TDATE",
131 UTCDateFromTime(SetFullYear(0,2000,1)),
132 LocalDateFromTime(SetFullYear(0,2000,1)) );
133
134 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2000,1,29);TDATE",
135 UTCDateFromTime(SetFullYear(0,2000,1,29)),
136 LocalDateFromTime(SetFullYear(0,2000,1,29)) );
137
138 // Jan 1, 2005
139 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2005);TDATE",
140 UTCDateFromTime(SetFullYear(0,2005)),
141 LocalDateFromTime(SetFullYear(0,2005)) );
142
143 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2005,0);TDATE",
144 UTCDateFromTime(SetFullYear(0,2005,0)),
145 LocalDateFromTime(SetFullYear(0,2005,0)) );
146
147 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2005,0,1);TDATE",
148 UTCDateFromTime(SetFullYear(0,2005,0,1)),
149 LocalDateFromTime(SetFullYear(0,2005,0,1)) );
150
151*/
152}
153function addNewTestCase( DateString, UTCDate, LocalDate) {
154 DateCase = eval( DateString );
155
156 var item = testcases.length;
157
158// fixed_year = ( ExpectDate.year >=1900 || ExpectDate.year < 2000 ) ? ExpectDate.year - 1900 : ExpectDate.year;
159
160 testcases[item++] = new TestCase( SECTION, DateString+".getTime()", UTCDate.value, DateCase.getTime() );
161 testcases[item++] = new TestCase( SECTION, DateString+".valueOf()", UTCDate.value, DateCase.valueOf() );
162
163 testcases[item++] = new TestCase( SECTION, DateString+".getUTCFullYear()", UTCDate.year, DateCase.getUTCFullYear() );
164 testcases[item++] = new TestCase( SECTION, DateString+".getUTCMonth()", UTCDate.month, DateCase.getUTCMonth() );
165 testcases[item++] = new TestCase( SECTION, DateString+".getUTCDate()", UTCDate.date, DateCase.getUTCDate() );
166 testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", UTCDate.day, DateCase.getUTCDay() );
167 testcases[item++] = new TestCase( SECTION, DateString+".getUTCHours()", UTCDate.hours, DateCase.getUTCHours() );
168 testcases[item++] = new TestCase( SECTION, DateString+".getUTCMinutes()", UTCDate.minutes,DateCase.getUTCMinutes() );
169 testcases[item++] = new TestCase( SECTION, DateString+".getUTCSeconds()", UTCDate.seconds,DateCase.getUTCSeconds() );
170 testcases[item++] = new TestCase( SECTION, DateString+".getUTCMilliseconds()", UTCDate.ms, DateCase.getUTCMilliseconds() );
171
172 testcases[item++] = new TestCase( SECTION, DateString+".getFullYear()", LocalDate.year, DateCase.getFullYear() );
173 testcases[item++] = new TestCase( SECTION, DateString+".getMonth()", LocalDate.month, DateCase.getMonth() );
174 testcases[item++] = new TestCase( SECTION, DateString+".getDate()", LocalDate.date, DateCase.getDate() );
175 testcases[item++] = new TestCase( SECTION, DateString+".getDay()", LocalDate.day, DateCase.getDay() );
176 testcases[item++] = new TestCase( SECTION, DateString+".getHours()", LocalDate.hours, DateCase.getHours() );
177 testcases[item++] = new TestCase( SECTION, DateString+".getMinutes()", LocalDate.minutes, DateCase.getMinutes() );
178 testcases[item++] = new TestCase( SECTION, DateString+".getSeconds()", LocalDate.seconds, DateCase.getSeconds() );
179 testcases[item++] = new TestCase( SECTION, DateString+".getMilliseconds()", LocalDate.ms, DateCase.getMilliseconds() );
180
181 DateCase.toString = Object.prototype.toString;
182
183 testcases[item++] = new TestCase( SECTION,
184 DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
185 "[object Date]",
186 DateCase.toString() );
187}
188
189function MyDate() {
190 this.year = 0;
191 this.month = 0;
192 this.date = 0;
193 this.hours = 0;
194 this.minutes = 0;
195 this.seconds = 0;
196 this.ms = 0;
197}
198function LocalDateFromTime(t) {
199 t = LocalTime(t);
200 return ( MyDateFromTime(t) );
201}
202function UTCDateFromTime(t) {
203 return ( MyDateFromTime(t) );
204}
205function MyDateFromTime( t ) {
206 var d = new MyDate();
207 d.year = YearFromTime(t);
208 d.month = MonthFromTime(t);
209 d.date = DateFromTime(t);
210 d.hours = HourFromTime(t);
211 d.minutes = MinFromTime(t);
212 d.seconds = SecFromTime(t);
213 d.ms = msFromTime(t);
214
215 d.time = MakeTime( d.hours, d.minutes, d.seconds, d.ms );
216 d.value = TimeClip( MakeDate( MakeDay( d.year, d.month, d.date ), d.time ) );
217 d.day = WeekDay( d.value );
218
219 return (d);
220}
221function SetFullYear( t, year, mon, date ) {
222 var T = ( isNaN(t) ) ? 0 : LocalTime(t) ;
223 var YEAR = Number( year );
224 var MONTH = ( mon == void 0 ) ? MonthFromTime(T) : Number( mon );
225 var DATE = ( date == void 0 ) ? DateFromTime(T) : Number( date );
226
227 var DAY = MakeDay( YEAR, MONTH, DATE );
228 var UTC_DATE = UTC(MakeDate( DAY, TimeWithinDay(T)));
229
230 return ( TimeClip(UTC_DATE) );
231}