123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- // Copyright 2013 The Closure Library Authors. All Rights Reserved.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS-IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- goog.LOCALE = 'en_US';
- goog.provide('goog.date.durationTest');
- goog.setTestOnly('goog.date.durationTest');
- goog.require('goog.date.duration');
- goog.require('goog.i18n.DateTimeFormat');
- goog.require('goog.i18n.DateTimeSymbols');
- goog.require('goog.i18n.DateTimeSymbols_bn'); // Bengali
- goog.require('goog.i18n.DateTimeSymbols_en');
- goog.require('goog.i18n.DateTimeSymbols_fa'); // Persian
- goog.require('goog.testing.jsunit');
- var MINUTE_MS = 60000;
- var HOUR_MS = 60 * MINUTE_MS;
- var DAY_MS = 24 * HOUR_MS;
- var duration = goog.date.duration.format;
- function testFormatDurationZeroMinutes() {
- assertEquals('0 minutes', duration(0));
- assertEquals('0 minutes', duration(MINUTE_MS - 1));
- }
- function testFormatDurationMinutes() {
- assertEquals('1 minute', duration(MINUTE_MS));
- assertEquals('1 minute', duration(MINUTE_MS + 1));
- assertEquals('5 minutes', duration(5 * MINUTE_MS));
- assertEquals('45 minutes', duration(45 * MINUTE_MS));
- }
- function testFormatDurationHours() {
- assertEquals('1 hour', duration(HOUR_MS));
- assertEquals('1 hour', duration(HOUR_MS + 1));
- assertEquals('1 hour 1 minute', duration(HOUR_MS + MINUTE_MS));
- assertEquals('1 hour 45 minutes', duration(HOUR_MS + 45 * MINUTE_MS));
- assertEquals('5 hours', duration(5 * HOUR_MS));
- assertEquals('5 hours', duration(5 * HOUR_MS + 1));
- assertEquals('5 hours 1 minute', duration(5 * HOUR_MS + MINUTE_MS));
- assertEquals('5 hours 45 minutes', duration(5 * HOUR_MS + 45 * MINUTE_MS));
- assertEquals('11 hours', duration(11 * HOUR_MS));
- assertEquals('11 hours', duration(11 * HOUR_MS + 1));
- assertEquals('11 hours 1 minute', duration(11 * HOUR_MS + MINUTE_MS));
- assertEquals('11 hours 45 minutes', duration(11 * HOUR_MS + 45 * MINUTE_MS));
- }
- function testFormatDurationDays() {
- assertEquals('1 day', duration(DAY_MS));
- assertEquals('1 day', duration(DAY_MS + 1));
- assertEquals('1 day 1 minute', duration(DAY_MS + MINUTE_MS));
- assertEquals('1 day 45 minutes', duration(DAY_MS + 45 * MINUTE_MS));
- assertEquals('1 day 1 hour', duration(DAY_MS + HOUR_MS));
- assertEquals('1 day 11 hours', duration(DAY_MS + 11 * HOUR_MS));
- assertEquals('1 day 1 hour 1 minute', duration(DAY_MS + HOUR_MS + MINUTE_MS));
- assertEquals(
- '1 day 1 hour 45 minutes', duration(DAY_MS + HOUR_MS + 45 * MINUTE_MS));
- assertEquals(
- '1 day 11 hours 1 minute', duration(DAY_MS + 11 * HOUR_MS + MINUTE_MS));
- assertEquals(
- '1 day 11 hours 45 minutes',
- duration(DAY_MS + 11 * HOUR_MS + 45 * MINUTE_MS));
- assertEquals('11 days', duration(11 * DAY_MS));
- assertEquals('11 days', duration(11 * DAY_MS + 1));
- assertEquals('11 days 1 minute', duration(11 * DAY_MS + MINUTE_MS));
- assertEquals('11 days 45 minutes', duration(11 * DAY_MS + 45 * MINUTE_MS));
- assertEquals('11 days 1 hour', duration(11 * DAY_MS + HOUR_MS));
- assertEquals('11 days 11 hours', duration(11 * DAY_MS + 11 * HOUR_MS));
- assertEquals(
- '11 days 1 hour 1 minute', duration(11 * DAY_MS + HOUR_MS + MINUTE_MS));
- assertEquals(
- '11 days 1 hour 45 minutes',
- duration(11 * DAY_MS + HOUR_MS + 45 * MINUTE_MS));
- assertEquals(
- '11 days 11 hours 1 minute',
- duration(11 * DAY_MS + 11 * HOUR_MS + MINUTE_MS));
- assertEquals(
- '11 days 11 hours 45 minutes',
- duration(11 * DAY_MS + 11 * HOUR_MS + 45 * MINUTE_MS));
- }
- function testFormatDurationPersianDigits() {
- goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_fa;
- // ۱ minute
- assertEquals(localizeNumber(1) + ' minute', duration(MINUTE_MS));
- // ۲ minutes
- assertEquals(localizeNumber(2) + ' minutes', duration(2 * MINUTE_MS));
- // ۱۰ hours
- assertEquals(localizeNumber(10) + ' hours', duration(10 * HOUR_MS));
- // ۲۳ days
- assertEquals(localizeNumber(23) + ' days', duration(23 * DAY_MS));
- // Restore to English, to make sure we don't mess up other tests
- goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en;
- }
- function testFormatDurationBengaliDigits() {
- goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_bn;
- // ১ minute
- assertEquals(localizeNumber(1) + ' minute', duration(MINUTE_MS));
- // ২ minutes
- assertEquals(localizeNumber(2) + ' minutes', duration(2 * MINUTE_MS));
- // ১০ hours
- assertEquals(localizeNumber(10) + ' hours', duration(10 * HOUR_MS));
- // ২৩ days
- assertEquals(localizeNumber(23) + ' days', duration(23 * DAY_MS));
- // Restore to English, to make sure we don't mess up other tests
- goog.i18n.DateTimeSymbols = goog.i18n.DateTimeSymbols_en;
- }
- function localizeNumber(value) {
- // Quick conversion to national digits, to increase readability of the
- // tests above.
- return goog.i18n.DateTimeFormat.localizeNumbers(value);
- }
|