Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Core/src/TestSuite/CroogoControllerTestCase.php
<?php

namespace Croogo\Core\TestSuite;

use
Cake\Core\Configure;
use
Cake\Core\Plugin;
use
Cake\Log\Log;
use
Cake\Network\Session;
use
Cake\TestSuite\TestCase;
use
Cake\Utility\Hash;
use
Croogo\Core\Configure\JsonReader;
use
Croogo\Core\PluginManager;
use
Croogo\Core\TestSuite\CroogoTestFixture;

/**
 * CroogoTestCase class
 *
 * @category TestSuite
 * @package  Croogo
 * @version  1.4
 * @author   Fahad Ibnay Heylaal <contact@fahad19.com>
 * @author   Rachman Chavik <rchavik@gmail.com>
 * @license  http://www.opensource.org/licenses/mit-license.php The MIT License
 * @link     http://www.croogo.org
 */
class CroogoControllerTestCase extends TestCase
{

    public static function
setUpBeforeClass()
    {
       
self::_restoreSettings();
       
Configure::write('Config.language', 'eng');
    }

    public static function
tearDownAfterClass()
    {
       
self::_restoreSettings();
       
Configure::write('Config.language', Configure::read('Site.locale'));
    }

    protected static function
_restoreSettings()
    {
       
$configDir = Plugin::path('Croogo/Core') . 'tests' . DS . 'test_app' . DS . 'config' . DS;
       
$source = $configDir . 'settings.default';
       
$target = $configDir . 'settings.json';
       
copy($source, $target);
    }

   
/**
     * setUp
     *
     * @return void
     */
   
public function setUp()
    {
       
parent::setUp();

       
$appDir = Plugin::path('Croogo/Core') . 'tests' . DS . 'test_app' . DS;

//      App::build(array(
//          'Plugin' => array($appDir . 'Plugin' . DS),
//          'View' => array($appDir . 'View' . DS),
//      ), App::PREPEND);

       
if (!isset($_SERVER['REMOTE_ADDR'])) {
           
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
        }

       
PluginManager::unload('Install');

/**
 * Thease plugins are being loaded in the test bootstrap file
 */
//      Plugin::load(array('Croogo/Users'), ['bootstrap' => true, 'path' => '../Users/', 'autoload' => true]);
//      Plugin::load('Example', ['path' => '../Example/', 'autoload' => true]);

       
Configure::write('Acl.database', 'test');

//      $Setting = ClassRegistry::init('Settings.Setting');
//      $Setting->settingsPath = $appDir . 'Config' . DS . 'settings.json';
//      Configure::drop('settings');
//      Configure::config('settings', new JsonReader(dirname($Setting->settingsPath) . DS ));
       
Log::drop('stdout');
       
Log::drop('stderr');
//      $Setting->writeConfiguration();
   
}

   
/**
     * tearDown
     *
     * @return void
     */
   
public function tearDown()
    {
       
parent::tearDown();
        if (
Session::started()) {
           
Session::clear();
           
Session::destroy();
        }
       
ClassRegistry::flush();
    }

   
/**
     * authUserCallback
     *
     * @param type $key
     * @return mixed
     */
   
public function authUserCallback($key)
    {
       
$auth = [
           
'id' => 1,
           
'username' => 'admin',
           
'role_id' => 1,
           
'name' => 'Administrator',
           
'email' => 'you@your-site.com',
           
'website' => '/about'
       
];
        if (empty(
$key) || !isset($auth[$key])) {
            return
$auth;
        }

        return
$auth[$key];
    }

   
/**
     * Helper to expect a Session->setFlash and redirect
     *
     * @param string $message expected message that will be passed to setFlash()
     * @param string $class class name, when null current class will be used
     * @param array $flashOptions expected SessionComponent::setFlash arguments
     */
   
public function expectFlashAndRedirect($message = '', $class = false, $flashOptions = [])
    {
        if (!
$class) {
           
$class = substr(get_class($this), 0, -4);
        }
       
$flashOptions = Hash::merge([
           
'element' => 'flash',
           
'params' => [
               
'class' => 'success',
            ],
        ],
$flashOptions);
       
$this->{$class}->Session
           
->expects($this->once())
            ->
method('setFlash')
            ->
with(
               
$this->equalTo($message),
               
$this->equalTo($flashOptions['element']),
               
$this->equalTo($flashOptions['params'])
            );
       
$this->{$class}
            ->
expects($this->once())
            ->
method('redirect');
    }
}