grav/tests/unit/Grav/Common/Data/BlueprintTest.php

73 lines
1.7 KiB
PHP
Raw Permalink Normal View History

<?php
2020-05-05 18:04:56 +02:00
use Grav\Common\Config\Config;
use Grav\Common\Data\Blueprint;
2020-05-05 18:04:56 +02:00
use Grav\Common\Grav;
/**
* Class InstallCommandTest
*/
class BlueprintTest extends \Codeception\TestCase\Test
{
/**
*/
2021-02-01 10:14:53 +01:00
public function testValidateStrict(): void
{
$blueprint = $this->loadBlueprint('strict');
$blueprint->validate(['test' => 'string']);
}
/**
* @depends testValidateStrict
*/
2021-02-01 10:14:53 +01:00
public function testValidateStrictRequired(): void
{
$blueprint = $this->loadBlueprint('strict');
2020-12-04 19:01:28 +01:00
$this->expectException(\Grav\Common\Data\ValidationException::class);
$blueprint->validate([]);
}
/**
* @depends testValidateStrict
*/
2021-02-01 10:14:53 +01:00
public function testValidateStrictExtra(): void
{
$blueprint = $this->loadBlueprint('strict');
$blueprint->validate(['test' => 'string', 'wrong' => 'field']);
}
2020-05-05 18:04:56 +02:00
/**
* @depends testValidateStrict
*/
2021-02-01 10:14:53 +01:00
public function testValidateStrictExtraException(): void
2020-05-05 18:04:56 +02:00
{
$blueprint = $this->loadBlueprint('strict');
/** @var Config $config */
$config = Grav::instance()['config'];
$var = 'system.strict_mode.blueprint_strict_compat';
$config->set($var, false);
2020-12-04 19:01:28 +01:00
$this->expectException(\Grav\Common\Data\ValidationException::class);
2020-05-05 18:04:56 +02:00
$blueprint->validate(['test' => 'string', 'wrong' => 'field']);
$config->set($var, true);
}
/**
* @param string $filename
* @return Blueprint
*/
2021-02-01 10:14:53 +01:00
protected function loadBlueprint($filename): Blueprint
{
$blueprint = new Blueprint('strict');
$blueprint->setContext(dirname(__DIR__, 3). '/data/blueprints');
$blueprint->load()->init();
return $blueprint;
}
}