Skip to content

Commit

Permalink
Merge pull request #34 from LinioIT/chore/update-security-bundle
Browse files Browse the repository at this point in the history
chore(deps): support php 8.0
  • Loading branch information
bpanatta authored Dec 22, 2022
2 parents 782da64 + ae7f8a0 commit 0c08bb9
Show file tree
Hide file tree
Showing 11 changed files with 76 additions and 65 deletions.
4 changes: 2 additions & 2 deletions .github/badges/coverage.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion .github/workflows/php.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
php-version: 8.0
coverage: xdebug

- name: Validate composer.json and composer.lock
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ vendor/
.php_cs.cache
.php-cs-fixer.cache
.phpunit.result.cache
phpunit.xml
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
"type": "library",
"license": "BSD-3-Clause",
"require": {
"php": "^7.4",
"php": "^8.0",
"symfony/form": "^2.8 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
},
"require-dev": {
"phpunit/phpunit": "^9.5",
"symfony/validator": "^2.8 || ^3.0 || ^4.0 || ^5.0 || ^6.0",
"friendsofphp/php-cs-fixer": "^3.0",
"symfony/security": "^2.8 || ^3.0 || ^4.0 || ^5.0",
"symfony/security-bundle": "^5.0",
"jaschilz/php-coverage-badger": "^2.0",
"phpspec/prophecy-phpunit": "^2.0"
},
Expand Down
44 changes: 18 additions & 26 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -1,28 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>

<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
backupGlobals="false"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
stopOnFailure="false"
bootstrap="./vendor/autoload.php">
<testsuites>
<testsuite name="Linio Framework Test Suite">
<directory suffix="Test.php">tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">src</directory>
<exclude>
<directory suffix=".php">vendor</directory>
</exclude>
</whitelist>
</filter>
<logging>
<log type="coverage-clover" target="./coverage.xml"/>
</logging>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" backupGlobals="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" stopOnFailure="false" bootstrap="./vendor/autoload.php">
<coverage includeUncoveredFiles="true">
<include>
<directory suffix=".php">src</directory>
</include>
<exclude>
<directory suffix=".php">vendor</directory>
</exclude>
<report>
<clover outputFile="./coverage.xml"/>
</report>
</coverage>
<testsuites>
<testsuite name="Linio Framework Test Suite">
<directory suffix="Test.php">tests</directory>
</testsuite>
</testsuites>
<logging/>
</phpunit>
12 changes: 9 additions & 3 deletions src/Form/FormFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormFactory as SymfonyFormFactory;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Mapping\GenericMetadata;
use Symfony\Component\Validator\Validation;

