Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Core/tests/TestCase/Controller/Component/CroogoComponentTest.php
<?php

namespace Croogo\Core\Test\TestCase\Controller\Component;

use
Cake\Controller\ComponentRegistry;
use
Cake\Controller\Controller;
use
Cake\Event\Event;
use
Cake\Network\Request;
use
Cake\Network\Response;
use
Croogo\Core\Controller\Component\CroogoComponent;
use
Croogo\Core\TestSuite\TestCase;

class
MockCroogoComponent extends CroogoComponent
{

    public function
startup(Event $event)
    {
       
$this->_controller = $event->getSubject();
    }
}

class
CroogoComponentTest extends TestCase
{

    public
$fixtures = [
//      'plugin.Croogo/Users.Aco',
//      'plugin.Croogo/Users.Aro',
//      'plugin.Croogo/Users.ArosAco',
//      'plugin.Croogo/Settings.Setting',
//      'plugin.Croogo/Menus.Menu',
//      'plugin.Croogo/Menus.Link',
//      'plugin.Croogo/Users.Role',
//      'plugin.Croogo/Taxonomy.Type',
//      'plugin.Croogo/Taxonomy.Vocabulary',
//      'plugin.Croogo/Taxonomy.TypesVocabulary',
//      'plugin.Croogo/Nodes.Node',
   
];

    public
$component = null;
    public
$controller = null;

    public function
setUp()
    {
       
parent::setUp();

       
// Setup our component and fake test controller
       
$this->controller = $this->getMockBuilder(Controller::class)
            ->
setMethods(['redirect'])
            ->
setConstructorArgs([new Request, new Response])
            ->
getMock();

       
$registry = new ComponentRegistry($this->controller);
       
$this->component = new CroogoComponent($registry);

//      $this->Controller = new Controller(new Request(), new Response());
////        $this->Controller->constructClasses();
//      $this->Controller->Croogo = new MockCroogoComponent($this->Controller->components());
//      $this->Controller->components()->unload('Blocks');
//      $this->Controller->components()->unload('Menus');
//      $this->Controller->components()->set('Croogo', $this->Controller->Croogo);
//      $this->Controller->startupProcess();
   
}

    public function
testAddRemoveAcos()
    {
       
$this->markTestIncomplete('This test needs to be ported to CakePHP 3.0');

       
$Aco = ClassRegistry::init('Aco');

       
$this->Controller->Croogo->addAco('CroogoTestController');
       
$parent = $Aco->findByAlias('CroogoTestController');
       
$this->assertNotEmpty($parent);

       
$this->Controller->Croogo->addAco('CroogoTestController/index');
       
$child = $Aco->findByParentId($parent['Aco']['id']);
       
$this->assertNotEmpty($child);

       
$this->Controller->Croogo->removeAco('CroogoTestController/index');
       
$child = $Aco->findByParentId($parent['Aco']['id']);
       
$this->assertEmpty($child);

       
$this->Controller->Croogo->removeAco('CroogoTestController');
       
$parent = $Aco->findByAlias('CroogoTestController');
       
$this->assertEmpty($parent);
    }

   
/**

     * redirectData
     *
     * @return array
     */
   
public function redirectData()
    {
        return [
            [
'croogo.org', 'croogo.org'],
            [[
'action' => 'index'], ['action' => 'edit', 1]],
            [[
'action' => 'edit', 1], ['action' => 'edit', 1], ['apply' => 'Apply']],
            [[
'action' => 'index', 1], ['action' => 'edit', 1], [], ['action' => 'index', 1]],
            [[
'action' => 'edit', 1], ['action' => 'edit', 1], ['apply' => 'Apply'], ['action' => 'index', 1]],
        ];
    }

    public function
tearDown()
    {
       
parent::tearDown();

       
// Clean up after we're done
       
unset($this->component, $this->controller);
    }
}