/** * Test importing address formats using service. */ function testAddressFormatImport() { $externalRepository = new AddressFormatRepository(); $externalCount = count($externalRepository->getAll()); $count = \Drupal::entityQuery('address_format')->count()->execute(); $this->assertEqual($externalCount, $count, 'All address formats imported at installation.'); }
/** * Google's dataset includes regular expressions for validating postal codes. * These regular expressions are meant to be consumed by Google's Java library, * and compatibility with PHP's preg_match is not 100% guaranteed. * This scripts performs validation to ensure compatibility. */ include '../vendor/autoload.php'; use CommerceGuys\Addressing\Enum\AddressField; use CommerceGuys\Addressing\Model\Address; use CommerceGuys\Addressing\Repository\CountryRepository; use CommerceGuys\Addressing\Repository\AddressFormatRepository; use CommerceGuys\Addressing\Validator\Constraints\AddressFormat; use CommerceGuys\Addressing\Validator\Constraints\Country; use Symfony\Component\Validator\Validation; $addressFormatRepository = new AddressFormatRepository(); $address = new Address(); $address = $address->withAddressLine1('Address line1')->withAddressLine1('Address line2')->withLocality('Locality'); $validator = Validation::createValidator(); // Create a list of countries for which Google has definitions. $foundCountries = ['ZZ']; $countryRepository = new CountryRepository(); $countries = $countryRepository->getList(); $serviceUrl = 'http://i18napis.appspot.com/address'; $index = file_get_contents($serviceUrl); foreach ($countries as $countryCode => $countryName) { $link = "<a href='/address/data/{$countryCode}'>"; // This is still faster than running a file_exists() for each country code. if (strpos($index, $link) !== FALSE) { $foundCountries[] = $countryCode; }