Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Settings/tests/TestCase/Controller/Admin/LanguagesControllerTest.php
<?php

namespace Croogo\Settings\Test\TestCase\Controller\Admin;

use
Cake\ORM\TableRegistry;
use
Croogo\Core\TestSuite\IntegrationTestCase;

class
LanguagesControllerTest extends IntegrationTestCase
{
    public
$fixtures = [
       
'plugin.Croogo/Blocks.Block',
       
'plugin.Croogo/Comments.Comment',
       
'plugin.Croogo/Core.Settings',
       
'plugin.Croogo/Settings.Language',
       
'plugin.Croogo/Menus.Menu',
       
'plugin.Croogo/Meta.Meta',
       
'plugin.Croogo/Nodes.Node',
       
'plugin.Croogo/Users.User',
       
'plugin.Croogo/Users.Role',
       
'plugin.Croogo/Taxonomy.Type',
       
'plugin.Croogo/Taxonomy.Vocabulary',
    ];

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

       
$this->session([
           
'Auth' => [
               
'User' => [
                   
'id' => 1,
                   
'username' => 'admin',
                   
'role_id' => 1,
                   
'name' => 'Administrator',
                   
'email' => 'you@your-site.com',
                   
'website' => '/about'
               
]
            ]
        ]);
    }

    public function
testAdminIndex()
    {
       
$this->get('/admin/settings/Languages/index');

       
$this->assertNotEmpty($this->viewVariable('languages'));
    }

    public function
testAdminAdd()
    {
       
$this->enableCsrfToken();
       
$this->enableSecurityToken();
       
$this->post('/admin/settings/Languages/add', [
           
'title' => 'Bengali',
           
'alias' => 'ben',
        ]);

       
$this->assertRedirect();
       
$this->assertFlash('Successfully created language');

       
$language = TableRegistry::get('Croogo/Settings.Languages')
            ->
findByAlias('ben')
            ->
first();
       
$this->assertEquals('Bengali', $language->title);
    }

    public function
testAdminEdit()
    {
       
$this->enableCsrfToken();
       
$this->enableSecurityToken();
       
$this->post('/admin/settings/Languages/edit/1', [
           
'id' => 1,
           
'title' => 'English [modified]',
           
'alias' => 'eng',
        ]);

       
$this->assertRedirect();
       
$this->assertFlash('Successfully updated language');

       
$language = TableRegistry::get('Croogo/Settings.Languages')
            ->
findByAlias('eng')
            ->
first();
       
$this->assertEquals('English [modified]', $language->title);
    }

    public function
testAdminDelete()
    {
       
$this->enableCsrfToken();
       
$this->enableSecurityToken();
       
$this->post('/admin/settings/Languages/delete/1');

       
$this->assertRedirect();
       
$this->assertFlash('Successfully deleted language');

       
$language = (bool)TableRegistry::get('Croogo/Settings.Languages')
            ->
findByAlias('eng')
            ->
count();
       
$this->assertFalse($language);
    }

   
/**
     * testAdminMoveUp
     *
     * @return void
     */
   
public function testAdminMoveUp()
    {
       
$id = $this->_addLanguages();

       
$this->post('/admin/settings/Languages/moveUp/' . $id);

       
$this->assertRedirect();
       
$this->assertFlash('Successfully moved language up');

       
$list = TableRegistry::get('Croogo/Settings.Languages')->find('list')->toArray();
       
$this->assertEquals([
           
1 => 'English',
           
3 => 'German',
           
2 => 'Bengali',
        ],
$list);
    }

    public function
testAdminMoveUpWithSteps()
    {
       
$id = $this->_addLanguages();

       
$this->post('/admin/settings/Languages/moveUp/' . $id . '/2');

       
$this->assertRedirect();
       
$this->assertFlash('Successfully moved language up');

       
$list = TableRegistry::get('Croogo/Settings.Languages')->find('list')->toArray();
       
$this->assertEquals([
           
3 => 'German',
           
2 => 'Bengali',
           
1 => 'English',
        ],
$list);
    }

    public function
testAdminMoveDown()
    {
       
$this->_addLanguages();

       
$this->post('/admin/settings/Languages/moveUp/1');

       
$this->assertRedirect();
       
$this->assertFlash('Successfully moved language up');

       
$list = TableRegistry::get('Croogo/Settings.Languages')->find('list')->toArray();
       
$this->assertEquals([
           
2 => 'Bengali',
           
3 => 'German',
           
1 => 'English',
        ],
$list);
    }

    public function
testAdminMoveDownWithSteps()
    {
       
$this->_addLanguages();

       
$this->post('/admin/settings/Languages/moveUp/1/2');

       
$this->assertRedirect();
       
$this->assertFlash('Successfully moved language up');

       
$list = TableRegistry::get('Croogo/Settings.Languages')->find('list')->toArray();
       
$this->assertEquals([
           
3 => 'German',
           
2 => 'Bengali',
           
1 => 'English',
        ],
$list);
    }

   
/**
     * testAdminSelect
     *
     * @return void
     */
   
public function testAdminSelect()
    {
       
$this->markTestIncomplete('Still being ported');

       
$this->LanguagesController
           
->expects($this->once())
            ->
method('redirect');
       
$this->testAction('/admin/languages/select');

       
$this->testAction('/admin/languages/select/1/Node');
       
$this->assertEqual(1, $this->vars['id']);
       
$this->assertEqual('Node', $this->vars['modelAlias']);
       
$this->assertEqual('English', $this->vars['languages']['0']['Language']['title']);
       
$this->assertEqual('eng', $this->vars['languages']['0']['Language']['alias']);
    }

   
/**
     * Helper for adding languages
     *
     * @return int id of last added
     */
   
protected function _addLanguages()
    {
       
$languages = TableRegistry::get('Croogo/Settings.Languages');
       
$languages->save($languages->newEntity([
           
'title' => 'Bengali',
           
'alias' => 'ben',
        ]));

       
$german = $languages->newEntity([
           
'title' => 'German',
           
'alias' => 'deu',
        ]);

       
$languages->save($german);

        return
$german->id;
    }
}