Browse Source

added codeception to backend

tags/2.0.0-beta
Mark 11 years ago
parent
commit
d2d27747bf
  1. 18
      apps/advanced/backend/codeception.yml
  2. 23
      apps/advanced/backend/tests/_bootstrap.php
  3. 14
      apps/advanced/backend/tests/_config.php
  4. 19
      apps/advanced/backend/tests/_console.php
  5. 1
      apps/advanced/backend/tests/_data/dump.sql
  6. 8
      apps/advanced/backend/tests/_helpers/CodeHelper.php
  7. 8
      apps/advanced/backend/tests/_helpers/TestHelper.php
  8. 8
      apps/advanced/backend/tests/_helpers/WebHelper.php
  9. 2
      apps/advanced/backend/tests/_log/.gitignore
  10. 28
      apps/advanced/backend/tests/acceptance.suite.yml
  11. 30
      apps/advanced/backend/tests/acceptance/LoginCept.php
  12. 3
      apps/advanced/backend/tests/acceptance/_bootstrap.php
  13. 16
      apps/advanced/backend/tests/acceptance/_config.php
  14. 15
      apps/advanced/backend/tests/acceptance/_console.php
  15. 21
      apps/advanced/backend/tests/acceptance/yii
  16. 20
      apps/advanced/backend/tests/acceptance/yii.bat
  17. 18
      apps/advanced/backend/tests/functional.suite.yml
  18. 30
      apps/advanced/backend/tests/functional/LoginCept.php
  19. 3
      apps/advanced/backend/tests/functional/_bootstrap.php
  20. 20
      apps/advanced/backend/tests/functional/_config.php
  21. 15
      apps/advanced/backend/tests/functional/_console.php
  22. 21
      apps/advanced/backend/tests/functional/yii
  23. 20
      apps/advanced/backend/tests/functional/yii.bat
  24. 8
      apps/advanced/backend/tests/unit.suite.yml
  25. 8
      apps/advanced/backend/tests/unit/DbTestCase.php
  26. 8
      apps/advanced/backend/tests/unit/TestCase.php
  27. 2
      apps/advanced/backend/tests/unit/_bootstrap.php
  28. 16
      apps/advanced/backend/tests/unit/_config.php
  29. 15
      apps/advanced/backend/tests/unit/_console.php
  30. 21
      apps/advanced/backend/tests/unit/yii
  31. 20
      apps/advanced/backend/tests/unit/yii.bat

18
apps/advanced/backend/codeception.yml

@ -0,0 +1,18 @@
paths:
tests: tests
log: tests/_log
data: tests/_data
helpers: tests/_helpers
settings:
bootstrap: _bootstrap.php
suite_class: \PHPUnit_Framework_TestSuite
colors: true
memory_limit: 1024M
log: true
modules:
config:
Db:
dsn: ''
user: ''
password: ''
dump: tests/_data/dump.sql

23
apps/advanced/backend/tests/_bootstrap.php

@ -0,0 +1,23 @@
<?php
// the entry script URL (without host info) for functional and acceptance tests
// PLEASE ADJUST IT TO THE ACTUAL ENTRY SCRIPT URL
defined('TEST_ENTRY_URL') or define('TEST_ENTRY_URL', '/backend/web/index-test.php');
// the entry script file path for functional and acceptance tests
defined('TEST_ENTRY_FILE') or define('TEST_ENTRY_FILE', dirname(__DIR__) . '/web/index-test.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.php');
require(__DIR__ . '/../../common/config/aliases.php');
// set correct script paths
$_SERVER['SCRIPT_FILENAME'] = TEST_ENTRY_FILE;
$_SERVER['SCRIPT_NAME'] = TEST_ENTRY_URL;
$_SERVER['SERVER_NAME'] = 'localhost';

14
apps/advanced/backend/tests/_config.php

@ -0,0 +1,14 @@
<?php
/**
* application configurations shared by all test types
*/
return [
'components' => [
'mail' => [
'useFileTransport' => true,
],
'urlManager' => [
'showScriptName' => true,
],
],
];

