michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: var BUGNUMBER = 363578; michael@0: var summary = '15.9.4.3 - Date.UTC edge-case arguments.'; michael@0: var actual = ''; michael@0: var expect = ''; michael@0: michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: test(); michael@0: //----------------------------------------------------------------------------- michael@0: michael@0: function test() michael@0: { michael@0: enterFunc ('test'); michael@0: printBugNumber(BUGNUMBER); michael@0: printStatus (summary); michael@0: michael@0: // michael@0: michael@0: expect = 31; michael@0: actual = (new Date(Date.UTC(2006, 0, 0)).getUTCDate()); michael@0: reportCompare(expect, actual, summary + ': date 0'); michael@0: michael@0: expect = 0; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, 0)).getUTCHours()); michael@0: reportCompare(expect, actual, summary + ': hours 0'); michael@0: michael@0: expect = 0; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, 0, 0)).getUTCMinutes()); michael@0: reportCompare(expect, actual, summary + ': minutes 0'); michael@0: michael@0: expect = 0; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, 0)).getUTCSeconds()); michael@0: reportCompare(expect, actual, summary + ': seconds 0'); michael@0: michael@0: expect = 0; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, 0, 0)).getUTCMilliseconds()); michael@0: reportCompare(expect, actual, summary + ': milliseconds 0'); michael@0: michael@0: // michael@0: michael@0: expect = 30; michael@0: actual = (new Date(Date.UTC(2006, 0, -1)).getUTCDate()); michael@0: reportCompare(expect, actual, summary + ': date -1'); michael@0: michael@0: expect = 23; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, -1)).getUTCHours()); michael@0: reportCompare(expect, actual, summary + ': hours -1'); michael@0: michael@0: expect = 59; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, 0, -1)).getUTCMinutes()); michael@0: reportCompare(expect, actual, summary + ': minutes -1'); michael@0: michael@0: expect = 59; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, -1)).getUTCSeconds()); michael@0: reportCompare(expect, actual, summary + ': seconds -1'); michael@0: michael@0: expect = 999; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, 0, -1)).getUTCMilliseconds()); michael@0: reportCompare(expect, actual, summary + ': milliseconds -1'); michael@0: michael@0: // michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, undefined)).getUTCDate()); michael@0: reportCompare(expect, actual, summary + ': date undefined'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, undefined)).getUTCHours()); michael@0: reportCompare(expect, actual, summary + ': hours undefined'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, undefined)).getUTCMinutes()); michael@0: reportCompare(expect, actual, summary + ': minutes undefined'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, undefined)).getUTCSeconds()); michael@0: reportCompare(expect, actual, summary + ': seconds undefined'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, 0, undefined)).getUTCMilliseconds()); michael@0: reportCompare(expect, actual, summary + ': milliseconds undefined'); michael@0: michael@0: // michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, {})).getUTCDate()); michael@0: reportCompare(expect, actual, summary + ': date {}'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, {})).getUTCHours()); michael@0: reportCompare(expect, actual, summary + ': hours {}'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, {})).getUTCMinutes()); michael@0: reportCompare(expect, actual, summary + ': minutes {}'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, {})).getUTCSeconds()); michael@0: reportCompare(expect, actual, summary + ': seconds {}'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, 0, {})).getUTCMilliseconds()); michael@0: reportCompare(expect, actual, summary + ': milliseconds {}'); michael@0: michael@0: // michael@0: michael@0: expect = 31; michael@0: actual = (new Date(Date.UTC(2006, 0, null)).getUTCDate()); michael@0: reportCompare(expect, actual, summary + ': date null'); michael@0: michael@0: expect = 0; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, null)).getUTCHours()); michael@0: reportCompare(expect, actual, summary + ': hours null'); michael@0: michael@0: expect = 0; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, 0, null)).getUTCMinutes()); michael@0: reportCompare(expect, actual, summary + ': minutes null'); michael@0: michael@0: expect = 0; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, null)).getUTCSeconds()); michael@0: reportCompare(expect, actual, summary + ': seconds null'); michael@0: michael@0: expect = 0; michael@0: actual = (new Date(Date.UTC(2006, 0, 0, 0, 0, 0, null)).getUTCMilliseconds()); michael@0: reportCompare(expect, actual, summary + ': milliseconds null'); michael@0: michael@0: // michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, Infinity)).getUTCDate()); michael@0: reportCompare(expect, actual, summary + ': date Infinity'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, Infinity)).getUTCHours()); michael@0: reportCompare(expect, actual, summary + ': hours Infinity'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, Infinity)).getUTCMinutes()); michael@0: reportCompare(expect, actual, summary + ': minutes Infinity'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, Infinity)).getUTCSeconds()); michael@0: reportCompare(expect, actual, summary + ': seconds Infinity'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, 0, Infinity)).getUTCMilliseconds()); michael@0: reportCompare(expect, actual, summary + ': milliseconds Infinity'); michael@0: michael@0: // michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, -Infinity)).getUTCDate()); michael@0: reportCompare(expect, actual, summary + ': date -Infinity'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, -Infinity)).getUTCHours()); michael@0: reportCompare(expect, actual, summary + ': hours -Infinity'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, -Infinity)).getUTCMinutes()); michael@0: reportCompare(expect, actual, summary + ': minutes -Infinity'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, -Infinity)).getUTCSeconds()); michael@0: reportCompare(expect, actual, summary + ': seconds -Infinity'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, 0, -Infinity)).getUTCMilliseconds()); michael@0: reportCompare(expect, actual, summary + ': milliseconds -Infinity'); michael@0: michael@0: // michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, NaN)).getUTCDate()); michael@0: reportCompare(expect, actual, summary + ': date NaN'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, NaN)).getUTCHours()); michael@0: reportCompare(expect, actual, summary + ': hours NaN'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, NaN)).getUTCMinutes()); michael@0: reportCompare(expect, actual, summary + ': minutes NaN'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, NaN)).getUTCSeconds()); michael@0: reportCompare(expect, actual, summary + ': seconds NaN'); michael@0: michael@0: expect = true; michael@0: actual = isNaN(new Date(Date.UTC(2006, 0, 0, 0, 0, 0, NaN)).getUTCMilliseconds()); michael@0: reportCompare(expect, actual, summary + ': milliseconds NaN'); michael@0: michael@0: exitFunc ('test'); michael@0: }