Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CheckExpressConfigStep.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Backend\Test\Page\Adminhtml\SystemConfigEditSectionPayment;
10 use Magento\Mtf\TestStep\TestStepInterface;
15 
19 class CheckExpressConfigStep implements TestStepInterface
20 {
26  private $systemConfigEditSectionPayment;
27 
31  private $assertFieldsAreDisabled;
32 
36  private $assertFieldsArePresent;
37 
41  private $assertFieldsAreActive;
42 
46  private $assertFieldsAreEnabled;
47 
53  private $countryCode;
54 
60  private $sections;
61 
65  private $expressCheckoutConfigBlock;
66 
76  public function __construct(
77  SystemConfigEditSectionPayment $systemConfigEditSectionPayment,
78  AssertFieldsAreDisabled $assertFieldsAreDisabled,
79  AssertFieldsArePresent $assertFieldsArePresent,
80  AssertFieldsAreActive $assertFieldsAreActive,
81  AssertFieldsAreEnabled $assertFieldsAreEnabled,
82  $countryCode,
83  array $sections
84  ) {
85  $this->systemConfigEditSectionPayment = $systemConfigEditSectionPayment;
86  $this->assertFieldsAreDisabled = $assertFieldsAreDisabled;
87  $this->assertFieldsArePresent = $assertFieldsArePresent;
88  $this->assertFieldsAreActive = $assertFieldsAreActive;
89  $this->assertFieldsAreEnabled = $assertFieldsAreEnabled;
90  $this->countryCode = $countryCode;
91  $this->sections = $sections;
92  $this->expressCheckoutConfigBlock = $this->systemConfigEditSectionPayment->getExpressCheckoutConfigBlock();
93  }
94 
100  public function run()
101  {
102  $this->systemConfigEditSectionPayment->open();
103  $this->systemConfigEditSectionPayment->getPaymentsConfigBlock()->switchMerchantCountry($this->countryCode);
104  $this->systemConfigEditSectionPayment->getPaymentsConfigBlock()->expandPaymentSections($this->sections);
105  $this->enableExpressCheckout();
106  $this->disableExpressCheckout();
107  }
108 
114  private function enableExpressCheckout()
115  {
116  $this->expressCheckoutConfigBlock->clickConfigureButton();
117  $this->expressCheckoutConfigBlock->clearCredentials();
118  $enablers = $this->expressCheckoutConfigBlock->getEnablerFields();
119  $this->assertFieldsAreDisabled->processAssert($this->systemConfigEditSectionPayment, $enablers);
120  $this->expressCheckoutConfigBlock->specifyCredentials();
121  $this->expressCheckoutConfigBlock->enableExpressCheckout();
122  $expressFields = $this->expressCheckoutConfigBlock->getFields();
123  $this->assertFieldsArePresent->processAssert(
124  $this->systemConfigEditSectionPayment,
125  [$expressFields['Merchant Account ID'], $expressFields['Sort Order PayPal Credit']]
126  );
127  $this->assertFieldsAreActive->processAssert(
128  $this->systemConfigEditSectionPayment,
129  [$enablers['Enable In-Context Checkout Experience'], $enablers['Enable PayPal Credit']]
130  );
131  $this->assertFieldsAreEnabled->processAssert(
132  $this->systemConfigEditSectionPayment,
133  [$enablers['Enable In-Context Checkout Experience'], $enablers['Enable PayPal Credit']]
134  );
135  $this->expressCheckoutConfigBlock->specifyMerchantAccountId();
136  $this->systemConfigEditSectionPayment->getPageActions()->save();
137  $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage();
138  }
139 
145  private function disableExpressCheckout()
146  {
147  $enablers = $this->expressCheckoutConfigBlock->getEnablerFields();
148  $this->expressCheckoutConfigBlock->clickConfigureButton();
149  $this->assertFieldsAreActive->processAssert($this->systemConfigEditSectionPayment, $enablers);
150  $this->assertFieldsAreEnabled->processAssert($this->systemConfigEditSectionPayment, $enablers);
151  $this->expressCheckoutConfigBlock->disableExpressCheckout();
152  $this->assertFieldsAreDisabled->processAssert(
153  $this->systemConfigEditSectionPayment,
154  [$enablers['Enable In-Context Checkout Experience'], $enablers['Enable PayPal Credit']]
155  );
156  $this->systemConfigEditSectionPayment->getPageActions()->save();
157  $this->systemConfigEditSectionPayment->getMessagesBlock()->waitSuccessMessage();
158  }
159 }
__construct(SystemConfigEditSectionPayment $systemConfigEditSectionPayment, AssertFieldsAreDisabled $assertFieldsAreDisabled, AssertFieldsArePresent $assertFieldsArePresent, AssertFieldsAreActive $assertFieldsAreActive, AssertFieldsAreEnabled $assertFieldsAreEnabled, $countryCode, array $sections)