Skip to content

Commit

Permalink
Adjust to validator changes (#196)
Browse files Browse the repository at this point in the history
Co-authored-by: Rustam <rmamdaminov@gmail.com>
  • Loading branch information
xepozz and rustamwin committed Jun 11, 2022
1 parent 86ce1f0 commit 79bb78a
Show file tree
Hide file tree
Showing 10 changed files with 33 additions and 20 deletions.
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -24,7 +24,7 @@
"yiisoft/html": "^2.4",
"yiisoft/http": "^1.2",
"yiisoft/strings": "^2.0",
"yiisoft/validator": "^3.0@dev",
"yiisoft/validator": "dev-master",
"yiisoft/widget": "^1.0"
},
"require-dev": {
Expand Down
9 changes: 0 additions & 9 deletions src/Field/Url.php
Expand Up @@ -212,15 +212,6 @@ protected function beforeRender(): void
$pattern = null;
if ($rule instanceof UrlRule) {
$pattern = $rule->getOptions()['pattern'];

$schemePatterns = [];
foreach ($rule->getOptions()['validSchemes'] as $scheme) {
$schemePatterns[] = $this->generateSchemePattern($scheme);
}

if (str_contains($pattern, '{schemes}')) {
$pattern = str_replace('{schemes}', '(' . implode('|', $schemePatterns) . ')', $pattern);
}
} elseif ($rule instanceof Regex) {
if (!($rule->getOptions()['not'])) {
$pattern = $rule->getOptions()['pattern'];
Expand Down
5 changes: 5 additions & 0 deletions src/FormModel.php
Expand Up @@ -367,4 +367,9 @@ public function isValidated(): bool
{
return $this->validated;
}

public function getData(): mixed
{
return $this->rawData;
}
}
3 changes: 2 additions & 1 deletion tests/Field/Part/ErrorTest.php
Expand Up @@ -9,6 +9,7 @@
use Yiisoft\Form\Field\Part\Error;
use Yiisoft\Form\Tests\Support\Form\ErrorForm;
use Yiisoft\Test\Support\Container\SimpleContainer;
use Yiisoft\Validator\SimpleRuleHandlerContainer;
use Yiisoft\Validator\Validator;
use Yiisoft\Widget\WidgetFactory;

Expand Down Expand Up @@ -273,7 +274,7 @@ static function (string $message, ?ErrorForm $form, ?string $attribute): string
private function createValidatedErrorForm(): ErrorForm
{
$form = new ErrorForm();
(new Validator())->validate($form);
(new Validator(new SimpleRuleHandlerContainer()))->validate($form);
return $form;
}
}
4 changes: 2 additions & 2 deletions tests/Field/UrlTest.php
Expand Up @@ -243,15 +243,15 @@ public function dataEnrichmentFromRules(): array
'nocode',
],
'url' => [
'<input type="url" id="urlform-shop" name="UrlForm[shop]" value pattern="^([hH][tT][tT][pP]|[hH][tT][tT][pP][sS]):\/\/(([a-zA-Z0-9][a-zA-Z0-9_-]*)(\.[a-zA-Z0-9][a-zA-Z0-9_-]*)+)(?::\d{1,5})?([?\/#].*$|$)">',
'<input type="url" id="urlform-shop" name="UrlForm[shop]" value pattern="^((?i)http|https):\/\/(([a-zA-Z0-9][a-zA-Z0-9_-]*)(\.[a-zA-Z0-9][a-zA-Z0-9_-]*)+)(?::\d{1,5})?([?\/#].*$|$)">',
'shop',
],
'url-regex' => [
'<input type="url" id="urlform-beach" name="UrlForm[beach]" value pattern="\w+">',
'beach',
],
'regex-url' => [
'<input type="url" id="urlform-beach2" name="UrlForm[beach2]" value pattern="^([hH][tT][tT][pP]|[hH][tT][tT][pP][sS]):\/\/(([a-zA-Z0-9][a-zA-Z0-9_-]*)(\.[a-zA-Z0-9][a-zA-Z0-9_-]*)+)(?::\d{1,5})?([?\/#].*$|$)">',
'<input type="url" id="urlform-beach2" name="UrlForm[beach2]" value pattern="^((?i)http|https):\/\/(([a-zA-Z0-9][a-zA-Z0-9_-]*)(\.[a-zA-Z0-9][a-zA-Z0-9_-]*)+)(?::\d{1,5})?([?\/#].*$|$)">',
'beach2',
],
];
Expand Down
13 changes: 13 additions & 0 deletions tests/FormModelTest.php
Expand Up @@ -375,4 +375,17 @@ public function testDefaultGetRules(): void

