Commit b50f5ce323f775896f0223cfd51c42ced70e5670

Authored by Yarik
1 parent fdc1c9de

test

console/migrations/m160406_133247_create_junction_portfolio_and_user.php 0 → 100644
  1 +<?php
  2 +
  3 + use yii\db\Migration;
  4 +
  5 + /**
  6 + * Handles the creation for table `portfolio_user`.
  7 + * Has foreign keys to the tables:
  8 + * - `portfolio`
  9 + * - `user`
  10 + */
  11 + class m160406_133247_create_junction_portfolio_and_user extends Migration
  12 + {
  13 +
  14 + /**
  15 + * @inheritdoc
  16 + */
  17 + public function up()
  18 + {
  19 + $this->createTable('portfolio_user', [
  20 + 'portfolio_user_id' => $this->primaryKey(),
  21 + 'portfolio_id' => $this->integer()
  22 + ->notNull(),
  23 + 'user_id' => $this->integer()
  24 + ->notNull(),
  25 + 'position' => $this->string(),
  26 + 'time' => $this->integer(),
  27 + 'status' => $this->integer()
  28 + ->defaultValue(2)
  29 + ->notNull(),
  30 + ]);
  31 +
  32 + // add foreign key for table `portfolio`
  33 + $this->addForeignKey('fk-portfolio_user-portfolio_id', 'portfolio_user', 'portfolio_id', 'portfolio', 'portfolio_id', 'CASCADE');
  34 +
  35 + // add foreign key for table `user`
  36 + $this->addForeignKey('fk-portfolio_user-user_id', 'portfolio_user', 'user_id', 'user', 'id', 'CASCADE');
  37 +
  38 + $this->createIndex('unique_portfolio_user_key', 'portfolio_user', ['portfolio_id', 'user_id'], true);
  39 + }
  40 +
  41 + /**
  42 + * @inheritdoc
  43 + */
  44 + public function down()
  45 + {
  46 +
  47 + $this->dropIndex('unique_portfolio_user_key', 'portfolio_user');
  48 +
  49 + // drops foreign key for table `portfolio`
  50 + $this->dropForeignKey('fk-portfolio_user-portfolio_id', 'portfolio_user');
  51 +
  52 + // drops foreign key for table `user`
  53 + $this->dropForeignKey('fk-portfolio_user-user_id', 'portfolio_user');
  54 +
  55 + $this->dropTable('portfolio_user');
  56 + }
  57 + }
