2005-08-16 Marek Safar <marek.safar@seznam.cz>
[mono.git] / mcs / class / Microsoft.JScript / Test / Mozilla / ecma / Date / 15.9.5.23-15.js
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\r
2 /* ***** BEGIN LICENSE BLOCK *****\r
3  * Version: MPL 1.1/GPL 2.0/LGPL 2.1\r
4  *\r
5  * The contents of this file are subject to the Mozilla Public License Version\r
6  * 1.1 (the "License"); you may not use this file except in compliance with\r
7  * the License. You may obtain a copy of the License at\r
8  * http://www.mozilla.org/MPL/\r
9  *\r
10  * Software distributed under the License is distributed on an "AS IS" basis,\r
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
12  * for the specific language governing rights and limitations under the\r
13  * License.\r
14  *\r
15  * The Original Code is Mozilla Communicator client code, released\r
16  * March 31, 1998.\r
17  *\r
18  * The Initial Developer of the Original Code is\r
19  * Netscape Communications Corporation.\r
20  * Portions created by the Initial Developer are Copyright (C) 1998\r
21  * the Initial Developer. All Rights Reserved.\r
22  *\r
23  * Contributor(s):\r
24  *\r
25  * Alternatively, the contents of this file may be used under the terms of\r
26  * either the GNU General Public License Version 2 or later (the "GPL"), or\r
27  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),\r
28  * in which case the provisions of the GPL or the LGPL are applicable instead\r
29  * of those above. If you wish to allow use of your version of this file only\r
30  * under the terms of either the GPL or the LGPL, and not to allow others to\r
31  * use your version of this file under the terms of the MPL, indicate your\r
32  * decision by deleting the provisions above and replace them with the notice\r
33  * and other provisions required by the GPL or the LGPL. If you do not delete\r
34  * the provisions above, a recipient may use your version of this file under\r
35  * the terms of any one of the MPL, the GPL or the LGPL.\r
36  *\r
37  * ***** END LICENSE BLOCK ***** */\r
38 \r
39 /**\r
40    File Name:          15.9.5.23-1.js\r
41    ECMA Section:       15.9.5.23 Date.prototype.setTime(time)\r
42    Description:\r
43 \r
44    1.  If the this value is not a Date object, generate a runtime error.\r
45    2.  Call ToNumber(time).\r
46    3.  Call TimeClip(Result(1)).\r
47    4.  Set the [[Value]] property of the this value to Result(2).\r
48    5.  Return the value of the [[Value]] property of the this value.\r
49 \r
50    Author:             christine@netscape.com\r
51    Date:               12 november 1997\r
52 \r
53 */\r
54 var SECTION = "15.9.5.23-1";\r
55 var VERSION = "ECMA_1";\r
56 startTest();\r
57 var TITLE = "Date.prototype.setTime()";\r
58 \r
59 writeHeaderToLog( SECTION + " Date.prototype.setTime(time)");\r
60 \r
61 var now = "now";\r
62 addTestCase( now, 0 );\r
63 /*\r
64   addTestCase( now, String( TIME_1900 ) );\r
65   addTestCase( now, String( TZ_DIFF* msPerHour ) );\r
66   addTestCase( now, String( TIME_2000 ) );\r
67 */\r
68 \r
69 test();\r
70 \r
71 function addTestCase( startTime, setTime ) {\r
72   if ( startTime == "now" ) {\r
73     DateCase = new Date();\r
74   } else {\r
75     DateCase = new Date( startTime );\r
76   }\r
77 \r
78   DateCase.setTime( setTime );\r
79   var DateString = "var d = new Date("+startTime+"); d.setTime("+setTime+"); d" ;\r
80   var UTCDate   = UTCDateFromTime ( Number(setTime) );\r
81   var LocalDate = LocalDateFromTime( Number(setTime) );\r
82 \r
83 //    fixed_year = ( ExpectDate.year >=1900 || ExpectDate.year < 2000 ) ? ExpectDate.year - 1900 : ExpectDate.year;\r
84 \r
85   new TestCase( SECTION, DateString+".getTime()",             UTCDate.value,      DateCase.getTime() );\r
86   new TestCase( SECTION, DateString+".valueOf()",             UTCDate.value,      DateCase.valueOf() );\r
87 \r
88   new TestCase( SECTION, DateString+".getUTCFullYear()",      UTCDate.year,       DateCase.getUTCFullYear() );\r
89   new TestCase( SECTION, DateString+".getUTCMonth()",         UTCDate.month,      DateCase.getUTCMonth() );\r
90   new TestCase( SECTION, DateString+".getUTCDate()",          UTCDate.date,       DateCase.getUTCDate() );\r
91   new TestCase( SECTION, DateString+".getUTCDay()",           UTCDate.day,        DateCase.getUTCDay() );\r
92   new TestCase( SECTION, DateString+".getUTCHours()",         UTCDate.hours,      DateCase.getUTCHours() );\r
93   new TestCase( SECTION, DateString+".getUTCMinutes()",       UTCDate.minutes,    DateCase.getUTCMinutes() );\r
94   new TestCase( SECTION, DateString+".getUTCSeconds()",       UTCDate.seconds,    DateCase.getUTCSeconds() );\r
95   new TestCase( SECTION, DateString+".getUTCMilliseconds()",  UTCDate.ms,         DateCase.getUTCMilliseconds() );\r
96 \r
97   new TestCase( SECTION, DateString+".getFullYear()",         LocalDate.year,     DateCase.getFullYear() );\r
98   new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,    DateCase.getMonth() );\r
99   new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,     DateCase.getDate() );\r
100   new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,      DateCase.getDay() );\r
101   new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,    DateCase.getHours() );\r
102   new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,  DateCase.getMinutes() );\r
103   new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,  DateCase.getSeconds() );\r
104   new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,       DateCase.getMilliseconds() );\r
105 \r
106   DateCase.toString = Object.prototype.toString;\r
107 \r
108   new TestCase( SECTION,\r
109                 DateString+".toString=Object.prototype.toString;"+DateString+".toString()",\r
110                 "[object Date]",\r
111                 DateCase.toString() );\r
112 }\r
113 function MyDate() {\r
114   this.year = 0;\r
115   this.month = 0;\r
116   this.date = 0;\r
117   this.hours = 0;\r
118   this.minutes = 0;\r
119   this.seconds = 0;\r
120   this.ms = 0;\r
121 }\r
122 function LocalDateFromTime(t) {\r
123   t = LocalTime(t);\r
124   return ( MyDateFromTime(t) );\r
125 }\r
126 function UTCDateFromTime(t) {\r
127   return ( MyDateFromTime(t) );\r
128 }\r
129 function MyDateFromTime( t ) {\r
130   var d       = new MyDate();\r
131   d.year      = YearFromTime(t);\r
132   d.month     = MonthFromTime(t);\r
133   d.date      = DateFromTime(t);\r
134   d.hours     = HourFromTime(t);\r
135   d.minutes   = MinFromTime(t);\r
136   d.seconds   = SecFromTime(t);\r
137   d.ms        = msFromTime(t);\r
138   d.time      = MakeTime( d.hours, d.minutes, d.seconds, d.ms );\r
139   d.value     = TimeClip( MakeDate( MakeDay( d.year, d.month, d.date ), d.time ) );\r
140   d.day       = WeekDay( d.value );\r
141   return (d);\r
142 }\r