95 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
<?php
 | 
						|
/**
 | 
						|
 * Copyright © Magento, Inc. All rights reserved.
 | 
						|
 * See COPYING.txt for license details.
 | 
						|
 */
 | 
						|
 | 
						|
namespace Magento\Contact\Controller;
 | 
						|
 | 
						|
use Magento\Framework\App\Request\Http as HttpRequest;
 | 
						|
 | 
						|
/**
 | 
						|
 * Contact index controller test
 | 
						|
 */
 | 
						|
class IndexTest extends \Magento\TestFramework\TestCase\AbstractController
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Test contacting.
 | 
						|
     */
 | 
						|
    public function testPostAction()
 | 
						|
    {
 | 
						|
        $params = [
 | 
						|
            'name' => 'customer name',
 | 
						|
            'comment' => 'comment',
 | 
						|
            'email' => 'user@example.com',
 | 
						|
            'hideit' => '',
 | 
						|
        ];
 | 
						|
        $this->getRequest()->setPostValue($params)->setMethod(HttpRequest::METHOD_POST);
 | 
						|
 | 
						|
        $this->dispatch('contact/index/post');
 | 
						|
        $this->assertRedirect($this->stringContains('contact/index'));
 | 
						|
        $this->assertSessionMessages(
 | 
						|
            $this->containsEqual(
 | 
						|
                "Thanks for contacting us with your comments and questions. We'll respond to you very soon."
 | 
						|
            ),
 | 
						|
            \Magento\Framework\Message\MessageInterface::TYPE_SUCCESS
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Test validation.
 | 
						|
     *
 | 
						|
     * @param array $params For Request.
 | 
						|
     * @param string $expectedMessage Expected response.
 | 
						|
     *
 | 
						|
     * @dataProvider dataInvalidPostAction
 | 
						|
     */
 | 
						|
    public function testInvalidPostAction($params, $expectedMessage)
 | 
						|
    {
 | 
						|
        $this->getRequest()->setPostValue($params)->setMethod(HttpRequest::METHOD_POST);
 | 
						|
 | 
						|
        $this->dispatch('contact/index/post');
 | 
						|
        $this->assertRedirect($this->stringContains('contact/index'));
 | 
						|
        $this->assertSessionMessages(
 | 
						|
            $this->containsEqual($expectedMessage),
 | 
						|
            \Magento\Framework\Message\MessageInterface::TYPE_ERROR
 | 
						|
        );
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @return array
 | 
						|
     */
 | 
						|
    public static function dataInvalidPostAction()
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            'missing_comment' => [
 | 
						|
                'params' => [
 | 
						|
                    'name' => 'customer name',
 | 
						|
                    'comment' => '',
 | 
						|
                    'email' => 'user@example.com',
 | 
						|
                    'hideit' => '',
 | 
						|
                ],
 | 
						|
                'expectedMessage' => "Enter the comment and try again.",
 | 
						|
            ],
 | 
						|
            'missing_name' => [
 | 
						|
                'params' => [
 | 
						|
                    'name' => '',
 | 
						|
                    'comment' => 'customer comment',
 | 
						|
                    'email' => 'user@example.com',
 | 
						|
                    'hideit' => '',
 | 
						|
                ],
 | 
						|
                'expectedMessage' => "Enter the Name and try again.",
 | 
						|
            ],
 | 
						|
            'invalid_email' => [
 | 
						|
                'params' => [
 | 
						|
                    'name' => 'customer name',
 | 
						|
                    'comment' => 'customer comment',
 | 
						|
                    'email' => 'invalidemail',
 | 
						|
                    'hideit' => '',
 | 
						|
                ],
 | 
						|
                'expectedMessage' => "The email address is invalid. Verify the email address and try again.",
 | 
						|
            ],
 | 
						|
        ];
 | 
						|
    }
 | 
						|
}
 |