... ...
frontend/views/accounts/_portfolio_form.php
... ... @@ -214,7 +214,7 @@
214 214 }
215 215 );
216 216 $.fancybox.open(
217   - {href : 'http://mfp.dev/ajax/project-user'}, {
  217 + {href : '/ajax/project-user'}, {
218 218 type : 'ajax', maxWidth : 750,
219 219 ajax : {dataType : 'html', data : {ids : JSON.stringify(ids)}},
220 220 tpl : {wrap : '<div class="fancybox-wrap" tabIndex="-1" data-model="common\\models\\PortfolioUser" data-component="' + component + '"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>'}
... ...
frontend/web/images/tick.png 0 → 100644

1.62 KB

tests/_support/Step/Acceptance/CRMOperatorSteps.php 0 → 100644
  1 +<?php
  2 +namespace Step\Acceptance;
  3 +
  4 +class CRMOperatorSteps extends \AcceptanceTester
  5 +{
  6 + public function amInAddCustomerUi(){
  7 + $I = $this;
  8 + $I->amOnPage('site/signup');
  9 + }
  10 +
  11 + public function imagineCustomer(){
  12 + $fake = \Faker\Factory::create();
  13 + return [
  14 + 'SignupForm[username]' => $fake->name,
  15 + 'SignupForm[email]' => $fake->email,
  16 + 'SignupForm[password]' => $fake->password(19),
  17 + ];
  18 +
  19 + }
  20 +
  21 + public function fillCustomerDataForm($fieldData){
  22 + $I = $this;
  23 + foreach ($fieldData as $key=>$value) {
  24 + $I->fillField($key,$value);
  25 + }
  26 +
  27 + }
  28 +
  29 + public function submitCustomerDataForm(){
  30 + $I = $this;
  31 + $I->click('signup-button');
  32 + }
  33 +
  34 +
  35 +
  36 +}
0 37 \ No newline at end of file
... ...
tests/config/.gitignore 0 → 100644
  1 +main-local.php
  2 +params-local.php
0 3 \ No newline at end of file
... ...
tests/config/bootstrap.php 0 → 100644
  1 +<?php
... ...
tests/config/main.php 0 → 100644
  1 +<?php
  2 +return [
  3 + 'id' => 'app-test',
  4 + 'basePath' => dirname(__DIR__),
  5 + 'bootstrap' => ['log'],
  6 +];
... ...
tests/config/params.php 0 → 100644
  1 +<?php
  2 +return [
  3 + 'adminEmail' => 'admin@example.com',
  4 +];
... ...
tests/config/unit.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * Application configuration for unit tests
  4 + */
  5 +return yii\helpers\ArrayHelper::merge(
  6 + require(__DIR__ . '/../../common/config/main.php'),
  7 + [
  8 + ]
  9 +);
0 10 \ No newline at end of file
... ...
tests/unit/EmailValidatorTest.php 0 → 100644
  1 +<?php
  2 +namespace tests\unit;
  3 +
  4 +use Codeception\TestCase\Test;
  5 +use yii\validators\EmailValidator;
  6 +
  7 +class EmailValidatorTest extends Test{
  8 +
  9 + /**
  10 + * @dataProvider getEmailVariants
  11 + */
  12 + public function testEmail($email, $result){
  13 + $validator = new EmailValidator();
  14 + $this->assertEquals($validator->validate($email), $result);
  15 + }
  16 +
  17 + public function getEmailVariants(){
  18 + return [
  19 + ['test@test.com', true],
  20 + ['test@test', false],
  21 + ['testtest.com', false]
  22 + ];
  23 + }
  24 +}
0 25 \ No newline at end of file
... ...
tests/unit/UserStoreTest.php 0 → 100644
  1 +<?php
  2 +namespace tests\unit;
  3 +use common\components\UserStore;
  4 +
  5 +use Yii;
  6 +
  7 +class UserStoreTest extends \Codeception\TestCase\Test
  8 +{
  9 + /**
  10 + * @var \UnitTester
  11 + */
  12 + protected $tester;
  13 +
  14 + private $store;
  15 +
  16 + public function _before()
  17 + {
  18 + $this->store = new UserStore();
  19 + }
  20 +
  21 + public function imagineCustomer(){
  22 + $fake = \Faker\Factory::create();
  23 + return [
  24 + 'name' => $fake->name,
  25 + 'email' => $fake->email,
  26 + 'pass' => $fake->password(19),
  27 + ];
  28 +
  29 + }
  30 +
  31 + public function testGetUser(){
  32 + $imagineUser = $this->imagineCustomer();
  33 + $this->store->addUser($imagineUser['name'],$imagineUser['email'],$imagineUser['pass']);
  34 + $user = $this->store->getUser($imagineUser['email']);
  35 + $this->assertEquals($user['name'], $imagineUser['name']);
  36 + $this->assertEquals($user['email'], $imagineUser['email']);
  37 + $this->assertEquals($user['pass'], $imagineUser['pass']);
  38 + }
  39 +
  40 + public function testAddUser_ShortPass(){
  41 + $this->setExpectedException('\yii\base\Exception');
  42 + $this->store->addUser('Some Name','collmail@gig.com','ff');
  43 + }
  44 +
  45 + protected function _after()
  46 + {
  47 + }
  48 +
  49 + // tests
  50 +// public function testMe()
  51 +// {
  52 +//
  53 +// }
  54 +}
0 55 \ No newline at end of file
... ...
tests/unit/ValidatorTest.php 0 → 100644
  1 +<?php
  2 +namespace tests\unit;
  3 +use common\components\UserStore;
  4 +
  5 +use common\components\Validator;
  6 +use Yii;
  7 +
  8 +class ValidatorTest extends \Codeception\TestCase\Test
  9 +{
  10 + public function testValidate_FalsePass(){
  11 + $store = $this->getMock('common\components\UserStore');
  12 + $this->validator = new Validator($store);
  13 + $store->expects($this->once())
  14 + ->method('notifyPasswordFailure')
  15 + ->with($this->equalTo("test@emails.com"));
  16 +
  17 + $store->expects($this->any())
  18 + ->method("getUser")
  19 + ->will($this->returnValue([
  20 + "name"=>"fdsfdf",
  21 + "email"=>"test@emails.com",
  22 + "pass"=>"rihfhh"
  23 + ]));
  24 +
  25 + $this->assertFalse($this->validator->validateUser("test@emails.com", "wrong"));
  26 + }
  27 +}
0 28 \ No newline at end of file
... ...