/** * 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(); }
/** * 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.'); }
/** * 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); }