Browse Source

tests modified, bootstrap added

tags/2.0.0-beta
Mark 11 years ago
parent
commit
44e515b4f7
  1. 1
      apps/basic/tests/_bootstrap.php
  2. 10
      apps/basic/tests/_pages/AboutPage.php
  3. 45
      apps/basic/tests/_pages/BasePage.php
  4. 63
      apps/basic/tests/_pages/ContactPage.php
  5. 40
      apps/basic/tests/_pages/LoginPage.php
  6. 7
      apps/basic/tests/acceptance.suite.dist.yml
  7. 4
      apps/basic/tests/acceptance/AboutCept.php
  8. 38
      apps/basic/tests/acceptance/ContactCept.php
  9. 33
      apps/basic/tests/acceptance/LoginCept.php
  10. 2109
      apps/basic/tests/acceptance/WebGuy.php
  11. 9
      apps/basic/tests/acceptance/_bootstrap.php
  12. 4
      apps/basic/tests/functional.suite.dist.yml
  13. 5
      apps/basic/tests/functional/AboutCept.php
  14. 37
      apps/basic/tests/functional/ContactCept.php
  15. 32
      apps/basic/tests/functional/LoginCept.php
  16. 19
      apps/basic/tests/functional/TestGuy.php
  17. 10
      apps/basic/tests/functional/_bootstrap.php
  18. 56
      apps/basic/tests/functional/_pages/ContactPage.php
  19. 33
      apps/basic/tests/functional/_pages/LoginPage.php
  20. 17
      apps/basic/tests/unit/CodeGuy.php
  21. 10
      apps/basic/tests/unit/_bootstrap.php
  22. 16
      apps/basic/tests/unit/models/ContactFormTest.php
  23. 16
      apps/basic/tests/unit/models/LoginFormTest.php
  24. 27
      apps/basic/tests/unit/models/UserTest.php
  25. 10
      apps/basic/tests/yii_bootstrap.php

1
apps/basic/tests/_bootstrap.php

@ -0,0 +1 @@
<?php

10
apps/basic/tests/_pages/AboutPage.php

@ -0,0 +1,10 @@
<?php
namespace tests\_pages;
class AboutPage extends BasePage
{
public static $URL = '?r=site/about';
}

45
apps/basic/tests/_pages/BasePage.php

@ -0,0 +1,45 @@
<?php
namespace tests\_pages;
class BasePage
{
// include url of current page
public static $URL = '';
/**
* Declare UI map for this page here. CSS or XPath allowed.
* public static $usernameField = '#username';
* public static $formSubmitButton = "#mainForm input[type=submit]";
*/
/**
* Basic route example for your current URL
* You can append any additional parameter to URL
* and use it in tests like: EditPage::route('/123-post');
*/
public static function route($param)
{
return static::$URL.$param;
}
/**
* @var
*/
protected $guy;
public function __construct($I)
{
$this->guy = $I;
}
/**
* @return $this
*/
public static function of($I)
{
return new static($I);
}
}

63
apps/basic/tests/_pages/ContactPage.php

@ -0,0 +1,63 @@
<?php
namespace tests\_pages;
class ContactPage extends BasePage
{
public static $URL = '?r=site/contact';
/**
* contact form name text field locator
* @var string
*/
public $name = 'input[name="ContactForm[name]"]';
/**
* contact form email text field locator
* @var string
*/
public $email = 'input[name="ContactForm[email]"]';
/**
* contact form subject text field locator
* @var string
*/
public $subject = 'input[name="ContactForm[subject]"]';
/**
* contact form body textarea locator
* @var string
*/
public $body = 'textarea[name="ContactForm[body]"]';
/**
* contact form verification code text field locator
* @var string
*/
public $verifyCode = 'input[name="ContactForm[verifyCode]"]';
/**
* contact form submit button
* @var string
*/
public $button = 'button[type=submit]';
/**
*
* @param array $contactData
*/
public function submit(array $contactData)
{
if (!empty($contactData))
{
$this->guy->fillField($this->name,$contactData['name']);
$this->guy->fillField($this->email,$contactData['email']);
$this->guy->fillField($this->subject,$contactData['subject']);
$this->guy->fillField($this->body,$contactData['body']);
$this->guy->fillField($this->verifyCode,$contactData['verifyCode']);
}
$this->guy->click($this->button);
}
}

40
apps/basic/tests/_pages/LoginPage.php

@ -0,0 +1,40 @@
<?php
namespace tests\_pages;
class LoginPage extends BasePage
{
public static $URL = '?r=site/login';
/**
* login form username text field locator
* @var string
*/
public $username = 'input[name="LoginForm[username]"]';
/**
* login form password text field locator
* @var string
*/
public $password = 'input[name="LoginForm[password]"]';
/**
* login form submit button locator
* @var string
*/
public $button = 'button[type=submit]';
/**
*
* @param string $username
* @param string $password
*/
public function login($username, $password)
{
$this->guy->fillField($this->username,$username);
$this->guy->fillField($this->password,$password);
$this->guy->click($this->button);
}
}

