diff --git a/dev/tests/functional/composer.json b/dev/tests/functional/composer.json index cef145167860c8ebad9695d870b6cc73580e47f3..e4a9bd10fa65832e7fdc4ae01f10578056b55a47 100644 --- a/dev/tests/functional/composer.json +++ b/dev/tests/functional/composer.json @@ -1,6 +1,6 @@ { "require": { - "magento/mtf": "1.0.0-rc48", + "magento/mtf": "1.0.0-rc49", "php": "~5.6.5|7.0.2|~7.0.6", "phpunit/phpunit": "~4.8.0|~5.5.0", "phpunit/phpunit-selenium": ">=1.2" diff --git a/dev/tests/functional/lib/Magento/Mtf/App/State/State1.php b/dev/tests/functional/lib/Magento/Mtf/App/State/State1.php index 8005f4bff16f7e2315de3b9fcd4fe4ac28b7044a..fbcf0c7c12b9210c5c926679c06562afa439b3da 100644 --- a/dev/tests/functional/lib/Magento/Mtf/App/State/State1.php +++ b/dev/tests/functional/lib/Magento/Mtf/App/State/State1.php @@ -25,7 +25,7 @@ class State1 extends AbstractState * * @var string */ - protected $config ='admin_session_lifetime_1_hour, wysiwyg_disabled, admin_account_sharing_enable'; + protected $config ='admin_session_lifetime_1_hour, wysiwyg_disabled, admin_account_sharing_enable, log_to_file'; /** * @construct diff --git a/dev/tests/functional/tests/app/Magento/Authorizenet/Test/TestCase/OnePageCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Authorizenet/Test/TestCase/OnePageCheckoutTest.xml index d4cf5dab742aa37684e8b5ee884bd6164c88426f..d629bcba9e174251a1bc1e4c8fff6cc664911598 100644 --- a/dev/tests/functional/tests/app/Magento/Authorizenet/Test/TestCase/OnePageCheckoutTest.xml +++ b/dev/tests/functional/tests/app/Magento/Authorizenet/Test/TestCase/OnePageCheckoutTest.xml @@ -22,10 +22,6 @@ <data name="creditCard/dataset" xsi:type="string">visa_authorizenet</data> <data name="configData" xsi:type="string">authorizenet</data> <data name="status" xsi:type="string">Processing</data> - <data name="transactionDetails" xsi:type="array"> - <item name="isClosed" xsi:type="string">No</item> - <item name="transactionType" xsi:type="string">Authorization</item> - </data> <data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S0</data> <constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" /> <constraint name="Magento\Checkout\Test\Constraint\AssertMinicartEmpty" /> diff --git a/dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml index fcf6e2ac0c4d0ece60aa742dfcb438456a0d9bd5..9274985a74edfa1ccfb7709ee979486733e8fe1b 100644 --- a/dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml +++ b/dev/tests/functional/tests/app/Magento/Backend/Test/Repository/ConfigData.xml @@ -150,6 +150,15 @@ </field> </dataset> + <dataset name="log_to_file"> + <field name="dev/debug/debug_logging" xsi:type="array"> + <item name="scope" xsi:type="string">default</item> + <item name="scope_id" xsi:type="number">0</item> + <item name="label" xsi:type="string">Yes</item> + <item name="value" xsi:type="number">1</item> + </field> + </dataset> + <dataset name="enable_https_frontend_admin"> <field name="web/secure/use_in_frontend" xsi:type="array"> <item name="scope" xsi:type="string">default</item> @@ -164,6 +173,22 @@ <item name="value" xsi:type="number">1</item> </field> </dataset> + + <dataset name="enable_https_frontend_admin_rollback"> + <field name="web/secure/use_in_frontend" xsi:type="array"> + <item name="scope" xsi:type="string">default</item> + <item name="scope_id" xsi:type="number">0</item> + <item name="label" xsi:type="string">No</item> + <item name="value" xsi:type="number">0</item> + </field> + <field name="web/secure/use_in_adminhtml" xsi:type="array"> + <item name="scope" xsi:type="string">default</item> + <item name="scope_id" xsi:type="number">0</item> + <item name="label" xsi:type="string">No</item> + <item name="value" xsi:type="number">0</item> + </field> + </dataset> + <dataset name="enable_hsts"> <field name="web/secure/enable_hsts" xsi:type="array"> <item name="scope" xsi:type="string">default</item> diff --git a/dev/tests/functional/tests/app/Magento/Braintree/Test/TestCase/OnePageCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Braintree/Test/TestCase/OnePageCheckoutTest.xml index 1e9c539c8c0d379d6e5b69929e9270b21a8cc593..920047e7037e135115424a192b9c9cb3267982d5 100644 --- a/dev/tests/functional/tests/app/Magento/Braintree/Test/TestCase/OnePageCheckoutTest.xml +++ b/dev/tests/functional/tests/app/Magento/Braintree/Test/TestCase/OnePageCheckoutTest.xml @@ -23,6 +23,7 @@ <data name="payment/method" xsi:type="string">braintree</data> <data name="creditCardClass" xsi:type="string">credit_card_braintree</data> <data name="creditCard/dataset" xsi:type="string">visa_braintree_3dsecure</data> + <data name="isVaultEnabled" xsi:type="boolean">false</data> <data name="configData" xsi:type="string">braintree, braintree_3d_secure_not_triggered_due_threshold</data> <data name="status" xsi:type="string">Processing</data> <data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S1</data> @@ -46,6 +47,7 @@ <data name="payment/method" xsi:type="string">braintree</data> <data name="creditCardClass" xsi:type="string">credit_card_braintree</data> <data name="creditCard/dataset" xsi:type="string">visa_braintree_3dsecure</data> + <data name="isVaultEnabled" xsi:type="boolean">false</data> <data name="configData" xsi:type="string">braintree, braintree_3d_secure_uk</data> <data name="status" xsi:type="string">Processing</data> <data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S1</data> @@ -69,6 +71,7 @@ <data name="payment/method" xsi:type="string">braintree</data> <data name="creditCardClass" xsi:type="string">credit_card_braintree</data> <data name="creditCard/dataset" xsi:type="string">visa_braintree</data> + <data name="isVaultEnabled" xsi:type="boolean">false</data> <data name="configData" xsi:type="string">braintree</data> <data name="status" xsi:type="string">Processing</data> <data name="tag" xsi:type="string">test_type:extended_acceptance_test, test_type:3rd_party_test, severity:S0</data> @@ -96,6 +99,7 @@ <data name="payment/method" xsi:type="string">braintree</data> <data name="creditCardClass" xsi:type="string">credit_card_braintree</data> <data name="creditCard/dataset" xsi:type="string">visa_braintree</data> + <data name="isVaultEnabled" xsi:type="boolean">false</data> <data name="configData" xsi:type="string">braintree, braintree_sale</data> <data name="status" xsi:type="string">Processing</data> <data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S0</data> diff --git a/dev/tests/functional/tests/app/Magento/Braintree/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Braintree/Test/etc/testcase.xml index 495f455c43a72f4d61029a07a8633fc09744c2f0..12aa92d35064d457cef4a544daace01314723d99 100644 --- a/dev/tests/functional/tests/app/Magento/Braintree/Test/etc/testcase.xml +++ b/dev/tests/functional/tests/app/Magento/Braintree/Test/etc/testcase.xml @@ -106,8 +106,8 @@ <step name="selectPaymentMethod" module="Magento_Checkout" next="fillBillingInformation" /> <step name="fillBillingInformation" module="Magento_Checkout" next="placeOrderWithPaypal" /> <step name="placeOrderWithPaypal" module="Magento_Braintree" next="createInvoice" /> - <step name="createInvoice" module="Magento_Sales" next="createBraintreeCreditMemo" /> - <step name="createBraintreeCreditMemo" module="Magento_Braintree" /> + <step name="createInvoice" module="Magento_Sales" next="createOnlineCreditMemo" /> + <step name="createOnlineCreditMemo" module="Magento_Sales" /> </scenario> <scenario name="SaveUseDeleteVaultForPaypalBraintreeTest" firstStep="setupConfiguration"> <step name="setupConfiguration" module="Magento_Config" next="createProducts" /> diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method.php b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method.php index 55351dbe5fd5eb5105843dfba1311d4d1cb2c029..64afdf5486068736758ac1311fe96fb748e19d46 100644 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method.php +++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Payment/Method.php @@ -35,13 +35,6 @@ class Method extends Block */ protected $billingAddressSelector = '.payment-method-billing-address'; - /** - * Save credit card check box. - * - * @var string - */ - protected $vaultCheckbox = '#%s_enable_vault'; - /** * PayPal load spinner. * @@ -137,17 +130,4 @@ class Method extends Block ['element' => $element] ); } - - /** - * Save credit card. - * - * @param string $paymentMethod - * @param string $creditCardSave - * @return void - */ - public function saveCreditCard($paymentMethod, $creditCardSave) - { - $saveCard = sprintf($this->vaultCheckbox, $paymentMethod); - $this->_rootElement->find($saveCard, Locator::SELECTOR_CSS, 'checkbox')->setValue($creditCardSave); - } } diff --git a/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/di.xml index 6dc1b3b0c67edc232caa1932116908af3745ad94..2f20c20f6e87f2f0df2f8e4991d4d3d5a0b26970 100644 --- a/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/di.xml +++ b/dev/tests/functional/tests/app/Magento/Checkout/Test/etc/di.xml @@ -5,10 +5,16 @@ * See COPYING.txt for license details. */ --> -<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> - <type name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty"> - <arguments> - <argument name="severity" xsi:type="string">middle</argument> - </arguments> - </type> +<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> + <type name="Magento\Checkout\Test\Constraint\AssertCartIsEmpty"> + <arguments> + <argument name="severity" xsi:type="string">middle</argument> + </arguments> + </type> + <type name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage"> + <arguments> + <argument name="severity" xsi:type="string">S0</argument> + </arguments> + </type> </config> diff --git a/dev/tests/functional/tests/app/Magento/Config/Test/TestStep/SetupConfigurationStep.php b/dev/tests/functional/tests/app/Magento/Config/Test/TestStep/SetupConfigurationStep.php index a69117609450912fa1af6e2acdb9a9234c7f01b5..2441f175feef040ef83e6a35a84048957f6675aa 100644 --- a/dev/tests/functional/tests/app/Magento/Config/Test/TestStep/SetupConfigurationStep.php +++ b/dev/tests/functional/tests/app/Magento/Config/Test/TestStep/SetupConfigurationStep.php @@ -8,6 +8,7 @@ namespace Magento\Config\Test\TestStep; use Magento\Mtf\Fixture\FixtureFactory; use Magento\Mtf\TestStep\TestStepInterface; +use Magento\Mtf\Util\Command\Cli\Cache; use Magento\PageCache\Test\Page\Adminhtml\AdminCache; /** @@ -50,12 +51,20 @@ class SetupConfigurationStep implements TestStepInterface */ protected $flushCache; + /** + * Cli command to do operations with cache. + * + * @var Cache + */ + private $cache; + /** * Preparing step properties. * * @constructor * @param FixtureFactory $fixtureFactory * @param AdminCache $adminCache + * @param Cache $cache * @param string $configData * @param bool $rollback * @param bool $flushCache @@ -63,6 +72,7 @@ class SetupConfigurationStep implements TestStepInterface public function __construct( FixtureFactory $fixtureFactory, AdminCache $adminCache, + Cache $cache, $configData = null, $rollback = false, $flushCache = false @@ -72,6 +82,7 @@ class SetupConfigurationStep implements TestStepInterface $this->configData = $configData; $this->rollback = $rollback; $this->flushCache = $flushCache; + $this->cache = $cache; } /** @@ -95,13 +106,11 @@ class SetupConfigurationStep implements TestStepInterface $config->persist(); $result[] = $config; } + if ($this->flushCache) { + $this->cache->flush(); + } } - - if ($this->flushCache) { - $this->adminCache->open(); - $this->adminCache->getActionsBlock()->flushMagentoCache(); - $this->adminCache->getMessagesBlock()->waitSuccessMessage(); - } + return ['config' => $result]; } diff --git a/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutTest.xml b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutTest.xml new file mode 100644 index 0000000000000000000000000000000000000000..f6ac4ac4f0a3c4591c12de7215600010c5fb857c --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Paypal/Test/TestCase/OnePageCheckoutTest.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + --> +<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/variations.xsd"> + <testCase name="Magento\Checkout\Test\TestCase\OnePageCheckoutTest" summary="Guest Checkout with PayPal Payflow Pro credit card"> + <variation name="OnePageCheckoutPayflowProVariation1" summary="Guest Checkout with PayPal Payflow Pro credit card" ticketId="MAGETWO-60583"> + <data name="products/0" xsi:type="string">catalogProductSimple::product_10_dollar</data> + <data name="customer/dataset" xsi:type="string">default</data> + <data name="shippingAddress/dataset" xsi:type="string">US_address_1</data> + <data name="taxRule" xsi:type="string">us_ca_ny_rule</data> + <data name="checkoutMethod" xsi:type="string">guest</data> + <data name="shipping/shipping_service" xsi:type="string">Flat Rate</data> + <data name="shipping/shipping_method" xsi:type="string">Fixed</data> + <data name="payment/method" xsi:type="string">payflowpro</data> + <data name="prices" xsi:type="array"> + <item name="grandTotal" xsi:type="string">15.83</item> + </data> + <data name="creditCardClass" xsi:type="string">credit_card</data> + <data name="creditCard/dataset" xsi:type="string">visa_default</data> + <data name="isVaultEnabled" xsi:type="boolean">false</data> + <data name="configData" xsi:type="string">payflowpro</data> + <data name="tag" xsi:type="string">test_type:3rd_party_test, severity:S1</data> + <constraint name="Magento\Checkout\Test\Constraint\AssertOrderSuccessPlacedMessage" /> + <constraint name="Magento\Sales\Test\Constraint\AssertOrderGrandTotal" /> + <constraint name="Magento\Sales\Test\Constraint\AssertAuthorizationInCommentsHistory" /> + </variation> + </testCase> +</config> diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php index 398553b2abd3c3da0691a9c26890ce2c5ef19c80..beb4d2219a68b17bc7507c1648a69764f0efe256 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/Actions.php @@ -178,10 +178,7 @@ class Actions extends Block public function cancel() { $this->_rootElement->find($this->cancel)->click(); - $element = $this->browser->find($this->confirmModal); - /** @var \Magento\Ui\Test\Block\Adminhtml\Modal $modal */ - $modal = $this->blockFactory->create(\Magento\Ui\Test\Block\Adminhtml\Modal::class, ['element' => $element]); - $modal->acceptAlert(); + $this->acceptAlert(); } /** @@ -202,6 +199,7 @@ class Actions extends Block public function void() { $this->_rootElement->find($this->void)->click(); + $this->acceptAlert(); } /** @@ -266,27 +264,36 @@ class Actions extends Block } /** - * Accept order + * Accept order. + * * @return void */ public function accept() { $acceptPayment = '#accept_payment'; $this->_rootElement->find($acceptPayment)->click(); - $element = $this->browser->find($this->confirmModal); - /** @var Modal $modal */ - $modal = $this->blockFactory->create(Modal::class, ['element' => $element]); - $modal->acceptAlert(); + $this->acceptAlert(); } /** - * Deny order + * Deny order. + * * @return void */ public function deny() { $denyPayment = '#deny_payment'; $this->_rootElement->find($denyPayment)->click(); + $this->acceptAlert(); + } + + /** + * Accept alert. + * + * @return void + */ + private function acceptAlert() + { $element = $this->browser->find($this->confirmModal); /** @var Modal $modal */ $modal = $this->blockFactory->create(Modal::class, ['element' => $element]); diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/History.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/History.php index 740f8f03fe6394a18ceed667a0ba695262229cf2..8ae8bbb31584ef6ab7859b1c08ac62eb09f52016 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/History.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/History.php @@ -56,6 +56,13 @@ class History extends Block */ protected $refundedAmount = '//div[@class="note-list-comment"][contains(text(), "We refunded")]'; + /** + * Voided Amount. + * + * @var string + */ + protected $voidedAmount = '//div[@class="note-list-comment"][contains(text(), "Voided authorization")]'; + /** * Note list locator. * @@ -117,6 +124,17 @@ class History extends Block return $result; } + /** + * Get the voided amount from the comments history. + * + * @return string + */ + public function getVoidedAmount() + { + $this->waitCommentsHistory(); + return $this->_rootElement->find($this->voidedAmount, Locator::SELECTOR_XPATH)->getText(); + } + /** * Gets the status which presented in comment * diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Transactions.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Transactions.php index 80309405fcd05e9206e5732c1f6c3e4eb973c620..64e449c805b2807844c88bfa36a821b20adcfd04 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Transactions.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Block/Adminhtml/Order/View/Tab/Transactions.php @@ -8,7 +8,7 @@ namespace Magento\Sales\Test\Block\Adminhtml\Order\View\Tab; use Magento\Backend\Test\Block\Widget\Tab; use Magento\Mtf\Client\Locator; -use Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Shipments\Grid; +use Magento\Sales\Test\Block\Adminhtml\Order\View\Tab\Transactions\Grid; /** * Transactions tab. diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderSuccessVoidedMessage.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderSuccessVoidedMessage.php new file mode 100644 index 0000000000000000000000000000000000000000..05a4934015611996694b5a506edc39c8994c545c --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertOrderSuccessVoidedMessage.php @@ -0,0 +1,53 @@ +<?php +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Sales\Test\Constraint; + +use Magento\Sales\Test\Page\Adminhtml\OrderStatusIndex; +use Magento\Mtf\Constraint\AbstractConstraint; + +/** + * Assert that success message about order void is present. + */ +class AssertOrderSuccessVoidedMessage extends AbstractConstraint +{ + /* tags */ + const SEVERITY = 'low'; + /* end tags */ + + /** + * Message about successful void. + */ + const SUCCESS_MESSAGE = 'The payment has been voided.'; + + /** + * Assert that success message is displayed after order is voided. + * + * @param OrderStatusIndex $orderStatusIndexPage + * @return void + */ + public function processAssert(OrderStatusIndex $orderStatusIndexPage) + { + $actualMessage = $orderStatusIndexPage->getMessagesBlock()->getSuccessMessage(); + \PHPUnit_Framework_Assert::assertEquals( + self::SUCCESS_MESSAGE, + $actualMessage, + 'Wrong success message is displayed.' + . "\nExpected: " . self::SUCCESS_MESSAGE + . "\nActual: " . $actualMessage + ); + } + + /** + * Text of voided order message assert. + * + * @return string + */ + public function toString() + { + return 'Order successful void message is present.'; + } +} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertTransactionStatus.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertTransactionStatus.php new file mode 100644 index 0000000000000000000000000000000000000000..fb975ae4bd1c6bfdc8f5ce3fea9f094f1e4e45e4 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertTransactionStatus.php @@ -0,0 +1,61 @@ +<?php +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Sales\Test\Constraint; + +use Magento\Sales\Test\Page\Adminhtml\OrderIndex; +use Magento\Sales\Test\Page\Adminhtml\SalesOrderView; +use Magento\Mtf\Constraint\AbstractConstraint; + +/** + * Assert that transactions status is closed on order page in Admin. + */ +class AssertTransactionStatus extends AbstractConstraint +{ + /** + * Assert that transactions status is closed on order page in Admin. + * + * @param OrderIndex $salesOrder + * @param SalesOrderView $salesOrderView + * @param array $transactions + * @param string $orderId + * @return void + */ + public function processAssert( + OrderIndex $salesOrder, + SalesOrderView $salesOrderView, + array $transactions, + $orderId + ) { + $salesOrder->open(); + $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); + $salesOrderView->getOrderForm()->openTab('transactions'); + $actualTransactions = $salesOrderView->getOrderForm()->getTab('transactions')->getGridBlock()->getIds(); + + foreach ($transactions as $transaction) { + foreach ($actualTransactions as $actualTransaction) { + if ($actualTransaction['transactionType'] === $transaction['transactionType']) { + \PHPUnit_Framework_Assert::assertEquals( + $transaction['statusIsClosed'], + $actualTransaction['statusIsClosed'], + 'The ' . $transaction['transactionType'] . ' transaction status is not closed.' + ); + break; + } + } + } + } + + /** + * Returns a string representation of the object. + * + * @return string + */ + public function toString() + { + return 'Transactions status is closed.'; + } +} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertVoidInCommentsHistory.php b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertVoidInCommentsHistory.php new file mode 100644 index 0000000000000000000000000000000000000000..bc3e90ee7f776c74fa8b55fb95be6ac19d49ffca --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/Constraint/AssertVoidInCommentsHistory.php @@ -0,0 +1,57 @@ +<?php +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Sales\Test\Constraint; + +use Magento\Sales\Test\Page\Adminhtml\SalesOrderView; +use Magento\Sales\Test\Page\Adminhtml\OrderIndex; +use Magento\Mtf\Constraint\AbstractConstraint; + +/** + * Assert that comment about voided amount exists in Comments History section on order page in Admin. + */ +class AssertVoidInCommentsHistory extends AbstractConstraint +{ + /** + * Message about voided amount in order. + */ + const VOIDED_AMOUNT = 'Voided authorization. Amount: $'; + + /** + * Assert that comment about voided amount exist in Comments History section on order page in Admin. + * + * @param SalesOrderView $salesOrderView + * @param OrderIndex $salesOrder + * @param string $orderId + * @param array $prices + * @return void + */ + public function processAssert( + SalesOrderView $salesOrderView, + OrderIndex $salesOrder, + $orderId, + array $prices + ) { + $salesOrder->open(); + $salesOrder->getSalesOrderGrid()->searchAndOpen(['id' => $orderId]); + + \PHPUnit_Framework_Assert::assertContains( + self::VOIDED_AMOUNT . $prices['grandTotal'], + $salesOrderView->getOrderHistoryBlock()->getVoidedAmount(), + 'Incorrect voided amount value for the order #' . $orderId + ); + } + + /** + * Returns string representation of successful assertion. + * + * @return string + */ + public function toString() + { + return "Message about voided amount is available in Comments History section."; + } +} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOnlineInvoiceEntityTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOnlineInvoiceEntityTest.php index c3b00b4b7f7942176300450faf9a0b42c956942b..393085f7d7a87c9fb491259bbd55ecbb6a9330e5 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOnlineInvoiceEntityTest.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/CreateOnlineInvoiceEntityTest.php @@ -40,6 +40,7 @@ class CreateOnlineInvoiceEntityTest extends Scenario /* tags */ const MVP = 'yes'; const TEST_TYPE = '3rd_party_test'; + const SEVERITY = 'S0'; /* end tags */ /** diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/VoidAuthorizationTest.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/VoidAuthorizationTest.php new file mode 100644 index 0000000000000000000000000000000000000000..fecf2eed85160415ac6fbb81b6c5261d7d451168 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/TestCase/VoidAuthorizationTest.php @@ -0,0 +1,50 @@ +<?php +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Sales\Test\TestCase; + +use Magento\Mtf\TestCase\Scenario; + +/** + * Preconditions: + * 1. Configure shipping method. + * 2. Configure payment method. + * 3. Create products. + * + * Steps: + * 1. Go to Storefront. + * 2. Add products to the cart. + * 3. Click the 'Proceed to Checkout' button. + * 4. Select checkout method according to dataset. + * 5. Fill billing information and select the 'Ship to this address' option. + * 6. Select shipping method. + * 7. Select payment method. + * 8. Place order. + * 9. Open created order. + * 10. Click 'Void' button. + * 11. Perform assertions. + * + * @group Order_Management + * @ZephyrId MAGETWO-39444 + */ +class VoidAuthorizationTest extends Scenario +{ + /* tags */ + const MVP = 'yes'; + const TEST_TYPE = '3rd_party_test'; + const SEVERITY = 'S0'; + /* end tags */ + + /** + * Void order authorization. + * + * @return void + */ + public function test() + { + $this->executeScenario(); + } +} diff --git a/dev/tests/functional/tests/app/Magento/Braintree/Test/TestStep/CreateBraintreeCreditMemoStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateOnlineCreditMemoStep.php similarity index 93% rename from dev/tests/functional/tests/app/Magento/Braintree/Test/TestStep/CreateBraintreeCreditMemoStep.php rename to dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateOnlineCreditMemoStep.php index 085fc142a33736e1aec9fb2cc1a0771e37ffd34e..84491c1992e5d682c59a1848516fcf084ce42507 100644 --- a/dev/tests/functional/tests/app/Magento/Braintree/Test/TestStep/CreateBraintreeCreditMemoStep.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/CreateOnlineCreditMemoStep.php @@ -4,9 +4,8 @@ * See COPYING.txt for license details. */ -namespace Magento\Braintree\Test\TestStep; +namespace Magento\Sales\Test\TestStep; -use Magento\Mtf\ObjectManager; use Magento\Mtf\TestStep\TestStepInterface; use Magento\Sales\Test\Fixture\OrderInjectable; use Magento\Sales\Test\Page\Adminhtml\OrderCreditMemoNew; @@ -15,9 +14,9 @@ use Magento\Sales\Test\Page\Adminhtml\OrderInvoiceView; use Magento\Sales\Test\Page\Adminhtml\SalesOrderView; /** - * Create credit memo for order placed via Braintree credit card payment method. + * Create credit memo for order placed using online payment methods. */ -class CreateBraintreeCreditMemoStep implements TestStepInterface +class CreateOnlineCreditMemoStep implements TestStepInterface { /** * Orders Page. diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderStep.php index fa37c94be3cdda2b7814a2dab3d11b0a4272dc04..0a82770fab38bbe574b77b0bb4e08eadbdc01a3f 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderStep.php +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/SubmitOrderStep.php @@ -23,21 +23,42 @@ class SubmitOrderStep implements TestStepInterface * * @var OrderCreateIndex */ - protected $orderCreateIndex; + private $orderCreateIndex; /** * Sales order view. * * @var SalesOrderView */ - protected $salesOrderView; + private $salesOrderView; /** * Factory for fixtures. * * @var FixtureFactory */ - protected $fixtureFactory; + private $fixtureFactory; + + /** + * Customer fixture. + * + * @var Customer + */ + private $customer; + + /** + * Billing Address fixture. + * + * @var Address + */ + private $billingAddress; + + /** + * Products fixtures. + * + * @var array|\Magento\Mtf\Fixture\FixtureInterface[] + */ + private $products; /** * @constructor diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/VoidAuthorizationStep.php b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/VoidAuthorizationStep.php new file mode 100644 index 0000000000000000000000000000000000000000..6897233c7242cf3a2289a93111912c6021a99f2d --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/TestStep/VoidAuthorizationStep.php @@ -0,0 +1,63 @@ +<?php +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Sales\Test\TestStep; + +use Magento\Sales\Test\Fixture\OrderInjectable; +use Magento\Sales\Test\Page\Adminhtml\OrderIndex; +use Magento\Mtf\TestStep\TestStepInterface; +use Magento\Sales\Test\Page\Adminhtml\SalesOrderView; + +/** + * Void authorization for created order. + */ +class VoidAuthorizationStep implements TestStepInterface +{ + /** + * Sales order index page. + * + * @var OrderIndex + */ + protected $orderIndex; + + /** + * Order instance. + * + * @var OrderInjectable + */ + protected $order; + + /** + * Order view page. + * + * @var SalesOrderView + */ + private $salesOrderView; + + /** + * @param OrderInjectable $order + * @param OrderIndex $orderIndex + * @param SalesOrderView $salesOrderView + */ + public function __construct(OrderInjectable $order, OrderIndex $orderIndex, SalesOrderView $salesOrderView) + { + $this->orderIndex = $orderIndex; + $this->order = $order; + $this->salesOrderView = $salesOrderView; + } + + /** + * Void authorization. + * + * @return void + */ + public function run() + { + $this->orderIndex->open(); + $this->orderIndex->getSalesOrderGrid()->searchAndOpen(['id' => $this->order->getId()]); + $this->salesOrderView->getPageActions()->void(); + } +} diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/di.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/di.xml index ea687be19d3c34b0eeb5093690e54243731543ff..f42c97e1a6614a927da685f9cd5e1f8c84ff0c32 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/di.xml +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/di.xml @@ -8,32 +8,82 @@ <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Sales\Test\Constraint\AssertOrderStatusInGrid"> <arguments> - <argument name="severity" xsi:type="string">high</argument> + <argument name="severity" xsi:type="string">S0</argument> </arguments> </type> <type name="Magento\Sales\Test\Constraint\AssertOrderStatusDuplicateStatus"> <arguments> - <argument name="severity" xsi:type="string">high</argument> + <argument name="severity" xsi:type="string">S0</argument> </arguments> </type> <type name="Magento\Sales\Test\Constraint\AssertOrderCancelSuccessMessage"> <arguments> - <argument name="severity" xsi:type="string">high</argument> + <argument name="severity" xsi:type="string">S0</argument> </arguments> </type> <type name="Magento\Sales\Test\Constraint\AssertOrderMassOnHoldSuccessMessage"> <arguments> - <argument name="severity" xsi:type="string">high</argument> + <argument name="severity" xsi:type="string">S0</argument> </arguments> </type> <type name="Magento\Sales\Test\Constraint\AssertAuthorizationInCommentsHistory"> <arguments> - <argument name="severity" xsi:type="string">high</argument> + <argument name="severity" xsi:type="string">S0</argument> + </arguments> + </type> + <type name="Magento\Sales\Test\Constraint\AssertOrderGrandTotal"> + <arguments> + <argument name="severity" xsi:type="string">S0</argument> </arguments> </type> <type name="Magento\Sales\Test\Constraint\AssertCaptureInCommentsHistory"> <arguments> - <argument name="severity" xsi:type="string">high</argument> + <argument name="severity" xsi:type="string">S0</argument> + </arguments> + </type> + <type name="Magento\Sales\Test\Constraint\AssertVoidInCommentsHistory"> + <arguments> + <argument name="severity" xsi:type="string">S0</argument> + </arguments> + </type> + <type name="Magento\Sales\Test\Constraint\AssertRefundSuccessCreateMessage"> + <arguments> + <argument name="severity" xsi:type="string">S0</argument> + </arguments> + </type> + <type name="Magento\Sales\Test\Constraint\AssertOrderSuccessVoidedMessage"> + <arguments> + <argument name="severity" xsi:type="string">S0</argument> + </arguments> + </type> + <type name="Magento\Sales\Test\Constraint\AssertRefundInCreditMemoTab"> + <arguments> + <argument name="severity" xsi:type="string">S0</argument> + </arguments> + </type> + <type name="Magento\Sales\Test\Constraint\AssertRefundInCommentsHistory"> + <arguments> + <argument name="severity" xsi:type="string">S0</argument> + </arguments> + </type> + <type name="Magento\Sales\Test\Constraint\AssertInvoiceSuccessCreateMessage"> + <arguments> + <argument name="severity" xsi:type="string">S0</argument> + </arguments> + </type> + <type name="Magento\Sales\Test\Constraint\AssertInvoiceItems"> + <arguments> + <argument name="severity" xsi:type="string">S1</argument> + </arguments> + </type> + <type name="Magento\Sales\Test\Constraint\AssertTransactionStatus"> + <arguments> + <argument name="severity" xsi:type="string">S2</argument> + </arguments> + </type> + <type name="Magento\Sales\Test\Constraint\AssertOrderStatusIsCorrect"> + <arguments> + <argument name="severity" xsi:type="string">S0</argument> </arguments> </type> </config> diff --git a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/testcase.xml index eebdf2128dc70e8dc90a0867040e1e3682462768..030b0f4f32df0eacd76c99cbe55537df1c734cf5 100644 --- a/dev/tests/functional/tests/app/Magento/Sales/Test/etc/testcase.xml +++ b/dev/tests/functional/tests/app/Magento/Sales/Test/etc/testcase.xml @@ -35,6 +35,22 @@ <step name="selectPaymentMethodForOrder" module="Magento_Sales" next="submitOrder" /> <step name="submitOrder" module="Magento_Sales" /> </scenario> + <scenario name="VoidAuthorizationTest" firstStep="setupConfiguration"> + <step name="setupConfiguration" module="Magento_Config" next="createProducts" /> + <step name="createProducts" module="Magento_Catalog" next="createTaxRule" /> + <step name="createTaxRule" module="Magento_Tax" next="addProductsToTheCart" /> + <step name="addProductsToTheCart" module="Magento_Checkout" next="estimateShippingAndTax" /> + <step name="estimateShippingAndTax" module="Magento_Checkout" next="clickProceedToCheckout" /> + <step name="clickProceedToCheckout" module="Magento_Checkout" next="createCustomer" /> + <step name="createCustomer" module="Magento_Customer" next="selectCheckoutMethod" /> + <step name="selectCheckoutMethod" module="Magento_Checkout" next="fillShippingAddress" /> + <step name="fillShippingAddress" module="Magento_Checkout" next="fillShippingMethod" /> + <step name="fillShippingMethod" module="Magento_Checkout" next="selectPaymentMethod" /> + <step name="selectPaymentMethod" module="Magento_Checkout" next="fillBillingInformation" /> + <step name="fillBillingInformation" module="Magento_Checkout" next="placeOrder" /> + <step name="placeOrder" module="Magento_Checkout" next="voidAuthorization" /> + <step name="voidAuthorization" module="Magento_Sales" /> + </scenario> <scenario name="PrintOrderFrontendGuestTest" firstStep="createProducts"> <step name="createProducts" module="Magento_Catalog" next="createCustomer" /> <step name="createCustomer" module="Magento_Customer" next="openSalesOrders" /> diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/Block/Onepage/Payment/Method/Vault.php b/dev/tests/functional/tests/app/Magento/Vault/Test/Block/Onepage/Payment/Method/Vault.php new file mode 100644 index 0000000000000000000000000000000000000000..c416381a0b2137ec0273a6e1b1b14ea93a80a2c1 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Vault/Test/Block/Onepage/Payment/Method/Vault.php @@ -0,0 +1,67 @@ +<?php +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Vault\Test\Block\Onepage\Payment\Method; + +use Magento\Mtf\Client\Locator; +use Magento\Checkout\Test\Block\Onepage\Payment\Method; + +/** + * Checkout payment method vault block. + */ +class Vault extends Method +{ + /** + * Credit card selector. + * + * @var string + */ + private $creditCardSelector = './/*[contains(@for, "_vault_item")]/span[text()="%s"]'; + + /** + * Save credit card check box. + * + * @var string + */ + protected $vaultCheckbox = '#%s_enable_vault'; + + /** + * Save credit card. + * + * @param string $paymentMethod + * @param string $creditCardSave + * @return void + */ + public function saveCreditCard($paymentMethod, $creditCardSave) + { + $saveCard = sprintf($this->vaultCheckbox, $paymentMethod); + $this->_rootElement->find($saveCard, Locator::SELECTOR_CSS, 'checkbox')->setValue($creditCardSave); + } + + /** + * Check if Save credit card check box is visible. + * + * @param string $paymentMethod + * @return bool + */ + public function isVaultVisible($paymentMethod) + { + $saveCard = sprintf($this->vaultCheckbox, $paymentMethod); + return $this->_rootElement->find($saveCard, Locator::SELECTOR_CSS, 'checkbox')->isVisible(); + } + + /** + * Verify if saved credit card is present as a payment option. + * + * @param string $creditCard + * @return bool + */ + public function isSavedCreditCardPresent($creditCard) + { + $paymentLabelSelector = sprintf($this->creditCardSelector, $creditCard); + return $this->_rootElement->find($paymentLabelSelector, Locator::SELECTOR_XPATH)->isVisible(); + } +} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/Block/VaultPayment.php b/dev/tests/functional/tests/app/Magento/Vault/Test/Block/VaultPayment.php deleted file mode 100644 index 2afa11baee329097bb2c3847c64a73b853a9a226..0000000000000000000000000000000000000000 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/Block/VaultPayment.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php -/** - * Copyright © 2016 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\Vault\Test\Block; - -use Magento\Mtf\Block\Block; -use Magento\Mtf\Client\ElementInterface; -use Magento\Mtf\Client\Locator; -use Magento\Mtf\Fixture\InjectableFixture; - -class VaultPayment extends Block -{ - /** - * Credit card selector. - */ - private $creditCardSelector = './/*[contains(@for, "_vault_item")]/span[text()="%s"]'; - - /** - * Verify if saved credit card is present as a payment option. - * - * @param string $creditCard - * @return bool - */ - public function isSavedCreditCardPresent($creditCard) - { - $paymentLabelSelector = sprintf($this->creditCardSelector, $creditCard); - return $this->browser->find($paymentLabelSelector, Locator::SELECTOR_XPATH)->isVisible(); - } -} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertSaveCreditCardOptionNotPresent.php b/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertSaveCreditCardOptionNotPresent.php new file mode 100644 index 0000000000000000000000000000000000000000..dbe14c977c2d4988d017b50422e4c10bf5f4aec5 --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Vault/Test/Constraint/AssertSaveCreditCardOptionNotPresent.php @@ -0,0 +1,40 @@ +<?php +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Vault\Test\Constraint; + +use Magento\Checkout\Test\Page\CheckoutOnepage; +use Magento\Mtf\Constraint\AbstractConstraint; + +/** + * Assert that 'Save for later use' checkbox is not present in credit card form. + */ +class AssertSaveCreditCardOptionNotPresent extends AbstractConstraint +{ + /** + * Assert that 'Save for later use' checkbox is not present in credit card form. + * + * @param CheckoutOnepage $checkoutOnepage + * @param string $payment + * @return void + */ + public function processAssert(CheckoutOnepage $checkoutOnepage, $payment) + { + \PHPUnit_Framework_Assert::assertFalse( + $checkoutOnepage->getVaultPaymentBlock()->isVaultVisible($payment), + 'Save for later use checkbox is present.' + ); + } + + /** + * Returns string representation of successful assertion. + * + * @return string + */ + public function toString() + { + return 'Save for later use checkbox is not present in credit card form.'; + } +} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/Page/CheckoutOnepage.xml b/dev/tests/functional/tests/app/Magento/Vault/Test/Page/CheckoutOnepage.xml index 9568a88096186d25a17916de4d24ceb2fe9a5612..fd1412e15649f6db9302e5bc23ea4474334ea384 100644 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/Page/CheckoutOnepage.xml +++ b/dev/tests/functional/tests/app/Magento/Vault/Test/Page/CheckoutOnepage.xml @@ -7,6 +7,6 @@ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../vendor/magento/mtf/etc/pages.xsd"> <page name="CheckoutOnepage" mca="checkout" module="Magento_Checkout"> - <block name="vaultPaymentBlock" class="Magento\Vault\Test\Block\VaultPayment" locator="#checkout-step-payment" strategy="css selector" /> + <block name="vaultPaymentBlock" class="Magento\Vault\Test\Block\Onepage\Payment\Method\Vault" locator="#checkout-step-payment" strategy="css selector" /> </page> </config> diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/CheckSaveCreditCardOptionStep.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/CheckSaveCreditCardOptionStep.php new file mode 100644 index 0000000000000000000000000000000000000000..b0f33872103f27ffe00e2b1323574fa0fdc6b88a --- /dev/null +++ b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/CheckSaveCreditCardOptionStep.php @@ -0,0 +1,77 @@ +<?php +/** + * Copyright © 2016 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Vault\Test\TestStep; + +use Magento\Checkout\Test\Page\CheckoutOnepage; +use Magento\Mtf\TestStep\TestStepInterface; +use Magento\Vault\Test\Constraint\AssertSaveCreditCardOptionNotPresent; + +/** + * Check if customer cannot save credit card for later use if vault is disabled. + */ +class CheckSaveCreditCardOptionStep implements TestStepInterface +{ + /** + * Onepage checkout page. + * + * @var CheckoutOnepage + */ + private $checkoutOnepage; + + /** + * Assert that 'Save for later use' checkbox is not present in credit card form. + * + * @var AssertSaveCreditCardOptionNotPresent + */ + private $assertSaveCreditCardOptionNotPresent; + + /** + * Payment method. + * + * @var array + */ + private $payment; + + /** + * If vault is enabled for payment method. + * + * @var null|bool + */ + private $isVaultEnabled; + + /** + * @param CheckoutOnepage $checkoutOnepage + * @param AssertSaveCreditCardOptionNotPresent $assertSaveCreditCardOptionNotPresent + * @param array $payment + * @param null|bool $isVaultEnabled + */ + public function __construct( + CheckoutOnepage $checkoutOnepage, + AssertSaveCreditCardOptionNotPresent $assertSaveCreditCardOptionNotPresent, + array $payment, + $isVaultEnabled = null + ) { + $this->checkoutOnepage = $checkoutOnepage; + $this->assertSaveCreditCardOptionNotPresent = $assertSaveCreditCardOptionNotPresent; + $this->payment = $payment; + $this->isVaultEnabled = $isVaultEnabled; + } + + /** + * Run step that verifies if 'Save for later use' checkbox is not present in credit card form. + * + * @return void + */ + public function run() + { + if ($this->isVaultEnabled === false) { + $this->assertSaveCreditCardOptionNotPresent->processAssert( + $this->checkoutOnepage, + $this->payment['method'] + ); + } + } +} diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SaveCreditCardStep.php b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SaveCreditCardStep.php index 0f06f5f636bdc14dcdb1c3b300c2fd4c6f5186eb..63fe8c2401336eef268f89f226e1ec484a54ffd9 100644 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SaveCreditCardStep.php +++ b/dev/tests/functional/tests/app/Magento/Vault/Test/TestStep/SaveCreditCardStep.php @@ -57,7 +57,7 @@ class SaveCreditCardStep implements TestStepInterface */ public function run() { - $this->checkoutOnepage->getPaymentBlock()->getSelectedPaymentMethodBlock()->saveCreditCard( + $this->checkoutOnepage->getVaultPaymentBlock()->saveCreditCard( $this->payment['method'], $this->creditCardSave ); diff --git a/dev/tests/functional/tests/app/Magento/Vault/Test/etc/testcase.xml b/dev/tests/functional/tests/app/Magento/Vault/Test/etc/testcase.xml index cd34b9664820892b4275c93e7b7e43afaaf2f1e4..6289a8392ee7544777959e8afffe9fd999388713 100644 --- a/dev/tests/functional/tests/app/Magento/Vault/Test/etc/testcase.xml +++ b/dev/tests/functional/tests/app/Magento/Vault/Test/etc/testcase.xml @@ -64,4 +64,7 @@ <step name="useVaultPaymentToken" module="Magento_Vault" next="submitOrder" /> <step name="submitOrder" module="Magento_Sales" /> </scenario> + <scenario name="OnePageCheckoutTest"> + <step name="checkSaveCreditCardOption" module="Magento_Vault" prev="selectPaymentMethod" next="placeOrder" /> + </scenario> </config>