/**
  * @param FunctionalTester $I
  * @param Project          $project
  * @param array            $params
  *
  * @return void
  */
 protected function _exportIssues(FunctionalTester $I, Project $project, array $params)
 {
     $I->amOnAction('ProjectController@getIndex', ['project' => $project]);
     $uri = $I->getApplication()->url->action('ProjectController@postExportIssues', ['project' => $project]);
     $I->sendAjaxPostRequest($uri, array_merge(['_token' => csrf_token(), 'keyword' => '', 'assignto' => '', 'tags' => ''], $params));
     $I->seeResponseCodeIs(200);
 }
Exemplo n.º 2
0
 public function tryingToCreateWithEmptyContent(FunctionalTester $I)
 {
     $I->disableMiddleware();
     $I->amOnRoute('microblog.home');
     $I->sendAjaxPostRequest(route('microblog.save'), array('text' => ''));
     // POST
     $I->seeResponseCodeIs(422);
 }
 /**
  * @test
  * it should insert a comment when hitting the endpoint with valid params
  */
 public function it_should_insert_a_comment_when_hitting_the_endpoint_with_valid_params(\FunctionalTester $I)
 {
     $post_id = $I->havePostInDatabase(['post_title' => 'Some post']);
     $I->amOnPage('/');
     $wp_rest_nonce = $I->grabValueFrom('input[name="rest_nonce"]');
     $I->haveHttpHeader('X-WP-Nonce', $wp_rest_nonce);
     $I->sendAjaxPostRequest('/wp-json/idlikethis/v1/button-click', ['post_id' => $post_id, 'content' => 'Some Content']);
     $I->seeResponseCodeIs(200);
     $I->seeCommentInDatabase(['comment_post_ID' => $post_id]);
 }
 /**
  * @test
  * it should reset comments when post id is valid
  */
 public function it_should_reset_comments_when_post_id_is_valid(\FunctionalTester $I)
 {
     $post_id = $I->havePostInDatabase();
     $comment_ids = $I->haveManyCommentsInDatabase(3, $post_id, ['comment_type' => 'idlikethis']);
     $I->loginAsAdmin();
     $I->amEditingPostWithId($post_id);
     $wp_rest_nonce = $I->grabValueFrom('input[name="rest_nonce"]');
     $I->haveHttpHeader('X-WP-Nonce', $wp_rest_nonce);
     $I->sendAjaxPostRequest('/wp-json/idlikethis/v1/admin/reset-all', ['post_id' => $post_id]);
     $I->seeResponseCodeIs(200);
     foreach ($comment_ids as $comment_id) {
         $I->dontSeeCommentInDatabase(['comment_ID' => $comment_id, 'comment_post_ID' => $post_id]);
     }
 }
Exemplo n.º 5
0
 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);
 }
 /**
  * @test
  * it should consolidate comments when post id is valid and user can edit posts
  */
 public function it_should_consolidate_comments_when_post_id_is_valid_and_user_can_edit_posts(\FunctionalTester $I)
 {
     $post_id = $I->havePostInDatabase();
     $comment_ids = $I->haveManyCommentsInDatabase(3, $post_id, ['comment_type' => 'idlikethis', 'comment_content' => '{{n}} - foo']);
     $I->loginAsAdmin();
     $I->amEditingPostWithId($post_id);
     $wp_rest_nonce = $I->grabValueFrom('input[name="rest_nonce"]');
     $I->haveHttpHeader('X-WP-Nonce', $wp_rest_nonce);
     $I->sendAjaxPostRequest('/wp-json/idlikethis/v1/admin/consolidate-all', ['post_id' => $post_id]);
     $I->seeResponseCodeIs(200);
     foreach ($comment_ids as $comment_id) {
         $I->dontSeeCommentInDatabase(['comment_ID' => $comment_id, 'comment_post_ID' => $post_id]);
     }
     $I->seePostMetaInDatabase(['post_id' => $post_id, 'meta_key' => '_idlikethis_votes', 'meta_value' => serialize(['foo' => 3])]);
 }
Exemplo n.º 7
0
 /**
  * @param FunctionalTester $I
  *
  * @actor FunctionalTester
  *
  * @return void
  */
 public function updateNote(FunctionalTester $I)
 {
     $I->am('Admin User');
     $I->wantTo('edit an existing note in the project');
     $admin = $I->createUser(1, 4);
     $I->amLoggedAs($admin);
     $note = $I->createNote(1, $admin);
     $project = $note->project;
     $I->amOnAction('ProjectController@getNotes', ['project' => $project]);
     $I->see('Note 1', '//li[@id="note' . $note->id . '"]');
     $uri = $I->getApplication()->url->action('ProjectController@postEditNote', ['project' => $project, 'note' => $note]);
     $I->sendAjaxPostRequest($uri, ['body' => 'note one updated', '_token' => csrf_token()]);
     $I->seeResponseCodeIs(200);
     $I->amOnAction('ProjectController@getNotes', ['project' => $project]);
     $I->see('note one updated', '//li[@id="note' . $note->id . '"]');
 }
