1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-11 16:59:45 +01:00
psalm/tests/SuperGlobalsTest.php

53 lines
1.4 KiB
PHP
Raw Normal View History

2021-09-08 21:41:23 +02:00
<?php
2023-10-19 13:12:06 +02:00
declare(strict_types=1);
2021-09-08 21:41:23 +02:00
namespace Psalm\Tests;
2022-12-25 06:50:09 +01:00
use Psalm\Tests\Traits\InvalidCodeAnalysisTestTrait;
2021-12-04 21:55:53 +01:00
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;
2021-09-08 21:41:23 +02:00
class SuperGlobalsTest extends TestCase
{
2021-12-04 21:55:53 +01:00
use ValidCodeAnalysisTestTrait;
2022-12-25 06:50:09 +01:00
use InvalidCodeAnalysisTestTrait;
2021-09-08 21:41:23 +02:00
public function providerValidCodeParse(): iterable
{
yield 'http_response_headerIsList' => [
'code' => '<?php
/** @return non-empty-list<non-falsy-string> */
2021-09-08 21:41:23 +02:00
function returnsList(): array {
2022-12-25 06:41:34 +01:00
if (!isset($http_response_header)) {
throw new \RuntimeException();
}
2021-09-08 21:41:23 +02:00
return $http_response_header;
}
',
2022-12-18 17:15:15 +01:00
'assertions' => [],
2021-09-08 21:41:23 +02:00
];
yield 'ENV has scalar entries only' => [
2022-11-08 10:45:21 +01:00
'code' => '<?php
/** @return array<array-key, scalar> */
function f(): array {
return $_ENV;
}
2022-12-18 17:15:15 +01:00
',
];
2021-09-08 21:41:23 +02:00
}
2022-12-25 06:50:09 +01:00
public function providerInvalidCodeParse(): iterable
{
yield 'undefined http_response_header' => [
'code' => '<?php
/** @return non-empty-list<non-falsy-string> */
function returnsList(): array {
return $http_response_header;
}
',
'error_message' => 'InvalidReturnStatement',
];
}
2021-09-08 21:41:23 +02:00
}