X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=tests%2Fphpunit%2FCRM%2FUtils%2FAddressTest.php;h=3ce0a367fc5676a7a14b5557a8bcf96d8e523cd2;hb=6b3c33faf33b0d26942243c3c784311daceff0ba;hp=df22b6d6722312ed71196f304316adc3d1131c1a;hpb=12ec5bb5bfe8d3ae7a2ec327f65e521ccf233647;p=civicrm-core.git diff --git a/tests/phpunit/CRM/Utils/AddressTest.php b/tests/phpunit/CRM/Utils/AddressTest.php index df22b6d672..3ce0a367fc 100644 --- a/tests/phpunit/CRM/Utils/AddressTest.php +++ b/tests/phpunit/CRM/Utils/AddressTest.php @@ -11,12 +11,12 @@ class CRM_Utils_AddressTest extends CiviUnitTestCase { } public function testAddressFormat() { - $contact = $this->callAPISuccess('contact', 'create', array( + $contact = $this->callAPISuccess('contact', 'create', [ 'first_name' => 'Micky', 'last_name' => 'mouse', 'contact_type' => 'Individual', - )); - $address = $this->callAPISuccess('address', 'create', array( + ]); + $address = $this->callAPISuccess('address', 'create', [ 'street_address' => '1 Happy Place', 'city' => 'Miami', 'state_province' => 'Flordia', @@ -25,7 +25,7 @@ class CRM_Utils_AddressTest extends CiviUnitTestCase { 'contact_id' => $contact['id'], 'location_type_id' => 5, 'is_primary' => 1, - )); + ]); $addressDetails = $address['values'][$address['id']]; $countries = CRM_Core_PseudoConstant::country(); $addressDetails['country'] = $countries[$addressDetails['country_id']]; @@ -33,4 +33,47 @@ class CRM_Utils_AddressTest extends CiviUnitTestCase { $this->assertTrue((bool) strstr($formatted_address, 'UNITED STATES')); } + /** + * Test state/province field's state_province_name token on getFormattedBillingAddressFieldsFromParameters + * and test using alternate names for state_province field + */ + public function testStateProvinceFormattedBillingAddress() { + $params = [ + 'billing_street_address-99' => '123 Happy Place', + 'billing_city-99' => 'Miami', + 'billing_postal_code-99' => 33101, + // 1000 => Alabama (AL) + 'state_province-99' => '1000', + 'country-99' => 'United States', + ]; + + // set address_format (we are only interested in state_province & state_province_name) + $addFormat = '{contact.state_province}'; + Civi::settings()->set('address_format', $addFormat); + $formatted_address = CRM_Utils_Address::getFormattedBillingAddressFieldsFromParameters($params, '99'); + $this->assertTrue((bool) $formatted_address == 'AL'); + + $addFormat = '{contact.state_province_name}'; + Civi::settings()->set('address_format', $addFormat); + $formatted_address = CRM_Utils_Address::getFormattedBillingAddressFieldsFromParameters($params, '99'); + $this->assertTrue((bool) $formatted_address == 'Alabama'); + + // test using alternate names for state/province field + unset($params['state_province-99']); + // alternate name 1 + $params['billing_state_province-99'] = '1000'; + $addFormat = '{contact.state_province_name}'; + Civi::settings()->set('address_format', $addFormat); + $formatted_address = CRM_Utils_Address::getFormattedBillingAddressFieldsFromParameters($params, '99'); + $this->assertTrue((bool) $formatted_address == 'Alabama'); + + unset($params['state_province-99']); + // alternate name 2 + $params['billing_state_province_id-99'] = '1000'; + $addFormat = '{contact.state_province_name}'; + Civi::settings()->set('address_format', $addFormat); + $formatted_address = CRM_Utils_Address::getFormattedBillingAddressFieldsFromParameters($params, '99'); + $this->assertTrue((bool) $formatted_address == 'Alabama'); + } + }