/**
  * Run Revoke all access tokens for admin without tokens test.
  *
  * @param User $user
  * @return void
  */
 public function test(User $user)
 {
     // Preconditions:
     $user->persist();
     // Steps:
     $this->userIndex->open();
     $this->userIndex->getUserGrid()->searchAndOpen(['username' => $user->getUsername()]);
     $this->userEdit->getPageActions()->forceSignIn();
 }
 /**
  * Run reset user password failed test.
  * @param User $customAdmin
  * @param int $attempts
  * @return void
  */
 public function test(User $customAdmin, $attempts)
 {
     // Steps
     $customAdmin->persist();
     for ($i = 0; $i < $attempts; $i++) {
         $this->userAccountForgotPassword->open();
         $this->userAccountForgotPassword->getForgotPasswordForm()->fill($customAdmin);
         $this->userAccountForgotPassword->getForgotPasswordForm()->submit();
     }
 }
 /**
  * Check that locked user can't log in to admin panel.
  *
  * @param ConfigData $config
  * @param User $customAdmin
  * @param string $incorrectPassword
  * @param int $attempts
  * @param AdminAuthLogin $adminAuth
  * @param FixtureFactory $fixtureFactory
  * @param AssertUserFailedLoginMessage $assertUserFailedLoginMessage
  * @return array
  */
 public function testUpdateAdminUser(ConfigData $config, User $customAdmin, $incorrectPassword, $attempts, AdminAuthLogin $adminAuth, FixtureFactory $fixtureFactory, AssertUserFailedLoginMessage $assertUserFailedLoginMessage)
 {
     // Preconditions
     $config->persist();
     $customAdmin->persist();
     /** @var User $incorrectUser */
     $incorrectUser = $fixtureFactory->createByCode('user', ['data' => ['username' => $customAdmin->getUsername(), 'password' => $incorrectPassword]]);
     // Steps and assertions
     for ($i = 0; $i < $attempts; $i++) {
         $assertUserFailedLoginMessage->processAssert($adminAuth, $incorrectUser);
     }
 }
 /**
  * Runs Update Admin User Roles Entity test
  *
  * @param Role $roleInit
  * @param Role $role
  * @param User $user
  * @return array
  */
 public function testUpdateAdminUserRolesEntity(Role $roleInit, Role $role, User $user)
 {
     // Preconditions
     $roleInit->persist();
     if (!$user->hasData('user_id')) {
         $user->persist();
     }
     // Steps
     $filter = ['rolename' => $roleInit->getRoleName()];
     $this->adminAuthLogin->open();
     $this->adminAuthLogin->getLoginBlock()->fill($user);
     $this->adminAuthLogin->getLoginBlock()->submit();
     $this->rolePage->open();
     $this->rolePage->getRoleGrid()->searchAndOpen($filter);
     $this->userRoleEditRole->getRoleFormTabs()->fill($role);
     $this->userRoleEditRole->getPageActions()->save();
     return ['user' => $role->hasData('in_role_users') ? $role->getDataFieldConfig('in_role_users')['source']->getAdminUsers()[0] : $user];
 }
 /**
  * Runs Lock admin user when creating new role test.
  *
  * @param Role $role
  * @param int $attempts
  * @param User $customAdmin,
  * @param string $configData
  * @return void
  */
 public function testLockAdminUser(Role $role, $attempts, User $customAdmin, $configData = null)
 {
     $this->configData = $configData;
     // Preconditions
     $this->objectManager->create('Magento\\Config\\Test\\TestStep\\SetupConfigurationStep', ['configData' => $this->configData])->run();
     $customAdmin->persist();
     // Steps
     $this->adminAuthLogin->open();
     $this->adminAuthLogin->getLoginBlock()->fill($customAdmin);
     $this->adminAuthLogin->getLoginBlock()->submit();
     $this->userRoleIndex->open();
     $this->userRoleIndex->getRoleActions()->addNew();
     for ($i = 0; $i < $attempts; $i++) {
         $this->userRoleEditRole->getRoleFormTabs()->fill($role);
         $this->userRoleEditRole->getPageActions()->save();
     }
     // Reload
     $this->adminAuthLogin->open();
     $this->adminAuthLogin->getLoginBlock()->fill($customAdmin);
     $this->adminAuthLogin->getLoginBlock()->submit();
 }
 /**
  * Run Lock user when creating new integration test.
  *
  * @param Integration $integration
  * @param int $attempts
  * @param User $customAdmin
  * @param string $configData
  * @return void
  */
 public function test(Integration $integration, $attempts, User $customAdmin, $configData = null)
 {
     $this->configData = $configData;
     // Preconditions
     $this->objectManager->create('Magento\\Config\\Test\\TestStep\\SetupConfigurationStep', ['configData' => $this->configData])->run();
     $customAdmin->persist();
     $this->adminAuthLogin->open();
     $this->adminAuthLogin->getLoginBlock()->fill($customAdmin);
     $this->adminAuthLogin->getLoginBlock()->submit();
     // Steps
     $this->integrationIndexPage->open();
     $this->integrationIndexPage->getGridPageActions()->addNew();
     for ($i = 0; $i < $attempts; $i++) {
         $this->integrationNewPage->getIntegrationForm()->fill($integration);
         $this->integrationNewPage->getFormPageActions()->saveNew();
     }
     // Reload page
     $this->adminAuthLogin->open();
     $this->adminAuthLogin->getLoginBlock()->fill($customAdmin);
     $this->adminAuthLogin->getLoginBlock()->submit();
 }
 /**
  * Runs Update Admin User test.
  *
  * @param User $initialUser
  * @param User $user
  * @param string $loginAsDefaultAdmin
  * @return array
  * @throws \Exception
  */
 public function testUpdateAdminUser(User $initialUser, User $user, $loginAsDefaultAdmin)
 {
     // Precondition
     $initialUser->persist();
     // Steps
     $filter = ['username' => $initialUser->getUsername()];
     if ($loginAsDefaultAdmin == '0') {
         $this->adminAuth->open();
         $this->adminAuth->getLoginBlock()->fill($initialUser);
         $this->adminAuth->getLoginBlock()->submit();
     }
     $this->userIndex->open();
     $this->userIndex->getUserGrid()->searchAndOpen($filter);
     $this->userEdit->getUserForm()->fill($user);
     $this->userEdit->getPageActions()->save();
     return ['user' => $this->mergeUsers($initialUser, $user)];
 }