Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Core/tests/TestCase/Shell/ExtShellTest.php
<?php

namespace Croogo\Core\Test\TestCase\Shell;

use
Cake\Core\Plugin;
use
Cake\Filesystem\Folder;
use
Croogo\Core\TestSuite\CroogoTestCase;

/**
 * Ext Shell Test
 *
 * @category Test
 * @package  Croogo
 * @version  1.4
 * @author   Fahad Ibnay Heylaal <contact@fahad19.com>
 * @license  http://www.opensource.org/licenses/mit-license.php The MIT License
 * @link     http://www.croogo.org
 */
class ExtShellTest extends CroogoTestCase
{

   
/**
     * fixtures
     *
     * @var array
     */
   
public $fixtures = [
//      'plugin.Croogo/Comments.Comment',
//      'plugin.Croogo/Menus.Menu',
//      'plugin.Croogo/Blocks.Block',
//      'plugin.Croogo/Menus.Link',
//      'plugin.Croogo/Meta.Meta',
//      'plugin.Croogo/Nodes.Node',
//      'plugin.Croogo/Taxonomy.ModelTaxonomy',
//      'plugin.Croogo/Blocks.Region',
//      'plugin.Croogo/Users.Role',
//      'plugin.Croogo/Settings.Setting',
//      'plugin.Croogo/Taxonomy.Taxonomy',
//      'plugin.Croogo/Taxonomy.Term',
//      'plugin.Croogo/Taxonomy.Type',
//      'plugin.Croogo/Taxonomy.TypesVocabulary',
//      'plugin.Croogo/Users.User',
//      'plugin.Croogo/Taxonomy.Vocabulary',
//      'plugin.Croogo/Users.Aro',
//      'plugin.Croogo/Users.Aco',
//      'plugin.Croogo/Users.ArosAco',
   
];

   
/**
     * setUp method
     *
     * @return void
     */
   
public function setUp()
    {
       
parent::setUp();
       
$Folder = new Folder(APP . 'Plugin' . DS . 'Example');
       
$Folder->copy(Plugin::path('Croogo/Core') . 'tests' . DS . 'test_app' . DS . 'Plugin' . DS . 'Example');
//      $this->Setting = ClassRegistry::init('Settings.Setting');
   
}

   
/**
     * tearDown
     *
     * @return void
     */
   
public function tearDown()
    {
       
parent::tearDown();
       
$Folder = new Folder(Plugin::path('Croogo/Core') . 'tests' . DS . 'test_app' . DS . 'Plugin' . DS . 'Example');
       
$Folder->delete();
    }

   
/**
     * testPlugin
     *
     * @return void
     */
   
public function testPlugin()
    {
       
$this->markTestIncomplete('This test needs to be ported to CakePHP 3.0');

       
$Link = ClassRegistry::init('Menus.Link');
       
$Shell = $this->getMock('ExtShell', ['out', 'err']);

       
$Shell->args = ['deactivate', 'plugin', 'Example'];
       
$Shell->params = ['force' => false];
       
$Shell->main();
       
$result = $this->Setting->findByKey('Hook.bootstraps');
       
$this->assertFalse(in_array('Example', explode(',', $result['Setting']['value'])));
       
$result = $Link->findByTitle('Example');
       
$this->assertFalse(!empty($result));

       
$Shell->args = ['activate', 'plugin', 'Example'];
       
$Shell->main();
       
$result = $this->Setting->findByKey('Hook.bootstraps');
       
$this->assertTrue(in_array('Example', explode(',', $result['Setting']['value'])));
       
$result = $Link->findByTitle('Example');
       
$this->assertTrue(!empty($result));

       
$bogusPlugin = 'Bogus';
       
$Shell->args = ['activate', 'plugin', $bogusPlugin];
       
$Shell->main();
       
$result = $this->Setting->findByKey('Hook.bootstraps');
       
$this->assertFalse(in_array($bogusPlugin, explode(',', $result['Setting']['value'])));
    }

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

       
$Shell = $this->getMock('ExtShell', ['out', 'err']);

       
$Shell->args = ['activate', 'plugin', 'TestPlugin'];
       
$Shell->main();
       
$result = $this->Setting->findByKey('Hook.bootstraps');
       
$this->assertFalse(in_array('TestPlugin', explode(',', $result['Setting']['value'])));

       
$Shell->args = ['activate', 'plugin', 'TestPlugin'];
       
$Shell->params = ['force' => true];
       
$Shell->main();
       
$result = $this->Setting->findByKey('Hook.bootstraps');
       
$this->assertTrue(in_array('TestPlugin', explode(',', $result['Setting']['value'])));
    }

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

       
$Shell = $this->getMock('ExtShell', ['out', 'err']);

       
$result = $this->Setting->findByKey('Hook.bootstraps');
       
$bogus = $result['Setting']['value'] . ',Bogus';
       
$this->Setting->write('Hook.bootstraps', $bogus);

       
$Shell->args = ['deactivate', 'plugin', 'Bogus'];
       
$Shell->params['force'] = true;
       
$Shell->main();

       
$result = $this->Setting->findByKey('Hook.bootstraps');
       
$this->assertFalse(in_array('Bogus', explode(',', $result['Setting']['value'])));
    }

   
/**
     * testTheme
     *
     * @return void
     */
   
public function testTheme()
    {
       
$this->markTestIncomplete('This test needs to be ported to CakePHP 3.0');

       
$Shell = $this->getMock('ExtShell', ['out', 'err']);
       
$Shell->args = ['activate', 'theme', 'Mytheme'];
       
$Shell->main();
       
$result = $this->Setting->findByKey('Site.theme');
       
$this->assertEquals('Mytheme', $result['Setting']['value']);
       
$this->assertEquals('Mytheme', Configure::read('Site.theme'));

       
$Shell->args = ['activate', 'theme', 'Bogus'];
       
$Shell->main();
       
$result = $this->Setting->findByKey('Site.theme');
       
$this->assertEquals('Mytheme', $result['Setting']['value']);
       
$this->assertEquals('Mytheme', Configure::read('Site.theme'));

       
$Shell->args = ['deactivate', 'theme'];
       
$Shell->main();
       
$result = $this->Setting->findByKey('Site.theme');
       
$this->assertEquals('Mytheme', $result['Setting']['value']);

       
$Shell->args = ['deactivate', 'theme', 'Mytheme'];
       
$Shell->main();
       
$result = $this->Setting->findByKey('Site.theme');
       
$this->assertEquals('Mytheme', $result['Setting']['value']);

       
$Shell->args = ['activate', 'theme', 'Mytheme'];
       
$Shell->main();
       
$Shell->args = ['activate', 'theme', 'default'];
       
$Shell->main();
       
$result = $this->Setting->findByKey('Site.theme');
       
$this->assertEquals('', $result['Setting']['value']);
    }
}