Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
038074b
IBX-12606: Migrated the test suites to PHPUnit 11
ViniTou Sep 15, 2026
8a125e6
IBX-12606: Removed constructor override from EZP22612URLAliasTranslat…
ViniTou Sep 17, 2026
b402202
IBX-12606: Used exactly()-based expectations for multi-target evaluat…
ViniTou Sep 17, 2026
69dbf94
IBX-12606: Stripped parameter lists from CoversMethod attribute metho…
ViniTou Sep 17, 2026
f2828de
IBX-12606: Pointed CoversClass and CoversMethod attributes at concret…
ViniTou Sep 17, 2026
00bcef6
IBX-12606: Typed the SA_NODE_NAME constant in ContextualizerTest
ViniTou Sep 17, 2026
3bafc39
IBX-12606: Replaced docblock-typed test double properties with native…
ViniTou Sep 17, 2026
068e27e
IBX-12606: Imported PHPUnit test double classes used in intersection …
ViniTou Sep 17, 2026
b8bf2b2
IBX-12606: Typed testIndexDelete() parameters in BackgroundIndexingTe…
ViniTou Sep 17, 2026
5c06464
IBX-12606: Moved and typed the data provider sentinel constants
ViniTou Sep 17, 2026
c8dec07
IBX-12606: Removed constructor override from EZP22840RoleLimitations …
ViniTou Sep 17, 2026
ff62442
IBX-12606: Used mocks instead of stubs for URL handlers with expectat…
ViniTou Sep 17, 2026
f669fe8
IBX-12606: Replaced CoversMethod attributes with CoversClass
ViniTou Sep 17, 2026
3bf81f8
IBX-12606: Asserted the recorded call sequence in ObjectStateHandlerT…
ViniTou Sep 17, 2026
71e0c1e
IBX-12606: Converted remaining docblock annotations to attributes
ViniTou Sep 17, 2026
28f7097
IBX-12606: Renamed the EZP regression tests so PHPUnit discovers them
ViniTou Sep 18, 2026
9d4ad44
IBX-12606: Dropped the CoversClass attribute targeting a test base cl…
ViniTou Sep 18, 2026
31fd2b9
IBX-12606: Updated PHPStan baseline paths for the renamed EZP regress…
ViniTou Sep 18, 2026
45a9a27
IBX-12606: Added return types to test methods and data providers
ViniTou Sep 18, 2026
48b0f90
IBX-12606: Used exactly()-based expectations for multi-target evaluat…
ViniTou Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ var/
composer.lock
.php-cs-fixer.cache
.phpunit.result.cache
.phpunit.cache/
/.deptrac.cache
phpstan.neon
.rules/
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,11 @@
"ibexa/rector": "~6.0.x-dev",
"ibexa/test-core": "~6.0.x-dev",
"jenner/simple_fork": "^1.2",
"matthiasnoback/symfony-dependency-injection-test": "^5.0",
"matthiasnoback/symfony-dependency-injection-test": "^6.0",
"phpstan/phpstan": "^2.0",
"phpstan/phpstan-phpunit": "^2.0",
"phpstan/phpstan-symfony": "^2.0",
"phpunit/phpunit": "^9.6",
"phpunit/phpunit": "^11.5",
"symfony/phpunit-bridge": "^7.4",
"symfony/runtime": "^7.4",
"webmozart/assert": "^2.3"
Expand Down
39,254 changes: 9,205 additions & 30,049 deletions phpstan-baseline.neon

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions phpunit-integration-legacy-solr.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" backupStaticAttributes="false" bootstrap="bootstrap.php" processIsolation="false" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" beStrictAboutTestsThatDoNotTestAnything="false" colors="true" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage>
<include>
<directory suffix=".php">tests/integration</directory>
</include>
</coverage>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" bootstrap="bootstrap.php" processIsolation="false" beStrictAboutTestsThatDoNotTestAnything="false" colors="true" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/11.5/phpunit.xsd" cacheDirectory=".phpunit.cache" backupStaticProperties="false">
<php>
<env name="setupFactory" value="Ibexa\Tests\Solr\SetupFactory\LegacySetupFactory"/>
<env name="backendVersion" value="5"/>
Expand Down Expand Up @@ -43,4 +38,9 @@
<exclude>tests/integration/Core/Repository/KeywordFieldCriterionTest.php</exclude>
</testsuite>
</testsuites>
<source>
<include>
<directory suffix=".php">tests/integration</directory>
</include>
</source>
</phpunit>
12 changes: 6 additions & 6 deletions phpunit-integration-legacy.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" backupStaticAttributes="false" bootstrap="bootstrap.php" processIsolation="false" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" beStrictAboutTestsThatDoNotTestAnything="false" colors="true" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage>
<include>
<directory suffix=".php">tests/integration</directory>
</include>
</coverage>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" bootstrap="bootstrap.php" processIsolation="false" beStrictAboutTestsThatDoNotTestAnything="false" colors="true" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/11.5/phpunit.xsd" cacheDirectory=".phpunit.cache" backupStaticProperties="false">
<php>
<env name="setupFactory" value="\Ibexa\Contracts\Core\Test\Repository\SetupFactory\Legacy"/>
<env name="backendVersion" value="5"/>
Expand Down Expand Up @@ -53,4 +48,9 @@
<directory>tests/integration/RepositoryInstaller</directory>
</testsuite>
</testsuites>
<source>
<include>
<directory suffix=".php">tests/integration</directory>
</include>
</source>
</phpunit>
81 changes: 36 additions & 45 deletions phpunit-integration.xml
Original file line number Diff line number Diff line change
@@ -1,46 +1,37 @@
<?xml version = '1.0' encoding = 'utf-8'?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="tests/integration/bootstrap.php"
processIsolation="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
beStrictAboutTestsThatDoNotTestAnything="false"
colors="true"
failOnWarning="true"
>
<php>
<env name="SYMFONY_DEPRECATIONS_HELPER" value="disabled"/>
<ini name="error_reporting" value="-1" />
<env name="DATABASE_URL" value="sqlite://i@i/var/test-bootstrapper.db" />
<env name="KERNEL_CLASS" value="Ibexa\Tests\Integration\Core\TestKernel"/>
<env name="SEARCH_ENGINE" value="legacy"/>
</php>
<testsuites>
<testsuite name="integration_core">
<file>tests/integration/Core/BasicKernelTest.php</file>
<file>tests/integration/Core/Repository/SerializationTest.php</file>
<file>tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php</file>
<file>tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php</file>
<file>tests/integration/Core/Persistence/Legacy/BookmarkHandlerTest.php</file>
<file>tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php</file>
<file>tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php</file>
<file>tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php</file>
<file>tests/integration/Core/Repository/ContentService/ContentUpdateAfterAddingFieldDefinitionTest.php</file>
<file>tests/integration/Core/Repository/ContentService/UpdateContentTest.php</file>
<file>tests/integration/Core/Repository/ContentService/ImageAssetTest.php</file>
<file>tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php</file>
<file>tests/integration/Core/Repository/ContentService/DeleteContentTest.php</file>
<file>tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php</file>
<file>tests/integration/Core/Repository/SearchServiceBookmarkTest.php</file>
<file>tests/integration/Core/Repository/SearchServiceContentNameTest.php</file>
<file>tests/integration/Core/Repository/SearchServiceImageTest.php</file>
<file>tests/integration/Core/Repository/Filtering/LegacyContentFilteringTest.php</file>
<file>tests/integration/Core/Repository/KeywordFieldCriterionTest.php</file>
</testsuite>
</testsuites>
<extensions>
<extension class="DAMA\DoctrineTestBundle\PHPUnit\PHPUnitExtension" />
</extensions>
<?xml version="1.0" encoding="utf-8"?>
<phpunit backupGlobals="false" bootstrap="tests/integration/bootstrap.php" processIsolation="false" beStrictAboutTestsThatDoNotTestAnything="false" colors="true" failOnWarning="true" cacheDirectory=".phpunit.cache" backupStaticProperties="false">
<php>
<env name="SYMFONY_DEPRECATIONS_HELPER" value="disabled"/>
<ini name="error_reporting" value="-1"/>
<env name="DATABASE_URL" value="sqlite://i@i/var/test-bootstrapper.db"/>
<env name="KERNEL_CLASS" value="Ibexa\Tests\Integration\Core\TestKernel"/>
<env name="SEARCH_ENGINE" value="legacy"/>
</php>
<testsuites>
<testsuite name="integration_core">
<file>tests/integration/Core/BasicKernelTest.php</file>
<file>tests/integration/Core/Repository/SerializationTest.php</file>
<file>tests/integration/Core/Repository/ContentTypeService/FindContentTypesTest.php</file>
<file>tests/integration/Core/Repository/ContentService/CopyNonTranslatableFieldsFromPublishedVersionTest.php</file>
<file>tests/integration/Core/Persistence/Legacy/BookmarkHandlerTest.php</file>
<file>tests/integration/Core/Repository/ContentService/CopyTranslationsFromPublishedVersionTest.php</file>
<file>tests/integration/Core/Repository/ContentService/CreateContentInNonContainerTest.php</file>
<file>tests/integration/Core/Repository/URLAliasService/UrlAliasLookupTest.php</file>
<file>tests/integration/Core/Repository/ContentService/ContentUpdateAfterAddingFieldDefinitionTest.php</file>
<file>tests/integration/Core/Repository/ContentService/UpdateContentTest.php</file>
<file>tests/integration/Core/Repository/ContentService/ImageAssetTest.php</file>
<file>tests/integration/Core/Repository/ContentService/LoadVersionInfoTest.php</file>
<file>tests/integration/Core/Repository/ContentService/DeleteContentTest.php</file>
<file>tests/integration/Core/Repository/ContentService/MaxLanguagesContentServiceTest.php</file>
<file>tests/integration/Core/Repository/SearchServiceBookmarkTest.php</file>
<file>tests/integration/Core/Repository/SearchServiceContentNameTest.php</file>
<file>tests/integration/Core/Repository/SearchServiceImageTest.php</file>
<file>tests/integration/Core/Repository/Filtering/LegacyContentFilteringTest.php</file>
<file>tests/integration/Core/Repository/KeywordFieldCriterionTest.php</file>
</testsuite>
</testsuites>
<extensions>
<bootstrap class="DAMA\DoctrineTestBundle\PHPUnit\PHPUnitExtension"/>
<bootstrap class="Symfony\Bridge\PhpUnit\SymfonyExtension"/>
</extensions>
</phpunit>
20 changes: 6 additions & 14 deletions phpunit.xml
Original file line number Diff line number Diff line change
@@ -1,15 +1,7 @@
<phpunit
backupGlobals="false"
backupStaticAttributes="false"
bootstrap="bootstrap.php"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
beStrictAboutTestsThatDoNotTestAnything="false"
colors="true"
>
<?xml version="1.0"?>
<phpunit backupGlobals="false" bootstrap="bootstrap.php" beStrictAboutTestsThatDoNotTestAnything="false" colors="true" cacheDirectory=".phpunit.cache" backupStaticProperties="false">
<php>
<ini name="error_reporting" value="-1" />
<ini name="error_reporting" value="-1"/>
<env name="SYMFONY_DEPRECATIONS_HELPER" value="max[self]=82&amp;max[direct]=855&amp;max[indirect]=14&amp;verbose=0"/>
Comment thread
alongosz marked this conversation as resolved.
</php>
<testsuites>
Expand All @@ -32,7 +24,7 @@
<directory>tests/bundle/LegacySearchEngine</directory>
</testsuite>
</testsuites>
<listeners>
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener"/>
</listeners>
<extensions>
<bootstrap class="Symfony\Bridge\PhpUnit\SymfonyExtension"/>
</extensions>
</phpunit>
9 changes: 4 additions & 5 deletions tests/bundle/Core/ApiLoader/CacheFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

