9 use Magento\Mtf\Fixture\FixtureFactory;
10 use Magento\Mtf\Fixture\FixtureInterface;
11 use Magento\Mtf\TestCase\Injectable;
12 use Magento\Customer\Test\Fixture\Address;
14 use Magento\Customer\Test\Page\Adminhtml\CustomerIndex;
15 use Magento\Customer\Test\Page\Adminhtml\CustomerIndexNew;
17 use Magento\User\Test\Page\Adminhtml\UserEdit;
18 use Magento\User\Test\Page\Adminhtml\UserIndex;
51 private $allowedCountriesData = [];
68 private $fixtureFactory;
100 \
Magento\
Mtf\Fixture\FixtureFactory $fixtureFactory,
106 $this->fixtureFactory = $fixtureFactory;
107 $this->userEdit = $userEdit;
108 $this->userIndex = $userIndex;
126 array $beforeActionCallback = []
128 $this->steps = $steps;
130 foreach ($steps as $methodName => $stepData) {
131 if (method_exists($this, $methodName)) {
132 call_user_func_array([$this, $methodName], $stepData);
136 $this->pageCustomerIndex->open();
137 $this->pageCustomerIndex->getPageActionsBlock()->addNew();
138 $this->pageCustomerIndexNew->getCustomerForm()->fillCustomer(
$customer, $address);
139 $this->address = $address;
142 foreach ($beforeActionCallback as $methodName) {
143 if (method_exists($this, $methodName)) {
148 $this->pageCustomerIndexNew->getPageActionsBlock()->$customerAction();
155 protected function assertAllowedCountries()
158 $assert = $this->objectManager->get(
159 \
Magento\Customer\Test\Constraint\AssertChangingWebsiteChangeCountries::class
162 foreach ($this->allowedCountriesData as $dataPerWebsite) {
163 $customerWithWebsite = $this->fixtureFactory->createByCode(
167 'website_id' => $dataPerWebsite[
'website']->getName()
171 $assert->processAssert(
172 $this->pageCustomerIndexNew,
173 $customerWithWebsite,
174 $dataPerWebsite[
'countries']
178 $this->pageCustomerIndexNew->getCustomerForm()->openTab(
'account_information');
179 $this->pageCustomerIndexNew->getCustomerForm()->fillCustomer($this->customer);
180 $this->pageCustomerIndexNew->getCustomerForm()->openTab(
'addresses');
181 $this->pageCustomerIndexNew->getCustomerForm()->getTab(
'addresses')->updateAddresses($this->address);
187 private function createWebsiteFixture()
190 $websiteFixture = $this->fixtureFactory->createByCode(
'website', [
'dataset' =>
'custom_website']);
191 $websiteFixture->persist();
192 $storeGroupFixture = $this->fixtureFactory->createByCode(
197 'fixture' => $websiteFixture
199 'root_category_id' => [
200 'dataset' =>
'default_category' 202 'name' =>
'Store_Group_%isolation%',
206 $storeGroupFixture->persist();
208 $storeFixture = $this->fixtureFactory->createByCode(
212 'website_id' => $websiteFixture->getWebsiteId(),
214 'fixture' => $storeGroupFixture
217 'name' =>
'Store_%isolation%',
218 'code' =>
'store_%isolation%' 222 $storeFixture->persist();
224 return $websiteFixture;
230 protected function configureAllowedCountries(array $countryList = [])
232 foreach ($countryList as $countries) {
233 $websiteFixture = $this->createWebsiteFixture();
235 $configFixture = $this->fixtureFactory->createByCode(
239 'general/country/allow' => [
240 'value' => $countries
243 'fixture' => $websiteFixture,
244 'scope_type' =>
'website',
245 'website_id' => $websiteFixture->getWebsiteId(),
246 'set_level' =>
'website',
252 $configFixture->persist();
253 $this->allowedCountriesData[] = [
254 'website' => $websiteFixture,
255 'countries' => explode(
",", $countries)
265 protected function changeAdminLocale(array $userData)
268 $adminUser = $this->fixtureFactory->createByCode(
'user', [
'data' => $userData]);
269 $this->userIndex->open();
270 $this->userIndex->getUserGrid()->searchAndOpen([
'username' => $adminUser->getUsername()]);
271 $this->userEdit->getUserForm()->fill($adminUser);
272 $this->userEdit->getPageActions()->save();
278 protected function changeAdminLocaleRollback()
281 $defaultAdminUser = $this->fixtureFactory->createByCode(
'user');
282 $adminUserData = $defaultAdminUser->getData();
283 unset($adminUserData[
'user_id']);
284 $defaultAdminUser = $this->fixtureFactory->createByCode(
'user', [
'data' => $adminUserData]);
285 $this->userIndex->open();
286 $this->userIndex->getUserGrid()->searchAndOpen([
'username' => $defaultAdminUser->getUsername()]);
287 $this->userEdit->getUserForm()->fill($defaultAdminUser);
288 $this->userEdit->getPageActions()->save();
296 foreach ($this->steps as $key => $stepData) {
297 if (method_exists($this, $key .
'Rollback')) {
298 call_user_func_array([$this, $key .
'Rollback'], $stepData);
call_user_func($callable, $param)
test(Customer $customer, $customerAction, Address $address=null, array $steps=[], array $beforeActionCallback=[])
__inject(CustomerIndex $pageCustomerIndex, CustomerIndexNew $pageCustomerIndexNew, \Magento\Mtf\Fixture\FixtureFactory $fixtureFactory, UserEdit $userEdit, UserIndex $userIndex)