/**
  * Assert that success save message is appeared on the Integrations page
  *
  * @param IntegrationIndex $integrationIndexPage
  * @param Integration $integration
  * @param Integration|null $initialIntegration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndexPage, Integration $integration, Integration $initialIntegration = null)
 {
     $name = $initialIntegration !== null && !$integration->hasData('name') ? $initialIntegration->getName() : $integration->getName();
     $expectedMessage = sprintf(self::SUCCESS_SAVE_MESSAGE, $name);
     $actualMessage = $integrationIndexPage->getMessagesBlock()->getSuccessMessage();
     \PHPUnit_Framework_Assert::assertEquals($expectedMessage, $actualMessage, 'Wrong success message is displayed.' . "\nExpected: " . $expectedMessage . "\nActual: " . $actualMessage);
 }
 /**
  * Create Integration Entity test.
  *
  * @param Integration $integration
  * @return void
  */
 public function test(Integration $integration)
 {
     // Steps
     $this->integrationIndexPage->open();
     $this->integrationIndexPage->getGridPageActions()->addNew();
     $this->integrationNewPage->getIntegrationForm()->fill($integration);
     $this->integrationNewPage->getFormPageActions()->saveNew();
 }
 /**
  * Assert that pop-up with resources, that were specified for integration are shown
  * after starting activation of integration
  *
  * @param IntegrationIndex $integrationIndex
  * @param Integration $integration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndex, Integration $integration)
 {
     $fixtureResources = is_array($integration->getResources()) ? $integration->getResources() : [$integration->getResources()];
     $formResources = $integrationIndex->getIntegrationGrid()->getResourcesPopup()->getData();
     $result = $this->verifyResources($formResources['resources'], $fixtureResources);
     \PHPUnit_Framework_Assert::assertEmpty($result, "Integration resources is not correct.\nLog:\n" . $result);
     $integrationIndex->getIntegrationGrid()->getResourcesPopup()->clickAllowButton();
 }
 /**
  * Activate Integration Entity Test.
  *
  * @param Integration $integration
  * @return void
  */
 public function test(Integration $integration)
 {
     // Preconditions
     $integration->persist();
     // Steps
     $filter = ['name' => $integration->getName()];
     $this->integrationIndexPage->open();
     $this->integrationIndexPage->getIntegrationGrid()->searchAndActivate($filter);
 }
 /**
  * Assert that Access tokens was changed correctly after Reauthorize.
  * Checking fields:
  * - Consumer Key;
  * - Consumer Secret;
  * - Access Token;
  * - Access Token Secret.
  *
  * @param IntegrationIndex $integrationIndex
  * @param IntegrationNew $integrationNew
  * @param Integration $integration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndex, IntegrationNew $integrationNew, Integration $integration)
 {
     $filter = ['name' => $integration->getName()];
     $integrationIndex->open();
     $integrationIndex->getIntegrationGrid()->searchAndOpen($filter);
     $actualData = $integrationNew->getIntegrationForm()->getData();
     $errors = $this->checkTokens($actualData, $integration->getData());
     \PHPUnit_Framework_Assert::assertEmpty($errors, "Integration tokens was changed incorrectly.\nLog:\n" . implode(";\n", $errors));
 }
 /**
  * Assert that integration form filled correctly
  *
  * @param IntegrationIndex $integrationIndexPage
  * @param IntegrationNew $integrationNewPage
  * @param Integration $integration
  * @param Integration|null $initialIntegration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndexPage, IntegrationNew $integrationNewPage, Integration $integration, Integration $initialIntegration = null)
 {
     $data = $initialIntegration === null ? $integration->getData() : array_merge($initialIntegration->getData(), $integration->getData());
     $filter = ['name' => $data['name']];
     $integrationIndexPage->open();
     $integrationIndexPage->getIntegrationGrid()->searchAndOpen($filter);
     $formData = $integrationNewPage->getIntegrationForm()->getData();
     $dataDiff = $this->verifyForm($formData, $data);
     \PHPUnit_Framework_Assert::assertEmpty($dataDiff, 'Integration form was filled incorrectly.' . "\nLog:\n" . implode(";\n", $dataDiff));
 }
 /**
  * Create Integration Entity with existing name test.
  *
  * @param Integration $integration
  * @return array
  */
 public function test(Integration $integration)
 {
     // Precondition
     $integration->persist();
     // Steps
     $this->integrationIndexPage->open();
     $this->integrationIndexPage->getGridPageActions()->addNew();
     $this->integrationNewPage->getIntegrationForm()->fill($integration);
     $this->integrationNewPage->getFormPageActions()->saveNew();
     return ['integration' => $integration];
 }
 /**
  * Update Integration Entity test.
  *
  * @param Integration $initialIntegration
  * @param Integration $integration
  * @return void
  */
 public function test(Integration $initialIntegration, Integration $integration)
 {
     // Precondition
     $initialIntegration->persist();
     // Steps
     $filter = ['name' => $initialIntegration->getName()];
     $this->integrationIndexPage->open();
     $this->integrationIndexPage->getIntegrationGrid()->searchAndOpen($filter);
     $this->integrationNewPage->getIntegrationForm()->fill($integration);
     $this->integrationNewPage->getFormPageActions()->save();
 }
 /**
  * Assert that there is no integration's been saved message.
  *
  * @param IntegrationIndex $integrationIndex
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndex)
 {
     $noSuccessMessage = false;
     if ($integrationIndex->getMessagesBlock()->isVisible()) {
         try {
             $integrationIndex->getMessagesBlock()->getSuccessMessages();
         } catch (\PHPUnit_Extensions_Selenium2TestCase_WebDriverException $e) {
             $noSuccessMessage = true;
         }
     } else {
         $noSuccessMessage = true;
     }
     \PHPUnit_Framework_Assert::assertTrue($noSuccessMessage, 'Integration is not saved.');
 }
 /**
  * Assert that pop-up with tokens is shown after clicking on "Allow" button on Resources popup.
  * It contains:
  * - Consumer Key;
  * - Consumer Secret;
  * - Access Token;
  * - Access Token Secret;
  * All fields contain generated values.
  *
  * @param IntegrationIndex $integrationIndex
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndex)
 {
     $errors = [];
     $tokensData = $integrationIndex->getIntegrationGrid()->getTokensPopup()->getData();
     $tokensKeys = array_keys($tokensData);
     $diff = array_diff($this->fields, $tokensKeys);
     if (!empty($diff)) {
         $errors[] = 'Field(s) "' . implode(', ', $diff) . '" is absent in integration tokens.';
     }
     foreach ($tokensData as $key => $value) {
         if (empty($value)) {
             $errors[] = 'Field with key: ' . $key . '" is empty in integration tokens.';
         }
     }
     \PHPUnit_Framework_Assert::assertEmpty($errors, "Integration tokens is not correct.\nLog:\n" . implode(";\n", $errors));
     $integrationIndex->getIntegrationGrid()->getTokensPopup()->clickDoneButton();
 }
 /**
  * Test for Reauthorize tokens for the Integration Entity.
  *
  * @param Integration $integration
  * @return array
  */
 public function test(Integration $integration)
 {
     // Precondition
     $integration->persist();
     $filter = ['name' => $integration->getName()];
     $this->integrationIndex->open();
     $this->integrationIndex->getIntegrationGrid()->searchAndActivate($filter);
     $this->integrationIndex->getIntegrationGrid()->getResourcesPopup()->clickAllowButton();
     $tokens = $this->integrationIndex->getIntegrationGrid()->getTokensPopup()->getData();
     $this->integrationIndex->getIntegrationGrid()->getTokensPopup()->clickDoneButton();
     $integration = $this->fixtureFactory->createByCode('integration', ['data' => array_merge($integration->getData(), $tokens)]);
     // Steps
     $this->integrationIndex->getIntegrationGrid()->searchAndReauthorize($filter);
     $this->integrationIndex->getIntegrationGrid()->getResourcesPopup()->clickReauthorizeButton();
     $this->integrationIndex->getIntegrationGrid()->getTokensPopup()->clickDoneButton();
     return ['integration' => $integration];
 }
 /**
  * Run Lock user when creating new integration test.
  *
  * @param Integration $integration
  * @param int $attempts
  * @param User $customAdmin
  * @param string $configData
  * @return void
  */
 public function test(Integration $integration, $attempts, User $customAdmin, $configData = null)
 {
     $this->configData = $configData;
     // Preconditions
     $this->objectManager->create('Magento\\Config\\Test\\TestStep\\SetupConfigurationStep', ['configData' => $this->configData])->run();
     $customAdmin->persist();
     $this->adminAuthLogin->open();
     $this->adminAuthLogin->getLoginBlock()->fill($customAdmin);
     $this->adminAuthLogin->getLoginBlock()->submit();
     // Steps
     $this->integrationIndexPage->open();
     $this->integrationIndexPage->getGridPageActions()->addNew();
     for ($i = 0; $i < $attempts; $i++) {
         $this->integrationNewPage->getIntegrationForm()->fill($integration);
         $this->integrationNewPage->getFormPageActions()->saveNew();
     }
     // Reload page
     $this->adminAuthLogin->open();
     $this->adminAuthLogin->getLoginBlock()->fill($customAdmin);
     $this->adminAuthLogin->getLoginBlock()->submit();
 }
 /**
  * Assert that success delete message is appeared on the Integrations page
  *
  * @param IntegrationIndex $integrationIndexPage
  * @param Integration $integration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndexPage, Integration $integration)
 {
     $expectedMessage = sprintf(self::SUCCESS_DELETE_MESSAGE, $integration->getName());
     $actualMessage = $integrationIndexPage->getMessagesBlock()->getSuccessMessages();
     \PHPUnit_Framework_Assert::assertEquals($expectedMessage, $actualMessage, 'Wrong success message is displayed.' . "\nExpected: " . $expectedMessage . "\nActual: " . $actualMessage);
 }
 /**
  * Assert that an error message is displayed on the Integration page in case current user password is incorrect.
  *
  * @param IntegrationIndex $integrationIndexPage
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndexPage)
 {
     $actualMessage = $integrationIndexPage->getMessagesBlock()->getErrorMessage();
     \PHPUnit_Framework_Assert::assertEquals(self::ERROR_MESSAGE, $actualMessage, 'Wrong error message is displayed.' . "\nExpected: " . self::ERROR_MESSAGE . "\nActual: " . $actualMessage);
 }
 /**
  * Assert error message is displayed in message block.
  *
  * @param IntegrationIndex $integrationIndexPage
  * @param Integration $integration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndexPage, Integration $integration)
 {
     $expectedMessage = sprintf(self::ERROR_DUPLICATE_INTEGRATION_NAME, $integration->getName());
     $actualMessage = $integrationIndexPage->getMessagesBlock()->getErrorMessages();
     \PHPUnit_Framework_Assert::assertEquals($expectedMessage, $actualMessage, 'Wrong error message is displayed.' . "\nExpected: " . $expectedMessage . "\nActual: " . $actualMessage);
 }
 /**
  * Assert that Integration is not presented in grid and cannot be found using name
  *
  * @param IntegrationIndex $integrationIndexPage
  * @param Integration $integration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndexPage, Integration $integration)
 {
     $filter = ['name' => $integration->getName()];
     $integrationIndexPage->open();
     \PHPUnit_Framework_Assert::assertFalse($integrationIndexPage->getIntegrationGrid()->isRowVisible($filter), 'Integration \'' . $filter['name'] . '\' is present in Integration grid.');
 }
 /**
  * Assert that success reauthorize message is appeared on the Integrations page.
  *
  * @param IntegrationIndex $integrationIndexPage
  * @param Integration $integration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndexPage, Integration $integration)
 {
     \PHPUnit_Framework_Assert::assertEquals(sprintf(self::SUCCESS_REAUTHORIZE_MESSAGE, $integration->getName()), $integrationIndexPage->getMessagesBlock()->getSuccessMessage(), "Wrong success message is displayed.");
 }
 /**
  * Assert that data in grid on Integrations page according to fixture by name field
  *
  * @param IntegrationIndex $integrationIndexPage
  * @param Integration $integration
  * @param Integration|null $initialIntegration
  * @return void
  */
 public function processAssert(IntegrationIndex $integrationIndexPage, Integration $integration, Integration $initialIntegration = null)
 {
     $filter = ['name' => $initialIntegration !== null && !$integration->hasData('name') ? $initialIntegration->getName() : $integration->getName()];
     $integrationIndexPage->open();
     \PHPUnit_Framework_Assert::assertTrue($integrationIndexPage->getIntegrationGrid()->isRowVisible($filter), 'Integration \'' . $filter['name'] . '\' is absent in Integration grid.');
 }