js/src/tests/ecma/Date/15.9.3.1-2.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
michael@0 2 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 3 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 5
michael@0 6
michael@0 7 /**
michael@0 8 File Name: 15.9.3.1.js
michael@0 9 ECMA Section: 15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
michael@0 10 Description: The [[Prototype]] property of the newly constructed
michael@0 11 object is set to the original Date prototype object,
michael@0 12 the one that is the initial value of Date.prototype.
michael@0 13
michael@0 14 The [[Class]] property of the newly constructed object
michael@0 15 is set as follows:
michael@0 16 1. Call ToNumber(year)
michael@0 17 2. Call ToNumber(month)
michael@0 18 3. Call ToNumber(date)
michael@0 19 4. Call ToNumber(hours)
michael@0 20 5. Call ToNumber(minutes)
michael@0 21 6. Call ToNumber(seconds)
michael@0 22 7. Call ToNumber(ms)
michael@0 23 8. If Result(1) is NaN and 0 <= ToInteger(Result(1)) <=
michael@0 24 99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
michael@0 25 Result(8) is Result(1)
michael@0 26 9. Compute MakeDay(Result(8), Result(2), Result(3)
michael@0 27 10. Compute MakeTime(Result(4), Result(5), Result(6),
michael@0 28 Result(7)
michael@0 29 11. Compute MakeDate(Result(9), Result(10))
michael@0 30 12. Set the [[Value]] property of the newly constructed
michael@0 31 object to TimeClip(UTC(Result(11))).
michael@0 32
michael@0 33
michael@0 34 This tests the returned value of a newly constructed
michael@0 35 Date object.
michael@0 36
michael@0 37 Author: christine@netscape.com
michael@0 38 Date: 7 july 1997
michael@0 39 */
michael@0 40
michael@0 41 var SECTION = "15.9.3.1";
michael@0 42 var VERSION = "ECMA_1";
michael@0 43 startTest();
michael@0 44 var TITLE = "new Date( year, month, date, hours, minutes, seconds, ms )";
michael@0 45
michael@0 46 var TIME = 0;
michael@0 47 var UTC_YEAR = 1;
michael@0 48 var UTC_MONTH = 2;
michael@0 49 var UTC_DATE = 3;
michael@0 50 var UTC_DAY = 4;
michael@0 51 var UTC_HOURS = 5;
michael@0 52 var UTC_MINUTES = 6;
michael@0 53 var UTC_SECONDS = 7;
michael@0 54 var UTC_MS = 8;
michael@0 55
michael@0 56 var YEAR = 9;
michael@0 57 var MONTH = 10;
michael@0 58 var DATE = 11;
michael@0 59 var DAY = 12;
michael@0 60 var HOURS = 13;
michael@0 61 var MINUTES = 14;
michael@0 62 var SECONDS = 15;
michael@0 63 var MS = 16;
michael@0 64
michael@0 65 writeHeaderToLog( SECTION + " "+ TITLE);
michael@0 66
michael@0 67
michael@0 68 // all the "ResultArrays" below are hard-coded to Pacific Standard Time values -
michael@0 69
michael@0 70 // Dates around 2000
michael@0 71
michael@0 72 addNewTestCase( new Date( 1999,11,31,15,59,59,999),
michael@0 73 "new Date( 1999,11,31,15,59,59,999)",
michael@0 74 [TIME_2000-1,1999,11,31,5,23,59,59,999,1999,11,31,5,15,59,59,999] );
michael@0 75
michael@0 76 addNewTestCase( new Date( 1999,11,31,16,0,0,0),
michael@0 77 "new Date( 1999,11,31,16,0,0,0)",
michael@0 78 [TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5, 16,0,0,0] );
michael@0 79
michael@0 80 addNewTestCase( new Date( 1999,11,31,23,59,59,999),
michael@0 81 "new Date( 1999,11,31,23,59,59,999)",
michael@0 82 [TIME_2000-PST_ADJUST-1,2000,0,1,6,7,59,59,999,1999,11,31,5,23,59,59,999] );
michael@0 83
michael@0 84 addNewTestCase( new Date( 2000,0,1,0,0,0,0),
michael@0 85 "new Date( 2000,0,1,0,0,0,0)",
michael@0 86 [TIME_2000-PST_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
michael@0 87
michael@0 88 addNewTestCase( new Date( 2000,0,1,0,0,0,1),
michael@0 89 "new Date( 2000,0,1,0,0,0,1)",
michael@0 90 [TIME_2000-PST_ADJUST+1,2000,0,1,6,8,0,0,1,2000,0,1,6,0,0,0,1] );
michael@0 91
michael@0 92 test();
michael@0 93
michael@0 94 function addNewTestCase( DateCase, DateString, ResultArray ) {
michael@0 95 //adjust hard-coded ResultArray for tester's timezone instead of PST
michael@0 96 adjustResultArray(ResultArray);
michael@0 97
michael@0 98 new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME], DateCase.getTime() );
michael@0 99 new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME], DateCase.valueOf() );
michael@0 100
michael@0 101 new TestCase( SECTION, DateString+".getUTCFullYear()", ResultArray[UTC_YEAR], DateCase.getUTCFullYear() );
michael@0 102 new TestCase( SECTION, DateString+".getUTCMonth()", ResultArray[UTC_MONTH], DateCase.getUTCMonth() );
michael@0 103 new TestCase( SECTION, DateString+".getUTCDate()", ResultArray[UTC_DATE], DateCase.getUTCDate() );
michael@0 104 new TestCase( SECTION, DateString+".getUTCDay()", ResultArray[UTC_DAY], DateCase.getUTCDay() );
michael@0 105 new TestCase( SECTION, DateString+".getUTCHours()", ResultArray[UTC_HOURS], DateCase.getUTCHours() );
michael@0 106 new TestCase( SECTION, DateString+".getUTCMinutes()", ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
michael@0 107 new TestCase( SECTION, DateString+".getUTCSeconds()", ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
michael@0 108 new TestCase( SECTION, DateString+".getUTCMilliseconds()", ResultArray[UTC_MS], DateCase.getUTCMilliseconds() );
michael@0 109
michael@0 110 new TestCase( SECTION, DateString+".getFullYear()", ResultArray[YEAR], DateCase.getFullYear() );
michael@0 111 new TestCase( SECTION, DateString+".getMonth()", ResultArray[MONTH], DateCase.getMonth() );
michael@0 112 new TestCase( SECTION, DateString+".getDate()", ResultArray[DATE], DateCase.getDate() );
michael@0 113 new TestCase( SECTION, DateString+".getDay()", ResultArray[DAY], DateCase.getDay() );
michael@0 114 new TestCase( SECTION, DateString+".getHours()", ResultArray[HOURS], DateCase.getHours() );
michael@0 115 new TestCase( SECTION, DateString+".getMinutes()", ResultArray[MINUTES], DateCase.getMinutes() );
michael@0 116 new TestCase( SECTION, DateString+".getSeconds()", ResultArray[SECONDS], DateCase.getSeconds() );
michael@0 117 new TestCase( SECTION, DateString+".getMilliseconds()", ResultArray[MS], DateCase.getMilliseconds() );
michael@0 118 }

mercurial