12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- //require_once drupal_get_path('module', 'phone') . 'includes/phone.int.inc';
- class PhoneIntTest extends DrupalWebTestCase {
- public static function getInfo() {
- return array(
- 'name' => 'International phone number test',
- 'description' => 'Tests international phone number validation.',
- 'group' => 'Phone',
- );
- }
- public function setUp() {
- // Enable the phone module.
- parent::setUp(array('phone'));
- }
-
- private function assertConversion($input, $expect = TRUE, $field = array(), $expect_error = FALSE) {
- $error = FALSE;
- if (!isset($field['phone_int_max_length'])) {
- $field['phone_int_max_length'] = '15';
- }
- if (!isset($field['phone_default_country_code'])) {
- $field['phone_default_country_code'] = '1';
- }
- if ($expect === FALSE) {
- $this->assertFalse(valid_phone_number('int', $input, $field, $error));
- $this->assertIdentical($error, $expect_error);
- return;
- }
- elseif ($expect === TRUE) {
- $expect = $input;
- }
- $this->assertTrue(valid_phone_number('int', $input, $field, $error));
- $this->assertIdentical($error, FALSE);
- $result = format_phone_number('int', $input, $field);
- $this->assertIdentical($result, $expect);
- }
- public function testBasic() {
- $this->assertConversion('+1 7329018493');
- }
- public function testBasicWithThreeCountryCode() {
- $this->assertConversion('+672 565434');
- }
- public function testBasicWithFourCountryCode() {
- $this->assertConversion('+6724 565434', FALSE, array(), array(
- 'Invalid international phone number: Country code "+%cc" is too long; valid country codes are three digits or less.',
- array('%cc' => '6724')
- ));
- }
- public function testBasicWithSpaces() {
- $this->assertConversion('+1 732 901 8493');
- }
- public function testBasicNormalizeOtherCharacters() {
- $this->assertConversion('+1 (732) 901-8493', '+1 732 901 8493');
- }
- public function testRemoveNDD() {
- $this->assertConversion('+54 0435344', '+54 435344');
- }
- public function testRemoveNonStandardNDD() {
- $this->assertConversion('+374 (8) 435344', '+374 435344');
- }
- public function testAddCountryCode() {
- $this->assertConversion('732 343 2333', '+1 732 343 2333', array('phone_default_country_code' => '1'));
- }
- public function testOverlongNumber() {
- $this->assertConversion('+123 456 789 012 3456', FALSE, array(),
- 'Invalid international phone number: Phone number is too long; international phone numbers are limited to 15 digits.'
- );
- }
- public function testOverlongNumberWithoutCountryCode() {
- $this->assertConversion('456 789 012 3456', FALSE, array('phone_default_country_code' => '123'),
- 'Invalid international phone number: Phone number is too long; international phone numbers are limited to 15 digits.'
- );
- }
- public function testLetters() {
- $this->assertConversion('+1 343 CALL US', FALSE, array(),
- 'Invalid international phone number: Phone number contains invalid characters; only allowed characters are numbers and punctuation.'
- );
- }
- }
|