Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Comments/tests/TestCase/Model/CommentTest.php
<?php
namespace Croogo\Comments\Test\TestCase\Model;

use
Comments\Model\Comment;
use
Croogo\TestSuite\CroogoTestCase;

class
CommentTest extends CroogoTestCase
{

    public
$fixtures = [
       
'plugin.Croogo/Comments.Comment',
       
'plugin.Croogo/Meta.Meta',
       
'plugin.Croogo/Nodes.Node',
       
'plugin.Croogo/Taxonomy.ModelTaxonomy',
       
'plugin.Croogo/Taxonomy.Taxonomy',
       
'plugin.Croogo/Taxonomy.Type',
       
'plugin.Croogo/Users.User',
    ];

    public
$Comment;

    protected
$_level;

    protected
$_record;

    public function
setUp()
    {
       
parent::setUp();
       
$this->_level = Configure::read('Comment.level');
       
Configure::write('Comment.level', 10);
       
$this->Comment = ClassRegistry::init('Comments.Comment');
       
$this->_record = $this->Comment->findById(1);
    }

    public function
tearDown()
    {
       
parent::tearDown();
       
Configure::write('Comment.level', $this->_level);
        unset(
$this->Comment);
    }

   
/**
     * testAdd
     */
   
public function testAdd()
    {
       
$oldCount = $this->Comment->find('count');
       
$data = [
           
'Comment' => [
               
'name' => 'Test Visitor',
               
'email' => 'visitor@test.fr',
               
'website' => 'http://www.test.fr',
               
'body' => 'TESTEH',
               
'ip' => '127.0.0.1',
               
'status' => 1,
            ]
        ];

       
$result = $this->Comment->add(
           
$data,
           
'Node',
           
1
       
);
       
$this->assertTrue($result);

       
$newCount = $this->Comment->find('count');
       
$newComment = $this->Comment->find('first', ['order' => 'Comment.created DESC']);
       
$this->assertEquals($oldCount + 1, $newCount);
       
$this->assertEquals(2, $newComment['Comment']['status']);
    }

   
/**
     * testAddWithParentId
     */
   
public function testAddWithParentId()
    {
       
$oldCount = $this->Comment->find('count');
       
$data = [
           
'Comment' => [
               
'name' => 'Test Visitor',
               
'email' => 'visitor@test.fr',
               
'website' => 'http://www.test.fr',
               
'body' => 'TESTEH',
               
'ip' => '127.0.0.1'
           
]
        ];

       
$result = $this->Comment->add(
           
$data,
           
'Node',
           
1,
            [
               
'parentId' => 1,
            ]
        );
       
$newCount = $this->Comment->find('count');
       
$newComment = $this->Comment->find('first', ['order' => 'Comment.created DESC']);

       
$this->assertEquals(1, $newComment['Comment']['parent_id']);
       
$this->assertEquals($oldCount + 1, $newCount);
       
$this->assertTrue($result);
    }

   
/**
     * testAddCommentWithUserData
     */
   
public function testAddCommentWithUserData()
    {
       
$oldCount = $this->Comment->find('count');
       
$data = [
           
'Comment' => [
               
'name' => '',
               
'email' => '',
               
'website' => 'http://www.test.fr',
               
'body' => 'TESTEH',
               
'ip' => '127.0.0.1',
               
'status' => 1,
            ]
        ];

       
$userData = [
           
'User' => [
               
'id' => 2,
               
'role_id' => 1,
               
'username' => 'rchavik',
               
'password' => 'ab4d1d3ab4d1d3ab4d1d3ab4d1d3aaaaab4d1d3a',
               
'name' => 'Rachman Chavik',
               
'email' => 'me@your-site.com',
               
'website' => '/about',
               
'activation_key' => '',
               
'image' => '',
               
'bio' => '',
               
'timezone' => '0',
               
'status' => 1,
               
'updated' => '2010-01-07 22:23:27',
               
'created' => '2010-01-05 00:00:00'
           
]
        ];

       
$result = $this->Comment->add(
           
$data,
           
'Node',
           
1,
            [
               
'parentId' => 1,
               
'userData' => $userData
           
]
        );
       
$newCount = $this->Comment->find('count');
       
$newComment = $this->Comment->find('first', ['order' => 'Comment.created DESC']);

       
$this->assertTrue($result);
       
$this->assertEquals($oldCount + 1, $newCount);
       
$this->assertEquals('Rachman Chavik', $newComment['Comment']['name']);
       
$this->assertEquals(2, $newComment['Comment']['user_id']);
    }

   
/**
     * testAddCommentToModeratedNode
     */
   
public function testAddCommentToModeratedNode()
    {
       
$oldCount = $this->Comment->find('count');
       
$data = [
           
'Comment' => [
               
'name' => 'Test Visitor',
               
'email' => 'visitor@test.fr',
               
'website' => 'http://www.test.fr',
               
'body' => 'TESTEH',
               
'ip' => '127.0.0.1'
           
]
        ];

       
$result = $this->Comment->add(
           
$data,
           
'Node',
           
1,
            [
               
'foreignKey' => 1,
            ]
        );
       
$newCount = $this->Comment->find('count');
       
$newComment = $this->Comment->find('first', ['order' => 'Comment.created DESC']);

       
$this->assertTrue($result);
       
$this->assertEquals($oldCount + 1, $newCount);
       
$this->assertEquals(Comment::STATUS_PENDING, $newComment['Comment']['status']);
    }

   
/**
     * testAddCommentIsRejectedWhenLevelIsExceeded
     */
   
public function testAddCommentIsRejectedWhenLevelIsExceeded()
    {
       
$oldConf = Configure::read('Comment.level');
       
Configure::write('Comment.level', 1);
       
$oldCount = $this->Comment->find('count');
       
$data = [
           
'Comment' => [
               
'name' => 'Test Visitor',
               
'email' => 'visitor@test.fr',
               
'website' => 'http://www.test.fr',
               
'body' => 'TESTEH',
               
'ip' => '127.0.0.1'
           
]
        ];

       
$result = $this->Comment->add(
           
$data,
           
'Node',
           
1,
            [
               
'parentId' => 1,
            ]
        );

       
$this->assertFalse($result);
       
$newCount = $this->Comment->find('count');
       
$newComment = $this->Comment->find('first', ['order' => 'Comment.created DESC']);

       
$this->assertFalse($result);
       
$this->assertEquals($oldCount, $newCount);
    }

   
/**
     * testAddCommentThrowsExceptionWithInvalidNodeId
     */
   
public function testAddCommentThrowsExceptionWithInvalidNodeId()
    {
       
$this->setExpectedException('NotFoundException');
       
$this->Comment->add(
            [
'Comment' => ['name', 'email', 'body']],
           
'Node',
           
'invalid',
            []
        );
    }

   
/**
     * testAddCommentThrowsExceptionWithInvalidParentId
     */
   
public function testAddCommentThrowsExceptionWithInvalidParentId()
    {
       
$this->setExpectedException('NotFoundException');
       
$data = [
           
'Comment' => [
               
'name' => 'Test Visitor',
               
'email' => 'visitor@test.fr',
               
'website' => 'http://www.test.fr',
               
'body' => 'TESTEH',
               
'ip' => '127.0.0.1'
           
]
        ];
       
$this->Comment->add(
           
$data,
           
'Node',
           
1,
            [
               
'parentId' => 'invalid',
            ]
        );
    }
}