// Copyright 2009 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.provide('goog.i18n.currencyTest'); goog.setTestOnly('goog.i18n.currencyTest'); goog.require('goog.i18n.NumberFormat'); goog.require('goog.i18n.currency'); goog.require('goog.i18n.currency.CurrencyInfo'); goog.require('goog.object'); goog.require('goog.testing.PropertyReplacer'); goog.require('goog.testing.jsunit'); var stubs = new goog.testing.PropertyReplacer(); function setUp() { stubs.replace( goog.i18n.currency, 'CurrencyInfo', goog.object.clone(goog.i18n.currency.CurrencyInfo)); } function tearDown() { stubs.reset(); } function testIsAvailable() { assertTrue(goog.i18n.currency.isAvailable('USD')); assertTrue(goog.i18n.currency.isAvailable('CLP')); assertFalse(goog.i18n.currency.isAvailable('LRD')); assertFalse(goog.i18n.currency.isAvailable('XYZ')); } function testAddTier2Support() { assertFalse('LRD' in goog.i18n.currency.CurrencyInfo); assertThrows(function() { goog.i18n.currency.getLocalCurrencyPattern('LRD'); }); goog.i18n.currency.addTier2Support(); assertTrue('LRD' in goog.i18n.currency.CurrencyInfo); assertEquals( "'$'#,##0.00", goog.i18n.currency.getLocalCurrencyPattern('LRD')); } function testCurrencyPattern() { assertEquals( "'$'#,##0.00", goog.i18n.currency.getLocalCurrencyPattern('USD')); assertEquals( "'US$'#,##0.00", goog.i18n.currency.getPortableCurrencyPattern('USD')); assertEquals( "USD '$'#,##0.00", goog.i18n.currency.getGlobalCurrencyPattern('USD')); assertEquals("'¥'#,##0", goog.i18n.currency.getLocalCurrencyPattern('JPY')); assertEquals( "'JP¥'#,##0", goog.i18n.currency.getPortableCurrencyPattern('JPY')); assertEquals( "JPY '¥'#,##0", goog.i18n.currency.getGlobalCurrencyPattern('JPY')); assertEquals( "'€'#,##0.00", goog.i18n.currency.getLocalCurrencyPattern('EUR')); assertEquals( "'€'#,##0.00", goog.i18n.currency.getPortableCurrencyPattern('EUR')); assertEquals( "EUR '€'#,##0.00", goog.i18n.currency.getGlobalCurrencyPattern('EUR')); assertEquals( "'¥'#,##0.00", goog.i18n.currency.getLocalCurrencyPattern('CNY')); assertEquals( "'RMB¥'#,##0.00", goog.i18n.currency.getPortableCurrencyPattern('CNY')); assertEquals( "CNY '¥'#,##0.00", goog.i18n.currency.getGlobalCurrencyPattern('CNY')); assertEquals( "'Rial'#,##0", goog.i18n.currency.getLocalCurrencyPattern('YER')); assertEquals( "'Rial'#,##0", goog.i18n.currency.getPortableCurrencyPattern('YER')); assertEquals( "YER 'Rial'#,##0", goog.i18n.currency.getGlobalCurrencyPattern('YER')); assertEquals( "'CHF'#,##0.00", goog.i18n.currency.getLocalCurrencyPattern('CHF')); assertEquals( "'CHF'#,##0.00", goog.i18n.currency.getPortableCurrencyPattern('CHF')); assertEquals( "'CHF'#,##0.00", goog.i18n.currency.getGlobalCurrencyPattern('CHF')); } function testCurrencyFormatCHF() { var formatter; var str; formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getLocalCurrencyPattern('CHF')); str = formatter.format(123456.7899); assertEquals('CHF123,456.79', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getPortableCurrencyPattern('CHF')); str = formatter.format(123456.7899); assertEquals('CHF123,456.79', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getGlobalCurrencyPattern('CHF')); str = formatter.format(123456.7899); assertEquals('CHF123,456.79', str); } function testCurrencyFormatYER() { var formatter; var str; formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getLocalCurrencyPattern('YER')); str = formatter.format(123456.7899); assertEquals('Rial123,457', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getPortableCurrencyPattern('YER')); str = formatter.format(123456.7899); assertEquals('Rial123,457', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getGlobalCurrencyPattern('YER')); str = formatter.format(123456.7899); assertEquals('YER Rial123,457', str); } function testCurrencyFormatCNY() { var formatter; var str; formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getLocalCurrencyPattern('CNY')); str = formatter.format(123456.7899); assertEquals('¥123,456.79', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getPortableCurrencyPattern('CNY')); str = formatter.format(123456.7899); assertEquals('RMB¥123,456.79', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getGlobalCurrencyPattern('CNY')); str = formatter.format(123456.7899); assertEquals('CNY ¥123,456.79', str); } function testCurrencyFormatCZK() { var formatter; var str; formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getLocalCurrencyPattern('CZK')); str = formatter.format(123456.7899); assertEquals('123,456.79 Kč', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getPortableCurrencyPattern('CZK')); str = formatter.format(123456.7899); assertEquals('123,456.79 Kč', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getGlobalCurrencyPattern('CZK')); str = formatter.format(123456.7899); assertEquals('CZK 123,456.79 Kč', str); } function testCurrencyFormatEUR() { var formatter; var str; formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getLocalCurrencyPattern('EUR')); str = formatter.format(123456.7899); assertEquals('€123,456.79', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getPortableCurrencyPattern('EUR')); str = formatter.format(123456.7899); assertEquals('€123,456.79', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getGlobalCurrencyPattern('EUR')); str = formatter.format(123456.7899); assertEquals('EUR €123,456.79', str); } function testCurrencyFormatJPY() { var formatter; var str; formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getLocalCurrencyPattern('JPY')); str = formatter.format(123456.7899); assertEquals('¥123,457', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getPortableCurrencyPattern('JPY')); str = formatter.format(123456.7899); assertEquals('JP¥123,457', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getGlobalCurrencyPattern('JPY')); str = formatter.format(123456.7899); assertEquals('JPY ¥123,457', str); } function testCurrencyFormatPLN() { var formatter; var str; formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getLocalCurrencyPattern('PLN')); str = formatter.format(123456.7899); assertEquals('123,456.79 zł', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getPortableCurrencyPattern('PLN')); str = formatter.format(123456.7899); assertEquals('123,456.79 zł', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getGlobalCurrencyPattern('PLN')); str = formatter.format(123456.7899); assertEquals('PLN 123,456.79 zł', str); } function testCurrencyFormatUSD() { var formatter; var str; formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getLocalCurrencyPattern('USD')); str = formatter.format(123456.7899); assertEquals('$123,456.79', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getPortableCurrencyPattern('USD')); str = formatter.format(123456.7899); assertEquals('US$123,456.79', str); formatter = new goog.i18n.NumberFormat( goog.i18n.currency.getGlobalCurrencyPattern('USD')); str = formatter.format(123456.7899); assertEquals('USD $123,456.79', str); } function testIsPrefixSignPosition() { assertTrue(goog.i18n.currency.isPrefixSignPosition('USD')); assertTrue(goog.i18n.currency.isPrefixSignPosition('EUR')); } function testGetCurrencySign() { assertEquals('USD $', goog.i18n.currency.getGlobalCurrencySign('USD')); assertEquals('$', goog.i18n.currency.getLocalCurrencySign('USD')); assertEquals('US$', goog.i18n.currency.getPortableCurrencySign('USD')); assertEquals('YER Rial', goog.i18n.currency.getGlobalCurrencySign('YER')); assertEquals('Rial', goog.i18n.currency.getLocalCurrencySign('YER')); assertEquals('Rial', goog.i18n.currency.getPortableCurrencySign('YER')); }