116 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
declare(strict_types=1);
 | 
						|
 | 
						|
use Cake\Cache\Cache;
 | 
						|
use Cake\Chronos\Chronos;
 | 
						|
use Cake\Core\Configure;
 | 
						|
use Cake\Core\Plugin;
 | 
						|
use Cake\Database\Connection;
 | 
						|
use Cake\Datasource\ConnectionManager;
 | 
						|
use Cake\TestSuite\Fixture\SchemaLoader;
 | 
						|
use CakeProducts\CakeProductsPlugin;
 | 
						|
use Migrations\TestSuite\Migrator;
 | 
						|
use TestApp\Controller\AppController;
 | 
						|
 | 
						|
if (!defined('DS')) {
 | 
						|
    define('DS', DIRECTORY_SEPARATOR);
 | 
						|
}
 | 
						|
if (!defined('WINDOWS')) {
 | 
						|
    if (DS === '\\' || substr(PHP_OS, 0, 3) === 'WIN') {
 | 
						|
        define('WINDOWS', true);
 | 
						|
    } else {
 | 
						|
        define('WINDOWS', false);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
define('PLUGIN_ROOT', dirname(__DIR__));
 | 
						|
define('ROOT', PLUGIN_ROOT . DS . 'tests' . DS . 'test_app');
 | 
						|
define('TMP', PLUGIN_ROOT . DS . 'tmp' . DS);
 | 
						|
define('LOGS', TMP . 'logs' . DS);
 | 
						|
define('CACHE', TMP . 'cache' . DS);
 | 
						|
define('APP', ROOT . DS . 'src' . DS);
 | 
						|
define('APP_DIR', 'src');
 | 
						|
define('CAKE_CORE_INCLUDE_PATH', PLUGIN_ROOT . '/vendor/cakephp/cakephp');
 | 
						|
define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS);
 | 
						|
define('CAKE', CORE_PATH . APP_DIR . DS);
 | 
						|
 | 
						|
define('WWW_ROOT', PLUGIN_ROOT . DS . 'webroot' . DS);
 | 
						|
define('TESTS', __DIR__ . DS);
 | 
						|
define('CONFIG', TESTS . 'config' . DS);
 | 
						|
 | 
						|
ini_set('intl.default_locale', 'de-DE');
 | 
						|
 | 
						|
require PLUGIN_ROOT . '/vendor/autoload.php';
 | 
						|
require CORE_PATH . 'config/bootstrap.php';
 | 
						|
require CAKE . 'functions.php';
 | 
						|
 | 
						|
Configure::write('App', [
 | 
						|
    'namespace' => 'TestApp',
 | 
						|
    'encoding' => 'UTF-8',
 | 
						|
    'paths' => [
 | 
						|
        'templates' => [
 | 
						|
            PLUGIN_ROOT . DS . 'tests' . DS . 'test_app' . DS . 'templates' . DS,
 | 
						|
        ],
 | 
						|
    ],
 | 
						|
]);
 | 
						|
 | 
						|
Configure::write('debug', true);
 | 
						|
 | 
						|
$cache = [
 | 
						|
    'default' => [
 | 
						|
        'engine' => 'File',
 | 
						|
        'path' => CACHE,
 | 
						|
    ],
 | 
						|
    '_cake_core_' => [
 | 
						|
        'className' => 'File',
 | 
						|
        'prefix' => 'crud_myapp_cake_core_',
 | 
						|
        'path' => CACHE . 'persistent/',
 | 
						|
        'serialize' => true,
 | 
						|
        'duration' => '+10 seconds',
 | 
						|
    ],
 | 
						|
    '_cake_model_' => [
 | 
						|
        'className' => 'File',
 | 
						|
        'prefix' => 'crud_my_app_cake_model_',
 | 
						|
        'path' => CACHE . 'models/',
 | 
						|
        'serialize' => 'File',
 | 
						|
        'duration' => '+10 seconds',
 | 
						|
    ],
 | 
						|
];
 | 
						|
 | 
						|
Cache::setConfig($cache);
 | 
						|
 | 
						|
class_alias(AppController::class, 'App\Controller\AppController');
 | 
						|
 | 
						|
Plugin::getCollection()->add(new CakeProductsPlugin());
 | 
						|
 | 
						|
Chronos::setTestNow(Chronos::now());
 | 
						|
 | 
						|
if (!getenv('DB_URL')) {
 | 
						|
    putenv('DB_URL=sqlite:///:memory:');
 | 
						|
}
 | 
						|
 | 
						|
ConnectionManager::setConfig('test', [
 | 
						|
    'className' => Connection::class,
 | 
						|
    'url' => getenv('DB_URL') ?: null,
 | 
						|
    'timezone' => 'UTC',
 | 
						|
    'quoteIdentifiers' => false,
 | 
						|
    'cacheMetadata' => true,
 | 
						|
]);
 | 
						|
 | 
						|
/**
 | 
						|
 * Load schema from a SQL dump file.
 | 
						|
 *
 | 
						|
 * If your plugin does not use database fixtures you can
 | 
						|
 * safely delete this.
 | 
						|
 *
 | 
						|
 * If you want to support multiple databases, consider
 | 
						|
 * using migrations to provide schema for your plugin,
 | 
						|
 * and using \Migrations\TestSuite\Migrator to load schema.
 | 
						|
 */
 | 
						|
// Load a schema dump file.
 | 
						|
//(new SchemaLoader())->loadSqlFiles('tests/schema.sql', 'test');
 | 
						|
 | 
						|
 | 
						|
$migrator = new Migrator();
 | 
						|
$migrator->run(['plugin' => 'CakeProducts']);
 |