create(\Magento\Integration\Model\Integration::class); $this->_integration = $integration->load('Fixture Integration', 'name'); } /** * Test view page. */ public function testIndexAction() { $this->dispatch('backend/admin/integration/index'); $response = $this->getResponse()->getBody(); $this->assertContains('Integrations', $response); $this->assertEquals( 1, \Magento\TestFramework\Helper\Xpath::getElementsCountForXpath( '//*[@id="integrationGrid"]', $response ) ); } /** * Test creation form. */ public function testNewAction() { $this->dispatch('backend/admin/integration/new'); $response = $this->getResponse()->getBody(); $this->assertEquals('new', $this->getRequest()->getActionName()); $this->assertContains('entry-edit form-inline', $response); $this->assertContains('New Integration', $response); $this->assertEquals( 1, \Magento\TestFramework\Helper\Xpath::getElementsCountForXpath( '//*[@id="integration_properties_base_fieldset"]', $response ) ); } /** * Test update form. */ public function testEditAction() { $integrationId = $this->_integration->getId(); $this->getRequest()->setParam('id', $integrationId); $this->dispatch('backend/admin/integration/edit'); $response = $this->getResponse()->getBody(); $saveLink = 'integration/save/'; $this->assertContains('entry-edit form-inline', $response); $this->assertContains('Edit "' . $this->_integration->getName() . '" Integration', $response); $this->assertContains($saveLink, $response); $this->assertEquals( 1, \Magento\TestFramework\Helper\Xpath::getElementsCountForXpath( '//*[@id="integration_properties_base_fieldset"]', $response ) ); $this->assertEquals( 1, \Magento\TestFramework\Helper\Xpath::getElementsCountForXpath( '//*[@id="integration_edit_tabs_info_section_content"]', $response ) ); } /** * Test saving. */ public function testSaveActionUpdateIntegration() { $integrationId = $this->_integration->getId(); $integrationName = $this->_integration->getName(); $this->getRequest()->setParam('id', $integrationId); $url = 'http://magento.ll/endpoint_url'; $this->getRequest()->setMethod(HttpRequest::METHOD_POST); $this->getRequest()->setPostValue( [ 'name' => $integrationName, 'email' => 'test@magento.com', 'authentication' => '1', 'endpoint' => $url, 'current_password' => Bootstrap::ADMIN_PASSWORD, ] ); $this->dispatch('backend/admin/integration/save'); $this->assertSessionMessages( $this->equalTo(["The integration '{$integrationName}' has been saved."]), \Magento\Framework\Message\MessageInterface::TYPE_SUCCESS ); $this->assertRedirect($this->stringContains('backend/admin/integration/index/')); } /** * Test saving. */ public function testSaveActionNewIntegration() { $url = 'http://magento.ll/endpoint_url'; $integrationName = md5(rand()); $this->getRequest()->setMethod(HttpRequest::METHOD_POST); $this->getRequest()->setPostValue( [ 'name' => $integrationName, 'email' => 'test@magento.com', 'authentication' => '1', 'endpoint' => $url, 'current_password' => Bootstrap::ADMIN_PASSWORD, ] ); $this->dispatch('backend/admin/integration/save'); $this->assertSessionMessages( $this->equalTo(["The integration '{$integrationName}' has been saved."]), \Magento\Framework\Message\MessageInterface::TYPE_SUCCESS ); $this->assertRedirect($this->stringContains('backend/admin/integration/index/')); } }