]>
git.saurik.com Git - apple/javascriptcore.git/blob - tests/mozilla/ecma/Date/15.9.5.36-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/
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.
11 * The Original Code is Mozilla Communicator client code, released March
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
23 File Name: 15.9.5.36-1.js
24 ECMA Section: 15.9.5.36 Date.prototype.setFullYear(year [, mon [, date ]] )
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( ).
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
36 4. If date is not specified, compute DateFromTime(t); otherwise, call
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.
43 Author: christine@netscape.com
44 Date: 12 november 1997
46 Added test cases for Year 2000 Compatilibity Testing.
49 var SECTION
= "15.9.5.36-2";
50 var VERSION
= "ECMA_1";
53 writeHeaderToLog( SECTION
+ " Date.prototype.setFullYear(year [, mon [, date ]] )");
59 for ( tc
=0; tc
< testcases
.length
; tc
++ ) {
60 testcases
[tc
].passed
= writeTestCaseResult(
63 testcases
[tc
].description
+" = "+
64 testcases
[tc
].actual
);
66 testcases
[tc
].reason
+= ( testcases
[tc
].passed
) ? "" : "wrong value ";
71 function getTestCases() {
74 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1970);TDATE",
75 UTCDateFromTime(SetFullYear(0,1970)),
76 LocalDateFromTime(SetFullYear(0,1970)) );
78 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1970,0);TDATE",
79 UTCDateFromTime(SetFullYear(0,1970,0)),
80 LocalDateFromTime(SetFullYear(0,1970,0)) );
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)) );
87 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1971);TDATE",
88 UTCDateFromTime(SetFullYear(0,1971)),
89 LocalDateFromTime(SetFullYear(0,1971)) );
91 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1971,0);TDATE",
92 UTCDateFromTime(SetFullYear(0,1971,0)),
93 LocalDateFromTime(SetFullYear(0,1971,0)) );
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)) );
100 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1999);TDATE",
101 UTCDateFromTime(SetFullYear(0,1999)),
102 LocalDateFromTime(SetFullYear(0,1999)) );
104 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(1999,11);TDATE",
105 UTCDateFromTime(SetFullYear(0,1999,11)),
106 LocalDateFromTime(SetFullYear(0,1999,11)) );
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)) );
113 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2000);TDATE",
114 UTCDateFromTime(SetFullYear(0,2000)),
115 LocalDateFromTime(SetFullYear(0,2000)) );
117 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2000,0);TDATE",
118 UTCDateFromTime(SetFullYear(0,2000,0)),
119 LocalDateFromTime(SetFullYear(0,2000,0)) );
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)) );
126 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2000);TDATE",
127 UTCDateFromTime(SetFullYear(0,2000)),
128 LocalDateFromTime(SetFullYear(0,2000)) );
130 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2000,1);TDATE",
131 UTCDateFromTime(SetFullYear(0,2000,1)),
132 LocalDateFromTime(SetFullYear(0,2000,1)) );
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)) );
139 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2005);TDATE",
140 UTCDateFromTime(SetFullYear(0,2005)),
141 LocalDateFromTime(SetFullYear(0,2005)) );
143 addNewTestCase( "TDATE = new Date(0);(TDATE).setFullYear(2005,0);TDATE",
144 UTCDateFromTime(SetFullYear(0,2005,0)),
145 LocalDateFromTime(SetFullYear(0,2005,0)) );
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)) );
153 function addNewTestCase( DateString
, UTCDate
, LocalDate
) {
154 DateCase
= eval( DateString
);
156 var item
= testcases
.length
;
158 // fixed_year = ( ExpectDate.year >=1900 || ExpectDate.year < 2000 ) ? ExpectDate.year - 1900 : ExpectDate.year;
160 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getTime()", UTCDate
.value
, DateCase
.getTime() );
161 testcases
[item
++] = new TestCase( SECTION
, DateString
+".valueOf()", UTCDate
.value
, DateCase
.valueOf() );
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() );
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() );
181 DateCase
.toString
= Object
.prototype.toString
;
183 testcases
[item
++] = new TestCase( SECTION
,
184 DateString
+".toString=Object.prototype.toString;"+DateString
+".toString()",
186 DateCase
.toString() );
198 function LocalDateFromTime(t
) {
200 return ( MyDateFromTime(t
) );
202 function UTCDateFromTime(t
) {
203 return ( MyDateFromTime(t
) );
205 function 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
);
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
);
221 function 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
);
227 var DAY
= MakeDay( YEAR
, MONTH
, DATE
);
228 var UTC_DATE
= UTC(MakeDate( DAY
, TimeWithinDay(T
)));
230 return ( TimeClip(UTC_DATE
) );