use Ibexa\Bundle\Core\ApiLoader\CacheFactory;
use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Cache\Adapter\AdapterInterface;
Expand All @@ -32,7 +33,7 @@ protected function setUp(): void
/**
* @return array<array{string, string}>
*/
public function providerGetService(): array
public static function providerGetService(): array
{
return [
['default', 'default'],
Expand All @@ -41,9 +42,7 @@ public function providerGetService(): array
];
}

/**
* @dataProvider providerGetService
*/
#[DataProvider('providerGetService')]
public function testGetService($name, $expected): void
{
$this->configResolver
Expand All @@ -56,7 +55,7 @@ public function testGetService($name, $expected): void
->expects(self::once())
->method('get')
->with($expected)
->will(self::returnValue($this->createMock(AdapterInterface::class)));
->will(self::returnValue(self::createStub(AdapterInterface::class)));

$factory = new CacheFactory($this->container);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@
use Ibexa\Bundle\Core\ApiLoader\Exception\InvalidRepositoryException;
use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
use Ibexa\Core\Base\Container\ApiLoader\RepositoryConfigurationProvider;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\MockObject\MockObject;

/**
* @covers \Ibexa\Core\Base\Container\ApiLoader\RepositoryConfigurationProvider
*
* @phpstan-import-type TRepositoryListConfiguration from \Ibexa\Core\Base\Container\ApiLoader\RepositoryConfigurationProvider
*/
#[CoversClass(RepositoryConfigurationProvider::class)]
final class RepositoryConfigurationProviderTest extends BaseRepositoryConfigurationProviderTestCase
{
/**
Expand Down Expand Up @@ -61,12 +62,11 @@ public function testGetRepositoryConfigNotSpecifiedRepository(): void
}

/**
* @dataProvider providerForRepositories
*
* @phpstan-param TRepositoryListConfiguration $repositories
*
* @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException
*/
#[DataProvider('providerForRepositories')]
public function testGetRepositoryConfigUndefinedRepository(array $repositories): void
{
$this->expectException(InvalidRepositoryException::class);
Expand All @@ -83,12 +83,11 @@ public function testGetRepositoryConfigUndefinedRepository(array $repositories):
}

/**
* @dataProvider providerForRepositories
*
* @phpstan-param TRepositoryListConfiguration $repositories
*
* @throws \Ibexa\Contracts\Core\Repository\Exceptions\InvalidArgumentException
*/
#[DataProvider('providerForRepositories')]
public function testGetDefaultRepositoryAlias(array $repositories): void
{
$configResolver = $this->getConfigResolverMock();
Expand All @@ -100,10 +99,9 @@ public function testGetDefaultRepositoryAlias(array $repositories): void
}

/**
* @dataProvider providerForRepositories
*
* @phpstan-param TRepositoryListConfiguration $repositories
*/
#[DataProvider('providerForRepositories')]
public function testGetCurrentRepositoryAlias(array $repositories): void
{
$configResolver = $this->getConfigResolverMock();
Expand All @@ -117,7 +115,7 @@ public function testGetCurrentRepositoryAlias(array $repositories): void
/**
* @phpstan-return list<list<TRepositoryListConfiguration>> $repositories
*/
public function providerForRepositories(): array
public static function providerForRepositories(): array
{
return [
[self::REPOSITORIES_CONFIG],
Expand Down
7 changes: 3 additions & 4 deletions tests/bundle/Core/ApiLoader/StorageConnectionFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,14 @@
use Ibexa\Contracts\Core\Container\ApiLoader\RepositoryConfigurationProviderInterface;
use Ibexa\Contracts\Core\SiteAccess\ConfigResolverInterface;
use Ibexa\Core\Base\Container\ApiLoader\RepositoryConfigurationProvider;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\ServiceLocator;

final class StorageConnectionFactoryTest extends BaseRepositoryConfigurationProviderTestCase
{
/**
* @dataProvider getConnectionProvider
*/
#[DataProvider('getConnectionProvider')]
public function testGetConnection(string $repositoryAlias, string $doctrineConnection): void
{
$repositories = [
Expand Down Expand Up @@ -143,7 +142,7 @@ private function buildStorageConnectionFactory(
;
$serviceLocatorMock->method('getProvidedServices')->willReturn($doctrineConnections);
if (isset($doctrineConnections[$connectionName])) {
$serviceLocatorMock->method('get')->with($connectionName)->willReturn($this->createMock(Connection::class));
$serviceLocatorMock->method('get')->with($connectionName)->willReturn(self::createStub(Connection::class));
} else {
$serviceLocatorMock->expects(self::never())->method('get');
}
Expand Down
2 changes: 1 addition & 1 deletion tests/bundle/Core/ApiLoader/StorageEngineFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ final class StorageEngineFactoryTest extends BaseRepositoryConfigurationProvider
{
public function testRegisterStorageEngine(): void
{
$repositoryConfigurationProvider = $this->createMock(RepositoryConfigurationProviderInterface::class);
$repositoryConfigurationProvider = self::createStub(RepositoryConfigurationProviderInterface::class);
$factory = new StorageEngineFactory($repositoryConfigurationProvider);

$storageEngines = [
Expand Down
Loading
Loading