7
apps/basic/tests/acceptance.suite.dist.yml

@ -11,8 +11,9 @@
class_name: WebGuy
modules:
enabled:
- PhpBrowser
- WebHelper
- WebDriver
config:
PhpBrowser:
url: 'http://localhost/index-test.php'
WebDriver:
url: 'http://localhost/basic/web/index-test-accept.php'
browser: firefox

4
apps/basic/tests/acceptance/AboutCept.php

@ -1,5 +1,7 @@
<?php
use tests\_pages\AboutPage;
$I = new WebGuy($scenario);
$I->wantTo('ensure that about works');
$I->amOnPage('?r=site/about');
$I->amOnPage(AboutPage::$URL);
$I->see('About', 'h1');

38
apps/basic/tests/acceptance/ContactCept.php

@ -1,10 +1,16 @@
<?php
use tests\_pages\ContactPage;
$I = new WebGuy($scenario);
$I->wantTo('ensure that contact works');
$I->amOnPage('?r=site/contact');
$contactPage = ContactPage::of($I);
$I->amOnPage(ContactPage::$URL);
$I->see('Contact', 'h1');
$I->submitForm('#contact-form', []);
$I->amGoingTo('submit contact form with no data');
$contactPage->submit([]);
$I->expectTo('see validations errors');
$I->see('Contact', 'h1');
$I->see('Name cannot be blank');
$I->see('Email cannot be blank');
@ -12,25 +18,29 @@ $I->see('Subject cannot be blank');
$I->see('Body cannot be blank');
$I->see('The verification code is incorrect');
$I->submitForm('#contact-form', [
'ContactForm[name]' => 'tester',
'ContactForm[email]' => 'tester.email',
'ContactForm[subject]' => 'test subject',
'ContactForm[body]' => 'test content',
'ContactForm[verifyCode]' => 'testme',
$I->amGoingTo('submit contact form with not correct email');
$contactPage->submit([
'name' => 'tester',
'email' => 'tester.email',
'subject' => 'test subject',
'body' => 'test content',
'verifyCode' => 'testme',
]);
$I->expectTo('see that email adress 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->submitForm('#contact-form', [
'ContactForm[name]' => 'tester',
'ContactForm[email]' => 'tester@example.com',
'ContactForm[subject]' => 'test subject',
'ContactForm[body]' => 'test content',
'ContactForm[verifyCode]' => 'testme',
$I->amGoingTo('submit contact form with correct data');
$contactPage->submit([
'name' => 'tester',
'email' => 'tester@example.com',
'subject' => 'test subject',
'body' => 'test content',
'verifyCode' => 'testme',
]);
$I->wait(3);
$I->dontSeeElement('#contact-form');
$I->see('Thank you for contacting us. We will respond to you as soon as possible.');

33
apps/basic/tests/acceptance/LoginCept.php

@ -1,23 +1,26 @@
<?php
use tests\_pages\LoginPage;
$I = new WebGuy($scenario);
$I->wantTo('ensure that login works');
$I->amOnPage('?r=site/login');
$loginPage = LoginPage::of($I);
$I->amOnPage(LoginPage::$URL);
$I->see('Login', 'h1');
$I->submitForm('#login-form', []);
$I->dontSee('Logout (admin)');
$I->see('Username cannot be blank');
$I->see('Password cannot be blank');
$I->amGoingTo('try to login with empty credentials');
$loginPage->login('', '');
$I->expectTo('see validations errors');
$I->see('Username cannot be blank.');
$I->see('Password cannot be blank.');
$I->submitForm('#login-form', [
'LoginForm[username]' => 'admin',
'LoginForm[password]' => 'wrong',
]);
$I->dontSee('Logout (admin)');
$I->see('Incorrect username or password');
$I->amGoingTo('try to login with wrong credentials');
$loginPage->login('admin', 'wrong');
$I->expectTo('see validations errors');
$I->see('Incorrect username or password.');
$I->submitForm('#login-form', [
'LoginForm[username]' => 'admin',
'LoginForm[password]' => 'admin',
]);
$I->amGoingTo('try to login with correct credentials');
$loginPage->login('admin', 'admin');
$I->wait(3);
$I->expectTo('see user info');
$I->see('Logout (admin)');

2109
apps/basic/tests/acceptance/WebGuy.php

File diff suppressed because it is too large Load Diff

9
apps/basic/tests/acceptance/_bootstrap.php

@ -1,2 +1,11 @@
<?php
// Here you can initialize variables that will for your tests
$config = require(__DIR__.'/../yii_bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
$config,
require(__DIR__ . '/../../config/codeception/acceptance.php')
);
$application = new yii\web\Application($config);

4
apps/basic/tests/functional.suite.dist.yml

@ -5,11 +5,11 @@
# (tip: better to use with frameworks).
# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES.
#basic/web/index-test-func.php
class_name: TestGuy
modules:
enabled: [Filesystem, TestHelper, Yii2]
config:
Yii2:
entryScript: 'web/index-test.php'
entryScript: 'web/index-test-func.php'
url: 'http://localhost/'

5
apps/basic/tests/functional/AboutCept.php

@ -1,5 +1,8 @@
<?php
use tests\_pages\AboutPage;
$I = new TestGuy($scenario);
$I->wantTo('ensure that about works');
$I->amOnPage('?r=site/about');
$I->amOnPage(AboutPage::$URL);
$I->see('About', 'h1');

37
apps/basic/tests/functional/ContactCept.php

@ -1,10 +1,16 @@
<?php
use tests\functional\_pages\ContactPage;
$I = new TestGuy($scenario);
$I->wantTo('ensure that contact works');
$I->amOnPage('?r=site/contact');
$contactPage = ContactPage::of($I);
$I->amOnPage(ContactPage::$URL);
$I->see('Contact', 'h1');
$I->submitForm('#contact-form', []);
$I->amGoingTo('submit contact form with no data');
$contactPage->submit([]);
$I->expectTo('see validations errors');
$I->see('Contact', 'h1');
$I->see('Name cannot be blank');
$I->see('Email cannot be blank');
@ -12,25 +18,28 @@ $I->see('Subject cannot be blank');
$I->see('Body cannot be blank');
$I->see('The verification code is incorrect');
$I->submitForm('#contact-form', [
'ContactForm[name]' => 'tester',
'ContactForm[email]' => 'tester.email',
'ContactForm[subject]' => 'test subject',
'ContactForm[body]' => 'test content',
'ContactForm[verifyCode]' => 'testme',
$I->amGoingTo('submit contact form with not correct email');
$contactPage->submit([
'name' => 'tester',
'email' => 'tester.email',
'subject' => 'test subject',
'body' => 'test content',
'verifyCode' => 'testme',
]);
$I->expectTo('see that email adress 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->submitForm('#contact-form', [
'ContactForm[name]' => 'tester',
'ContactForm[email]' => 'tester@example.com',
'ContactForm[subject]' => 'test subject',
'ContactForm[body]' => 'test content',
'ContactForm[verifyCode]' => 'testme',
$I->amGoingTo('submit contact form with correct data');
$contactPage->submit([
'name' => 'tester',
'email' => 'tester@example.com',
'subject' => 'test subject',
'body' => 'test content',
'verifyCode' => 'testme',
]);
$I->dontSeeElement('#contact-form');
$I->see('Thank you for contacting us. We will respond to you as soon as possible.');

32
apps/basic/tests/functional/LoginCept.php

@ -1,23 +1,25 @@
<?php
use tests\functional\_pages\LoginPage;
$I = new TestGuy($scenario);
$I->wantTo('ensure that login works');
$I->amOnPage('?r=site/login');
$loginPage = LoginPage::of($I);
$I->amOnPage(LoginPage::$URL);
$I->see('Login', 'h1');
$I->submitForm('#login-form', []);
$I->dontSee('Logout (admin)');
$I->see('Username cannot be blank');
$I->see('Password cannot be blank');
$I->amGoingTo('try to login with empty credentials');
$loginPage->login('', '');
$I->expectTo('see validations errors');
$I->see('Username cannot be blank.');
$I->see('Password cannot be blank.');
$I->submitForm('#login-form', [
'LoginForm[username]' => 'admin',
'LoginForm[password]' => 'wrong',
]);
$I->dontSee('Logout (admin)');
$I->see('Incorrect username or password');
$I->amGoingTo('try to login with wrong credentials');
$loginPage->login('admin', 'wrong');
$I->expectTo('see validations errors');
$I->see('Incorrect username or password.');
$I->submitForm('#login-form', [
'LoginForm[username]' => 'admin',
'LoginForm[password]' => 'admin',
]);
$I->amGoingTo('try to login with correct credentials');
$loginPage->login('admin', 'admin');
$I->expectTo('see user info');
$I->see('Logout (admin)');

19
apps/basic/tests/functional/TestGuy.php

@ -445,6 +445,25 @@ class TestGuy extends \Codeception\AbstractGuy
* Documentation taken from corresponding module.
* ----------------------------------------------
*
*
* @see Codeception\Module::getName()
* @return \Codeception\Maybe
*/
public function getName() {
$this->scenario->addStep(new \Codeception\Step\Action('getName', func_get_args()));
if ($this->scenario->running()) {
$result = $this->scenario->runStep();
return new Maybe($result);
}
return new Maybe();
}
/**
* This method is generated.
* Documentation taken from corresponding module.
* ----------------------------------------------
*
* Authenticates user for HTTP_AUTH
*
* @param $username

10
apps/basic/tests/functional/_bootstrap.php

@ -1,2 +1,10 @@
<?php
// Here you can initialize variables that will for your tests
$config = require(__DIR__.'/../yii_bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
$config,
require(__DIR__ . '/../../config/codeception/functional.php')
);
$application = new yii\web\Application($config);

56
apps/basic/tests/functional/_pages/ContactPage.php

@ -0,0 +1,56 @@
<?php
namespace tests\functional\_pages;
class ContactPage extends \tests\_pages\ContactPage
{
/**
* contact form name text field locator
* @var string
*/
public $name = 'ContactForm[name]';
/**
* contact form email text field locator
* @var string
*/
public $email = 'ContactForm[email]';
/**
* contact form subject text field locator
* @var string
*/
public $subject = 'ContactForm[subject]';
/**
* contact form body textarea locator
* @var string
*/
public $body = 'ContactForm[body]';
/**
* contact form verification code text field locator
* @var string
*/
public $verifyCode = 'ContactForm[verifyCode]';
/**
*
* @param array $contactData
*/
public function submit(array $contactData)
{
if (empty($contactData))
$this->guy->submitForm('#contact-form',[]);
else
$this->guy->submitForm('#contact-form',[
$this->name => $contactData['name'],
$this->email => $contactData['email'],
$this->subject => $contactData['subject'],
$this->body => $contactData['body'],
$this->verifyCode => $contactData['verifyCode'],
]);
}
}

33
apps/basic/tests/functional/_pages/LoginPage.php

@ -0,0 +1,33 @@
<?php
namespace tests\functional\_pages;
class LoginPage extends \tests\_pages\LoginPage
{
/**
* login form username text field locator
* @var string
*/
public $username = 'LoginForm[username]';
/**
* login form password text field locator
* @var string
*/
public $password = 'LoginForm[password]';
/**
*
* @param string $username
* @param string $password
*/
public function login($username, $password)
{
$this->guy->submitForm('#login-form',[
$this->username => $username,
$this->password => $password,
]);
}
}

17
apps/basic/tests/unit/CodeGuy.php

@ -26,5 +26,22 @@ use Codeception\Module\CodeHelper;
class CodeGuy extends \Codeception\AbstractGuy
{
/**
* This method is generated.
* Documentation taken from corresponding module.
* ----------------------------------------------
*
*
* @see Codeception\Module::getName()
* @return \Codeception\Maybe
*/
public function getName() {
$this->scenario->addStep(new \Codeception\Step\Action('getName', func_get_args()));
if ($this->scenario->running()) {
$result = $this->scenario->runStep();
return new Maybe($result);
}
return new Maybe();
}
}

10
apps/basic/tests/unit/_bootstrap.php

@ -1,2 +1,10 @@
<?php
// Here you can initialize variables that will for your tests
$config = require(__DIR__.'/../yii_bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
$config,
require(__DIR__ . '/../../config/codeception/unit.php')
);
$application = new yii\web\Application($config);

16
apps/basic/tests/unit/models/ContactFormTest.php

@ -0,0 +1,16 @@
<?php
namespace tests\unit\models;
class ContactFormTest extends \PHPUnit_Framework_TestCase
{
protected function setUp()
{
}
protected function tearDown()
{
}
}

16
apps/basic/tests/unit/models/LoginFormTest.php

@ -0,0 +1,16 @@
<?php
namespace tests\unit\models;
class LoginFormTest extends \PHPUnit_Framework_TestCase
{
protected function setUp()
{
}
protected function tearDown()
{
}
}

27
apps/basic/tests/unit/models/UserTest.php

@ -0,0 +1,27 @@
<?php
namespace tests\unit\models;
#use yii\test\DbTestTrait;
class UserTest extends \PHPUnit_Framework_TestCase
{
use DbTestTrait;
protected function setUp()
{
/*
* you can load fixtures in this way
*
$this->loadFixtures([
'tbl_user',
]);
*/
}
protected function tearDown()
{
}
}

10
apps/basic/tests/yii_bootstrap.php

@ -0,0 +1,10 @@
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');
require_once(__DIR__ . '/../vendor/autoload.php');
require_once(__DIR__ . '/../vendor/yiisoft/yii2/yii/Yii.php');
return require(__DIR__ . '/../config/web.php');
Loading…
Cancel
Save