Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SelectCheckoutMethodStep.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Mtf\TestStep\TestStepInterface;
11 use Magento\Customer\Test\Page\CustomerAccountCreate;
12 use Magento\Checkout\Test\Page\CheckoutOnepage;
14 
18 class SelectCheckoutMethodStep implements TestStepInterface
19 {
25  protected $checkoutOnepage;
26 
32  protected $checkoutMethod;
33 
39  protected $customer;
40 
47 
53  private $clickProceedToCheckoutStep;
54 
60  private $customerAccountCreatePage;
61 
71  public function __construct(
72  CheckoutOnepage $checkoutOnepage,
73  CustomerAccountCreate $customerAccountCreatePage,
74  Customer $customer,
76  ClickProceedToCheckoutStep $clickProceedToCheckoutStep,
78  ) {
79  $this->checkoutOnepage = $checkoutOnepage;
80  $this->customerAccountCreatePage = $customerAccountCreatePage;
81  $this->customer = $customer;
82  $this->logoutCustomerOnFrontend = $logoutCustomerOnFrontend;
83  $this->clickProceedToCheckoutStep = $clickProceedToCheckoutStep;
84  $this->checkoutMethod = $checkoutMethod;
85  }
86 
92  public function run()
93  {
94  sleep(20);
95  $this->processLogin();
96  $this->processRegister();
97  sleep(20);
98  }
99 
105  private function processLogin()
106  {
107  if ($this->checkoutMethod === 'login') {
108  if ($this->checkoutOnepage->getAuthenticationPopupBlock()->isVisible()) {
109  $this->checkoutOnepage->getAuthenticationPopupBlock()->loginCustomer($this->customer);
110  $this->clickProceedToCheckoutStep->run();
111  } else {
112  $this->checkoutOnepage->getLoginBlock()->loginCustomer($this->customer);
113  }
114  } elseif ($this->checkoutMethod === 'guest') {
115  $this->checkoutOnepage->getLoginBlock()->fillGuestFields($this->customer);
116  } elseif ($this->checkoutMethod === 'sign_in') {
117  $this->checkoutOnepage->getAuthenticationWrapperBlock()->signInLinkClick();
118  $this->checkoutOnepage->getAuthenticationWrapperBlock()->loginCustomer($this->customer);
119  }
120  }
121 
127  private function processRegister()
128  {
129  if ($this->checkoutMethod === 'register_before_checkout') {
130  $this->checkoutOnepage->getAuthenticationPopupBlock()->createAccount();
131  $this->customerAccountCreatePage->getRegisterForm()->registerCustomer($this->customer);
132  }
133  }
134 
140  public function cleanup()
141  {
142  if ($this->checkoutMethod === 'login' ||
143  $this->checkoutMethod === 'sign_in' ||
144  $this->checkoutMethod === 'register_before_checkout') {
145  $this->logoutCustomerOnFrontend->run();
146  }
147  }
148 }
__construct(CheckoutOnepage $checkoutOnepage, CustomerAccountCreate $customerAccountCreatePage, Customer $customer, LogoutCustomerOnFrontendStep $logoutCustomerOnFrontend, ClickProceedToCheckoutStep $clickProceedToCheckoutStep, $checkoutMethod)
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17