diff --git a/tools/java/common/src/com/google/i18n/phonenumbers/MetadataFilter.java b/tools/java/common/src/com/google/i18n/phonenumbers/MetadataFilter.java index 7d39db78b..d2043c98c 100644 --- a/tools/java/common/src/com/google/i18n/phonenumbers/MetadataFilter.java +++ b/tools/java/common/src/com/google/i18n/phonenumbers/MetadataFilter.java @@ -39,8 +39,8 @@ final class MetadataFilter { // excludableChildFields are PhoneNumberDesc fields of primitive type. // excludableChildlessFields are PhoneMetadata fields of primitive type. // Currently we support only one non-primitive type and the depth of the "family tree" is 2, - // meaning a field may have only direct descendants, who may not have descendants of their - // own. If this changes, the blacklist handling in this class should also change. + // meaning a field may have only direct descendants, who may not have descendants of their own. If + // this changes, the blacklist handling in this class should also change. // @VisibleForTesting static final TreeSet excludableParentFields = new TreeSet(Arrays.asList( "fixedLine", @@ -161,7 +161,8 @@ final class MetadataFilter { metadata.setCarrierSpecific(getFiltered("carrierSpecific", metadata.getCarrierSpecific())); } if (metadata.hasNoInternationalDialling()) { - metadata.setNoInternationalDialling(getFiltered("noInternationalDialling", metadata.getNoInternationalDialling())); + metadata.setNoInternationalDialling(getFiltered("noInternationalDialling", + metadata.getNoInternationalDialling())); } if (shouldDrop("preferredInternationalPrefix")) { diff --git a/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java b/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java index 8a8086e02..750ccb997 100644 --- a/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java +++ b/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java @@ -461,7 +461,7 @@ public class BuildMetadataFromXmlTest extends TestCase { assertEquals("\\d{6}", phoneNumberDesc.getNationalNumberPattern()); } - public void testFilterMetadata_liteBuild() throws Exception { + public void testBuildPhoneMetadataCollection_liteBuild() throws Exception { String xmlInput = "" + " " @@ -507,7 +507,7 @@ public class BuildMetadataFromXmlTest extends TestCase { assertEquals("", metadata.getMobile().getExampleNumber()); } - public void testFilterMetadata_specialBuild() throws Exception { + public void testBuildPhoneMetadataCollection_specialBuild() throws Exception { String xmlInput = "" + " " @@ -554,7 +554,7 @@ public class BuildMetadataFromXmlTest extends TestCase { assertEquals("10123456", metadata.getMobile().getExampleNumber()); } - public void testFilterMetadata_fullBuild() throws Exception { + public void testBuildPhoneMetadataCollection_fullBuild() throws Exception { String xmlInput = "" + " " diff --git a/tools/java/common/test/com/google/i18n/phonenumbers/MetadataFilterCoverageTest.java b/tools/java/common/test/com/google/i18n/phonenumbers/MetadataFilterCoverageTest.java index 6f56e3600..deb6e84de 100644 --- a/tools/java/common/test/com/google/i18n/phonenumbers/MetadataFilterCoverageTest.java +++ b/tools/java/common/test/com/google/i18n/phonenumbers/MetadataFilterCoverageTest.java @@ -56,10 +56,10 @@ public final class MetadataFilterCoverageTest { public void testCoverageOfExcludableParentFields() { for (String field : MetadataFilter.excludableParentFields) { String capitalized = Character.toUpperCase(field.charAt(0)) + field.substring(1); - String conditional = String.format( - "if (metadata.has%s()) {\n metadata.set%s(getFiltered(\"%s\", metadata.get%s()));\n" - + " }", capitalized, capitalized, field, capitalized); - assertTrue("Code is missing correct conditional for " + field, CODE.contains(conditional)); + String conditional = String.format("(?s).*if \\(metadata.has%s\\(\\)\\) \\{\\s+" + + "metadata.set%s\\(getFiltered\\(\"%s\",\\s+metadata.get%s\\(\\)\\)\\);\\s+\\}.*", + capitalized, capitalized, field, capitalized); + assertTrue("Code is missing correct conditional for " + field, CODE.matches(conditional)); } assertEquals(countOccurrencesOf("metadata.has", CODE), @@ -70,9 +70,9 @@ public final class MetadataFilterCoverageTest { public void testCoverageOfExcludableChildFields() { for (String field : MetadataFilter.excludableChildFields) { String capitalized = Character.toUpperCase(field.charAt(0)) + field.substring(1); - String conditional = String.format( - "if (shouldDrop(type, \"%s\")) {\n builder.clear%s();\n }", field, capitalized); - assertTrue("Code is missing correct conditional for " + field, CODE.contains(conditional)); + String conditional = String.format("(?s).*if \\(shouldDrop\\(type, \"%s\"\\)\\) \\{\\s+" + + "builder.clear%s\\(\\);\\s+\\}.*", field, capitalized); + assertTrue("Code is missing correct conditional for " + field, CODE.matches(conditional)); } assertEquals(countOccurrencesOf("shouldDrop(type, \"", CODE), @@ -83,9 +83,9 @@ public final class MetadataFilterCoverageTest { public void testCoverageOfExcludableChildlessFields() { for (String field : MetadataFilter.excludableChildlessFields) { String capitalized = Character.toUpperCase(field.charAt(0)) + field.substring(1); - String conditional = String.format( - "if (shouldDrop(\"%s\")) {\n metadata.clear%s();\n }", field, capitalized); - assertTrue("Code is missing correct conditional for " + field, CODE.contains(conditional)); + String conditional = String.format("(?s).*if \\(shouldDrop\\(\"%s\"\\)\\) \\{\\s+" + + "metadata.clear%s\\(\\);\\s+\\}.*", field, capitalized); + assertTrue("Code is missing correct conditional for " + field, CODE.matches(conditional)); } assertEquals(countOccurrencesOf("shouldDrop(\"", CODE), diff --git a/tools/java/common/test/com/google/i18n/phonenumbers/MetadataFilterTest.java b/tools/java/common/test/com/google/i18n/phonenumbers/MetadataFilterTest.java index d1f1276d8..4ffaef5fc 100644 --- a/tools/java/common/test/com/google/i18n/phonenumbers/MetadataFilterTest.java +++ b/tools/java/common/test/com/google/i18n/phonenumbers/MetadataFilterTest.java @@ -35,7 +35,11 @@ import org.junit.runners.JUnit4; * Unit tests for {@link MetadataFilter}. */ @RunWith(JUnit4.class) -public class MetadataFilterTest { +public class MetadataFilterTest { + private static final String ID = "AM"; + private static final int COUNTRY_CODE = 374; + private static final String INTERNATIONAL_PREFIX = "0[01]"; + private static final String PREFERRED_INTERNATIONAL_PREFIX = "00"; private static final String NATIONAL_NUMBER_PATTERN = "[1-9]\\d{7}"; private static final int[] possibleLengths = {8}; private static final int[] possibleLengthsLocalOnly = {5, 6}; @@ -197,11 +201,11 @@ public class MetadataFilterTest { fieldMap); } - @Test // Many of the strings in this test may be possible to express in shorter ways with the current // sets of excludable fields, but their shortest representation changes as those sets change, as // do their semantics; therefore we allow currently longer expressions, and we allow explicit // listing of children, even if these are currently all the children. + @Test public void testParseFieldMapFromString_equivalentExpressions() { // Listing all excludable parent fields is equivalent to listing all excludable child fields. assertEquals( @@ -866,12 +870,12 @@ public class MetadataFilterTest { MetadataFilter.forLiteBuild().filterMetadata(metadata); // id, country_code, and international_prefix should never be cleared. - assertEquals(metadata.getId(), "AM"); - assertEquals(metadata.getCountryCode(), 374); - assertEquals(metadata.getInternationalPrefix(), "0[01]"); + assertEquals(metadata.getId(), ID); + assertEquals(metadata.getCountryCode(), COUNTRY_CODE); + assertEquals(metadata.getInternationalPrefix(), INTERNATIONAL_PREFIX); // preferred_international_prefix should not be cleared in liteBuild. - assertEquals(metadata.getPreferredInternationalPrefix(), "00"); + assertEquals(metadata.getPreferredInternationalPrefix(), PREFERRED_INTERNATIONAL_PREFIX); // All PhoneNumberDescs must have only example_number cleared. for (PhoneNumberDesc desc : Arrays.asList( @@ -896,9 +900,9 @@ public class MetadataFilterTest { MetadataFilter.forSpecialBuild().filterMetadata(metadata); // id, country_code, and international_prefix should never be cleared. - assertEquals(metadata.getId(), "AM"); - assertEquals(metadata.getCountryCode(), 374); - assertEquals(metadata.getInternationalPrefix(), "0[01]"); + assertEquals(metadata.getId(), ID); + assertEquals(metadata.getCountryCode(), COUNTRY_CODE); + assertEquals(metadata.getInternationalPrefix(), INTERNATIONAL_PREFIX); // preferred_international_prefix should be cleared in specialBuild. assertFalse(metadata.hasPreferredInternationalPrefix()); @@ -933,10 +937,10 @@ public class MetadataFilterTest { MetadataFilter.emptyFilter().filterMetadata(metadata); // None of the fields should be cleared. - assertEquals(metadata.getId(), "AM"); - assertEquals(metadata.getCountryCode(), 374); - assertEquals(metadata.getInternationalPrefix(), "0[01]"); - assertEquals(metadata.getPreferredInternationalPrefix(), "00"); + assertEquals(metadata.getId(), ID); + assertEquals(metadata.getCountryCode(), COUNTRY_CODE); + assertEquals(metadata.getInternationalPrefix(), INTERNATIONAL_PREFIX); + assertEquals(metadata.getPreferredInternationalPrefix(), PREFERRED_INTERNATIONAL_PREFIX); for (PhoneNumberDesc desc : Arrays.asList( metadata.getGeneralDesc(), metadata.getFixedLine(), @@ -977,10 +981,10 @@ public class MetadataFilterTest { private static PhoneMetadata.Builder getFakeArmeniaPhoneMetadata() { PhoneMetadata.Builder metadata = PhoneMetadata.newBuilder(); - metadata.setId("AM"); - metadata.setCountryCode(374); - metadata.setInternationalPrefix("0[01]"); - metadata.setPreferredInternationalPrefix("00"); + metadata.setId(ID); + metadata.setCountryCode(COUNTRY_CODE); + metadata.setInternationalPrefix(INTERNATIONAL_PREFIX); + metadata.setPreferredInternationalPrefix(PREFERRED_INTERNATIONAL_PREFIX); metadata.setGeneralDesc(getFakeArmeniaPhoneNumberDesc(true)); metadata.setFixedLine(getFakeArmeniaPhoneNumberDesc(false)); metadata.setMobile(getFakeArmeniaPhoneNumberDesc(false)); diff --git a/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar b/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar index af88e9f8d..3e3426209 100644 Binary files a/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar and b/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar differ diff --git a/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar b/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar index 889e4cfe7..53539d2a6 100644 Binary files a/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar and b/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar differ