class FormFactory
Expand Down Expand Up @@ -201,14 +203,14 @@ public function updateBirthdayFieldOptions(string $type, string $key, array $fie
*
* @return ValidatorInterface
*/
public function createValidator($key, $object)
public function createValidator($key, mixed $object)
{
if (!isset($this->configuration[$key])) {
throw new NonExistentFormException(sprintf('The form "%s" was not found.', $key));
}

$validator = Validation::createValidatorBuilder()->getValidator();
$metadata = $validator->getMetadataFor(get_class($object));
$metadata = $validator->getMetadataFor($object::class);

foreach ($this->configuration[$key] as $key => $fieldConfiguration) {
if (!$fieldConfiguration['enabled']) {
Expand All @@ -220,7 +222,11 @@ public function createValidator($key, $object)
}

foreach ($fieldConfiguration['validation'] as $validatorName => $options) {
$metadata->addPropertyConstraint($key, new $validatorName($options));
if ($metadata instanceof ClassMetadata) {
$metadata->addPropertyConstraint($key, new $validatorName($options));
} elseif ($metadata instanceof GenericMetadata) {
$metadata->addConstraint(new $validatorName($options));
}
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/FormlyMapper/FormlyField.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ protected function buildConfiguration()

if (isset($this->fieldConfiguration['validation'])) {
$validation = $this->fieldConfiguration['validation'];
$notBlankConstraintClass = 'Symfony\Component\Validator\Constraints\NotBlank';
$notBlankConstraintClass = \Symfony\Component\Validator\Constraints\NotBlank::class;

if (isset($validation[$notBlankConstraintClass])) {
$constraint = $validation[$notBlankConstraintClass];
Expand All @@ -66,7 +66,7 @@ protected function buildConfiguration()
}
}

$regexConstraintClass = 'Symfony\Component\Validator\Constraints\Regex';
$regexConstraintClass = \Symfony\Component\Validator\Constraints\Regex::class;

if (isset($validation[$regexConstraintClass])) {
$constraint = $validation[$regexConstraintClass];
Expand Down
2 changes: 1 addition & 1 deletion src/FormlyMapper/FormlyField/BirthdayField.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ private function validateMaxAgeAllowedIsLargerThanMinAgeAllowed(array $options):
return;
}

if ($options['minAgeAllowed'] > $options['maxAgeAllowed']) {
if ((int) $options['minAgeAllowed'] > (int) $options['maxAgeAllowed']) {
throw new InvalidConfigurationException(sprintf('The value of minAgeAllowed (%s) cannot be greater than maxAgeAllowed (%s).', $options['minAgeAllowed'], $options['maxAgeAllowed']));
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/FormlyMapper/FormlyField/NumberField.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ protected function buildFieldTypeConfiguration(): void
if (isset($this->fieldConfiguration['validation'])) {
$validation = $this->fieldConfiguration['validation'];

if (isset($validation['Symfony\Component\Validator\Constraints\Range'])) {
$constraint = $validation['Symfony\Component\Validator\Constraints\Range'];
if (isset($validation[\Symfony\Component\Validator\Constraints\Range::class])) {
$constraint = $validation[\Symfony\Component\Validator\Constraints\Range::class];

if (isset($constraint['min'])) {
$this->formlyFieldConfiguration['templateOptions']['min'] = $constraint['min'];
Expand Down
4 changes: 2 additions & 2 deletions src/FormlyMapper/FormlyField/UrlField.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ protected function buildFieldTypeConfiguration(): void
if (isset($this->fieldConfiguration['validation'])) {
$validation = $this->fieldConfiguration['validation'];

if (isset($validation['Symfony\Component\Validator\Constraints\Url'])) {
$constraint = $validation['Symfony\Component\Validator\Constraints\Url'];
if (isset($validation[\Symfony\Component\Validator\Constraints\Url::class])) {
$constraint = $validation[\Symfony\Component\Validator\Constraints\Url::class];
$this->formlyFieldConfiguration['validation']['messages']['url'] = $constraint['message'] ?? '';
}
}
Expand Down
60 changes: 36 additions & 24 deletions tests/Form/FormFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Form\FormFactory as SymfonyFormFactory;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Validator\Constraints\IsTrue;

class FormFactoryTest extends TestCase
Expand Down Expand Up @@ -64,20 +65,22 @@ public function testIsCreatingASimpleForm(): void
->willReturn($this->formBuilderMock->reveal());

$this->formBuilderMock->create('field1', 'field1_type', ['field1_options'])
->willReturn('field1_instance');
->willReturn($this->formBuilderMock->reveal());

$this->formBuilderMock->add('field1_instance')
->shouldBeCalled();
$this->formBuilderMock->add($this->formBuilderMock->reveal())
->shouldBeCalled()
->willReturn($this->formBuilderMock->reveal());

$formInterfaceMock = $this->createMock(FormInterface::class);
$this->formBuilderMock->getForm()
->willReturn('foo_form');
->willReturn($formInterfaceMock);

$this->formFactory->setFormFactory($this->formFactoryMock->reveal());
$this->formFactory->setConfiguration($formConfiguration);

$actual = $this->formFactory->createForm('foo', ['foo_form_data'], ['foo_form_options']);

$this->assertEquals('foo_form', $actual);
$this->assertEquals($formInterfaceMock, $actual);
}

public function testIsCreatingFormWithBirthdayFieldWithYearsAllowed(): void
Expand Down Expand Up @@ -108,20 +111,22 @@ public function testIsCreatingFormWithBirthdayFieldWithYearsAllowed(): void
->willReturn($this->formBuilderMock->reveal());

$this->formBuilderMock->create('borndate', BirthdayType::class, $expectedFieldOptions)
->willReturn('borndate_instance');
->willReturn($this->formBuilderMock->reveal());

$this->formBuilderMock->add('borndate_instance')
->shouldBeCalled();
$this->formBuilderMock->add($this->formBuilderMock->reveal())
->shouldBeCalled()
->willReturn($this->formBuilderMock->reveal());

$formInterfaceMock = $this->createMock(FormInterface::class);
$this->formBuilderMock->getForm()
->willReturn('foo_form');
->willReturn($formInterfaceMock);

$this->formFactory->setFormFactory($this->formFactoryMock->reveal());
$this->formFactory->setConfiguration($formConfiguration);

$actual = $this->formFactory->createForm('foo', ['foo_form_data'], ['foo_form_options']);

$this->assertEquals('foo_form', $actual);
$this->assertEquals($formInterfaceMock, $actual);
}

public function testIsCreatingFormWithValidators(): void
Expand Down Expand Up @@ -150,20 +155,22 @@ public function testIsCreatingFormWithValidators(): void
->willReturn($this->formBuilderMock->reveal());

$this->formBuilderMock->create('field1', 'field1_type', $expectedFieldOptions)
->willReturn('field1_instance');
->willReturn($this->formBuilderMock->reveal());

$this->formBuilderMock->add('field1_instance')
->shouldBeCalled();
$this->formBuilderMock->add($this->formBuilderMock->reveal())
->shouldBeCalled()
->willReturn($this->formBuilderMock->reveal());

$formInterfaceMock = $this->createMock(FormInterface::class);
$this->formBuilderMock->getForm()
->willReturn('foo_form');
->willReturn($formInterfaceMock);

$this->formFactory->setFormFactory($this->formFactoryMock->reveal());
$this->formFactory->setConfiguration($formConfiguration);

$actual = $this->formFactory->createForm('foo');

$this->assertEquals('foo_form', $actual);
$this->assertEquals($formInterfaceMock, $actual);
}

public function testIsCreatingFormWithTransformers(): void
Expand Down Expand Up @@ -199,20 +206,23 @@ public function testIsCreatingFormWithTransformers(): void
->willReturn($fieldOneMock->reveal());

$fieldOneMock->addModelTransformer($bornDateTransformer)
->shouldBeCalled();
->shouldBeCalled()
->willReturn($fieldOneMock->reveal());

$this->formBuilderMock->add($fieldOneMock->reveal())
->shouldBeCalledTimes(1);
->shouldBeCalledTimes(1)
->willReturn($this->formBuilderMock->reveal());

$formInterfaceMock = $this->createMock(FormInterface::class);
$this->formBuilderMock->getForm()
->willReturn('foo_form');
->willReturn($formInterfaceMock);

$this->formFactory->setFormFactory($this->formFactoryMock->reveal());
$this->formFactory->setConfiguration($formConfiguration);

$actual = $this->formFactory->createForm('foo');

$this->assertEquals('foo_form', $actual);
$this->assertEquals($formInterfaceMock, $actual);
}

public function testIsCreatingFormWithHelpMessages(): void
Expand Down Expand Up @@ -242,22 +252,24 @@ public function testIsCreatingFormWithHelpMessages(): void

$this->formBuilderMock->create('field1', 'field1_type', ['help' => 'message'])
->shouldBeCalled()
->willReturn('field1_instance');
->willReturn($this->formBuilderMock->reveal());

$this->formBuilderMock->add('field1_instance')
->shouldBeCalled();
$this->formBuilderMock->add($this->formBuilderMock->reveal())
->shouldBeCalled()
->willReturn($this->formBuilderMock->reveal());

$formInterfaceMock = $this->createMock(FormInterface::class);
$this->formBuilderMock->getForm()
->shouldBeCalled()
->willReturn('foo_form');
->willReturn($formInterfaceMock);

$this->formFactory->setFormFactory($this->formFactoryMock->reveal());
$this->formFactory->setConfiguration($formConfiguration);
$this->formFactory->addHelpMessageProvider('cache', $helpMessageProviderMock->reveal());

$actual = $this->formFactory->createForm('foo', ['foo_form_data'], $formConfiguration);

$this->assertEquals('foo_form', $actual);
$this->assertEquals($formInterfaceMock, $actual);
}

public function testIsGettingConfiguration(): void
Expand Down

0 comments on commit 0c08bb9

Please sign in to comment.