Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
#code coverage
/code_coverage

#copilot
copilot

# composer vendor dir
/vendor
/composer.lock
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## 0.1.2 Under development

- Bug #190: Update action versions to use `yii2-framework` for consistency (@terabytesoftw)
- Bug #191: Refactor test imports for consistency and add support files (@terabytesoftw)

## 0.1.1 October 6, 2025

Expand Down
4 changes: 2 additions & 2 deletions phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ includes:

parameters:
bootstrapFiles:
- tests/bootstrap.php
- tests/support/bootstrap.php

level: max

Expand All @@ -14,7 +14,7 @@ parameters:
tmpDir: %currentWorkingDirectory%/runtime

yii2:
config_path: %currentWorkingDirectory%/tests/phpstan-config.php
config_path: %currentWorkingDirectory%/tests/support/phpstan-config.php

# Enable strict advanced checks
checkImplicitMixed: true
Expand Down
2 changes: 1 addition & 1 deletion phpunit.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
bootstrap="tests/bootstrap.php"
bootstrap="tests/support/bootstrap.php"
cacheDirectory="runtime/.phpunit.cache"
colors="true"
executionOrder="depends,defects"
Expand Down
3 changes: 1 addition & 2 deletions tests/adapter/CookiesPsr7Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
use yii\web\Cookie;
use yii2\extensions\psrbridge\exception\Message;
use yii2\extensions\psrbridge\http\Request;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

