diff options
Diffstat (limited to 'qa/qa/page/project/show.rb')
-rw-r--r-- | qa/qa/page/project/show.rb | 39 |
1 files changed, 30 insertions, 9 deletions
diff --git a/qa/qa/page/project/show.rb b/qa/qa/page/project/show.rb index 9d2a84ea644..0c7ad46d36b 100644 --- a/qa/qa/page/project/show.rb +++ b/qa/qa/page/project/show.rb @@ -22,27 +22,33 @@ module QA end def choose_repository_clone_http - wait(reload: false) do - click_element :clone_dropdown - - page.within('.clone-options-dropdown') do - click_link('HTTP') - end + choose_repository_clone('HTTP', 'http') + end - # Ensure git clone textbox was updated to http URI - repository_location.include?('http') - end + def choose_repository_clone_ssh + # It's not always beginning with ssh:// so detecting with @ + # would be more reliable because ssh would always contain it. + # We can't use .git because HTTP also contain that part. + choose_repository_clone('SSH', '@') end def repository_location find('#project_clone').value end + def repository_location_uri + Git::Location.new(repository_location) + end + def project_name find('.qa-project-name').text end def new_merge_request + wait(reload: true) do + has_css?(element_selector_css(:create_merge_request)) + end + click_element :create_merge_request end @@ -56,6 +62,21 @@ module QA click_link 'New issue' end + + private + + def choose_repository_clone(kind, detect_text) + wait(reload: false) do + click_element :clone_dropdown + + page.within('.clone-options-dropdown') do + click_link(kind) + end + + # Ensure git clone textbox was updated + repository_location.include?(detect_text) + end + end end end end |