45 lines
1.1 KiB
PHP
45 lines
1.1 KiB
PHP
<?php /** @noinspection PhpUnhandledExceptionInspection */
|
|
|
|
namespace com\fwdekker\deathnotifier\validation;
|
|
|
|
|
|
/**
|
|
* Unit tests for {@see IsValidCsrfTokenRule}.
|
|
*/
|
|
class IsValidCsrfTokenRuleTest extends RuleTest
|
|
{
|
|
public function check_provider(): array
|
|
{
|
|
$type = InvalidTypeException::class;
|
|
|
|
return [
|
|
"exception if input is not set" => [new IsValidCsrfTokenRule(), null, $type, "Required input 'key' not set."],
|
|
"exception if input is not a string" => [new IsValidCsrfTokenRule(), 170, $type, "Input 'key' should be string, but is integer."],
|
|
];
|
|
}
|
|
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$_SESSION = [];
|
|
}
|
|
|
|
public function test_exception_if_input_is_incorrect_token(): void
|
|
{
|
|
$_SESSION["token"] = "valid";
|
|
|
|
self::expectException(InvalidValueException::class);
|
|
|
|
(new IsValidCsrfTokenRule())->check(["key" => "invalid"], "key");
|
|
}
|
|
|
|
public function test_no_exception_if_input_is_correct_token(): void
|
|
{
|
|
$_SESSION["token"] = "valid";
|
|
|
|
(new IsValidCsrfTokenRule())->check(["key" => "valid"], "key");
|
|
|
|
self::assertTrue(true);
|
|
}
|
|
}
|