<?php

$I = new FunctionalTester($scenario);
$I->am('HRis User');
$I->wantTo('Delete Qualifications(Work Experience). [Positive Test]');
# Authorize User
$I->amOnPage('/auth/login');
$I->fillField('email', '*****@*****.**');
$I->fillField('password', 'retardko');
$I->click('Login');
# Dashboard
$I->seeCurrentUrlEquals('/dashboard');
# Profile
$I->click('Profile');
$I->seeCurrentUrlEquals('/profile/personal-details');
# Qualifications
$I->click('Qualifications');
$I->seeCurrentUrlEquals('/profile/qualifications');
# Delete record
$I->see('Tested');
$id = $I->grabAttributeFrom('button[title=Edit]', 'id');
$token = $I->grabAttributeFrom('input[name=_token]', 'value');
$I->fillField('input[name=work_experience_id]', $id);
$I->sendAjaxPostRequest('/ajax/profile/qualifications/work-experience', ['id' => $id, '_token' => $token, '_method' => 'DELETE']);
// POST
$I->dontSee('Tested');
Exemplo n.º 9
0
<?php

$I = new FunctionalTester($scenario);
$I->am('HRis User');
$I->wantTo('Delete My Job Details. [Positive Test]');
# Authorize User
$I->amOnPage('/auth/login');
$I->fillField('email', '*****@*****.**');
$I->fillField('password', 'retardko');
$I->click('Login');
# Dashboard
$I->seeCurrentUrlEquals('/dashboard');
# Profile
$I->click('Profile');
$I->seeCurrentUrlEquals('/profile/personal-details');
# Job
$I->click('Job');
$I->seeCurrentUrlEquals('/profile/job');
# Delete Job record
$I->click('Modify');
$I->seeCurrentUrlEquals('/profile/job/edit');
$I->see('Sr Web Designer');
$id = $I->grabAttributeFrom('button[title=Delete]', 'id');
$token = $I->grabAttributeFrom('input[name=_token]', 'value');
$I->sendAjaxPostRequest('/ajax/profile/job/edit', ['id' => $id, '_token' => $token, '_method' => 'DELETE']);
// POST
$I->dontSee('Test Suite');
<?php

$I = new FunctionalTester($scenario);
$I->am('HRis User');
$I->wantTo('Delete Emergency Contact. [Positive Test]');
# Authorize User
$I->amOnPage('/auth/login');
$I->fillField('email', '*****@*****.**');
$I->fillField('password', 'retardko');
$I->click('Login');
# Dashboard
$I->seeCurrentUrlEquals('/dashboard');
# Profile
$I->click('Profile');
$I->seeCurrentUrlEquals('/profile/personal-details');
# Emergency Contacts
$I->click('Emergency Contacts');
$I->seeCurrentUrlEquals('/profile/emergency-contacts');
# Delete record
$I->see('Tested  Suited');
$id = $I->grabAttributeFrom('button[title=Delete]', 'id');
$token = $I->grabAttributeFrom('input[name=_token]', 'value');
$I->fillField('input[name=emergency_contact_id]', $id);
$I->sendAjaxPostRequest('/ajax/profile/emergency-contacts', ['id' => $id, '_token' => $token, '_method' => 'DELETE']);
// POST
$I->dontSee('Tested  Suited');
Exemplo n.º 11
0
 /**
  * @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->am('HRis User');
$I->wantTo('Delete Dependent. [Positive Test]');
# Authorize User
$I->amOnPage('/auth/login');
$I->fillField('email', '*****@*****.**');
$I->fillField('password', 'retardko');
$I->click('Login');
# Dashboard
$I->seeCurrentUrlEquals('/dashboard');
# Profile
$I->click('Profile');
$I->seeCurrentUrlEquals('/profile/personal-details');
# Dependents
$I->click('Dependents');
$I->seeCurrentUrlEquals('/profile/dependents');
# Delete record
$I->see('Tested  Suited');
$id = $I->grabAttributeFrom('button[title=Edit]', 'id');
$I->click("button[title=Edit][id={$id}]");
$id = $I->grabAttributeFrom('button[title=Delete]', 'id');
$token = $I->grabAttributeFrom('input[name=_token]', 'value');
$I->click("button[title=Delete][id={$id}]");
$I->fillField('input[name=dependent_id]', $id);
$I->sendAjaxPostRequest('/ajax/profile/dependents', ['id' => $id, '_token' => $token, '_method' => 'DELETE']);
// POST
$I->dontSee('Tested  Suited');
Exemplo n.º 13
0
 /**
  * @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');
 }
Exemplo n.º 14
0
 /**
  * @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);
 }