Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
UpdateAdminUserEntityTest.php
Go to the documentation of this file.
1 <?php
8 
10 use Magento\Backend\Test\Page\Adminhtml\Dashboard;
12 use Magento\Mtf\Fixture\FixtureFactory;
13 use Magento\Mtf\TestCase\Injectable;
14 use Magento\Mtf\TestStep\TestStepFactory;
16 use Magento\User\Test\Page\Adminhtml\UserEdit;
17 use Magento\User\Test\Page\Adminhtml\UserIndex;
18 
35 class UpdateAdminUserEntityTest extends Injectable
36 {
37  /* tags */
38  const MVP = 'no';
39  const TEST_TYPE = 'acceptance_test, extended_acceptance_test';
40  const SEVERITY = 'S3';
41  /* end tags */
42 
48  protected $userIndex;
49 
55  protected $userEdit;
56 
62  protected $dashboard;
63 
69  protected $adminAuth;
70 
76  protected $fixtureFactory;
77 
83  protected $testStepFactory;
84 
88  private $configData;
89 
101  public function __inject(
102  UserIndex $userIndex,
103  UserEdit $userEdit,
104  Dashboard $dashboard,
106  FixtureFactory $fixtureFactory,
107  TestStepFactory $testStepFactory
108  ) {
109  $this->userIndex = $userIndex;
110  $this->userEdit = $userEdit;
111  $this->dashboard = $dashboard;
112  $this->adminAuth = $adminAuth;
113  $this->fixtureFactory = $fixtureFactory;
114  $this->testStepFactory = $testStepFactory;
115  }
116 
128  public function testUpdateAdminUser(
129  User $initialUser,
130  User $user,
131  $loginAsDefaultAdmin,
133  $configData = null
134  ) {
135  // Preconditions
136  $this->configData = $configData;
137  $config->persist();
138  $this->testStepFactory->create(
139  \Magento\Config\Test\TestStep\SetupConfigurationStep::class,
140  ['configData' => $configData]
141  )->run();
142  $initialUser->persist();
143 
144  // Steps
145  $filter = ['username' => $initialUser->getUsername()];
146  if ($loginAsDefaultAdmin == '0') {
147  $this->adminAuth->open();
148  $this->adminAuth->getLoginBlock()->fill($initialUser);
149  $this->adminAuth->getLoginBlock()->submit();
150  }
151  $this->userIndex->open();
152  $this->userIndex->getUserGrid()->searchAndOpen($filter);
153  $this->userEdit->getUserForm()->fill($user);
154  $this->userEdit->getPageActions()->save();
155 
156  return ['user' => $this->mergeUsers($initialUser, $user)];
157  }
158 
166  protected function mergeUsers(User $initialUser, User $user)
167  {
168  $data = array_merge($initialUser->getData(), $user->getData());
169  if (isset($data['role_id'])) {
170  $data['role_id'] = [
171  'role' => ($user->hasData('role_id'))
172  ? $user->getDataFieldConfig('role_id')['source']->getRole()
173  : $initialUser->getDataFieldConfig('role_id')['source']->getRole(),
174  ];
175  }
176 
177  return $this->fixtureFactory->createByCode('user', ['data' => $data]);
178  }
179 
185  public function tearDown()
186  {
187  if ($this->dashboard->getAdminPanelHeader()->isVisible()) {
188  $this->dashboard->getAdminPanelHeader()->logOut();
189  }
190  }
191 }
$config
Definition: fraud_order.php:17
$user
Definition: dummy_user.php:13
__inject(UserIndex $userIndex, UserEdit $userEdit, Dashboard $dashboard, AdminAuthLogin $adminAuth, FixtureFactory $fixtureFactory, TestStepFactory $testStepFactory)
testUpdateAdminUser(User $initialUser, User $user, $loginAsDefaultAdmin, ConfigData $config, $configData=null)