19
apps/advanced/backend/tests/_console.php

@ -0,0 +1,19 @@
<?php
/**
* Yii console bootstrap file.
*
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../../vendor/autoload.php');
require_once(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require_once(__DIR__ . '/../../common/config/aliases.php');
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'test');

1
apps/advanced/backend/tests/_data/dump.sql

@ -0,0 +1 @@
/* Replace this file with actual dump of your database */

8
apps/advanced/backend/tests/_helpers/CodeHelper.php

@ -0,0 +1,8 @@
<?php
namespace Codeception\Module;
// here you can define custom functions for CodeGuy
class CodeHelper extends \Codeception\Module
{
}

8
apps/advanced/backend/tests/_helpers/TestHelper.php

@ -0,0 +1,8 @@
<?php
namespace Codeception\Module;
// here you can define custom functions for TestGuy
class TestHelper extends \Codeception\Module
{
}

8
apps/advanced/backend/tests/_helpers/WebHelper.php

@ -0,0 +1,8 @@
<?php
namespace Codeception\Module;
// here you can define custom functions for WebGuy
class WebHelper extends \Codeception\Module
{
}

2
apps/advanced/backend/tests/_log/.gitignore vendored

@ -0,0 +1,2 @@
*
!.gitignore

28
apps/advanced/backend/tests/acceptance.suite.yml

@ -0,0 +1,28 @@
# Codeception Test Suite Configuration
# suite for acceptance tests.
# perform tests in browser using the Selenium-like tools.
# powered by Mink (http://mink.behat.org).
# (tip: that's what your customer will see).
# (tip: test your ajax and javascript by one of Mink drivers).
# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES.
class_name: WebGuy
modules:
enabled:
- WebHelper
- PhpBrowser
- common\tests\_helpers\FixtureHelper
# you can use WebDriver instead of PhpBrowser to test javascript and ajax.
# This will require you to install selenium. See http://codeception.com/docs/04-AcceptanceTests#Selenium
# "restart" option is used by the WebDriver to start each time per test-file new session and cookies,
# it is useful if you want to login in your app in each test.
# - WebDriver
config:
PhpBrowser:
url: 'http://localhost:8080'
# WebDriver:
# url: 'http://localhost'
# browser: firefox
# restart: true

30
apps/advanced/backend/tests/acceptance/LoginCept.php

@ -0,0 +1,30 @@
<?php
use common\tests\_pages\LoginPage;
$I = new WebGuy($scenario);
$I->wantTo('ensure login page works');
$loginPage = LoginPage::openBy($I);
$I->amGoingTo('submit login form with no data');
$loginPage->login('', '');
$I->expectTo('see validations errors');
$I->see('Username cannot be blank.');
$I->see('Password cannot be blank.');
$I->amGoingTo('try to login with wrong credentials');
$I->expectTo('see validations errors');
$loginPage->login('admin', 'wrong');
$I->expectTo('see validations errors');
$I->see('Incorrect username or password.');
$I->amGoingTo('try to login with correct credentials');
$loginPage->login('erau', 'password_0');
$I->expectTo('see that user is logged');
$I->see('Logout (erau)');
$I->dontSee('Login');
$I->dontSee('Signup');
$I->click('Logout (erau)');
$I->dontSee('Logout (erau)');
$I->see('Login');

3
apps/advanced/backend/tests/acceptance/_bootstrap.php

@ -0,0 +1,3 @@
<?php
new yii\web\Application(require(__DIR__ . '/_config.php'));

16
apps/advanced/backend/tests/acceptance/_config.php

@ -0,0 +1,16 @@
<?php
return yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../config/main.php'),
require(__DIR__ . '/../../config/main-local.php'),
require(__DIR__ . '/../../../common/config/main.php'),
require(__DIR__ . '/../../../common/config/main-local.php'),
require(__DIR__ . '/../_config.php'),
[
'components' => [
'db' => [
'dsn' => 'pgsql:host=localhost;dbname=yii2_advanced_acceptance',
],
],
]
);

15
apps/advanced/backend/tests/acceptance/_console.php

