Merge branch '52696-raw-diff-patch-requests' into 'master'

Add spec for plain diff/email patch

Closes #52696

See merge request gitlab-org/gitlab-ce!23529
This commit is contained in:
Rémy Coutable 2018-12-11 21:41:36 +00:00
commit 91c64c045a
5 changed files with 101 additions and 4 deletions

View file

@ -28,7 +28,7 @@
= link_to project_tree_path(@project, @commit), class: "btn btn-default append-right-10 d-none d-sm-none d-md-inline" do
#{ _('Browse files') }
.dropdown.inline
%a.btn.btn-default.dropdown-toggle{ data: { toggle: "dropdown" } }
%a.btn.btn-default.dropdown-toggle.qa-options-button{ data: { toggle: "dropdown" } }
%span= _('Options')
= icon('caret-down')
%ul.dropdown-menu.dropdown-menu-right
@ -48,8 +48,8 @@
%li.dropdown-header
#{ _('Download') }
- unless @commit.parents.length > 1
%li= link_to s_("DownloadCommit|Email Patches"), project_commit_path(@project, @commit, format: :patch)
%li= link_to s_("DownloadCommit|Plain Diff"), project_commit_path(@project, @commit, format: :diff)
%li= link_to s_("DownloadCommit|Email Patches"), project_commit_path(@project, @commit, format: :patch), class: "qa-email-patches"
%li= link_to s_("DownloadCommit|Plain Diff"), project_commit_path(@project, @commit, format: :diff), class: "qa-plain-diff"
.commit-box{ data: { project_path: project_path(@project) } }
%h3.commit-title

View file

@ -158,6 +158,10 @@ module QA
autoload :Activity, 'qa/page/project/activity'
autoload :Menu, 'qa/page/project/menu'
module Commit
autoload :Show, 'qa/page/project/commit/show'
end
module Import
autoload :Github, 'qa/page/project/import/github'
end

View file

@ -0,0 +1,27 @@
# frozen_string_literal: true
module QA
module Page
module Project
module Commit
class Show < Page::Base
view 'app/views/projects/commit/_commit_box.html.haml' do
element :options_button
element :email_patches
element :plain_diff
end
def select_email_patches
click_element :options_button
click_element :email_patches
end
def select_plain_diff
click_element :options_button
click_element :plain_diff
end
end
end
end
end
end

View file

@ -72,9 +72,14 @@ module QA
end
end
def go_to_commit(commit_msg)
within_element(:file_tree) do
click_on commit_msg
end
end
def go_to_new_issue
click_element :new_menu_toggle
click_link 'New issue'
end

View file

@ -0,0 +1,61 @@
# frozen_string_literal: true
module QA
context 'Create' do
describe 'Commit data' do
before(:context) do
Runtime::Browser.visit(:gitlab, Page::Main::Login)
Page::Main::Login.perform(&:sign_in_using_credentials)
@project = Resource::Repository::ProjectPush.fabricate! do |push|
push.file_name = 'README.md'
push.file_content = '# This is a test project'
push.commit_message = 'Add README.md'
end
# first file added has no parent commit, thus no diff data
# add second file to repo to enable diff from initial commit
@commit_message = 'Add second file'
@project.visit!
Page::Project::Show.perform(&:create_new_file!)
Page::File::Form.perform do |f|
f.add_name('second')
f.add_content('second file content')
f.add_commit_message(@commit_message)
f.commit_changes
end
end
def view_commit
@project.visit!
Page::Project::Show.perform do |page|
page.go_to_commit(@commit_message)
end
end
def raw_content
find('pre').text
end
it 'user views raw email patch' do
view_commit
Page::Project::Commit::Show.perform(&:select_email_patches)
expect(page).to have_content('From: Administrator <admin@example.com>')
expect(page).to have_content('Subject: [PATCH] Add second file')
expect(page).to have_content('diff --git a/second b/second')
end
it 'user views raw commit diff' do
view_commit
Page::Project::Commit::Show.perform(&:select_plain_diff)
expect(raw_content).to start_with('diff --git a/second b/second')
expect(page).to have_content('+second file content')
end
end
end
end