Browse Source

cake5 upgrade (#288)

* cake5 upgrade

* fix DataTable setColumnType

* fix cs
Kevin Pfeifer 2 years ago
parent
commit
8d2aee8014

+ 1 - 1
.gitignore

@@ -4,7 +4,7 @@ phpunit.phar
 /tmp/
 composer.phar
 .idea/
-.phpunit.result.cache
+.phpunit.cache
 phpunit.xml
 /config/Migrations/schema-dump-default.lock
 /tests/test_files/node_modules/

+ 1 - 1
composer.json

@@ -30,7 +30,7 @@
 		"mobiledetect/mobiledetectlib": "^3.74",
 		"fig-r/psr2r-sniffer": "dev-next",
 		"yangqi/htmldom": "^1.0",
-		"phpunit/phpunit": "^9.5"
+		"phpunit/phpunit": "^10.1"
 	},
 	"autoload": {
 		"psr-4": {

+ 10 - 0
config/bootstrap.php

@@ -12,6 +12,16 @@ if (!defined('FORMAT_DB_TIME')) {
 	define('FORMAT_DB_TIME', 'H:i:s');
 }
 
+if (!defined('SECOND')) {
+	define('SECOND', 1);
+	define('MINUTE', 60);
+	define('HOUR', 3600);
+	define('DAY', 86400);
+	define('WEEK', 604800);
+	define('MONTH', 2592000);
+	define('YEAR', 31536000);
+}
+
 if (!defined('FORMAT_NICE_YMDHMS')) {
 	define('FORMAT_NICE_YMDHMS', 'd.m.Y, H:i:s');
 	define('FORMAT_NICE_YMDHM', 'd.m.Y, H:i');

+ 7 - 5
phpunit.xml.dist

@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" bootstrap="tests/bootstrap.php" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
-
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+		 bootstrap="tests/bootstrap.php"
+		 xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.2/phpunit.xsd"
+		 cacheDirectory=".phpunit.cache">
 	<php>
 		<ini name="memory_limit" value="-1"/>
 		<ini name="apc.enable_cli" value="1"/>
@@ -18,12 +20,12 @@
 	</testsuites>
 
 	<extensions>
-		<extension class="\Cake\TestSuite\Fixture\PHPUnitExtension"/>
+		<bootstrap class="\Cake\TestSuite\Fixture\Extension\PHPUnitExtension"/>
 	</extensions>
 
-	<coverage>
+	<source>
 		<include>
 			<directory suffix=".php">src/</directory>
 		</include>
-	</coverage>
+	</source>
 </phpunit>

+ 1 - 1
tests/TestCase/View/Icon/Collector/FontAwesome4CollectorTest.php

@@ -28,7 +28,7 @@ class FontAwesome4CollectorTest extends TestCase {
 	/**
 	 * @return array
 	 */
-	public function extensions(): array {
+	public static function extensions(): array {
 		return [
 			'scss' => ['scss'],
 			'less' => ['less'],

+ 27 - 15
tests/bootstrap.php

@@ -1,8 +1,20 @@
 <?php
 
+use Cake\Cache\Cache;
+use Cake\Core\Configure;
+use Cake\Core\Plugin;
 use Cake\Datasource\ConnectionManager;
+use Cake\Log\Log;
+use Cake\Mailer\Mailer;
+use Cake\Mailer\TransportFactory;
 use Cake\Routing\Route\DashedRoute;
 use Cake\Routing\Router;
+use Cake\TestSuite\Fixture\SchemaLoader;
+use Cake\Utility\Security;
+use Shim\Filesystem\Folder;
+use TestApp\Controller\AppController;
+use Tools\Plugin as ToolsPlugin;
+use function Cake\Core\env;
 
 if (!defined('DS')) {
 	define('DS', DIRECTORY_SEPARATOR);
@@ -32,10 +44,10 @@ define('TEST_FILES', ROOT . DS . 'tests' . DS . 'test_files' . DS);
 
 ini_set('intl.default_locale', 'de_DE');
 
-require_once 'vendor/cakephp/cakephp/src/basics.php';
 require_once 'vendor/autoload.php';
+require_once CAKE_CORE_INCLUDE_PATH . DS . 'src' . DS . 'functions.php';
 
-Cake\Core\Configure::write('App', [
+Configure::write('App', [
 	'namespace' => 'TestApp',
 	'encoding' => 'UTF-8',
 	'fullBaseUrl' => '//localhost',
@@ -45,20 +57,20 @@ Cake\Core\Configure::write('App', [
 		],
 	],
 ]);
-Cake\Core\Configure::write('debug', true);
+Configure::write('debug', true);
 
-Cake\Core\Configure::write('Config', [
+Configure::write('Config', [
 		'adminEmail' => 'test@example.com',
 		'adminName' => 'Mark',
 ]);
-Cake\Mailer\Mailer::setConfig('default', ['transport' => 'Debug']);
-Cake\Mailer\TransportFactory::setConfig('Debug', [
+Mailer::setConfig('default', ['transport' => 'Debug']);
+TransportFactory::setConfig('Debug', [
 		'className' => 'Debug',
 ]);
 
 mb_internal_encoding('UTF-8');
 
-$Tmp = new Shim\Filesystem\Folder(TMP);
+$Tmp = new Folder(TMP);
 $Tmp->create(TMP . 'cache/models', 0770);
 $Tmp->create(TMP . 'cache/persistent', 0770);
 $Tmp->create(TMP . 'cache/views', 0770);
@@ -84,9 +96,9 @@ $cache = [
 	],
 ];
 
-Cake\Cache\Cache::setConfig($cache);
+Cache::setConfig($cache);
 
-Cake\Log\Log::setConfig('debug', [
+Log::setConfig('debug', [
 	'className' => 'Cake\Log\Engine\FileLog',
 	'path' => LOGS,
 	'file' => 'debug',
@@ -94,7 +106,7 @@ Cake\Log\Log::setConfig('debug', [
 	'levels' => ['notice', 'info', 'debug'],
 	'url' => env('LOG_DEBUG_URL', null),
 ]);
-Cake\Log\Log::setConfig('error', [
+Log::setConfig('error', [
 	'className' => 'Cake\Log\Engine\FileLog',
 	'path' => LOGS,
 	'file' => 'error',
@@ -103,16 +115,16 @@ Cake\Log\Log::setConfig('error', [
 	'url' => env('LOG_ERROR_URL', null),
 ]);
 
-Cake\Utility\Security::setSalt('foo');
+Security::setSalt('foo');
 
 // Why is this required?
 require ROOT . DS . 'config' . DS . 'bootstrap.php';
 
 Router::defaultRouteClass(DashedRoute::class);
 
-class_alias(TestApp\Controller\AppController::class, 'App\Controller\AppController');
+class_alias(AppController::class, 'App\Controller\AppController');
 
-Cake\Core\Plugin::getCollection()->add(new Tools\Plugin());
+Plugin::getCollection()->add(new ToolsPlugin());
 
 if (getenv('db_dsn')) {
 	ConnectionManager::setConfig('test', [
@@ -132,7 +144,7 @@ if (!getenv('db_class')) {
 	//putenv('db_dsn=postgres://postgres@127.0.0.1/test');
 }
 
-Cake\Datasource\ConnectionManager::setConfig('test', [
+ConnectionManager::setConfig('test', [
 	'url' => getenv('db_dsn') ?: null,
 	'driver' => getenv('db_class') ?: null,
 	'database' => getenv('db_database') ?: null,
@@ -144,6 +156,6 @@ Cake\Datasource\ConnectionManager::setConfig('test', [
 ]);
 
 if (env('FIXTURE_SCHEMA_METADATA')) {
-	$loader = new Cake\TestSuite\Fixture\SchemaLoader();
+	$loader = new SchemaLoader();
 	$loader->loadInternalFile(env('FIXTURE_SCHEMA_METADATA'));
 }

+ 5 - 10
tests/test_app/Model/Table/DataTable.php

@@ -2,21 +2,16 @@
 
 namespace TestApp\Model\Table;
 
-use Cake\Database\Schema\TableSchemaInterface;
 use Tools\Model\Table\Table;
 
 class DataTable extends Table {
 
-	/**
-	 * @param \Cake\Database\Schema\TableSchemaInterface $schema
-	 *
-	 * @return \Cake\Database\Schema\TableSchemaInterface
-	 */
-	protected function _initializeSchema(TableSchemaInterface $schema): TableSchemaInterface {
-		$schema->setColumnType('data_json', 'json');
-		$schema->setColumnType('data_array', 'array');
+	public function initialize(array $config): void
+	{
+		parent::initialize($config);
 
-		return $schema;
+		$schema = $this->getSchema();
+		$schema->setColumnType('data_json', 'json');
 	}
 
 }