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

use
Contacts\Controller\ContactsController;
use
Croogo\TestSuite\CroogoControllerTestCase;
use
Croogo\TestSuite\CroogoTestFixture;

class
ContactsControllerTest 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/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',
    ];

   
/**
     * setUp
     *
     * @return void
     */
   
public function setUp()
    {
       
parent::setUp();
       
$this->ContactsController = $this->generate('Contacts.Contacts', [
           
'methods' => [
               
'redirect',
               
'_send_email',
            ],
           
'components' => [
               
'Auth' => ['user'],
               
'Session',
            ],
        ]);
       
$this->controller->plugin = 'Contacts';
       
$this->controller->Auth
           
->staticExpects($this->any())
            ->
method('user')
            ->
will($this->returnCallback([$this, 'authUserCallback']));
    }

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

   
/**
     * testAdminIndex
     *
     * @return void
     */
   
public function testAdminIndex()
    {
       
$this->testAction('/admin/contacts/contacts/index');
       
$this->assertNotEmpty($this->vars['contacts']);
    }

   
/**
     * testAdminAdd
     *
     * @return void
     */
   
public function testAdminAdd()
    {
       
$this->expectFlashAndRedirect('The Contact has been saved');
       
$this->testAction('/admin/contacts/contacts/add', [
           
'data' => [
               
'Contact' => [
                   
'title' => 'New contact',
                   
'alias' => 'new_contact',
                ],
            ],
        ]);
       
$newContact = $this->ContactsController->Contact->findByAlias('new_contact');
       
$this->assertEqual($newContact['Contact']['title'], 'New contact');
    }

   
/**
     * testAdminEdit
     *
     * @return void
     */
   
public function testAdminEdit()
    {
       
$this->expectFlashAndRedirect('The Contact has been saved');
       
$this->testAction('/admin/contacts/contacts/edit/1', [
           
'data' => [
               
'Contact' => [
                   
'id' => 1,
                   
'title' => 'Contact [modified]',
                ],
            ],
        ]);
       
$result = $this->controller->Contact->findByAlias('contact');
       
$this->assertEquals('Contact [modified]', $result['Contact']['title']);
    }

   
/**
     * testAdminDelete
     *
     * @return void
     */
   
public function testAdminDelete()
    {
       
$this->expectFlashAndRedirect('Contact deleted');
       
$this->testAction('admin/contacts/contacts/delete/1');
       
$hasAny = $this->ContactsController->Contact->hasAny([
           
'Contact.alias' => 'contact',
        ]);
       
$this->assertFalse($hasAny);
    }

   
/**
     * testView
     */
   
public function testView()
    {
       
$Contacts = $this->generate('Contacts', [
           
'methods' => [
               
'_spam_protection',
               
'_captcha',
               
'_send_email'
           
],
        ]);
       
$Contacts->plugin = 'Contacts';
       
$Contacts->expects($this->once())
            ->
method('_spam_protection')
            ->
will($this->returnValue(true));
       
$Contacts->expects($this->once())
            ->
method('_captcha')
            ->
will($this->returnValue(true));
       
$Contacts->expects($this->once())
            ->
method('_send_email')
            ->
will($this->returnValue(true));
       
$this->controller->request->params['action'] = 'view';
       
$this->controller->request->params['url']['url'] = 'contacts/contacts/view/contact';
       
$this->controller->request->data = [
           
'Message' => [
               
'name' => 'John Smith',
               
'email' => 'john.smith@example.com',
               
'title' => 'Hello',
               
'body' => 'text here',
            ],
        ];
       
$this->controller->startupProcess();
       
$this->controller->view('contact');
       
$this->assertEqual($this->controller->viewVars['continue'], true);

       
$this->controller->testView = true;
       
$output = $this->controller->render('view');
       
$this->assertFalse(strpos($output, '<pre class="cake-debug">'));
    }
}