public function requireAuthenticationForRoute(FunctionalTester $I) { $I->haveEnabledFilters(); $I->amOnPage('/secure'); $I->seeCurrentUrlEquals('/auth/login'); $I->see('Login'); $I->amLoggedAs(User::create($this->userAttributes)); $I->amOnPage('/secure'); $I->seeResponseCodeIs(200); $I->see('Hello World'); }
public function requireAuthenticationForRoute(FunctionalTester $I) { $I->dontSeeAuthentication(); $I->amOnPage('/secure'); $I->seeCurrentUrlEquals('/auth/login'); $I->see('Login'); $I->amLoggedAs(User::firstOrNew($this->userAttributes)); $I->amOnPage('/secure'); $I->seeResponseCodeIs(200); $I->see('Hello World'); }
/** * @param FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function deleteUser(FunctionalTester $I) { $I->am('Admin User'); $I->wantTo('delete an existing user details'); $admin = $I->createUser(1, 4); $user = $I->createUser(2, 1); $user1 = $I->createUser(3, 2); $I->amLoggedAs($admin); $I->amOnAction('Administration\\UsersController@getDelete', ['user' => $user]); $I->seeCurrentActionIs('Administration\\UsersController@getIndex'); $I->dontSee($user->fullname); $I->see($user1->fullname); }
public function viewInvalidNote(FunctionalTester $I) { $I->am('Normal User'); $I->expectTo('see 401 error with mismatch note route parameters.'); $admin = $I->createUser(1, 4); // admin $project1 = $I->createProject(1, [$admin]); $project2 = $I->createProject(2, [$admin]); $note1 = $I->createNote(1, $admin, $project1); $I->amLoggedAs($admin); $I->amOnAction('ProjectController@getNotes', ['project' => $project1]); $uri = $I->getApplication()->url->action('ProjectController@postEditNote', ['project' => $project2, 'note' => $note1], false); $I->sendAjaxPostRequest($uri, ['body' => 'note one updated', '_token' => csrf_token()]); $I->seeResponseCodeIs(401); }
/** * @param FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function deleteProject(FunctionalTester $I) { $I->am('Admin User'); $I->wantTo('delete an existing project details'); $project = $I->createProject(1); $admin = $I->createUser(1, 4); $I->amLoggedAs($admin); $I->amOnAction('ProjectController@getEdit', ['project' => $project]); $I->click(trans('tinyissue.delete_something', ['name' => $project->name])); $I->seeCurrentActionIs('ProjectsController@getIndex'); $I->dontSeeLink('Project 1'); $I->amOnAction('ProjectsController@getIndex', ['status' => Project::STATUS_ARCHIVED]); $I->dontSeeLink('Project 1'); $I->dontSeeRecord($project->getTable(), ['name' => 'Project 1']); }
/** * @param FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function updateTag(FunctionalTester $I) { $I->am('Admin User'); $I->wantTo('edit an existing tag'); $tag = (new Tag())->where('group', '=', false)->get()->random(1); $data = ['name' => 'tag updated']; $tagName = $tag->name; $I->amLoggedAs($I->createUser(1, 4)); $I->amOnAction('Administration\\TagsController@getIndex'); $I->click($this->_editTagSelector($tagName)); $I->seeCurrentActionIs('Administration\\TagsController@getEdit', ['tag' => $tag]); $I->submitForm('form', $data); $I->amOnAction('Administration\\TagsController@getIndex'); $I->see($data['name'], $this->_editTagSelector($data['name'])); $I->dontSee($data['name'], $this->_editTagSelector($tagName)); }
public function createATicketSuccessfully(FunctionalTester $I) { $I->amLoggedAs(User::where('email', '*****@*****.**')->first()); $I->seeAuthentication(); $I->amOnPage('/ticket/create'); $I->see('Create Ticket', 'h1'); $I->fillField('customer_name', 'Evie Martell'); $I->fillField('customer_address', 'Luton, LU1 9AB'); $I->fillField('customer_tel', '07710999888'); $I->fillField('customer_email', '*****@*****.**'); $I->selectOption('select[name=type]', 'Fault'); $I->selectOption('select[name=category_id]', '1'); $I->fillField('post_serial', '2997'); $I->fillField('description', 'Testing the post fault'); $I->seeAuthentication(); $I->click('Create'); $I->see('Ticket created'); }
/** * @param FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function assignToUser(FunctionalTester $I) { $I->am('Admin User'); $I->wantTo('not be able to assign an issue to a user'); $admin = $I->createUser(1, 4); $developer1 = $I->createUser(2, 2); // developer $I->amLoggedAs($admin); $project = $I->createProject(1, [$developer1]); $issue = $I->createIssue(1, $admin, null, $project); $I->amOnAction('Project\\IssueController@getIndex', ['project' => $project, 'issue' => $issue]); $I->dontSee($developer1->fullname, '.assigned-to .currently_assigned'); $uri = $I->getApplication()->url->action('Project\\IssueController@postAssign', ['project' => $project]); $I->sendAjaxPostRequest($uri, ['user_id' => $developer1->id, '_token' => csrf_token()]); $I->comment($I->getResponseContent()); $I->amOnAction('Project\\IssueController@getIndex', ['project' => $project, 'issue' => $issue]); $I->see($developer1->fullname, '.assigned-to .currently_assigned'); }
/** * @param FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function deleteNote(FunctionalTester $I) { $I->am('Admin User'); $I->wantTo('delete an existing note from a project'); $admin = $I->createUser(1, 4); $I->amLoggedAs($admin); $project = $I->createProject(1); $note1 = $I->createNote(1, $admin, $project); $note2 = $I->createNote(2, $admin, $project); $I->amOnAction('ProjectController@getNotes', ['project' => $project]); $I->see('Note 1', '//li[@id="note' . $note1->id . '"]'); $I->see('Note 2', '//li[@id="note' . $note2->id . '"]'); $uri = $I->getApplication()->url->action('ProjectController@getDeleteNote', ['project' => $project, 'note' => $note2]); $I->sendAjaxGetRequest($uri); $I->seeResponseCodeIs(200); $I->amOnAction('ProjectController@getNotes', ['project' => $project]); $I->see('Note 1', '//li[@id="note' . $note1->id . '"]'); $I->dontSee('Note 2', '//li[@id="note' . $note2->id . '"]'); }
/** * @param FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function deleteComment(FunctionalTester $I) { $I->am('Developer User'); $I->wantTo('delete a comment from an issue'); $admin = $I->createUser(2, 4); $I->amLoggedAs($admin); $project = $I->createProject(1, [$admin]); $issue = $I->createIssue(1, $admin, $admin, $project); $comment1 = $I->createComment(1, $admin, $issue); $comment2 = $I->createComment(2, $admin, $issue); $I->amOnAction('Project\\IssueController@getIndex', ['project' => $project, 'issue' => $issue]); $I->see($comment1->comment, '#comment' . $comment1->id . ' .content'); $I->see($comment2->comment, '#comment' . $comment2->id . ' .content'); $uri = $I->getApplication()->url->action('Project\\IssueController@getDeleteComment', ['comment' => $comment1]); $I->sendAjaxGetRequest($uri); $I->seeResponseCodeIs(200); $I->amOnAction('Project\\IssueController@getIndex', ['project' => $project, 'issue' => $issue]); $I->dontSee($comment1->comment); $I->see($comment2->comment); }
public function memberCanReturnBox(FunctionalTester $I) { $I->am('a member'); $I->wantTo('make sure I can return a box I own'); //Load and login a known member $user = User::find(1); $I->amLoggedAs($user); //Setup a box a already claimed $box = \BB\Entities\StorageBox::first(); $box->user_id = $user->id; $box->save(); $I->amOnPage('/storage_boxes'); //Make sure the db is correct $I->seeInDatabase('storage_boxes', ['user_id' => $user->id]); //The page should have our name next to the claimed box $I->see($user->name); $I->click('Return Box'); //We should be gone from the DB $I->dontSeeInDatabase('storage_boxes', ['user_id' => $user->id]); $I->cantSee($user->name); }
/** * @param FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function viewOverview(FunctionalTester $I) { $I->am('Admin User'); $I->wantTo('To view administration overview page'); $admin = $I->createUser(1, 4); $project1 = $I->createProject(1); $project2 = $I->createProject(2); $project2->status = Tinyissue\Model\Project::STATUS_ARCHIVED; $project2->save(); $I->createProject(3); $I->createIssue(1, $admin, null, $project1); $I->createIssue(2, $admin, null, $project1); $issue3 = $I->createIssue(3, $admin, null, $project1); $issue3->changeStatus(Project\Issue::STATUS_CLOSED, $admin); $I->amLoggedAs($admin); $I->amOnAction('HomeController@getIndex'); $I->click(trans('tinyissue.administration')); $I->seeCurrentActionIs('AdministrationController@getIndex'); $I->see('1', '//li[@class="list-group-item" and text()[contains(.,\'' . trans('tinyissue.total_users') . '\')]]/span'); $I->see('2', '//li[@class="list-group-item" and text()[contains(.,\'' . trans('tinyissue.active_projects') . '\')]]/span'); $I->see('1', '//li[@class="list-group-item" and text()[contains(.,\'' . trans('tinyissue.archived_projects') . '\')]]/span'); $I->see('2', '//li[@class="list-group-item" and text()[contains(.,\'' . trans('tinyissue.open_issues') . '\')]]/span'); $I->see('1', '//li[@class="list-group-item" and text()[contains(.,\'' . trans('tinyissue.closed_issues') . '\')]]/span'); }
/** * @param FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function removeUserFromProject(FunctionalTester $I) { $I->am('Admin User'); $I->wantTo('not be able to remove user to a project'); $admin = $I->createUser(1, 4); $developer1 = $I->createUser(2, 2); // developer $I->amLoggedAs($admin); $project = $I->createProject(1, [$developer1]); $I->amOnAction('ProjectController@getIndex', ['project' => $project]); $I->see($developer1->fullname, '#project-user' . $developer1->id); $uri = $I->getApplication()->url->action('ProjectController@postUnassign', ['project' => $project]); $I->sendAjaxPostRequest($uri, ['user_id' => $developer1->id, '_token' => csrf_token()]); $I->seeResponseCodeIs(200); $I->amOnAction('ProjectController@getIndex', ['project' => $project]); $I->dontSee($developer1->fullname, '#project-user' . $developer1->id); }
<?php $I = new FunctionalTester($scenario); $I->amLoggedAs(['username' => 'crist_lopez', 'password' => 'testing1234']); $I->seeAuthentication(); $I->wantTo('change my account password'); $I->amOnPage('/dashboard'); $I->click('Profile'); $I->see('My Profile'); $I->click('(Change Password)'); $I->see('Account Details'); $I->fillField('old_password', 'testing1234'); $I->fillField('password', 'testing123'); $I->fillField('password', 'testing123'); $I->click('Submit'); $password = Hash::make('testing123'); $I->seeRecord('accounts', ['username' => 'crist_lopez', 'password' => $password]);
<?php $I = new FunctionalTester($scenario); $I->amLoggedAs(['username' => 'crist_lopez', 'password' => '123456']); $I->seeAuthentication(); $I->wantTo('create an account for a BCD employee'); $username = '******'; $password = '******'; $password_again = 'testing1234'; $first_name = 'J. Richards'; $middle_name = 'Testing'; $last_name = 'Soriano'; $birthdate = '07/04/1965'; $address = 'Greater Manila, Quezon City'; $email = '*****@*****.**'; $mobile = '09234545432'; $department = 'D-DIGI'; $I->amOnPage('/employees/create'); $I->see('Add Employee Record'); $I->fillField('username', $username); $I->fillField('password', $password); $I->fillField('password_again', $password); $I->fillField('first_name', $first_name); $I->fillField('middle_name', $middle_name); $I->fillField('last_name', $last_name); $I->fillField('birthdate', $birthdate); $I->fillField('address', $address); $I->fillField('email', $email); $I->fillField('mobile', $mobile); $I->fillField('department', $department); $I->click('Submit');
public function _before(FunctionalTester $I) { $this->user = User::first(); $I->amLoggedAs($this->user); }
/** * @param FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function viewIssues(FunctionalTester $I) { $I->am('Developer User'); $I->wantTo('view issues assigned to logged user in all projects'); $admin = $I->createUser(1, 4); $developer1 = $I->createUser(2, 2); $I->amLoggedAs($developer1); $project1 = $I->createProject(1, [$developer1]); $issue1 = $I->createIssue(1, $admin, $developer1, $project1); $issue2 = $I->createIssue(2, $admin, $developer1, $project1); $issue3 = $I->createIssue(3, $developer1, $developer1, $project1); $project2 = $I->createProject(2, [$developer1]); $issue4 = $I->createIssue(4, $admin, $developer1, $project2); $issue5 = $I->createIssue(5, $admin, $developer1, $project2); $issue6 = $I->createIssue(6, $admin, null, $project2); $I->amOnAction('HomeController@getIndex'); $I->click(trans('tinyissue.your_issues')); $I->seeLink($issue1->title); $I->seeLink($issue2->title); $I->seeLink($issue3->title); $I->seeLink($issue4->title); $I->seeLink($issue5->title); $I->dontSeeLink($issue6->title); }
<?php $I = new FunctionalTester($scenario); $I->expectTo('have a usere in the database'); $I->haveRecord('users', ['username' => 'verem', 'password' => 'danverem', 'email' => '*****@*****.**', 'profile_state' => 0]); $I->expectTo('have a logged in user'); $user = $I->grabRecord('users', ['username' => 'verem']); $I->amLoggedAs(['username' => $user->username, 'id' => $user->id, 'password' => $user->password]); $I->wantTo('test if chops is posting to database'); $I->amOnAction('ChopsController@create'); $I->seeInCurrentUrl('/create'); $I->see('What\'s that special meal you just ate today'); $I->fillField('name', 'edikaikong'); $I->attachFile('image', 'julia.jpeg'); $I->fillField('about', 'This food is the best dish in the country'); $I->click('submitButton'); $I->seeInCurrentUrl('/chops');
<?php $I = new FunctionalTester($scenario); $I->am('a guest'); $I->wantTo('Register as a New User on LAZ'); $I->amOnPage('/register'); $I->seeCurrentUrlEquals('/register'); $I->fillField('_dob', '01/01/1990'); $I->fillField('zip', '11226'); $I->fillField('username', 'JonDoe'); $I->fillField('email', '*****@*****.**'); $I->fillField('password', 'demoLog'); $I->fillField('password_confirmation', 'demoLog'); $I->click('Register'); $I->amLoggedAs(['email' => '*****@*****.**', 'password' => 'password']); $I->seeAuthentication(); $I->amOnPage('/home');
public function _before(FunctionalTester $I) { $email = 'admin+' . str_random(8) . '@stellardestiny.online'; $I->haveRecord('users', ['name' => 'admin', 'email' => $email, 'status' => 1, 'password' => bcrypt('password'), 'created_at' => new DateTime(), 'updated_at' => new DateTime()]); $I->amLoggedAs(['email' => $email, 'password' => 'password']); }
/** * @param FunctionalTester $I * @param string|array $action * @param string $expectTo * * @return void */ protected function _cantAccessPage(FunctionalTester $I, $action, $expectTo) { $action = is_array($action) ? $action : [$action]; $I->am('Developer User'); $I->expectTo('not be able to ' . $expectTo); $I->amLoggedAs($I->createUser(1, 2)); call_user_func_array([$I, 'amOnAction'], $action); $I->seeResponseCodeIs(401); }
<?php use BB\Entities\User; $I = new FunctionalTester($scenario); $I->am('member'); $I->wantTo('confirm I cant create manual payments'); //Load and login a known member $user = User::find(1); $I->amLoggedAs($user); $I->sendPost('account/' . $user->id . '/payment', ['reason' => 'door-key', 'source' => 'manual', 'amount' => 5]); $I->cantSeeResponseCodeIs(200); $I->cantSeeResponseCodeIs(201);
/** * @param FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function removeAttachment(FunctionalTester $I) { $I->am('Manager User'); $I->wantTo('remove an attachment from a project issue comments'); $fileName = 'upload1.txt'; $manager = $I->createUser(1, 3); $I->amLoggedAs($manager); $issue = $I->createIssue(1, $manager); $project = $issue->project; $I->amOnAction('Project\\IssueController@getIndex', ['project' => $project, 'issue' => $issue]); $uploadToken = $I->grabValueFrom('//form/input[@name="upload_token"]'); $uri = $I->getApplication()->url->action('Project\\IssueController@postUploadAttachment', ['project' => $project]); $I->submitFormWithFileToUri('.new-comment form', $uri, ['upload' => $fileName], ['comment' => 'Comment 1']); $attachment = $issue->comments->first()->attachments->first(); $I->amOnAction('Project\\IssueController@getDownloadAttachment', ['project' => $project, 'issue' => $issue, 'attachment' => $attachment]); $I->seeResponseCodeIs(200); $I->amOnAction('Project\\IssueController@getIndex', ['project' => $project, 'issue' => $issue]); $I->seeElement('.attachments a', ['title' => $fileName]); $uri = $I->getApplication()->url->action('Project\\IssueController@postRemoveAttachment', ['project' => $project]); $I->sendAjaxPostRequest($uri, ['_token' => csrf_token(), 'upload_token' => $uploadToken, 'filename' => $fileName]); $I->amOnAction('Project\\IssueController@getIndex', ['project' => $project, 'issue' => $issue]); $I->dontSeeElement('.attachments a', ['title' => $fileName]); $I->amOnAction('Project\\IssueController@getDisplayAttachment', ['project' => $project, 'issue' => $issue, 'attachment' => $attachment]); $I->seeResponseCodeIs(404); }
<?php $I = new FunctionalTester($scenario); $I->wantTo('create a currency without data'); $I->am('a Administrator user'); $I->dontSeeAuthentication(); $I->amLoggedAs(['email' => '*****@*****.**', 'password' => 'admin']); $I->seeAuthentication(); //When $I->amOnPage('/settings/currency'); //And $I->see('Create'); $I->click('Create'); //Then $I->seeCurrentUrlEquals('/settings/currency/create'); //When $form = ['name' => '', 'symbol' => '']; //And $I->submitForm('//form', $form, 'Create'); //Then $I->seeFormErrorMessage('name', 'The name field is required.'); //
/** * @param \FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function cantCreateUser(FunctionalTester $I) { $I->am('Manager User'); $I->expectTo('not be able to create new user'); $I->amLoggedAs($I->createUser(1, 3)); $I->amOnAction('Administration\\UsersController@getAdd'); $I->seeResponseCodeIs(401); }
/** * @param FunctionalTester $I * * @actor FunctionalTester * * @return void */ public function closeIssue(FunctionalTester $I) { $I->am('Developer User'); $I->wantTo('close an opened issue'); $admin = $I->createUser(1, 4); $developer1 = $I->createUser(2, 2); // developer $I->amLoggedAs($admin); $project = $I->createProject(1, [$developer1]); $I->amOnAction('Project\\IssueController@getNew', ['project' => $project]); $issue = $I->createIssue(1, $admin, $developer1, $project); $I->amOnAction('Project\\IssueController@getIndex', ['project' => $project, 'issue' => $issue]); $I->click(trans('tinyissue.close_issue'), '.close-issue'); $I->seeLink(trans('tinyissue.reopen_issue')); $I->click(trans('tinyissue.reopen_issue')); $I->dontSeeLink(trans('tinyissue.reopen_issue')); $I->seeLink(trans('tinyissue.close_issue')); }