UNPKG

sku-pg

Version:

Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!

125 lines (105 loc) 4.64 kB
<!DOCTYPE html> <html> <!-- Copyright 2009 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Closure Unit Tests - goog.date.UtcDateTime</title> <script src="../base.js"></script> <script> goog.require('goog.date'); goog.require('goog.date.UtcDateTime'); goog.require('goog.testing.jsunit'); </script> </head> <body> <script> function testConstructor() { goog.now = function() { return new Date(2001, 2, 3, 4).getTime(); }; var d = new goog.date.UtcDateTime(); assertTrue('default constructor', d.equals(new Date(goog.now()))); var d = new goog.date.UtcDateTime(2001); assertTrue('year only', d.equals(new Date(Date.UTC(2001, 0, 1, 0, 0, 0)))); var d = new goog.date.UtcDateTime(2001, 2, 3, 4, 5, 6, 7); assertTrue('full date/time', d.equals(new Date(Date.UTC(2001, 2, 3, 4, 5, 6, 7)))); var d = new goog.date.UtcDateTime(new Date(0)); assertTrue('copy constructor', d.equals(new Date(Date.UTC(1970, 0, 1, 0, 0, 0)))); } function testClone() { var d = new goog.date.UtcDateTime(2001, 2, 3, 4, 5, 6, 7); assertTrue('clone of UtcDateTime', d.equals(d.clone())); } function testAdd() { var date = new goog.date.UtcDateTime(2007, goog.date.month.OCT, 5); date.add(new goog.date.Interval(-1, 2)); var expected = new goog.date.UtcDateTime(2006, goog.date.month.DEC, 5); assertTrue('UTC date + years + months', expected.equals(date)); var date = new goog.date.UtcDateTime(2007, goog.date.month.OCT, 1); date.add(new goog.date.Interval(0, 0, 60)); var expected = new goog.date.UtcDateTime(2007, goog.date.month.NOV, 30); assertTrue('UTC date + days', expected.equals(date)); var date = new goog.date.UtcDateTime(2007, goog.date.month.OCT, 1); date.add(new goog.date.Interval(0, 0, 0, 60 * 24 - 12, -30, -30.5)); var expected = new goog.date.UtcDateTime(2007, goog.date.month.NOV, 29, 11, 29, 29, 500); assertTrue('UTC date + time, daylight saving ignored', expected.equals(date)); } function testGetYear() { var date = new goog.date.UtcDateTime(2000, goog.date.month.JAN, 1); assertEquals('year of 2000-01-01 00:00:00', 2000, date.getYear()); var date = new goog.date.UtcDateTime(1999, goog.date.month.DEC, 31, 23, 59); assertEquals('year of 1999-12-31 23:59:00', 1999, date.getYear()); } function testGetDay() { var date = new goog.date.UtcDateTime(2000, goog.date.month.JAN, 1); assertEquals('2000-01-01 00:00:00 is Saturday (UTC + ISO)', goog.date.weekDay.SAT, date.getUTCIsoWeekday()); assertEquals('2000-01-01 00:00:00 is Saturday (ISO)', goog.date.weekDay.SAT, date.getIsoWeekday()); assertEquals('2000-01-01 00:00:00 is Saturday (UTC)', 6, date.getUTCDay()); assertEquals('2000-01-01 00:00:00 is Saturday', 6, date.getDay()); var date = new goog.date.UtcDateTime(2000, goog.date.month.JAN, 1, 23, 59); assertEquals('2000-01-01 23:59:00 is Saturday (UTC + ISO)', goog.date.weekDay.SAT, date.getUTCIsoWeekday()); assertEquals('2000-01-01 23:59:00 is Saturday (ISO)', goog.date.weekDay.SAT, date.getIsoWeekday()); assertEquals('2000-01-01 23:59:00 is Saturday (UTC)', 6, date.getUTCDay()); assertEquals('2000-01-01 23:59:00 is Saturday', 6, date.getDay()); } function testFromIsoString() { var dateString = '2000-01-02'; var date = goog.date.UtcDateTime.fromIsoString(dateString); var exp = new goog.date.UtcDateTime(2000, goog.date.month.JAN, 2); assertTrue('parsed ISO date', exp.equals(date)); var dateTimeString = '2000-01-02 03:04:05'; var dateTime = goog.date.UtcDateTime.fromIsoString(dateTimeString); var exp = new goog.date.UtcDateTime(2000, goog.date.month.JAN, 2, 3, 4, 5); assertTrue('parsed ISO date/time', exp.equals(dateTime)); } function testToIsoString() { var date = new goog.date.UtcDateTime(2000, goog.date.month.JAN, 2, 3, 4, 5); assertEquals('serialize date/time', '2000-01-02 03:04:05', date.toIsoString(true)); assertEquals('serialize time only', '03:04:05', date.toIsoTimeString(true)); assertEquals('serialize date/time to XML', '2000-01-02T03:04:05', date.toXmlDateTime()); } function testIsMidnight() { assertTrue(new goog.date.UtcDateTime(2000, 0, 1).isMidnight()); assertFalse(new goog.date.UtcDateTime(2000, 0, 1, 0, 0, 0, 1).isMidnight()); } </script> </body> </html>