From bec6743efde4d4372b495e61447cb8840ac0be24 Mon Sep 17 00:00:00 2001 From: Mark Date: Sun, 15 Dec 2013 21:05:04 +0400 Subject: [PATCH] added readme, changelog, license and composer files. --- extensions/codeception/CHANGELOG.md | 12 ++++ extensions/codeception/LICENSE.md | 32 +++++++++ extensions/codeception/README.md | 128 +++++++++++++++++++++++++++++++++++ extensions/codeception/composer.json | 26 +++++++ 4 files changed, 198 insertions(+) create mode 100644 extensions/codeception/CHANGELOG.md create mode 100644 extensions/codeception/LICENSE.md create mode 100644 extensions/codeception/README.md create mode 100644 extensions/codeception/composer.json diff --git a/extensions/codeception/CHANGELOG.md b/extensions/codeception/CHANGELOG.md new file mode 100644 index 0000000..e2f335e --- /dev/null +++ b/extensions/codeception/CHANGELOG.md @@ -0,0 +1,12 @@ +Yii Framework 2 Codeception extension Change Log +================================================ + +2.0.0 beta under development +---------------------------- + +- no changes in this release. + +2.0.0 alpha, December 1, 2013 +----------------------------- + +- Initial release. \ No newline at end of file diff --git a/extensions/codeception/LICENSE.md b/extensions/codeception/LICENSE.md new file mode 100644 index 0000000..0bb1a8d --- /dev/null +++ b/extensions/codeception/LICENSE.md @@ -0,0 +1,32 @@ +The Yii framework is free software. It is released under the terms of +the following BSD License. + +Copyright © 2008-2013 by Yii Software LLC (http://www.yiisoft.com) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of Yii Software LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/extensions/codeception/README.md b/extensions/codeception/README.md new file mode 100644 index 0000000..1ae5891 --- /dev/null +++ b/extensions/codeception/README.md @@ -0,0 +1,128 @@ +Codeception Extension for Yii 2 +=============================== + +This extension provides a `Codeception` mail solution for Yii 2. It includes some classes that are useful +for unit-testing (```TestCase```) or for codeception page-objects (```BasePage```). + +When using codeception page-objects they have some similar code, this code was extracted and put into the ```BasePage``` +class to reduce code duplication. Simply extend your page object from this class, like it is done in ```yii2-basic``` and +```yii2-advanced``` boilerplates. + +For unit testing there is a ```TestCase``` class which holds some common features like application creation before each test +and application destroy after each test. You can configure your application by this class. ```TestCase``` is extended from ```PHPUnit_Framework_TestCase``` so all +methods and assertions are available. + +```php +SomeConsoleTestTest extends yii\codeception\TestCase +{ + # by default it is @tests/unit/_bootstrap.php which holds some basic things like: + # including composer autoload, include BaseYii class. + public $baseConfig = '@app/config/console.php'; + + public $applicationClass = 'yii\console\Application'; +} +``` +Dont forget that you still need to include autoload and BaseYii class, like in the _bootstrap.php file (comments above). + +You also can reconfigure some components for tests, for this purpose there is a ```$config``` property in the testcase. + +```php +SomeOtherTest extends yii\codeception\TestCase +{ + public $config = [ + 'components' => [ + 'mail' => [ + 'useFileTransport' => true, + ], + ] + ]; +} +``` + +Because of Codeception buffers all output you cant make simple ```var_dump()``` in the TestCase, instead you need to use +```Codeception\Util\Debug::debug()``` function and then run test with ```--debug``` key, for example: + +```php + +use \Codeception\Util\Debug; + +SomeDebugTest extends yii\codeception\TestCase +{ + + public function testSmth() + { + Debug::debug('some my string); + Debug::debug($someArray); + Debug::debug($someObject); + } + +} +``` + +Then run command ```php codecept.phar run --debug unit/SomeDebugTest``` (Codeception also available through composer) and you will see in output: + +```html + some string + + Array + ( + [0] => 1 + [1] => 2 + [2] => 3 + [3] => 4 + [4] => 5 + ) + + yii\web\User Object + ( + [identityClass] => app\models\User + [enableAutoLogin] => + [loginUrl] => Array + ( + [0] => site/login + ) + + [identityCookie] => Array + ( + [name] => _identity + [httpOnly] => 1 + ) + + [authTimeout] => + [autoRenewCookie] => 1 + [idVar] => __id + [authTimeoutVar] => __expire + [returnUrlVar] => __returnUrl + [_access:yii\web\User:private] => Array + ( + ) + + [_identity:yii\web\User:private] => + [_events:yii\base\Component:private] => + [_behaviors:yii\base\Component:private] => + ) + +``` + + +For further instructions refer to the related section in the Yii Definitive Guide (https://github.com/yiisoft/yii2/blob/master/docs/guide/testing.md). + + +Installation +------------ + +The preferred way to install this extension is through [composer](http://getcomposer.org/download/). + +Either run + +``` +php composer.phar require yiisoft/yii2-codeception "*" +``` + +or add + +```json +"yiisoft/yii2-codeception": "*" +``` + +to the require section of your composer.json. diff --git a/extensions/codeception/composer.json b/extensions/codeception/composer.json new file mode 100644 index 0000000..66957bc --- /dev/null +++ b/extensions/codeception/composer.json @@ -0,0 +1,26 @@ +{ + "name": "yiisoft/yii2-codeception", + "description": "The Codeception integration for the Yii framework", + "keywords": ["yii", "codeception"], + "type": "yii2-extension", + "license": "BSD-3-Clause", + "support": { + "forum": "http://www.yiiframework.com/forum/", + "wiki": "http://www.yiiframework.com/wiki/", + "irc": "irc://irc.freenode.net/yii", + "source": "https://github.com/yiisoft/yii2" + }, + "authors": [ + { + "name": "Mark Jebri", + "email": "mark.github@yandex.ru" + } + ], + "require": { + "yiisoft/yii2": "*" + }, + "autoload": { + "psr-0": { "yii\\codeception\\": "" } + }, + "target-dir": "yii/codeception" +}