@ -0,0 +1,15 @@
<?php
return yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../../common/config/main.php'),
require(__DIR__ . '/../../../common/config/main-local.php'),
require(__DIR__ . '/../../../console/config/main.php'),
require(__DIR__ . '/../../../console/config/main-local.php'),
[
'components' => [
'db' => [
'dsn' => 'pgsql:host=localhost;dbname=yii2_advanced_acceptance',
],
],
]
);

21
apps/advanced/backend/tests/acceptance/yii

@ -0,0 +1,21 @@
#!/usr/bin/env php
<?php
/**
* Yii console bootstrap file.
*
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../_console.php');
$config = require(__DIR__ . '/_console.php');
$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);

20
apps/advanced/backend/tests/acceptance/yii.bat

@ -0,0 +1,20 @@
@echo off
rem -------------------------------------------------------------
rem Yii command line bootstrap script for Windows.
rem
rem @author Qiang Xue <qiang.xue@gmail.com>
rem @link http://www.yiiframework.com/
rem @copyright Copyright &copy; 2012 Yii Software LLC
rem @license http://www.yiiframework.com/license/
rem -------------------------------------------------------------
@setlocal
set YII_PATH=%~dp0
if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe
"%PHP_COMMAND%" "%YII_PATH%yii" %*
@endlocal

18
apps/advanced/backend/tests/functional.suite.yml

@ -0,0 +1,18 @@
# Codeception Test Suite Configuration
# suite for functional (integration) tests.
# emulate web requests and make application process them.
# (tip: better to use with frameworks).
# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES.
#basic/web/index.php
class_name: TestGuy
modules:
enabled:
- Filesystem
- TestHelper
- Yii2
- common\tests\_helpers\FixtureHelper
config:
Yii2:
configFile: 'tests/functional/_config.php'

30
apps/advanced/backend/tests/functional/LoginCept.php

@ -0,0 +1,30 @@
<?php
use common\tests\_pages\LoginPage;
$I = new TestGuy($scenario);
$I->wantTo('ensure login page works');
$loginPage = LoginPage::openBy($I);
$I->amGoingTo('submit login form with no data');
$loginPage->login('', '');
$I->expectTo('see validations errors');
$I->see('Username cannot be blank.');
$I->see('Password cannot be blank.');
$I->amGoingTo('try to login with wrong credentials');
$I->expectTo('see validations errors');
$loginPage->login('admin', 'wrong');
$I->expectTo('see validations errors');
$I->see('Incorrect username or password.');
$I->amGoingTo('try to login with correct credentials');
$loginPage->login('erau', 'password_0');
$I->expectTo('see that user is logged');
$I->see('Logout (erau)');
$I->dontSee('Login');
$I->dontSee('Signup');
$I->click('Logout (erau)');
$I->dontSee('Logout (erau)');
$I->see('Login');

3
apps/advanced/backend/tests/functional/_bootstrap.php

@ -0,0 +1,3 @@
<?php
new yii\web\Application(require(__DIR__ . '/_config.php'));

20
apps/advanced/backend/tests/functional/_config.php

@ -0,0 +1,20 @@
<?php
// set correct script paths
$_SERVER['SCRIPT_FILENAME'] = TEST_ENTRY_FILE;
$_SERVER['SCRIPT_NAME'] = TEST_ENTRY_URL;
return yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../config/main.php'),
require(__DIR__ . '/../../config/main-local.php'),
require(__DIR__ . '/../../../common/config/main.php'),
require(__DIR__ . '/../../../common/config/main-local.php'),
require(__DIR__ . '/../_config.php'),
[
'components' => [
'db' => [
'dsn' => 'pgsql:host=localhost;dbname=yii2_advanced_functional',
],
],
]
);

15
apps/advanced/backend/tests/functional/_console.php

@ -0,0 +1,15 @@
<?php
return yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../../common/config/main.php'),
require(__DIR__ . '/../../../common/config/main-local.php'),
require(__DIR__ . '/../../../console/config/main.php'),
require(__DIR__ . '/../../../console/config/main-local.php'),
[
'components' => [
'db' => [
'dsn' => 'pgsql:host=localhost;dbname=yii2_advanced_functional',
],
],
]
);

21
apps/advanced/backend/tests/functional/yii

@ -0,0 +1,21 @@
#!/usr/bin/env php
<?php
/**
* Yii console bootstrap file.
*
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../_console.php');
$config = require(__DIR__ . '/_console.php');
$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);

20
apps/advanced/backend/tests/functional/yii.bat

@ -0,0 +1,20 @@
@echo off
rem -------------------------------------------------------------
rem Yii command line bootstrap script for Windows.
rem
rem @author Qiang Xue <qiang.xue@gmail.com>
rem @link http://www.yiiframework.com/
rem @copyright Copyright &copy; 2012 Yii Software LLC
rem @license http://www.yiiframework.com/license/
rem -------------------------------------------------------------
@setlocal
set YII_PATH=%~dp0
if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe
"%PHP_COMMAND%" "%YII_PATH%yii" %*
@endlocal

8
apps/advanced/backend/tests/unit.suite.yml

@ -0,0 +1,8 @@
# Codeception Test Suite Configuration
# suite for unit (internal) tests.
# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES.
class_name: CodeGuy
modules:
enabled: [CodeHelper]

8
apps/advanced/backend/tests/unit/DbTestCase.php

@ -0,0 +1,8 @@
<?php
namespace backend\tests\unit;
class DbTestCase extends \yii\codeception\DbTestCase
{
public $appConfig = '@backend/tests/unit/_config.php';
}

8
apps/advanced/backend/tests/unit/TestCase.php

@ -0,0 +1,8 @@
<?php
namespace backend\tests\unit;
class TestCase extends \yii\codeception\TestCase
{
public $appConfig = '@backend/tests/unit/_config.php';
}

2
apps/advanced/backend/tests/unit/_bootstrap.php

@ -0,0 +1,2 @@
<?php
// Here you can initialize variables that will for your tests

16
apps/advanced/backend/tests/unit/_config.php

@ -0,0 +1,16 @@
<?php
return yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../../common/config/main.php'),
require(__DIR__ . '/../../../common/config/main-local.php'),
require(__DIR__ . '/../../config/main.php'),
require(__DIR__ . '/../../config/main-local.php'),
require(__DIR__ . '/../_config.php'),
[
'components' => [
'db' => [
'dsn' => 'pgsql:host=localhost;dbname=yii2_advanced_unit',
],
],
]
);

15
apps/advanced/backend/tests/unit/_console.php

@ -0,0 +1,15 @@
<?php
return yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../../common/config/main.php'),
require(__DIR__ . '/../../../common/config/main-local.php'),
require(__DIR__ . '/../../../console/config/main.php'),
require(__DIR__ . '/../../../console/config/main-local.php'),
[
'components' => [
'db' => [
'dsn' => 'pgsql:host=localhost;dbname=yii2_advanced_unit',
],
],
]
);

21
apps/advanced/backend/tests/unit/yii

@ -0,0 +1,21 @@
#!/usr/bin/env php
<?php
/**
* Yii console bootstrap file.
*
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
// fcgi doesn't have STDIN and STDOUT defined by default
defined('STDIN') or define('STDIN', fopen('php://stdin', 'r'));
defined('STDOUT') or define('STDOUT', fopen('php://stdout', 'w'));
require_once(__DIR__ . '/../_console.php');
$config = require(__DIR__ . '/_console.php');
$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);

20
apps/advanced/backend/tests/unit/yii.bat

@ -0,0 +1,20 @@
@echo off
rem -------------------------------------------------------------
rem Yii command line bootstrap script for Windows.
rem
rem @author Qiang Xue <qiang.xue@gmail.com>
rem @link http://www.yiiframework.com/
rem @copyright Copyright &copy; 2012 Yii Software LLC
rem @license http://www.yiiframework.com/license/
rem -------------------------------------------------------------
@setlocal
set YII_PATH=%~dp0
if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe
"%PHP_COMMAND%" "%YII_PATH%yii" %*
@endlocal
Loading…
Cancel
Save