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']);
 |