Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Taxonomy/tests/TestCase/Controller/TermsControllerTest.php
<?php
namespace Croogo\Taxonomy\Test\TestCase\Controller;

use
Croogo\TestSuite\CroogoControllerTestCase;
use
Taxonomy\Controller\TermsController;

class
TermsControllerTest extends CroogoControllerTestCase
{

    public
$fixtures = [
       
'plugin.Croogo/Users.Aco',
       
'plugin.Croogo/Users.Aro',
       
'plugin.Croogo/Users.ArosAco',
       
'plugin.Croogo/Blocks.Block',
       
'plugin.Croogo/Comments.Comment',
       
'plugin.Croogo/Contacts.Contact',
       
'plugin.Croogo/Translate.I18n',
       
'plugin.Croogo/Settings.Language',
       
'plugin.Croogo/Menus.Link',
       
'plugin.Croogo/Menus.Menu',
       
'plugin.Croogo/Contacts.Message',
       
'plugin.Croogo/Nodes.Node',
       
'plugin.Croogo/Meta.Meta',
       
'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',
    ];

   
/**
     * setUp
     *
     * @return void
     */
   
public function setUp()
    {
       
parent::setUp();
       
App::build([
           
'View' => [Plugin::path('Taxonomy') . 'View' . DS]
        ],
App::APPEND);
       
$this->TermsController = $this->generate('Taxonomy.Terms', [
           
'methods' => [
               
'redirect',
            ],
           
'components' => [
               
'Auth' => ['user'],
               
'Session',
               
'Menus.Menus',
            ],
        ]);
       
$this->TermsController->Auth
           
->staticExpects($this->any())
            ->
method('user')
            ->
will($this->returnCallback([$this, 'authUserCallback']));
    }

   
/**
     * tearDown
     *
     * @return void
     */
   
public function tearDown()
    {
       
parent::tearDown();
        unset(
$this->TermsController);
    }

   
/**
     * testAdminIndex
     *
     * @return void
     */
   
public function testAdminIndex()
    {
       
$this->testAction('/admin/taxonomy/terms/index/1');
       
$this->assertNotEmpty($this->vars['terms']);
       
$expected = [
           
'1' => 'Uncategorized',
           
'2' => 'Announcements',
        ];
       
$termsTree = Hash::combine($this->vars['terms'], '{n}.Term.id', '{n}.Term.title');
       
$this->assertEquals($expected, $termsTree);
    }

   
/**
     * testAdminAdd
     *
     * @return void
     */
   
public function testAdminAdd()
    {
       
$this->expectFlashAndRedirect('Term saved successfuly.');
       
$this->testAction('admin/taxonomy/terms/add/1', [
           
'data' => [
               
'Taxonomy' => [
                   
'parent_id' => null,
                ],
               
'Term' => [
                   
'title' => 'New Category',
                   
'slug' => 'new-category',
                   
'description' => 'category description here',
                ],
            ],
        ]);
       
$termsTree = $this->TermsController->Term->Taxonomy->getTree('categories');
       
$termsTreeSlugs = array_keys($termsTree);
       
$expected = [
           
'uncategorized',
           
'announcements',
           
'new-category',
        ];
       
$this->assertEqual($termsTreeSlugs, $expected);
    }

   
/**
     * testAdminAddWithParent
     *
     * @return void
     */
   
public function testAdminAddWithParent()
    {
       
$this->expectFlashAndRedirect('Term saved successfuly.');
       
$this->testAction('admin/taxonomy/terms/add/1', [
           
'data' => [
               
'Taxonomy' => [
                   
'parent_id' => 1, // Uncategorized
               
],
               
'Term' => [
                   
'title' => 'New Category',
                   
'slug' => 'new-category',
                   
'description' => 'category description here',
                ],
            ],
        ]);
       
$termsTree = $this->TermsController->Term->Taxonomy->getTree('categories');
       
$termsTreeTitles = array_values($termsTree);
       
$expected = [
           
'Uncategorized',
           
'_New Category',
           
'Announcements',
        ];
       
$this->assertEqual($termsTreeTitles, $expected);
    }

   
/**
     * testAdminEdit
     *
     * @return void
     */
   
public function testAdminEdit()
    {
       
$this->expectFlashAndRedirect('Term saved successfuly.');
       
// ID of Uncategorized and Categories
       
$this->testAction('/admin/taxonomy/terms/edit/1/1', [
           
'data' => [
               
'Taxonomy' => [
                   
'id' => 1,
                   
'parent_id' => null,
                ],
               
'Term' => [
                   
'id' => 1,
                   
'title' => 'New Category',
                   
'slug' => 'new-category',
                   
'description' => 'category description here',
                ],
            ],
        ]);
       
$termsTree = $this->TermsController->Term->Taxonomy->getTree('categories');
       
$expected = [
           
'new-category' => 'New Category',
           
'announcements' => 'Announcements',
        ];
       
$this->assertEquals($expected, $termsTree);
    }

   
/**
     * testAdminDelete
     *
     * @return void
     */
   
public function testAdminDelete()
    {
       
$ModelTaxonomy = ClassRegistry::init('Taxonomy.ModelTaxonomy');
       
$options = ['conditions' => [
           
'taxonomy_id' => 1,
        ]];
       
$count = $ModelTaxonomy->find('count', $options);
       
$this->assertEquals(1, $count);

       
$this->expectFlashAndRedirect('Term deleted');
       
$this->testAction('admin/taxonomy/terms/delete/1/1'); // ID of Uncategorized and Categories
       
$termsTree = $this->TermsController->Term->Taxonomy->getTree('categories');

       
$count = $ModelTaxonomy->find('count', $options);
       
$this->assertEquals(0, $count);

       
$expected = [
           
'announcements' => 'Announcements',
        ];
       
$this->assertEqual($termsTree, $expected);
    }

   
/**
     * testAdminMoveup
     *
     * @return void
     */
   
public function testAdminMoveup()
    {
       
$this->expectFlashAndRedirect('Moved up successfully');
       
$this->testAction('admin/taxonomy/terms/moveup/2/1'); // ID of Announcements and Categories
       
$termsTree = $this->TermsController->Term->Taxonomy->getTree('categories');
       
$expected = [
           
'announcements' => 'Announcements',
           
'uncategorized' => 'Uncategorized',
        ];
       
$this->assertEqual($termsTree, $expected);
    }

   
/**
     * testAdminMovedown
     *
     * @return void
     */
   
public function testAdminMovedown()
    {
       
$this->expectFlashAndRedirect('Moved down successfully');
       
$this->testAction('admin/taxonomy/terms/movedown/1/1'); // ID of Uncategorized and Categories
       
$termsTree = $this->TermsController->Term->Taxonomy->getTree('categories');
       
$expected = [
           
'announcements' => 'Announcements',
           
'uncategorized' => 'Uncategorized',
        ];
       
$this->assertEqual($termsTree, $expected);
    }
}