/**
* Test suite for {@see Request} cookie handling functionality and behavior.
Expand Down
3 changes: 1 addition & 2 deletions tests/adapter/HeadersPsr7Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@

use PHPUnit\Framework\Attributes\Group;
use yii2\extensions\psrbridge\http\Request;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

/**
* Test suite for {@see Request} header handling functionality and behavior.
Expand Down
3 changes: 1 addition & 2 deletions tests/adapter/ResponseAdapterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,8 @@
use yii2\extensions\psrbridge\adapter\ResponseAdapter;
use yii2\extensions\psrbridge\exception\Message;
use yii2\extensions\psrbridge\http\{Request, Response};
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};
use yii2\extensions\psrbridge\tests\support\stub\MockerFunctions;
use yii2\extensions\psrbridge\tests\TestCase;

use function fclose;
use function fopen;
Expand Down
3 changes: 1 addition & 2 deletions tests/adapter/ServerParamsPsr7Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
use yii\base\InvalidConfigException;
use yii2\extensions\psrbridge\http\Request;
use yii2\extensions\psrbridge\tests\provider\ServerParamsPsr7Provider;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

use function sprintf;
use function var_export;
Expand Down
3 changes: 1 addition & 2 deletions tests/adapter/ServerRequestAdapterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
use yii\base\InvalidConfigException;
use yii2\extensions\psrbridge\http\Request;
use yii2\extensions\psrbridge\tests\provider\RequestProvider;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

/**
* Test suite for {@see Request} handling functionality and behavior.
Expand Down
3 changes: 1 addition & 2 deletions tests/adapter/UploadedFilesPsr7Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
use PHPUnit\Framework\Attributes\Group;
use yii\web\UploadedFile;
use yii2\extensions\psrbridge\http\Request;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

/**
* Test suite for {@see Request} uploaded files handling functionality and behavior.
Expand Down
3 changes: 1 addition & 2 deletions tests/creator/ServerRequestCreatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
use Psr\Http\Message\UploadedFileInterface;
use RuntimeException;
use yii2\extensions\psrbridge\creator\ServerRequestCreator;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

use function fclose;
use function is_resource;
Expand Down
3 changes: 1 addition & 2 deletions tests/creator/UploadedFileCreatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
use yii\base\InvalidArgumentException;
use yii2\extensions\psrbridge\creator\UploadedFileCreator;
use yii2\extensions\psrbridge\exception\Message;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

use const UPLOAD_ERR_OK;

Expand Down
3 changes: 1 addition & 2 deletions tests/emitter/SapiEmitterTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,8 @@
use yii2\extensions\psrbridge\emitter\SapiEmitter;
use yii2\extensions\psrbridge\exception\{HeadersAlreadySentException, Message, OutputAlreadySentException};
use yii2\extensions\psrbridge\tests\provider\EmitterProvider;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};
use yii2\extensions\psrbridge\tests\support\stub\MockerFunctions;
use yii2\extensions\psrbridge\tests\TestCase;

use function fopen;
use function implode;
Expand Down
2 changes: 1 addition & 1 deletion tests/http/ErrorHandlerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
use yii\base\{Exception, UserException};
use yii\web\HttpException;
use yii2\extensions\psrbridge\http\{ErrorHandler, Response};
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\TestCase;

use function ob_get_level;
use function ob_start;
Expand Down
2 changes: 1 addition & 1 deletion tests/http/RequestTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
use yii2\extensions\psrbridge\exception\Message;
use yii2\extensions\psrbridge\http\Request;
use yii2\extensions\psrbridge\tests\provider\RequestProvider;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\TestCase;

use function array_filter;
use function str_starts_with;
Expand Down
3 changes: 1 addition & 2 deletions tests/http/ResponseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@
use yii\helpers\Json;
use yii\web\{Cookie, Session};
use yii2\extensions\psrbridge\http\Response;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

use function count;
use function str_contains;
Expand Down
2 changes: 1 addition & 1 deletion tests/http/ServerExitCodeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use BackedEnum;
use PHPUnit\Framework\Attributes\{Group, TestWith};
use yii2\extensions\psrbridge\http\ServerExitCode;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\TestCase;

/**
* Test suite for {@see ServerExitCode} enum value mapping.
Expand Down
3 changes: 1 addition & 2 deletions tests/http/UploadedFileTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@

use yii2\extensions\psrbridge\adapter\ServerRequestAdapter;
use yii2\extensions\psrbridge\http\UploadedFile;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};
use yii2\extensions\psrbridge\tests\support\stub\{ComplexUploadedFileModel, UploadedFileModel};
use yii2\extensions\psrbridge\tests\TestCase;

use const UPLOAD_ERR_CANT_WRITE;
use const UPLOAD_ERR_OK;
Expand Down
3 changes: 1 addition & 2 deletions tests/http/stateless/ApplicationAuthTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
use PHPUnit\Framework\Attributes\{DataProviderExternal, Group};
use yii\base\InvalidConfigException;
use yii2\extensions\psrbridge\tests\provider\StatelessApplicationProvider;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

/**
* Test suite for {@see \yii2\extensions\psrbridge\http\StatelessApplication} authentication handling in stateless
Expand Down
3 changes: 1 addition & 2 deletions tests/http/stateless/ApplicationContentTypesTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@

use PHPUnit\Framework\Attributes\Group;
use yii\base\InvalidConfigException;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

/**
* Test suite for {@see \yii2\extensions\psrbridge\http\StatelessApplication} content type handling in stateless mode.
Expand Down
3 changes: 1 addition & 2 deletions tests/http/stateless/ApplicationCookieTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
use yii\base\InvalidConfigException;
use yii\helpers\Json;
use yii2\extensions\psrbridge\tests\provider\StatelessApplicationProvider;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

use function array_filter;
use function implode;
Expand Down
9 changes: 4 additions & 5 deletions tests/http/stateless/ApplicationCoreTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@
use yii\log\{Dispatcher, FileTarget};
use yii\web\{AssetManager, Session, UrlManager, User, View};
use yii2\extensions\psrbridge\http\{ErrorHandler, Request, Response, StatelessApplication};
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};
use yii2\extensions\psrbridge\tests\support\stub\MockerFunctions;
use yii2\extensions\psrbridge\tests\TestCase;

use function array_filter;
use function dirname;
Expand Down Expand Up @@ -58,7 +57,7 @@ protected function setUp(): void
{
parent::setUp();

$this->logFile = dirname(__DIR__, 2) . '/runtime/log/flush-test.log';
$this->logFile = dirname(__DIR__, 3) . '/runtime/logs/flush-test.log';

if (file_exists($this->logFile)) {
unlink($this->logFile);
Expand Down Expand Up @@ -610,9 +609,9 @@ public function testSetWebAndWebrootAliasesAfterHandleRequest(): void
"'@web' alias should be set to an empty string after handling a request.",
);
self::assertSame(
dirname(__DIR__, 2),
dirname(__DIR__, 2) . DIRECTORY_SEPARATOR . 'support',
Yii::getAlias('@webroot'),
"'@webroot' alias should be set to the parent directory of the test directory after handling a request.",
"'@webroot' alias should be set to the 'tests/support' directory after handling a request.",
);
}
}
3 changes: 1 addition & 2 deletions tests/http/stateless/ApplicationErrorHandlerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
use yii\log\{FileTarget, Logger};
use yii2\extensions\psrbridge\http\{Response, StatelessApplication};
use yii2\extensions\psrbridge\tests\provider\StatelessApplicationProvider;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

use function array_filter;
use function is_array;
Expand Down
3 changes: 1 addition & 2 deletions tests/http/stateless/ApplicationEventTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,8 @@
use ReflectionException;
use yii\base\{Event, InvalidConfigException};
use yii2\extensions\psrbridge\http\StatelessApplication;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};
use yii2\extensions\psrbridge\tests\support\stub\EventComponent;
use yii2\extensions\psrbridge\tests\TestCase;

use function count;

Expand Down
3 changes: 1 addition & 2 deletions tests/http/stateless/ApplicationMemoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
use stdClass;
use yii\base\InvalidConfigException;
use yii2\extensions\psrbridge\tests\provider\StatelessApplicationProvider;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

use function array_fill;
use function end;
Expand Down
3 changes: 1 addition & 2 deletions tests/http/stateless/ApplicationRoutingTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@

use PHPUnit\Framework\Attributes\Group;
use yii\base\InvalidConfigException;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

/**
* Test suite for {@see \yii2\extensions\psrbridge\http\StatelessApplication} routing and parameter handling in
Expand Down
3 changes: 1 addition & 2 deletions tests/http/stateless/ApplicationServerParamsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
use PHPUnit\Framework\Attributes\{DataProviderExternal, Group};
use yii\base\InvalidConfigException;
use yii2\extensions\psrbridge\tests\provider\StatelessApplicationProvider;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

/**
* Test suite for {@see \yii2\extensions\psrbridge\http\StatelessApplication} server parameter handling in stateless
Expand Down
3 changes: 1 addition & 2 deletions tests/http/stateless/ApplicationSessionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
use PHPUnit\Framework\Attributes\Group;
use yii\base\InvalidConfigException;
use yii\helpers\Json;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

use function array_filter;
use function array_key_exists;
Expand Down
3 changes: 1 addition & 2 deletions tests/http/stateless/ApplicationUploadedTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
use yii\base\InvalidConfigException;
use yii2\extensions\psrbridge\creator\ServerRequestCreator;
use yii2\extensions\psrbridge\http\UploadedFile;
use yii2\extensions\psrbridge\tests\support\FactoryHelper;
use yii2\extensions\psrbridge\tests\TestCase;
use yii2\extensions\psrbridge\tests\support\{FactoryHelper, TestCase};

use function filesize;

Expand Down
28 changes: 21 additions & 7 deletions tests/TestCase.php → tests/support/TestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

declare(strict_types=1);

namespace yii2\extensions\psrbridge\tests;
namespace yii2\extensions\psrbridge\tests\support;

use HttpSoft\Message\{ResponseFactory, StreamFactory};
use PHPForge\Support\TestSupport;
Expand All @@ -22,6 +22,24 @@
use function stream_get_meta_data;
use function tmpfile;

/**
* Base test case providing common helpers and utilities for the test suite.
*
* Provides utilities to create and tear down Yii2 stateless and web application instances, manage temporary files used
* during tests, sign cookies for cookie-validation scenarios, and reset PHP superglobals to ensure test isolation.
*
* Tests that require HTTP request/response factories, stream factories or application scaffolding should extend this
* class.
*
* Key features.
* - Creates `StatelessApplication` and `Application` instances with a sane test configuration.
* - Manages temporary file resources and ensures cleanup during `tearDown()`.
* - Provides `signCookies()` helper for creating signed cookie values.
* - Resets `$_SERVER`, `$_GET`, `$_POST`, `$_FILES` and `$_COOKIE` between tests to avoid cross-test contamination.
*
* @copyright Copyright (C) 2025 Terabytesoftw.
* @license https://opensource.org/license/bsd-3-clause BSD 3-Clause License.
*/
abstract class TestCase extends \PHPUnit\Framework\TestCase
{
use TestSupport;
Expand Down Expand Up @@ -145,7 +163,7 @@ protected function statelessApplication(array $config = []): StatelessApplicatio
ArrayHelper::merge(
[
'id' => 'stateless-app',
'basePath' => __DIR__,
'basePath' => dirname(__DIR__, 2),
'bootstrap' => ['log'],
'controllerNamespace' => '\yii2\extensions\psrbridge\tests\support\stub',
'components' => [
Expand All @@ -162,7 +180,6 @@ protected function statelessApplication(array $config = []): StatelessApplicatio
'info',
'warning',
],
'logFile' => '@runtime/log/app.log',
],
],
],
Expand Down Expand Up @@ -196,8 +213,6 @@ protected function statelessApplication(array $config = []): StatelessApplicatio
StreamFactoryInterface::class => StreamFactory::class,
],
],
'runtimePath' => dirname(__DIR__) . '/runtime',
'vendorPath' => dirname(__DIR__) . '/vendor',
],
$config,
),
Expand All @@ -213,8 +228,7 @@ protected function webApplication(array $config = []): void
ArrayHelper::merge(
[
'id' => 'web-app',
'basePath' => __DIR__,
'vendorPath' => dirname(__DIR__) . '/vendor',
'basePath' => dirname(__DIR__, 2),
'aliases' => [
'@bower' => '@vendor/bower-asset',
'@npm' => '@vendor/npm-asset',
Expand Down
6 changes: 4 additions & 2 deletions tests/bootstrap.php → tests/support/bootstrap.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
defined('YII_DEBUG') || define('YII_DEBUG', true);
define('YII_ENV', 'test');

$rootDir = dirname(__DIR__, 2);

// require composer autoloader if available
require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
require "{$rootDir}/vendor/autoload.php";
require "{$rootDir}/vendor/yiisoft/yii2/Yii.php";
File renamed without changes.
Loading