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

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 /**
     8    File Name:          15.9.3.1.js
     9    ECMA Section:       15.9.3.1 new Date (year, month, date, hours, minutes, seconds, ms)
    10    Description:        The [[Prototype]] property of the newly constructed
    11    object is set to the original Date prototype object,
    12    the one that is the initial value of Date.prototype.
    14    The [[Class]] property of the newly constructed object
    15    is set as follows:
    16    1. Call ToNumber(year)
    17    2. Call ToNumber(month)
    18    3. Call ToNumber(date)
    19    4. Call ToNumber(hours)
    20    5. Call ToNumber(minutes)
    21    6. Call ToNumber(seconds)
    22    7. Call ToNumber(ms)
    23    8.  If Result(1) is NaN and 0 <= ToInteger(Result(1)) <=
    24    99, Result(8) is 1900+ToInteger(Result(1)); otherwise,
    25    Result(8) is Result(1)
    26    9.  Compute MakeDay(Result(8), Result(2), Result(3)
    27    10. Compute MakeTime(Result(4), Result(5), Result(6),
    28    Result(7)
    29    11. Compute MakeDate(Result(9), Result(10))
    30    12. Set the [[Value]] property of the newly constructed
    31    object to TimeClip(UTC(Result(11))).
    34    This tests the returned value of a newly constructed
    35    Date object.
    37    Author:             christine@netscape.com
    38    Date:               7 july 1997
    39 */
    41 var SECTION = "15.9.3.1";
    42 var VERSION = "ECMA_1";
    43 startTest();
    44 var TITLE   = "new Date( year, month, date, hours, minutes, seconds, ms )";
    46 var TIME        = 0;
    47 var UTC_YEAR    = 1;
    48 var UTC_MONTH   = 2;
    49 var UTC_DATE    = 3;
    50 var UTC_DAY     = 4;
    51 var UTC_HOURS   = 5;
    52 var UTC_MINUTES = 6;
    53 var UTC_SECONDS = 7;
    54 var UTC_MS      = 8;
    56 var YEAR        = 9;
    57 var MONTH       = 10;
    58 var DATE        = 11;
    59 var DAY         = 12;
    60 var HOURS       = 13;
    61 var MINUTES     = 14;
    62 var SECONDS     = 15;
    63 var MS          = 16;
    65 writeHeaderToLog( SECTION + " "+ TITLE);
    67 // Dates around 1970
    69 addNewTestCase( new Date( 1969,11,31,15,59,59,999),
    70 		"new Date( 1969,11,31,15,59,59,999)",
    71 		[TIME_1970-1,1969,11,31,3,23,59,59,999,1969,11,31,3,15,59,59,999] );
    73 addNewTestCase( new Date( 1969,11,31,23,59,59,999),
    74 		"new Date( 1969,11,31,23,59,59,999)",
    75 		[TIME_1970-PST_ADJUST-1,1970,0,1,4,7,59,59,999,1969,11,31,3,23,59,59,999] );
    77 addNewTestCase( new Date( 1970,0,1,0,0,0,0),
    78 		"new Date( 1970,0,1,0,0,0,0)",
    79 		[TIME_1970-PST_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
    81 addNewTestCase( new Date( 1969,11,31,16,0,0,0),
    82 		"new Date( 1969,11,31,16,0,0,0)",
    83 		[TIME_1970,1970,0,1,4,0,0,0,0,1969,11,31,3,16,0,0,0] );
    85 addNewTestCase( new Date(1969,12,1,0,0,0,0),
    86 		"new Date(1969,12,1,0,0,0,0)",
    87 		[TIME_1970-PST_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
    89 addNewTestCase( new Date(1969,11,32,0,0,0,0),
    90 		"new Date(1969,11,32,0,0,0,0)",
    91 		[TIME_1970-PST_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
    93 addNewTestCase( new Date(1969,11,31,24,0,0,0),
    94 		"new Date(1969,11,31,24,0,0,0)",
    95 		[TIME_1970-PST_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
    97 addNewTestCase( new Date(1969,11,31,23,60,0,0),
    98 		"new Date(1969,11,31,23,60,0,0)",
    99 		[TIME_1970-PST_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
   101 addNewTestCase( new Date(1969,11,31,23,59,60,0),
   102 		"new Date(1969,11,31,23,59,60,0)",
   103 		[TIME_1970-PST_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
   105 addNewTestCase( new Date(1969,11,31,23,59,59,1000),
   106 		"new Date(1969,11,31,23,59,59,1000)",
   107 		[TIME_1970-PST_ADJUST,1970,0,1,4,8,0,0,0,1970,0,1,4,0,0,0,0] );
   109 // Dates around 2000
   111 addNewTestCase( new Date( 1999,11,31,15,59,59,999),
   112 		"new Date( 1999,11,31,15,59,59,999)",
   113 		[TIME_2000-1,1999,11,31,5,23,59,59,999,1999,11,31,5,15,59,59,999] );
   115 addNewTestCase( new Date( 1999,11,31,16,0,0,0),
   116 		"new Date( 1999,11,31,16,0,0,0)",
   117 		[TIME_2000,2000,0,1,6,0,0,0,0,1999,11,31,5, 16,0,0,0] );
   119 addNewTestCase( new Date( 1999,11,31,23,59,59,999),
   120 		"new Date( 1999,11,31,23,59,59,999)",
   121 		[TIME_2000-PST_ADJUST-1,2000,0,1,6,7,59,59,999,1999,11,31,5,23,59,59,999] );
   123 addNewTestCase( new Date( 2000,0,1,0,0,0,0),
   124 		"new Date( 2000,0,1,0,0,0,0)",
   125 		[TIME_2000-PST_ADJUST,2000,0,1,6,8,0,0,0,2000,0,1,6,0,0,0,0] );
   127 addNewTestCase( new Date( 2000,0,1,0,0,0,1),
   128 		"new Date( 2000,0,1,0,0,0,1)",
   129 		[TIME_2000-PST_ADJUST+1,2000,0,1,6,8,0,0,1,2000,0,1,6,0,0,0,1] );
   131 // Dates around 29 Feb 2000
   133 addNewTestCase( new Date(2000,1,28,16,0,0,0),
   134 		"new Date(2000,1,28,16,0,0,0)",
   135 		[UTC_FEB_29_2000,2000,1,29,2,0,0,0,0,2000,1,28,1,16,0,0,0] );
   137 addNewTestCase( new Date(2000,1,29,0,0,0,0),
   138 		"new Date(2000,1,29,0,0,0,0)",
   139 		[UTC_FEB_29_2000-PST_ADJUST,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
   141 addNewTestCase( new Date(2000,1,28,24,0,0,0),
   142 		"new Date(2000,1,28,24,0,0,0)",
   143 		[UTC_FEB_29_2000-PST_ADJUST,2000,1,29,2,8,0,0,0,2000,1,29,2,0,0,0,0] );
   145 // Dates around 1900
   147 addNewTestCase( new Date(1899,11,31,16,0,0,0),
   148 		"new Date(1899,11,31,16,0,0,0)",
   149 		[TIME_1900,1900,0,1,1,0,0,0,0,1899,11,31,0,16,0,0,0] );
   151 addNewTestCase( new Date(1899,11,31,15,59,59,999),
   152 		"new Date(1899,11,31,15,59,59,999)",
   153 		[TIME_1900-1,1899,11,31,0,23,59,59,999,1899,11,31,0,15,59,59,999] );
   155 addNewTestCase( new Date(1899,11,31,23,59,59,999),
   156 		"new Date(1899,11,31,23,59,59,999)",
   157 		[TIME_1900-PST_ADJUST-1,1900,0,1,1,7,59,59,999,1899,11,31,0,23,59,59,999] );
   159 addNewTestCase( new Date(1900,0,1,0,0,0,0),
   160 		"new Date(1900,0,1,0,0,0,0)",
   161 		[TIME_1900-PST_ADJUST,1900,0,1,1,8,0,0,0,1900,0,1,1,0,0,0,0] );
   163 addNewTestCase( new Date(1900,0,1,0,0,0,1),
   164 		"new Date(1900,0,1,0,0,0,1)",
   165 		[TIME_1900-PST_ADJUST+1,1900,0,1,1,8,0,0,1,1900,0,1,1,0,0,0,1] );
   167 // Dates around 2005
   169 addNewTestCase( new Date(2005,0,1,0,0,0,0),
   170 		"new Date(2005,0,1,0,0,0,0)",
   171 		[UTC_JAN_1_2005-PST_ADJUST,2005,0,1,6,8,0,0,0,2005,0,1,6,0,0,0,0] );
   173 addNewTestCase( new Date(2004,11,31,16,0,0,0),
   174 		"new Date(2004,11,31,16,0,0,0)",
   175 		[UTC_JAN_1_2005,2005,0,1,6,0,0,0,0,2004,11,31,5,16,0,0,0] );
   177 test();
   180 function addNewTestCase( DateCase, DateString, ResultArray ) {
   181   //adjust hard-coded ResultArray for tester's timezone instead of PST
   182   adjustResultArray(ResultArray);
   184   new TestCase( SECTION, DateString+".getTime()", ResultArray[TIME],       DateCase.getTime() );
   185   new TestCase( SECTION, DateString+".valueOf()", ResultArray[TIME],       DateCase.valueOf() );
   187   new TestCase( SECTION, DateString+".getUTCFullYear()",      ResultArray[UTC_YEAR],  DateCase.getUTCFullYear() );
   188   new TestCase( SECTION, DateString+".getUTCMonth()",         ResultArray[UTC_MONTH],  DateCase.getUTCMonth() );
   189   new TestCase( SECTION, DateString+".getUTCDate()",          ResultArray[UTC_DATE],   DateCase.getUTCDate() );
   190   new TestCase( SECTION, DateString+".getUTCDay()",           ResultArray[UTC_DAY],    DateCase.getUTCDay() );
   191   new TestCase( SECTION, DateString+".getUTCHours()",         ResultArray[UTC_HOURS],  DateCase.getUTCHours() );
   192   new TestCase( SECTION, DateString+".getUTCMinutes()",       ResultArray[UTC_MINUTES],DateCase.getUTCMinutes() );
   193   new TestCase( SECTION, DateString+".getUTCSeconds()",       ResultArray[UTC_SECONDS],DateCase.getUTCSeconds() );
   194   new TestCase( SECTION, DateString+".getUTCMilliseconds()",  ResultArray[UTC_MS],     DateCase.getUTCMilliseconds() );
   196   new TestCase( SECTION, DateString+".getFullYear()",         ResultArray[YEAR],       DateCase.getFullYear() );
   197   new TestCase( SECTION, DateString+".getMonth()",            ResultArray[MONTH],      DateCase.getMonth() );
   198   new TestCase( SECTION, DateString+".getDate()",             ResultArray[DATE],       DateCase.getDate() );
   199   new TestCase( SECTION, DateString+".getDay()",              ResultArray[DAY],        DateCase.getDay() );
   200   new TestCase( SECTION, DateString+".getHours()",            ResultArray[HOURS],      DateCase.getHours() );
   201   new TestCase( SECTION, DateString+".getMinutes()",          ResultArray[MINUTES],    DateCase.getMinutes() );
   202   new TestCase( SECTION, DateString+".getSeconds()",          ResultArray[SECONDS],    DateCase.getSeconds() );
   203   new TestCase( SECTION, DateString+".getMilliseconds()",     ResultArray[MS],         DateCase.getMilliseconds() );
   204 }

mercurial