$this->assertSame([], $form->getRules());
}

public function testGetData(): void
{
$data = [
'login' => 'admin',
'password' => '123456',
'rememberMe' => true,
];
$form = new LoginForm();
$form->load($data, '');

$this->assertSame($data, $form->getData());
}
}
3 changes: 2 additions & 1 deletion tests/Helper/HtmlFormErrorsTest.php
Expand Up @@ -33,7 +33,8 @@ public function testClearAllErrors(): void
$this->assertTrue($formModel->load($this->data));
$this->assertFalse($validator->validate($formModel)->isValid());
$this->assertSame($this->expected, HtmlFormErrors::getAllErrors($formModel));
$this->assertEmpty($formModel->getFormErrors()->clear());
$formModel->getFormErrors()->clear();
$this->assertEmpty($formModel->getFormErrors()->getAllErrors());
}

public function testClearForAttribute(): void
Expand Down
3 changes: 2 additions & 1 deletion tests/Support/Form/ErrorSummaryForm.php
Expand Up @@ -8,6 +8,7 @@
use Yiisoft\Validator\Result;
use Yiisoft\Validator\Rule\Callback;
use Yiisoft\Validator\Rule\Required;
use Yiisoft\Validator\SimpleRuleHandlerContainer;
use Yiisoft\Validator\Validator;

final class ErrorSummaryForm extends FormModel
Expand Down Expand Up @@ -46,7 +47,7 @@ public function getAttributeLabels(): array
public static function validated(): self
{
$form = new self();
(new Validator())->validate($form);
(new Validator(new SimpleRuleHandlerContainer()))->validate($form);
return $form;
}
}
3 changes: 2 additions & 1 deletion tests/Support/Form/TextForm.php
Expand Up @@ -8,6 +8,7 @@
use Yiisoft\Validator\Rule\HasLength;
use Yiisoft\Validator\Rule\Regex;
use Yiisoft\Validator\Rule\Required;
use Yiisoft\Validator\SimpleRuleHandlerContainer;
use Yiisoft\Validator\Validator;

final class TextForm extends FormModel
Expand Down Expand Up @@ -57,7 +58,7 @@ public function getAttributePlaceholders(): array
public static function validated(): self
{
$form = new self();
(new Validator())->validate($form);
(new Validator(new SimpleRuleHandlerContainer()))->validate($form);
return $form;
}
}
8 changes: 4 additions & 4 deletions tests/TestSupport/Validator/ValidatorMock.php
Expand Up @@ -4,8 +4,8 @@

namespace Yiisoft\Form\Tests\TestSupport\Validator;

use Yiisoft\Validator\Formatter;
use Yiisoft\Validator\Result;
use Yiisoft\Validator\SimpleRuleHandlerContainer;
use Yiisoft\Validator\Validator;
use Yiisoft\Validator\ValidatorInterface;

Expand All @@ -15,11 +15,11 @@ final class ValidatorMock implements ValidatorInterface

public function __construct()
{
$this->validator = new Validator(new Formatter());
$this->validator = new Validator(new SimpleRuleHandlerContainer());
}

public function validate($dataSet, iterable $rules = []): Result
public function validate($data, iterable $rules = []): Result
{
return $this->validator->validate($dataSet, $rules);
return $this->validator->validate($data, $rules);
}
}

0 comments on commit 79bb78a

Please sign in to comment.