/**
  * 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);
 }
 /**
  * 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();
 }
Example #8
0
 /**
  * Get integration id.
  *
  * @param Integration $integration
  * @return int|null
  */
 protected function getIntegrationId(Integration $integration)
 {
     $name = $integration->getName();
     $filter = base64_encode('name=' . $integration->getName());
     $url = $_ENV['app_backend_url'] . 'admin/integration/grid/filter/' . $filter;
     $curl = new BackendDecorator(new CurlTransport(), $this->_configuration);
     $curl->write($url);
     $response = $curl->read();
     $curl->close();
     preg_match('~<td.*?>.*?' . $name . '.*?/integration/edit/id/(\\d+)/~siu', $response, $matches);
     return isset($matches[1]) ? $matches[1] : null;
 }
 /**
  * Assert validation error generated when saving integration with invalid email.
  *
  * @param IntegrationNew $integrationNew
  * @param Integration $integration
  * @return void
  */
 public function processAssert(IntegrationNew $integrationNew, Integration $integration)
 {
     $errors = $integrationNew->getIntegrationForm()->getJsErrors("integration_info");
     $emailJsError = false;
     foreach ($errors as $error) {
         if (strpos($error, 'Please enter a valid email address') !== false) {
             $emailJsError = true;
             break;
         }
     }
     \PHPUnit_Framework_Assert::assertTrue($emailJsError, 'Failed to validate email address (' . $integration->getEmail() . ') when saving integration.');
 }
 /**
  * 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];
 }
 /**
  * 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 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.');
 }
Example #13
0
 /**
  * Set integration data to configuration file.
  *
  * @param Integration $integration
  * @return void
  */
 protected function setConfiguration(Integration $integration)
 {
     $fileConfig = MTF_BP . '/etc/config.xml';
     $dom = new \DOMDocument();
     if (!file_exists($fileConfig)) {
         copy(MTF_BP . '/etc/config.xml.dist', $fileConfig);
     }
     $dom->load($fileConfig);
     $webapiToken = (new \DOMXPath($dom))->query('//config/handler/webapi/token')->item(0);
     if ($webapiToken) {
         $webapiToken->nodeValue = $integration->getToken();
     } else {
         $webapi = (new \DOMXPath($dom))->query('//config/handler/webapi')->item(0);
         $webapi->appendChild($dom->createElement('token', $integration->getToken()));
     }
     $dom->save($fileConfig);
     $this->configuration = $this->objectManager->create('Magento\\Mtf\\Config\\DataInterface');
 }
 /**
  * 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.');
 }
 /**
  * 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 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);
 }