Acceptance test refactoring - Contact form (#2)
* directory _support should exists before build with ignore inside * added test for contact page availability * added test for empty contact form submit * added test for submit contact form * remove test contact page * delete old contact page test * test index-test instead index * change stage description
This commit is contained in:
parent
548af0eacd
commit
75a273eb40
@ -1,26 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace tests\codeception\_pages;
|
|
||||||
|
|
||||||
use yii\codeception\BasePage;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents contact page
|
|
||||||
* @property \AcceptanceTester|\FunctionalTester $actor
|
|
||||||
*/
|
|
||||||
class ContactPage extends BasePage
|
|
||||||
{
|
|
||||||
public $route = 'site/contact';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param array $contactData
|
|
||||||
*/
|
|
||||||
public function submit(array $contactData)
|
|
||||||
{
|
|
||||||
foreach ($contactData as $field => $value) {
|
|
||||||
$inputType = $field === 'body' ? 'textarea' : 'input';
|
|
||||||
$this->actor->fillField($inputType . '[name="ContactForm[' . $field . ']"]', $value);
|
|
||||||
}
|
|
||||||
$this->actor->click('contact-button');
|
|
||||||
}
|
|
||||||
}
|
|
2
tests/codeception/_support/.gitignore
vendored
Normal file
2
tests/codeception/_support/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
*
|
||||||
|
!.gitignore
|
@ -1,57 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
use tests\codeception\_pages\ContactPage;
|
|
||||||
|
|
||||||
/* @var $scenario Codeception\Scenario */
|
|
||||||
|
|
||||||
$I = new AcceptanceTester($scenario);
|
|
||||||
$I->wantTo('ensure that contact works');
|
|
||||||
|
|
||||||
$contactPage = ContactPage::openBy($I);
|
|
||||||
|
|
||||||
$I->see('Contact', 'h1');
|
|
||||||
|
|
||||||
$I->amGoingTo('submit contact form with no data');
|
|
||||||
$contactPage->submit([]);
|
|
||||||
if (method_exists($I, 'wait')) {
|
|
||||||
$I->wait(3); // only for selenium
|
|
||||||
}
|
|
||||||
$I->expectTo('see validations errors');
|
|
||||||
$I->see('Contact', 'h1');
|
|
||||||
$I->see('Name cannot be blank');
|
|
||||||
$I->see('Email cannot be blank');
|
|
||||||
$I->see('Subject cannot be blank');
|
|
||||||
$I->see('Body cannot be blank');
|
|
||||||
$I->see('The verification code is incorrect');
|
|
||||||
|
|
||||||
$I->amGoingTo('submit contact form with not correct email');
|
|
||||||
$contactPage->submit([
|
|
||||||
'name' => 'tester',
|
|
||||||
'email' => 'tester.email',
|
|
||||||
'subject' => 'test subject',
|
|
||||||
'body' => 'test content',
|
|
||||||
'verifyCode' => 'testme',
|
|
||||||
]);
|
|
||||||
if (method_exists($I, 'wait')) {
|
|
||||||
$I->wait(3); // only for selenium
|
|
||||||
}
|
|
||||||
$I->expectTo('see that email address is wrong');
|
|
||||||
$I->dontSee('Name cannot be blank', '.help-inline');
|
|
||||||
$I->see('Email is not a valid email address.');
|
|
||||||
$I->dontSee('Subject cannot be blank', '.help-inline');
|
|
||||||
$I->dontSee('Body cannot be blank', '.help-inline');
|
|
||||||
$I->dontSee('The verification code is incorrect', '.help-inline');
|
|
||||||
|
|
||||||
$I->amGoingTo('submit contact form with correct data');
|
|
||||||
$contactPage->submit([
|
|
||||||
'name' => 'tester',
|
|
||||||
'email' => 'tester@example.com',
|
|
||||||
'subject' => 'test subject',
|
|
||||||
'body' => 'test content',
|
|
||||||
'verifyCode' => 'testme',
|
|
||||||
]);
|
|
||||||
if (method_exists($I, 'wait')) {
|
|
||||||
$I->wait(3); // only for selenium
|
|
||||||
}
|
|
||||||
$I->dontSeeElement('#contact-form');
|
|
||||||
$I->see('Thank you for contacting us. We will respond to you as soon as possible.');
|
|
33
tests/codeception/acceptance/ContactCest.php
Normal file
33
tests/codeception/acceptance/ContactCest.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class ContactCest
|
||||||
|
*/
|
||||||
|
class ContactCest
|
||||||
|
{
|
||||||
|
public function _before(\AcceptanceTester $I)
|
||||||
|
{
|
||||||
|
$I->amOnPage('index-test.php?r=site%2Fcontact');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function contactPageWorks(AcceptanceTester $I)
|
||||||
|
{
|
||||||
|
$I->wantTo('ensure that contact page works');
|
||||||
|
$I->see('Contact', 'h1');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function contactFormCanBeSubmitted(AcceptanceTester $I)
|
||||||
|
{
|
||||||
|
$I->amGoingTo('submit contact form with correct data');
|
||||||
|
$I->fillField('#contactform-name', 'tester');
|
||||||
|
$I->fillField('#contactform-email', 'tester@example.com');
|
||||||
|
$I->fillField('#contactform-subject', 'test subject');
|
||||||
|
$I->fillField('#contactform-body', 'test content');
|
||||||
|
$I->fillField('#contactform-verifycode', 'testme');
|
||||||
|
|
||||||
|
$I->click('contact-button');
|
||||||
|
|
||||||
|
$I->dontSeeElement('#contact-form');
|
||||||
|
$I->see('Thank you for contacting us. We will respond to you as soon as possible.');
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user