]>
git.saurik.com Git - apple/javascriptcore.git/blob - tests/mozilla/ecma/Date/15.9.5.26-1.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
22 /** File Name: 15.9.5.26-1.js
23 ECMA Section: 15.9.5.26 Date.prototype.setSeconds(sec [,ms])
26 If ms is not specified, this behaves as if ms were specified with the
27 value getMilliseconds( ).
29 1. Let t be the result of LocalTime(this time value).
30 2. Call ToNumber(sec).
31 3. If ms is not specified, compute msFromTime(t); otherwise, call
33 4. Compute MakeTime(HourFromTime(t), MinFromTime(t), Result(2),
35 5. Compute UTC(MakeDate(Day(t), Result(4))).
36 6. Set the [[Value]] property of the this value to TimeClip(Result(5)).
37 7. Return the value of the [[Value]] property of the this value.
39 Author: christine@netscape.com
40 Date: 12 november 1997
42 var SECTION
= "15.9.5.26-1";
43 var VERSION
= "ECMA_1";
46 writeHeaderToLog( SECTION
+ " Date.prototype.setSeconds(sec [,ms] )");
48 var testcases
= new Array();
53 for ( tc
=0; tc
< testcases
.length
; tc
++ ) {
54 testcases
[tc
].passed
= writeTestCaseResult(
57 testcases
[tc
].description
+" = "+
58 testcases
[tc
].actual
);
60 testcases
[tc
].reason
+= ( testcases
[tc
].passed
) ? "" : "wrong value ";
66 function getTestCases() {
67 addNewTestCase( 0, 0, 0,
68 "TDATE = new Date(0);(TDATE).setSeconds(0,0);TDATE",
69 UTCDateFromTime(SetSeconds(0,0,0)),
70 LocalDateFromTime(SetSeconds(0,0,0)) );
72 addNewTestCase( 28800000,59,999,
73 "TDATE = new Date(28800000);(TDATE).setSeconds(59,999);TDATE",
74 UTCDateFromTime(SetSeconds(28800000,59,999)),
75 LocalDateFromTime(SetSeconds(28800000,59,999)) );
77 addNewTestCase( 28800000,999,999,
78 "TDATE = new Date(28800000);(TDATE).setSeconds(999,999);TDATE",
79 UTCDateFromTime(SetSeconds(28800000,999,999)),
80 LocalDateFromTime(SetSeconds(28800000,999,999)) );
82 addNewTestCase( 28800000,999, void 0,
83 "TDATE = new Date(28800000);(TDATE).setSeconds(999);TDATE",
84 UTCDateFromTime(SetSeconds(28800000,999,0)),
85 LocalDateFromTime(SetSeconds(28800000,999,0)) );
87 addNewTestCase( 28800000,-28800, void 0,
88 "TDATE = new Date(28800000);(TDATE).setSeconds(-28800);TDATE",
89 UTCDateFromTime(SetSeconds(28800000,-28800)),
90 LocalDateFromTime(SetSeconds(28800000,-28800)) );
92 addNewTestCase( 946684800000,1234567,void 0,
93 "TDATE = new Date(946684800000);(TDATE).setSeconds(1234567);TDATE",
94 UTCDateFromTime(SetSeconds(946684800000,1234567)),
95 LocalDateFromTime(SetSeconds(946684800000,1234567)) );
97 addNewTestCase( -2208988800000,59,999,
98 "TDATE = new Date(-2208988800000);(TDATE).setSeconds(59,999);TDATE",
99 UTCDateFromTime(SetSeconds(-2208988800000,59,999)),
100 LocalDateFromTime(SetSeconds(-2208988800000,59,999)) );
103 addNewTestCase( "TDATE = new Date(-2208988800000);(TDATE).setUTCMilliseconds(123456789);TDATE",
104 UTCDateFromTime(SetUTCMilliseconds(-2208988800000,123456789)),
105 LocalDateFromTime(SetUTCMilliseconds(-2208988800000,123456789)) );
107 addNewTestCase( "TDATE = new Date(-2208988800000);(TDATE).setUTCMilliseconds(123456);TDATE",
108 UTCDateFromTime(SetUTCMilliseconds(-2208988800000,123456)),
109 LocalDateFromTime(SetUTCMilliseconds(-2208988800000,123456)) );
111 addNewTestCase( "TDATE = new Date(-2208988800000);(TDATE).setUTCMilliseconds(-123456);TDATE",
112 UTCDateFromTime(SetUTCMilliseconds(-2208988800000,-123456)),
113 LocalDateFromTime(SetUTCMilliseconds(-2208988800000,-123456)) );
115 addNewTestCase( "TDATE = new Date(0);(TDATE).setUTCMilliseconds(-999);TDATE",
116 UTCDateFromTime(SetUTCMilliseconds(0,-999)),
117 LocalDateFromTime(SetUTCMilliseconds(0,-999)) );
120 function addNewTestCase( startTime
, sec
, ms
, DateString
,UTCDate
, LocalDate
) {
121 DateCase
= new Date( startTime
);
122 if ( ms
!= void 0 ) {
123 DateCase
.setSeconds( sec
, ms
);
125 DateCase
.setSeconds( sec
);
128 var item
= testcases
.length
;
130 // fixed_year = ( ExpectDate.year >=1900 || ExpectDate.year < 2000 ) ? ExpectDate.year - 1900 : ExpectDate.year;
132 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getTime()", UTCDate
.value
, DateCase
.getTime() );
133 testcases
[item
++] = new TestCase( SECTION
, DateString
+".valueOf()", UTCDate
.value
, DateCase
.valueOf() );
135 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCFullYear()", UTCDate
.year
, DateCase
.getUTCFullYear() );
136 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCMonth()", UTCDate
.month
, DateCase
.getUTCMonth() );
137 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCDate()", UTCDate
.date
, DateCase
.getUTCDate() );
138 // testcases[item++] = new TestCase( SECTION, DateString+".getUTCDay()", UTCDate.day, DateCase.getUTCDay() );
139 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCHours()", UTCDate
.hours
, DateCase
.getUTCHours() );
140 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCMinutes()", UTCDate
.minutes
,DateCase
.getUTCMinutes() );
141 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCSeconds()", UTCDate
.seconds
,DateCase
.getUTCSeconds() );
142 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCMilliseconds()", UTCDate
.ms
, DateCase
.getUTCMilliseconds() );
144 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getFullYear()", LocalDate
.year
, DateCase
.getFullYear() );
145 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getMonth()", LocalDate
.month
, DateCase
.getMonth() );
146 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getDate()", LocalDate
.date
, DateCase
.getDate() );
147 // testcases[item++] = new TestCase( SECTION, DateString+".getDay()", LocalDate.day, DateCase.getDay() );
148 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getHours()", LocalDate
.hours
, DateCase
.getHours() );
149 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getMinutes()", LocalDate
.minutes
, DateCase
.getMinutes() );
150 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getSeconds()", LocalDate
.seconds
, DateCase
.getSeconds() );
151 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getMilliseconds()", LocalDate
.ms
, DateCase
.getMilliseconds() );
153 DateCase
.toString
= Object
.prototype.toString
;
155 testcases
[item
++] = new TestCase( SECTION
,
156 DateString
+".toString=Object.prototype.toString;"+DateString
+".toString()",
158 DateCase
.toString() );
170 function LocalDateFromTime(t
) {
172 return ( MyDateFromTime(t
) );
174 function UTCDateFromTime(t
) {
175 return ( MyDateFromTime(t
) );
177 function MyDateFromTime( t
) {
178 var d
= new MyDate();
179 d
.year
= YearFromTime(t
);
180 d
.month
= MonthFromTime(t
);
181 d
.date
= DateFromTime(t
);
182 d
.hours
= HourFromTime(t
);
183 d
.minutes
= MinFromTime(t
);
184 d
.seconds
= SecFromTime(t
);
185 d
.ms
= msFromTime(t
);
187 d
.time
= MakeTime( d
.hours
, d
.minutes
, d
.seconds
, d
.ms
);
188 d
.value
= TimeClip( MakeDate( MakeDay( d
.year
, d
.month
, d
.date
), d
.time
) );
189 d
.day
= WeekDay( d
.value
);
193 function SetSeconds( t
, s
, m
) {
194 var MS
= ( m
== void 0 ) ? msFromTime(t
) : Number( m
);
195 var TIME
= LocalTime( t
);
197 var RESULT4
= MakeTime( HourFromTime( TIME
),
201 var UTC_TIME
= UTC(MakeDate(Day(TIME
), RESULT4
));
202 return ( TimeClip(UTC_TIME
) );