|
|
@ -48,8 +48,7 @@ function testIsPossibleShortNumber() { |
|
|
possibleNumber.setNationalNumber(123456); |
|
|
possibleNumber.setNationalNumber(123456); |
|
|
assertTrue(shortInfo.isPossibleShortNumber(possibleNumber)); |
|
|
assertTrue(shortInfo.isPossibleShortNumber(possibleNumber)); |
|
|
assertTrue(shortInfo.isPossibleShortNumberForRegion( |
|
|
assertTrue(shortInfo.isPossibleShortNumberForRegion( |
|
|
phoneUtil.parse('123456', RegionCode.FR), |
|
|
|
|
|
RegionCode.FR)); |
|
|
|
|
|
|
|
|
phoneUtil.parse('123456', RegionCode.FR), RegionCode.FR)); |
|
|
|
|
|
|
|
|
var impossibleNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
var impossibleNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
impossibleNumber.setCountryCode(33); |
|
|
impossibleNumber.setCountryCode(33); |
|
|
@ -70,15 +69,13 @@ function testIsValidShortNumber() { |
|
|
shortNumber1.setNationalNumber(1010); |
|
|
shortNumber1.setNationalNumber(1010); |
|
|
assertTrue(shortInfo.isValidShortNumber(shortNumber1)); |
|
|
assertTrue(shortInfo.isValidShortNumber(shortNumber1)); |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse('1010', RegionCode.FR), |
|
|
|
|
|
RegionCode.FR)); |
|
|
|
|
|
|
|
|
phoneUtil.parse('1010', RegionCode.FR), RegionCode.FR)); |
|
|
var shortNumber2 = new i18n.phonenumbers.PhoneNumber(); |
|
|
var shortNumber2 = new i18n.phonenumbers.PhoneNumber(); |
|
|
shortNumber2.setCountryCode(33); |
|
|
shortNumber2.setCountryCode(33); |
|
|
shortNumber2.setNationalNumber(123456); |
|
|
shortNumber2.setNationalNumber(123456); |
|
|
assertFalse(shortInfo.isValidShortNumber(shortNumber2)); |
|
|
assertFalse(shortInfo.isValidShortNumber(shortNumber2)); |
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse('123456', RegionCode.FR), |
|
|
|
|
|
RegionCode.FR)); |
|
|
|
|
|
|
|
|
phoneUtil.parse('123456', RegionCode.FR), RegionCode.FR)); |
|
|
|
|
|
|
|
|
// Note that GB and GG share the country calling code 44.
|
|
|
// Note that GB and GG share the country calling code 44.
|
|
|
var shortNumber3 = new i18n.phonenumbers.PhoneNumber(); |
|
|
var shortNumber3 = new i18n.phonenumbers.PhoneNumber(); |
|
|
@ -93,16 +90,14 @@ function testIsCarrierSpecific() { |
|
|
carrierSpecificNumber.setNationalNumber(33669); |
|
|
carrierSpecificNumber.setNationalNumber(33669); |
|
|
assertTrue(shortInfo.isCarrierSpecific(carrierSpecificNumber)); |
|
|
assertTrue(shortInfo.isCarrierSpecific(carrierSpecificNumber)); |
|
|
assertTrue(shortInfo.isCarrierSpecificForRegion( |
|
|
assertTrue(shortInfo.isCarrierSpecificForRegion( |
|
|
phoneUtil.parse('33669', RegionCode.US), |
|
|
|
|
|
RegionCode.US)); |
|
|
|
|
|
|
|
|
phoneUtil.parse('33669', RegionCode.US), RegionCode.US)); |
|
|
|
|
|
|
|
|
var notCarrierSpecificNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
var notCarrierSpecificNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
notCarrierSpecificNumber.setCountryCode(1); |
|
|
notCarrierSpecificNumber.setCountryCode(1); |
|
|
notCarrierSpecificNumber.setNationalNumber(911); |
|
|
notCarrierSpecificNumber.setNationalNumber(911); |
|
|
assertFalse(shortInfo.isCarrierSpecific(notCarrierSpecificNumber)); |
|
|
assertFalse(shortInfo.isCarrierSpecific(notCarrierSpecificNumber)); |
|
|
assertFalse(shortInfo.isCarrierSpecificForRegion( |
|
|
assertFalse(shortInfo.isCarrierSpecificForRegion( |
|
|
phoneUtil.parse('911', RegionCode.US), |
|
|
|
|
|
RegionCode.US)); |
|
|
|
|
|
|
|
|
phoneUtil.parse('911', RegionCode.US), RegionCode.US)); |
|
|
|
|
|
|
|
|
var carrierSpecificNumberForSomeRegion = new i18n.phonenumbers.PhoneNumber(); |
|
|
var carrierSpecificNumberForSomeRegion = new i18n.phonenumbers.PhoneNumber(); |
|
|
carrierSpecificNumberForSomeRegion.setCountryCode(1); |
|
|
carrierSpecificNumberForSomeRegion.setCountryCode(1); |
|
|
@ -118,84 +113,92 @@ function testIsSmsService() { |
|
|
var smsServiceNumberForSomeRegion = new i18n.phonenumbers.PhoneNumber(); |
|
|
var smsServiceNumberForSomeRegion = new i18n.phonenumbers.PhoneNumber(); |
|
|
smsServiceNumberForSomeRegion.setCountryCode(1); |
|
|
smsServiceNumberForSomeRegion.setCountryCode(1); |
|
|
smsServiceNumberForSomeRegion.setNationalNumber(21234); |
|
|
smsServiceNumberForSomeRegion.setNationalNumber(21234); |
|
|
assertTrue(shortInfo.isSmsServiceForRegion(smsServiceNumberForSomeRegion, |
|
|
|
|
|
RegionCode.US)); |
|
|
|
|
|
assertFalse(shortInfo.isSmsServiceForRegion(smsServiceNumberForSomeRegion, |
|
|
|
|
|
RegionCode.BB)); |
|
|
|
|
|
|
|
|
assertTrue(shortInfo.isSmsServiceForRegion( |
|
|
|
|
|
smsServiceNumberForSomeRegion, RegionCode.US)); |
|
|
|
|
|
assertFalse(shortInfo.isSmsServiceForRegion( |
|
|
|
|
|
smsServiceNumberForSomeRegion, RegionCode.BB)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function testGetExpectedCost() { |
|
|
function testGetExpectedCost() { |
|
|
var premiumRateExample = shortInfo.getExampleShortNumberForCost(RegionCode.FR, |
|
|
|
|
|
|
|
|
var premiumRateExample = shortInfo.getExampleShortNumberForCost( |
|
|
|
|
|
RegionCode.FR, |
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.PREMIUM_RATE); |
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.PREMIUM_RATE); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse(premiumRateExample, RegionCode.FR), |
|
|
|
|
|
RegionCode.FR)); |
|
|
|
|
|
|
|
|
phoneUtil.parse(premiumRateExample, RegionCode.FR), RegionCode.FR)); |
|
|
var premiumRateNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
var premiumRateNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
premiumRateNumber.setCountryCode(33); |
|
|
premiumRateNumber.setCountryCode(33); |
|
|
premiumRateNumber.setNationalNumber(parseInt(premiumRateExample, 10)); |
|
|
premiumRateNumber.setNationalNumber(parseInt(premiumRateExample, 10)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, |
|
|
shortInfo.getExpectedCost(premiumRateNumber)); |
|
|
shortInfo.getExpectedCost(premiumRateNumber)); |
|
|
|
|
|
|
|
|
var standardRateExample = shortInfo.getExampleShortNumberForCost( |
|
|
var standardRateExample = shortInfo.getExampleShortNumberForCost( |
|
|
RegionCode.FR, |
|
|
RegionCode.FR, |
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.STANDARD_RATE); |
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.STANDARD_RATE); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.STANDARD_RATE, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.STANDARD_RATE, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse(standardRateExample, RegionCode.FR), |
|
|
|
|
|
RegionCode.FR)); |
|
|
|
|
|
|
|
|
phoneUtil.parse(standardRateExample, RegionCode.FR), RegionCode.FR)); |
|
|
var standardRateNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
var standardRateNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
standardRateNumber.setCountryCode(33); |
|
|
standardRateNumber.setCountryCode(33); |
|
|
standardRateNumber.setNationalNumber(parseInt(standardRateExample, 10)); |
|
|
standardRateNumber.setNationalNumber(parseInt(standardRateExample, 10)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.STANDARD_RATE, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.STANDARD_RATE, |
|
|
shortInfo.getExpectedCost(standardRateNumber)); |
|
|
shortInfo.getExpectedCost(standardRateNumber)); |
|
|
|
|
|
|
|
|
var tollFreeExample = shortInfo.getExampleShortNumberForCost(RegionCode.FR, |
|
|
|
|
|
|
|
|
var tollFreeExample = shortInfo.getExampleShortNumberForCost( |
|
|
|
|
|
RegionCode.FR, |
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE); |
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse(tollFreeExample, RegionCode.FR), |
|
|
|
|
|
RegionCode.FR)); |
|
|
|
|
|
|
|
|
phoneUtil.parse(tollFreeExample, RegionCode.FR), RegionCode.FR)); |
|
|
var tollFreeNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
var tollFreeNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
tollFreeNumber.setCountryCode(33); |
|
|
tollFreeNumber.setCountryCode(33); |
|
|
tollFreeNumber.setNationalNumber(parseInt(tollFreeExample, 10)); |
|
|
tollFreeNumber.setNationalNumber(parseInt(tollFreeExample, 10)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
shortInfo.getExpectedCost(tollFreeNumber)); |
|
|
shortInfo.getExpectedCost(tollFreeNumber)); |
|
|
|
|
|
|
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse('12345', RegionCode.FR), |
|
|
|
|
|
RegionCode.FR)); |
|
|
|
|
|
|
|
|
phoneUtil.parse('12345', RegionCode.FR), RegionCode.FR)); |
|
|
var unknownCostNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
var unknownCostNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
unknownCostNumber.setCountryCode(33); |
|
|
unknownCostNumber.setCountryCode(33); |
|
|
unknownCostNumber.setNationalNumber(12345); |
|
|
unknownCostNumber.setNationalNumber(12345); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
shortInfo.getExpectedCost(unknownCostNumber)); |
|
|
shortInfo.getExpectedCost(unknownCostNumber)); |
|
|
|
|
|
|
|
|
// Test that an invalid number may nevertheless have a cost other than
|
|
|
// Test that an invalid number may nevertheless have a cost other than
|
|
|
// UNKNOWN_COST.
|
|
|
// UNKNOWN_COST.
|
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse('116123', RegionCode.FR), |
|
|
|
|
|
RegionCode.FR)); |
|
|
|
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
|
|
|
phoneUtil.parse('116123', RegionCode.FR), RegionCode.FR)); |
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse('116123', RegionCode.FR), |
|
|
|
|
|
RegionCode.FR)); |
|
|
|
|
|
|
|
|
phoneUtil.parse('116123', RegionCode.FR), RegionCode.FR)); |
|
|
var invalidNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
var invalidNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
invalidNumber.setCountryCode(33); |
|
|
invalidNumber.setCountryCode(33); |
|
|
invalidNumber.setNationalNumber(116123); |
|
|
invalidNumber.setNationalNumber(116123); |
|
|
assertFalse(shortInfo.isValidShortNumber(invalidNumber)); |
|
|
assertFalse(shortInfo.isValidShortNumber(invalidNumber)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
shortInfo.getExpectedCost(invalidNumber)); |
|
|
shortInfo.getExpectedCost(invalidNumber)); |
|
|
|
|
|
|
|
|
// Test a nonexistent country code.
|
|
|
// Test a nonexistent country code.
|
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion(phoneUtil.parse('911', RegionCode.US), |
|
|
|
|
|
RegionCode.ZZ)); |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion( |
|
|
|
|
|
phoneUtil.parse('911', RegionCode.US), RegionCode.ZZ)); |
|
|
unknownCostNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
unknownCostNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
unknownCostNumber.setCountryCode(123); |
|
|
unknownCostNumber.setCountryCode(123); |
|
|
unknownCostNumber.setNationalNumber(911); |
|
|
unknownCostNumber.setNationalNumber(911); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
shortInfo.getExpectedCost(unknownCostNumber)); |
|
|
shortInfo.getExpectedCost(unknownCostNumber)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -222,51 +225,58 @@ function testGetExpectedCostForSharedCountryCallingCode() { |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse(ambiguousPremiumRateString, RegionCode.AU), |
|
|
phoneUtil.parse(ambiguousPremiumRateString, RegionCode.AU), |
|
|
RegionCode.AU)); |
|
|
RegionCode.AU)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse(ambiguousPremiumRateString, RegionCode.AU), |
|
|
phoneUtil.parse(ambiguousPremiumRateString, RegionCode.AU), |
|
|
RegionCode.AU)); |
|
|
RegionCode.AU)); |
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse(ambiguousPremiumRateString, RegionCode.CX), |
|
|
phoneUtil.parse(ambiguousPremiumRateString, RegionCode.CX), |
|
|
RegionCode.CX)); |
|
|
RegionCode.CX)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse(ambiguousPremiumRateString, RegionCode.CX), |
|
|
phoneUtil.parse(ambiguousPremiumRateString, RegionCode.CX), |
|
|
RegionCode.CX)); |
|
|
RegionCode.CX)); |
|
|
// PREMIUM_RATE takes precedence over UNKNOWN_COST.
|
|
|
// PREMIUM_RATE takes precedence over UNKNOWN_COST.
|
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.PREMIUM_RATE, |
|
|
shortInfo.getExpectedCost(ambiguousPremiumRateNumber)); |
|
|
shortInfo.getExpectedCost(ambiguousPremiumRateNumber)); |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse(ambiguousStandardRateString, RegionCode.AU), |
|
|
phoneUtil.parse(ambiguousStandardRateString, RegionCode.AU), |
|
|
RegionCode.AU)); |
|
|
RegionCode.AU)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.STANDARD_RATE, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.STANDARD_RATE, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse(ambiguousStandardRateString, RegionCode.AU), |
|
|
phoneUtil.parse(ambiguousStandardRateString, RegionCode.AU), |
|
|
RegionCode.AU)); |
|
|
RegionCode.AU)); |
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse(ambiguousStandardRateString, RegionCode.CX), |
|
|
phoneUtil.parse(ambiguousStandardRateString, RegionCode.CX), |
|
|
RegionCode.CX)); |
|
|
RegionCode.CX)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse(ambiguousStandardRateString, RegionCode.CX), |
|
|
phoneUtil.parse(ambiguousStandardRateString, RegionCode.CX), |
|
|
RegionCode.CX)); |
|
|
RegionCode.CX)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
shortInfo.getExpectedCost(ambiguousStandardRateNumber)); |
|
|
shortInfo.getExpectedCost(ambiguousStandardRateNumber)); |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse(ambiguousTollFreeString, RegionCode.AU), |
|
|
|
|
|
RegionCode.AU)); |
|
|
|
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
|
|
|
phoneUtil.parse(ambiguousTollFreeString, RegionCode.AU), RegionCode.AU)); |
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse(ambiguousTollFreeString, RegionCode.AU), |
|
|
phoneUtil.parse(ambiguousTollFreeString, RegionCode.AU), |
|
|
RegionCode.AU)); |
|
|
RegionCode.AU)); |
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse(ambiguousTollFreeString, RegionCode.CX), |
|
|
|
|
|
RegionCode.CX)); |
|
|
|
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
|
|
|
phoneUtil.parse(ambiguousTollFreeString, RegionCode.CX), RegionCode.CX)); |
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse(ambiguousTollFreeString, RegionCode.CX), |
|
|
phoneUtil.parse(ambiguousTollFreeString, RegionCode.CX), |
|
|
RegionCode.CX)); |
|
|
RegionCode.CX)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
shortInfo.getExpectedCost(ambiguousTollFreeNumber)); |
|
|
shortInfo.getExpectedCost(ambiguousTollFreeNumber)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -403,23 +413,24 @@ function testEmergencyNumberForSharedCountryCallingCode() { |
|
|
// Christmas Islands.
|
|
|
// Christmas Islands.
|
|
|
assertTrue(shortInfo.isEmergencyNumber('112', RegionCode.AU)); |
|
|
assertTrue(shortInfo.isEmergencyNumber('112', RegionCode.AU)); |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse('112', RegionCode.AU), |
|
|
|
|
|
RegionCode.AU)); |
|
|
|
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion(phoneUtil.parse('112', RegionCode.AU), |
|
|
|
|
|
RegionCode.AU)); |
|
|
|
|
|
|
|
|
phoneUtil.parse('112', RegionCode.AU), RegionCode.AU)); |
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion( |
|
|
|
|
|
phoneUtil.parse('112', RegionCode.AU), RegionCode.AU)); |
|
|
assertTrue(shortInfo.isEmergencyNumber('112', RegionCode.CX)); |
|
|
assertTrue(shortInfo.isEmergencyNumber('112', RegionCode.CX)); |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
assertTrue(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse('112', RegionCode.CX), |
|
|
|
|
|
RegionCode.CX)); |
|
|
|
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion(phoneUtil.parse('112', RegionCode.CX), |
|
|
|
|
|
RegionCode.CX)); |
|
|
|
|
|
|
|
|
phoneUtil.parse('112', RegionCode.CX), RegionCode.CX)); |
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion( |
|
|
|
|
|
phoneUtil.parse('112', RegionCode.CX), RegionCode.CX)); |
|
|
var sharedEmergencyNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
var sharedEmergencyNumber = new i18n.phonenumbers.PhoneNumber(); |
|
|
sharedEmergencyNumber.setCountryCode(61); |
|
|
sharedEmergencyNumber.setCountryCode(61); |
|
|
sharedEmergencyNumber.setNationalNumber(112); |
|
|
sharedEmergencyNumber.setNationalNumber(112); |
|
|
assertTrue(shortInfo.isValidShortNumber(sharedEmergencyNumber)); |
|
|
assertTrue(shortInfo.isValidShortNumber(sharedEmergencyNumber)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
shortInfo.getExpectedCost(sharedEmergencyNumber)); |
|
|
shortInfo.getExpectedCost(sharedEmergencyNumber)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -427,30 +438,31 @@ function testOverlappingNANPANumber() { |
|
|
// 211 is an emergency number in Barbados, while it is a toll-free information
|
|
|
// 211 is an emergency number in Barbados, while it is a toll-free information
|
|
|
// line in Canada and the USA.
|
|
|
// line in Canada and the USA.
|
|
|
assertTrue(shortInfo.isEmergencyNumber('211', RegionCode.BB)); |
|
|
assertTrue(shortInfo.isEmergencyNumber('211', RegionCode.BB)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion(phoneUtil.parse('211', RegionCode.BB), |
|
|
|
|
|
RegionCode.BB)); |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion( |
|
|
|
|
|
phoneUtil.parse('211', RegionCode.BB), RegionCode.BB)); |
|
|
assertFalse(shortInfo.isEmergencyNumber('211', RegionCode.US)); |
|
|
assertFalse(shortInfo.isEmergencyNumber('211', RegionCode.US)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion(phoneUtil.parse('211', RegionCode.US), |
|
|
|
|
|
RegionCode.US)); |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion( |
|
|
|
|
|
phoneUtil.parse('211', RegionCode.US), RegionCode.US)); |
|
|
assertFalse(shortInfo.isEmergencyNumber('211', RegionCode.CA)); |
|
|
assertFalse(shortInfo.isEmergencyNumber('211', RegionCode.CA)); |
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion(phoneUtil.parse('211', RegionCode.CA), |
|
|
|
|
|
RegionCode.CA)); |
|
|
|
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.TOLL_FREE, |
|
|
|
|
|
shortInfo.getExpectedCostForRegion( |
|
|
|
|
|
phoneUtil.parse('211', RegionCode.CA), RegionCode.CA)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function testCountryCallingCodeIsNotIgnored() { |
|
|
function testCountryCallingCodeIsNotIgnored() { |
|
|
// +46 is the country calling code for Sweden (SE), and 40404 is a valid short
|
|
|
// +46 is the country calling code for Sweden (SE), and 40404 is a valid short
|
|
|
// number in the US.
|
|
|
// number in the US.
|
|
|
assertFalse(shortInfo.isPossibleShortNumberForRegion( |
|
|
assertFalse(shortInfo.isPossibleShortNumberForRegion( |
|
|
phoneUtil.parse('+4640404', RegionCode.SE), |
|
|
|
|
|
RegionCode.US)); |
|
|
|
|
|
|
|
|
phoneUtil.parse('+4640404', RegionCode.SE), RegionCode.US)); |
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
assertFalse(shortInfo.isValidShortNumberForRegion( |
|
|
phoneUtil.parse('+4640404', RegionCode.SE), |
|
|
|
|
|
RegionCode.US)); |
|
|
|
|
|
assertEquals(i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
|
|
|
|
|
|
phoneUtil.parse('+4640404', RegionCode.SE), RegionCode.US)); |
|
|
|
|
|
assertEquals( |
|
|
|
|
|
i18n.phonenumbers.ShortNumberInfo.ShortNumberCost.UNKNOWN_COST, |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
shortInfo.getExpectedCostForRegion( |
|
|
phoneUtil.parse('+4640404', RegionCode.SE), |
|
|
|
|
|
RegionCode.US)); |
|
|
|
|
|
|
|
|
phoneUtil.parse('+4640404', RegionCode.SE), RegionCode.US)); |
|
|
} |
|
|
} |