Skip to content

Commit

Permalink
tests: Nete 3 compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
xificurk committed Apr 19, 2019
1 parent e48f80d commit 2e10cfa
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 22 deletions.
3 changes: 3 additions & 0 deletions phpstan.tests.neon.dist
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,6 @@ parameters:
-
message: '#Call to an undefined method Nette\\Forms\\Form::addPhoneNumber\(\)#'
path: %currentWorkingDirectory%/tests/Bridges/PhoneNumberInputDI/PhoneNumberInputExtensionTest.phpt
- # Nette 2.4 compatibility
message: "#Call to function method_exists\\(\\) with 'Nette\\\\\\\\Forms\\\\\\\\Rules' and '.*' will always evaluate to (false|true)\\.#"
path: %currentWorkingDirectory%/tests/PhoneNumberInput/PhoneNumberInputTest.phpt
2 changes: 1 addition & 1 deletion src/PhoneNumberInput/PhoneNumberInput.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public function __construct($label = null, ?string $defaultRegionCode = null)
$this->defaultRegionCode = $defaultRegionCode;
$this->setHtmlType('tel');
$this->setNullable();
$this->setRequired(false);
$this->setRequired(false); // BC with Nette 2.4
$this->addRule(self::VALID, NetteFormsValidator::$messages[self::VALID] ?? 'Please enter a valid phone number.');
}

Expand Down
59 changes: 38 additions & 21 deletions tests/PhoneNumberInput/PhoneNumberInputTest.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ use Brick\PhoneNumber\PhoneNumberParseException;
use Nepada\PhoneNumberInput\PhoneNumberInput;
use NepadaTests\TestCase;
use Nette\Forms\Form;
use Nette\Forms\Rules;
use Tester\Assert;

require_once __DIR__ . '/../bootstrap.php';
Expand All @@ -19,6 +20,15 @@ require_once __DIR__ . '/../bootstrap.php';
class PhoneNumberInputTest extends TestCase
{

/** @var bool */
private $isNette24 = false;

protected function setUp(): void
{
parent::setUp();
$this->isNette24 = method_exists(Rules::class, 'isOptional') && method_exists(Rules::class, 'check'); // BC with Nette 2.4
}

public function testDefaultRegionCode(): void
{
$input = new PhoneNumberInput('Phone');
Expand All @@ -40,17 +50,19 @@ class PhoneNumberInputTest extends TestCase

$phoneInput->setValue('+420212345678');
Assert::same(
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\''
. '[{"op":"optional"},{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}]'
. '\' value="212 345 678" data-default-region-code="CZ">',
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\'['
. ($this->isNette24 ? '{"op":"optional"},' : '')
. '{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}'
. ']\' value="212 345 678" data-default-region-code="CZ">',
(string) $phoneInput->getControl()
);

$phoneInput->setValue('+12015550123');
Assert::same(
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\''
. '[{"op":"optional"},{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}]'
. '\' value="+1 201-555-0123" data-default-region-code="CZ">',
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\'['
. ($this->isNette24 ? '{"op":"optional"},' : '')
. '{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}'
. ']\' value="+1 201-555-0123" data-default-region-code="CZ">',
(string) $phoneInput->getControl()
);
}
Expand All @@ -64,17 +76,19 @@ class PhoneNumberInputTest extends TestCase

$phoneInput->setValue('+420212345678');
Assert::same(
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\''
. '[{"op":"optional"},{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}]'
. '\' value="+420 212 345 678">',
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\'['
. ($this->isNette24 ? '{"op":"optional"},' : '')
. '{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}'
. ']\' value="+420 212 345 678">',
(string) $phoneInput->getControl()
);

$phoneInput->setValue('+12015550123');
Assert::same(
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\''
. '[{"op":"optional"},{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}]'
. '\' value="+1 201-555-0123">',
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\'['
. ($this->isNette24 ? '{"op":"optional"},' : '')
. '{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}'
. ']\' value="+1 201-555-0123">',
(string) $phoneInput->getControl()
);
}
Expand Down Expand Up @@ -150,9 +164,10 @@ class PhoneNumberInputTest extends TestCase
Assert::null($phoneInput->getValue());
Assert::same(null, $phoneInput->getError());
Assert::same(
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\''
. '[{"op":"optional"},{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}]'
. '\'>',
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\'['
. ($this->isNette24 ? '{"op":"optional"},' : '')
. '{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}'
. ']\'>',
(string) $phoneInput->getControl()
);
}
Expand All @@ -172,9 +187,10 @@ class PhoneNumberInputTest extends TestCase
Assert::null($phoneInput->getValue());
Assert::same(null, $phoneInput->getError());
Assert::same(
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\''
. '[{"op":"optional"},{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}]'
. '\' data-nette-empty-value="+420" value="+420">',
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\'['
. ($this->isNette24 ? '{"op":"optional"},' : '')
. '{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}'
. ']\' data-nette-empty-value="+420" value="+420">',
(string) $phoneInput->getControl()
);
}
Expand All @@ -194,9 +210,10 @@ class PhoneNumberInputTest extends TestCase
Assert::same('+420212345678', (string) $phoneInput->getValue());
Assert::same(null, $phoneInput->getError());
Assert::same(
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\''
. '[{"op":"optional"},{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}]'
. '\' value="+420 212 34 56 78">',
'<input type="tel" name="phone" id="frm-phone" data-nette-rules=\'['
. ($this->isNette24 ? '{"op":"optional"},' : '')
. '{"op":"Nepada\\\\PhoneNumberInput\\\\Validator::validatePhoneNumber","msg":"Please enter a valid phone number."}'
. ']\' value="+420 212 34 56 78">',
(string) $phoneInput->getControl()
);
}
Expand Down

0 comments on commit 2e10cfa

Please sign in to comment.