diff options
Diffstat (limited to 'qa/qa/page/menu/main.rb')
-rw-r--r-- | qa/qa/page/menu/main.rb | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/qa/qa/page/menu/main.rb b/qa/qa/page/menu/main.rb new file mode 100644 index 00000000000..f8978b8a5f7 --- /dev/null +++ b/qa/qa/page/menu/main.rb @@ -0,0 +1,71 @@ +module QA + module Page + module Menu + class Main < Page::Base + view 'app/views/layouts/header/_default.html.haml' do + element :navbar + element :user_avatar + element :user_menu, '.dropdown-menu-nav' + element :user_sign_out_link, 'link_to "Sign out"' + end + + view 'app/views/layouts/nav/_dashboard.html.haml' do + element :admin_area_link + element :projects_dropdown + element :groups_link + end + + view 'app/views/layouts/nav/projects_dropdown/_show.html.haml' do + element :projects_dropdown_sidebar + element :your_projects_link + end + + def go_to_groups + within_top_menu { click_element :groups_link } + end + + def go_to_projects + within_top_menu do + click_element :projects_dropdown + end + + page.within('.qa-projects-dropdown-sidebar') do + click_element :your_projects_link + end + end + + def go_to_admin_area + within_top_menu { click_element :admin_area_link } + end + + def sign_out + within_user_menu do + click_link('Sign out') + end + end + + def has_personal_area? + page.has_selector?('.qa-user-avatar') + end + + private + + def within_top_menu + page.within('.qa-navbar') do + yield + end + end + + def within_user_menu + within_top_menu do + click_element :user_avatar + + page.within('.dropdown-menu-nav') do + yield + end + end + end + end + end + end +end |