/** * Assert that user have custom role. * * @param User $user * @param AdminAuthLogin $adminAuth * @param Dashboard $dashboard * @param CatalogCategoryIndex $categoryIndex * @param User $customAdmin [optional] * @return void */ public function processAssert(User $user, AdminAuthLogin $adminAuth, Dashboard $dashboard, CatalogCategoryIndex $categoryIndex, User $customAdmin = null) { $adminUser = $customAdmin === null ? $user : $customAdmin; $adminPanelHeader = $dashboard->getAdminPanelHeader(); if ($adminPanelHeader->isVisible()) { $adminPanelHeader->logOut(); } $adminAuth->getLoginBlock()->loginToAdminPanel($adminUser->getData()); $role = $user->getDataFieldConfig('role_id')['source']->getRole(); $menuItems = $this->getMenuItems($role); foreach ($menuItems as $item) { \PHPUnit_Framework_Assert::assertTrue($adminPanelHeader->checkMenu(ucfirst($item)), "Menu {$item} is absent on top menu."); } // Check access denied message on category page. $categoryIndex->open(); \PHPUnit_Framework_Assert::assertTrue($categoryIndex->getContentBlock()->checkAccessDeniedMessage()); }