<?php /** @type \Codeception\Scenario $scenario */ $scenario->groups('front', 'settings'); $I = new WebGuy\MemberSteps($scenario); $I->am('admin'); $I->wantTo('add my friend as a new user'); $random = md5(microtime()); $I->autoLogin(); $I->amOnPage(\UsersDashboardPage::$url); $I->seeCurrentUrlEquals(\UsersDashboardPage::$url); $I->click(\UsersDashboardPage::$createNewButtonSelector); $I->seeCurrentUrlEquals(\CreateNewUserPage::$url); $I->fillField(\CreateNewUserPage::$usernameFieldSelector, $random); $I->click(\CreateNewUserPage::$submitButtonSelector); $I->seeCurrentUrlEquals(\CreateNewUserPage::$url); $I->seeAlert('user.creation.fail'); // testing validation and data binding $I->seeElement(\CreateNewUserPage::$passwordFieldSelector . '.error'); $I->seeElement(\CreateNewUserPage::$repeatPasswordFieldSelector . '.error'); $I->dontSeeElement(\CreateNewUserPage::$usernameFieldSelector . '.error'); $I->seeInField(\CreateNewUserPage::$usernameFieldSelector, $random); $I->fillField(\CreateNewUserPage::$passwordFieldSelector, $random); $I->click(\CreateNewUserPage::$submitButtonSelector); $I->seeCurrentUrlEquals(\CreateNewUserPage::$url); $I->seeAlert('user.creation.fail'); $I->seeInField(\CreateNewUserPage::$usernameFieldSelector, $random); $I->seeInField(\CreateNewUserPage::$passwordFieldSelector, $random); $I->seeElement(\CreateNewUserPage::$repeatPasswordFieldSelector . '.error'); $I->dontSeeElement(\CreateNewUserPage::$passwordFieldSelector . '.error'); $I->dontSeeElement(\CreateNewUserPage::$usernameFieldSelector . '.error');
<?php use Codeception\Util\Fixtures; /** @type \Codeception\Scenario $scenario */ $scenario->groups('auth', 'front'); $i = new \WebGuy\MemberSteps($scenario); $i->am('admin'); $i->wantTo('check auth mechanism'); $i->expect('login failure on invalid data and login success on valid data'); $i->logout(); $i->seeCurrentUrlEquals(\BlogFeedPage::$url); $i->seeAlert('auth.logout.guestAttempt'); $i->seeElement(\FeedPage::$loginLink); $i->click('link.login'); $i->seeCurrentUrlEquals(\LoginPage::$url); $i->login(null, null); $i->seeAlert('auth.login.fail'); $i->login('missing username', 'nonexisting password'); $i->seeAlert('auth.login.fail'); $i->autoLogin(); $i->see('auth.login.greeting'); $i->seeCurrentUrlEquals(\AdminPanelPage::$url); $i->amOnPage(\LoginPage::$url); $i->seeCurrentUrlEquals(\AdminPanelPage::$url); $i->seeAlert('auth.login.alreadyAuthorized'); $i->seeLink('link.logout'); $i->click('link.logout'); $i->seeCurrentUrlEquals(\BlogFeedPage::$url); //$i->canSee('You have successfully logged out');
<?php /** @type \Codeception\Scenario $scenario */ $scenario->groups('front', 'posts', 'cache'); $I = new WebGuy\MemberSteps($scenario); $I->am('Web developer'); $I->wantTo('Test cache system by writing post and tweaking service settings'); $I->expectTo('See changes instantly'); $I->autoLogin(); // if any other category is modified but the top one, categories may change // positions in sidebar, and this behavior would be much harder to test. $categoryNumber = 0; $I->flushCache(); $stats = \ServiceStatusPage::of($I)->grabStats(); $totalPostsNumber = $stats['totalPosts']; $postsTodayNumber = $stats['postsToday']; $commentsTodayNumber = $stats['commentsToday']; $totalCommentsNumber = $stats['totalComments']; $I->amOnPage(\BlogFeedPage::$url); $categoryTitle = \BlogFeedPage::of($I)->grabCategoryTitle($categoryNumber); $categoryPostCount = \BlogFeedPage::of($I)->grabCategoryPostCount($categoryNumber); $posts = array(); // there were issues with stall cache after series of fast posts, so this // construct verifies that it doesn't happen again for ($i = 0; $i < 5; $i++) { $title = md5(time()) . $i; $I->amOnPage(\BlogFeedPage::$url); $I->dontSee($title); $I->writePost($title, 'superpost is superposted', null, $categoryTitle); $elemId = $I->grabAttributeFrom(\PostPage::$postSelector, 'id'); preg_match('#\\d+#', $elemId, $matches);