diff options
author | Sanad Liaquat <sanadhussain@gmail.com> | 2018-07-17 13:34:55 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2018-07-17 13:34:55 +0000 |
commit | 7e1f90ab90ade79d8ee4ae416a0101840d1b618f (patch) | |
tree | edcaa894ff526f30b4a06a6c0e189693aa164533 /qa/qa/page | |
parent | 59b82fbcd48108682d58426975b581800672ca28 (diff) | |
download | gitlab-ce-7e1f90ab90ade79d8ee4ae416a0101840d1b618f.tar.gz |
QA scenario to add/edit/delete a file via the Web UI
Diffstat (limited to 'qa/qa/page')
-rw-r--r-- | qa/qa/page/file/form.rb | 40 | ||||
-rw-r--r-- | qa/qa/page/file/shared/commit_message.rb | 19 | ||||
-rw-r--r-- | qa/qa/page/file/show.rb | 30 | ||||
-rw-r--r-- | qa/qa/page/project/show.rb | 8 | ||||
-rw-r--r-- | qa/qa/page/view.rb | 4 |
5 files changed, 99 insertions, 2 deletions
diff --git a/qa/qa/page/file/form.rb b/qa/qa/page/file/form.rb new file mode 100644 index 00000000000..f6e502f500b --- /dev/null +++ b/qa/qa/page/file/form.rb @@ -0,0 +1,40 @@ +module QA + module Page + module File + class Form < Page::Base + include Shared::CommitMessage + + view 'app/views/projects/blob/_editor.html.haml' do + element :file_name, "text_field_tag 'file_name'" + element :editor, '#editor' + end + + view 'app/views/projects/_commit_button.html.haml' do + element :commit_changes, "button_tag 'Commit changes'" + end + + def add_name(name) + fill_in 'file_name', with: name + end + + def add_content(content) + text_area.set content + end + + def remove_content + text_area.send_keys([:command, 'a'], :backspace) + end + + def commit_changes + click_on 'Commit changes' + end + + private + + def text_area + find('#editor>textarea', visible: false) + end + end + end + end +end diff --git a/qa/qa/page/file/shared/commit_message.rb b/qa/qa/page/file/shared/commit_message.rb new file mode 100644 index 00000000000..5af1a55e2ef --- /dev/null +++ b/qa/qa/page/file/shared/commit_message.rb @@ -0,0 +1,19 @@ +module QA + module Page + module File + module Shared + module CommitMessage + def self.included(base) + base.view 'app/views/shared/_commit_message_container.html.haml' do + element :commit_message, "text_area_tag 'commit_message'" + end + end + + def add_commit_message(message) + fill_in 'commit_message', with: message + end + end + end + end + end +end diff --git a/qa/qa/page/file/show.rb b/qa/qa/page/file/show.rb new file mode 100644 index 00000000000..99f5924b67f --- /dev/null +++ b/qa/qa/page/file/show.rb @@ -0,0 +1,30 @@ +module QA + module Page + module File + class Show < Page::Base + include Shared::CommitMessage + + view 'app/helpers/blob_helper.rb' do + element :edit_button, "_('Edit')" + element :delete_button, /label:\s+"Delete"/ + end + + view 'app/views/projects/blob/_remove.html.haml' do + element :delete_file_button, "button_tag 'Delete file'" + end + + def click_edit + click_on 'Edit' + end + + def click_delete + click_on 'Delete' + end + + def click_delete_file + click_on 'Delete file' + end + end + end + end +end diff --git a/qa/qa/page/project/show.rb b/qa/qa/page/project/show.rb index 88861d5772d..1d3dad4cda0 100644 --- a/qa/qa/page/project/show.rb +++ b/qa/qa/page/project/show.rb @@ -31,10 +31,18 @@ module QA element :tree_holder, '.tree-holder' end + view 'app/presenters/project_presenter.rb' do + element :new_file_button, "label: _('New file')," + end + def project_name find('.qa-project-name').text end + def go_to_new_file! + click_on 'New file' + end + def switch_to_branch(branch_name) find_element(:branches_select).click diff --git a/qa/qa/page/view.rb b/qa/qa/page/view.rb index 6635e1ce039..b2a2da4dbf3 100644 --- a/qa/qa/page/view.rb +++ b/qa/qa/page/view.rb @@ -9,7 +9,7 @@ module QA end def pathname - @pathname ||= Pathname.new(File.join(__dir__, '../../../', @path)) + @pathname ||= Pathname.new(::File.join(__dir__, '../../../', @path)) .cleanpath.expand_path end @@ -23,7 +23,7 @@ module QA # elements' existence. # @missing ||= @elements.dup.tap do |elements| - File.foreach(pathname.to_s) do |line| + ::File.foreach(pathname.to_s) do |line| elements.reject! { |element| element.matches?(line) } end end |