diff options
Diffstat (limited to 'qa/qa/page/group/show.rb')
-rw-r--r-- | qa/qa/page/group/show.rb | 52 |
1 files changed, 33 insertions, 19 deletions
diff --git a/qa/qa/page/group/show.rb b/qa/qa/page/group/show.rb index f23294145dd..ac1fd9b5f90 100644 --- a/qa/qa/page/group/show.rb +++ b/qa/qa/page/group/show.rb @@ -2,12 +2,25 @@ module QA module Page module Group class Show < Page::Base - ## - # TODO, define all selectors required by this page object - # - # See gitlab-org/gitlab-qa#154 - # - view 'app/views/groups/show.html.haml' + view 'app/views/groups/show.html.haml' do + element :dropdown_toggle, '.dropdown-toggle' + element :new_project_subgroup, '.new-project-subgroup' + + element :new_project_toggle, + /%li.+ data: { value: "new\-project"/ + element :new_project_button, + /%input.+ data: { action: "new\-project"/ + + element :new_subgroup_toggle, + /%li.+ data: { value: "new\-subgroup"/ + # TODO: input[data-action='new-subgroup'] seems to be handled by JS? + # See app/assets/javascripts/groups/new_group_child.js + end + + view 'app/views/shared/groups/_search_form.html.haml' do + element :filter_by_name, + "placeholder: s_('GroupsTree|Filter by name...')" + end def go_to_subgroup(name) click_link name @@ -24,31 +37,32 @@ module QA end def go_to_new_subgroup - within '.new-project-subgroup' do - # May need to click again because it is possible to click the button quicker than the JS is bound - wait(reload: false) do - find('.dropdown-toggle').click - - page.has_css?("li[data-value='new-subgroup']") - end - find("li[data-value='new-subgroup']").click - end + click_new('subgroup') find("input[data-action='new-subgroup']").click end def go_to_new_project + click_new('project') + + find("input[data-action='new-project']").click + end + + private + + def click_new(kind) within '.new-project-subgroup' do + css = "li[data-value='new-#{kind}']" + # May need to click again because it is possible to click the button quicker than the JS is bound wait(reload: false) do find('.dropdown-toggle').click - page.has_css?("li[data-value='new-project']") + page.has_css?(css) end - find("li[data-value='new-project']").click - end - find("input[data-action='new-project']").click + find(css).click + end end end end |