From 9d7c8a0a5205ac3c0eb35e2f9e35cea2a884f7d9 Mon Sep 17 00:00:00 2001 From: Lara Scheidegger Date: Mon, 22 Sep 2014 10:19:28 +0000 Subject: [PATCH] Java: remove obsolete code that treated numbers where we had no metadata as valid. --- .../google/i18n/phonenumbers/PhoneNumberUtil.java | 25 +-------------------- .../i18n/phonenumbers/PhoneNumberUtilTest.java | 14 +----------- .../data/PhoneNumberMetadataProtoForTesting_CC | Bin 225 -> 162 bytes .../data/PhoneNumberMetadataProtoForTesting_CX | Bin 225 -> 162 bytes resources/PhoneNumberMetadataForTesting.xml | 18 +++------------ 5 files changed, 5 insertions(+), 52 deletions(-) diff --git a/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java b/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java index b6625ab..1f996f2 100644 --- a/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java +++ b/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java @@ -1981,9 +1981,7 @@ public class PhoneNumberUtil { } private PhoneNumberType getNumberTypeHelper(String nationalNumber, PhoneMetadata metadata) { - PhoneNumberDesc generalNumberDesc = metadata.getGeneralDesc(); - if (!generalNumberDesc.hasNationalNumberPattern() || - !isNumberMatchingDesc(nationalNumber, generalNumberDesc)) { + if (!isNumberMatchingDesc(nationalNumber, metadata.getGeneralDesc())) { return PhoneNumberType.UNKNOWN; } @@ -2114,16 +2112,7 @@ public class PhoneNumberUtil { // match that of the region code. return false; } - PhoneNumberDesc generalNumDesc = metadata.getGeneralDesc(); String nationalSignificantNumber = getNationalSignificantNumber(number); - - // For regions where we don't have metadata for PhoneNumberDesc, we treat any number passed in - // as a valid number if its national significant number is between the minimum and maximum - // lengths defined by ITU for a national significant number. - if (!generalNumDesc.hasNationalNumberPattern()) { - int numberLength = nationalSignificantNumber.length(); - return numberLength > MIN_LENGTH_FOR_NSN && numberLength <= MAX_LENGTH_FOR_NSN; - } return getNumberTypeHelper(nationalSignificantNumber, metadata) != PhoneNumberType.UNKNOWN; } @@ -2382,18 +2371,6 @@ public class PhoneNumberUtil { // Metadata cannot be null because the country calling code is valid. PhoneMetadata metadata = getMetadataForRegionOrCallingCode(countryCode, regionCode); PhoneNumberDesc generalNumDesc = metadata.getGeneralDesc(); - // Handling case of numbers with no metadata. - if (!generalNumDesc.hasNationalNumberPattern()) { - logger.log(Level.FINER, "Checking if number is possible with incomplete metadata."); - int numberLength = nationalNumber.length(); - if (numberLength < MIN_LENGTH_FOR_NSN) { - return ValidationResult.TOO_SHORT; - } else if (numberLength > MAX_LENGTH_FOR_NSN) { - return ValidationResult.TOO_LONG; - } else { - return ValidationResult.IS_POSSIBLE; - } - } Pattern possibleNumberPattern = regexCache.getPatternForRegex(generalNumDesc.getPossibleNumberPattern()); return testNumberLengthAgainstPattern(possibleNumberPattern, nationalNumber); diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java b/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java index 30d26cd..5664268 100644 --- a/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java +++ b/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java @@ -1314,18 +1314,6 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { assertEquals(PhoneNumberUtil.ValidationResult.TOO_LONG, phoneUtil.isPossibleNumberWithReason(INTERNATIONAL_TOLL_FREE_TOO_LONG)); - - // Try with number that we don't have metadata for. - PhoneNumber adNumber = new PhoneNumber(); - adNumber.setCountryCode(376).setNationalNumber(12345L); - assertEquals(PhoneNumberUtil.ValidationResult.IS_POSSIBLE, - phoneUtil.isPossibleNumberWithReason(adNumber)); - adNumber.setCountryCode(376).setNationalNumber(1L); - assertEquals(PhoneNumberUtil.ValidationResult.TOO_SHORT, - phoneUtil.isPossibleNumberWithReason(adNumber)); - adNumber.setCountryCode(376).setNationalNumber(123456789012345678L); - assertEquals(PhoneNumberUtil.ValidationResult.TOO_LONG, - phoneUtil.isPossibleNumberWithReason(adNumber)); } public void testIsNotPossibleNumber() { @@ -2350,7 +2338,7 @@ public class PhoneNumberUtilTest extends TestMetadataTestCase { assertEquals("+37612345", phoneUtil.format(adNumber, PhoneNumberFormat.E164)); assertEquals("12345", phoneUtil.format(adNumber, PhoneNumberFormat.NATIONAL)); assertEquals(PhoneNumberUtil.PhoneNumberType.UNKNOWN, phoneUtil.getNumberType(adNumber)); - assertTrue(phoneUtil.isValidNumber(adNumber)); + assertFalse(phoneUtil.isValidNumber(adNumber)); // Test dialing a US number from within Andorra. assertEquals("00 1 650 253 0000", diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CC b/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CC index f715e55a8f738caa89b6e1bc01e7e5c4b7f7db36..97fa27e9418c466d948464392da6e6ca5d4784dd 100644 GIT binary patch delta 32 hcmaFJxQJ17&07Z6@;M9)42+B*0)i(dcut(_0swwr2K)d3 literal 225 zcmZ4UmVveWHUk3#BO@aNr)f+|wXu$&Ni8D-2ast5VghBzkYMt2WMlvmAl+19qZkBs VFTz{~CTC}$kS!2{03(EgkO1h69mN0u diff --git a/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CX b/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CX index b6984d8b6918acf0f79b8ab256da7040feafea81..ad6bff5c31c895feb2044834184713478e410522 100644 GIT binary patch delta 32 hcmaFJxQJ17&07Z6@;M9)42+B*0)i(dcut(_0swwr2K)d3 literal 225 zcmZ4UmVveWHUk3#BO@aNr)f+|wXu$&Ni8D-2ast5VghBzkYMt2WMlvmAl+19qZkBs VFTz{~Cg%vCkS!2{03(EgkO1nL9ohf@ diff --git a/resources/PhoneNumberMetadataForTesting.xml b/resources/PhoneNumberMetadataForTesting.xml index ae670ca..6e598f7 100644 --- a/resources/PhoneNumberMetadataForTesting.xml +++ b/resources/PhoneNumberMetadataForTesting.xml @@ -223,14 +223,8 @@ + recognised by the library. --> - - 5\d{3,14} - \d{2,14} - @@ -251,18 +245,12 @@ - + + recognised by the library. --> - - 5\d{3,14} - \d{2,14} - -- 2.7.4