Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
gitlab-ce
Commits
4917dc64
Commit
4917dc64
authored
May 08, 2014
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2-step-mr' into 'master'
2 step merge request process
parents
4673d980
536373ad
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
229 additions
and
76 deletions
+229
-76
app/assets/javascripts/project_users_select.js.coffee
app/assets/javascripts/project_users_select.js.coffee
+1
-1
app/assets/stylesheets/sections/merge_requests.scss
app/assets/stylesheets/sections/merge_requests.scss
+0
-1
app/controllers/projects/merge_requests_controller.rb
app/controllers/projects/merge_requests_controller.rb
+20
-4
app/helpers/issues_helper.rb
app/helpers/issues_helper.rb
+1
-1
app/helpers/selects_helper.rb
app/helpers/selects_helper.rb
+2
-2
app/models/merge_request.rb
app/models/merge_request.rb
+8
-0
app/views/projects/merge_requests/_form.html.haml
app/views/projects/merge_requests/_form.html.haml
+20
-43
app/views/projects/merge_requests/_new_compare.html.haml
app/views/projects/merge_requests/_new_compare.html.haml
+84
-0
app/views/projects/merge_requests/_new_submit.html.haml
app/views/projects/merge_requests/_new_submit.html.haml
+82
-0
app/views/projects/merge_requests/branch_from.js.haml
app/views/projects/merge_requests/branch_from.js.haml
+0
-5
app/views/projects/merge_requests/new.html.haml
app/views/projects/merge_requests/new.html.haml
+4
-3
app/views/projects/merge_requests/show/_mr_title.html.haml
app/views/projects/merge_requests/show/_mr_title.html.haml
+1
-1
features/project/forked_merge_requests.feature
features/project/forked_merge_requests.feature
+1
-2
features/steps/project/forked_merge_requests.rb
features/steps/project/forked_merge_requests.rb
+3
-12
features/steps/project/merge_requests.rb
features/steps/project/merge_requests.rb
+2
-1
No files found.
app/assets/javascripts/project_users_select.js.coffee
View file @
4917dc64
@
projectUsersSelect
=
@
projectUsersSelect
=
init
:
->
init
:
->
$
(
'.ajax-project-users-select'
).
each
(
i
,
select
)
->
$
(
'.ajax-project-users-select'
).
each
(
i
,
select
)
->
project_id
=
$
(
'body'
).
data
(
'project-id'
)
project_id
=
$
(
select
).
data
(
'project-id'
)
||
$
(
'body'
).
data
(
'project-id'
)
$
(
select
).
select2
$
(
select
).
select2
placeholder
:
$
(
select
).
data
(
'placeholder'
)
||
"Search for a user"
placeholder
:
$
(
select
).
data
(
'placeholder'
)
||
"Search for a user"
...
...
app/assets/stylesheets/sections/merge_requests.scss
View file @
4917dc64
...
@@ -31,7 +31,6 @@
...
@@ -31,7 +31,6 @@
.mr_source_commit
,
.mr_source_commit
,
.mr_target_commit
{
.mr_target_commit
{
margin-top
:
10px
;
.commit
{
.commit
{
margin
:
0
;
margin
:
0
;
padding
:
2px
0
;
padding
:
2px
0
;
...
...
app/controllers/projects/merge_requests_controller.rb
View file @
4917dc64
...
@@ -62,11 +62,27 @@ class Projects::MergeRequestsController < Projects::ApplicationController
...
@@ -62,11 +62,27 @@ class Projects::MergeRequestsController < Projects::ApplicationController
@merge_request
.
source_project
=
@project
unless
@merge_request
.
source_project
@merge_request
.
source_project
=
@project
unless
@merge_request
.
source_project
@merge_request
.
target_project
||=
(
@project
.
forked_from_project
||
@project
)
@merge_request
.
target_project
||=
(
@project
.
forked_from_project
||
@project
)
@target_branches
=
@merge_request
.
target_project
.
nil?
?
[]
:
@merge_request
.
target_project
.
repository
.
branch_names
@target_branches
=
@merge_request
.
target_project
.
nil?
?
[]
:
@merge_request
.
target_project
.
repository
.
branch_names
@merge_request
.
target_branch
||=
@merge_request
.
target_project
.
default_branch
@merge_request
.
target_branch
||=
@merge_request
.
target_project
.
default_branch
@source_project
=
@merge_request
.
source_project
@source_project
=
@merge_request
.
source_project
@merge_request
if
@merge_request
.
target_branch
&&
@merge_request
.
source_branch
compare_action
=
Gitlab
::
Satellite
::
CompareAction
.
new
(
current_user
,
@merge_request
.
target_project
,
@merge_request
.
target_branch
,
@merge_request
.
source_project
,
@merge_request
.
source_branch
)
@commits
=
compare_action
.
commits
@commits
.
map!
{
|
commit
|
Commit
.
new
(
commit
)
}
@commit
=
@commits
.
first
@diffs
=
compare_action
.
diffs
@merge_request
.
title
=
@merge_request
.
source_branch
.
titleize
.
humanize
@target_project
=
@merge_request
.
target_project
@target_repo
=
@target_project
.
repository
end
end
end
def
edit
def
edit
...
@@ -80,7 +96,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
...
@@ -80,7 +96,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
@merge_request
=
MergeRequests
::
CreateService
.
new
(
project
,
current_user
,
params
[
:merge_request
]).
execute
@merge_request
=
MergeRequests
::
CreateService
.
new
(
project
,
current_user
,
params
[
:merge_request
]).
execute
if
@merge_request
.
valid?
if
@merge_request
.
valid?
redirect_to
[
@merge_request
.
target_project
,
@merge_request
]
,
notice:
'Merge request was successfully created.'
redirect_to
project_merge_request_path
(
@merge_request
.
target_project
,
@merge_request
)
,
notice:
'Merge request was successfully created.'
else
else
@source_project
=
@merge_request
.
source_project
@source_project
=
@merge_request
.
source_project
@target_project
=
@merge_request
.
target_project
@target_project
=
@merge_request
.
target_project
...
...
app/helpers/issues_helper.rb
View file @
4917dc64
...
@@ -82,7 +82,7 @@ module IssuesHelper
...
@@ -82,7 +82,7 @@ module IssuesHelper
end
end
def
milestone_options
object
def
milestone_options
object
options_from_collection_for_select
(
@
project
.
milestones
.
active
,
'id'
,
'title'
,
object
.
milestone_id
)
options_from_collection_for_select
(
object
.
project
.
milestones
.
active
,
'id'
,
'title'
,
object
.
milestone_id
)
end
end
def
issue_box_class
(
item
)
def
issue_box_class
(
item
)
...
...
app/helpers/selects_helper.rb
View file @
4917dc64
...
@@ -14,7 +14,7 @@ module SelectsHelper
...
@@ -14,7 +14,7 @@ module SelectsHelper
css_class
<<
(
opts
[
:class
]
||
''
)
css_class
<<
(
opts
[
:class
]
||
''
)
value
=
opts
[
:selected
]
||
''
value
=
opts
[
:selected
]
||
''
placeholder
=
opts
[
:placeholder
]
||
'Select user'
placeholder
=
opts
[
:placeholder
]
||
'Select user'
project_id
=
opts
[
:project_id
]
||
@project
.
id
hidden_field_tag
(
id
,
value
,
class:
css_class
,
'data-placeholder'
=>
placeholder
)
hidden_field_tag
(
id
,
value
,
class:
css_class
,
'data-placeholder'
=>
placeholder
,
'data-project-id'
=>
project_id
)
end
end
end
end
app/models/merge_request.rb
View file @
4917dc64
...
@@ -253,6 +253,14 @@ class MergeRequest < ActiveRecord::Base
...
@@ -253,6 +253,14 @@ class MergeRequest < ActiveRecord::Base
end
end
end
end
def
target_project_namespace
if
target_project
&&
target_project
.
namespace
target_project
.
namespace
.
path
else
"(removed)"
end
end
def
source_branch_exists?
def
source_branch_exists?
return
false
unless
self
.
source_project
return
false
unless
self
.
source_project
...
...
app/views/projects/merge_requests/_form.html.haml
View file @
4917dc64
...
@@ -14,33 +14,6 @@
...
@@ -14,33 +14,6 @@
-
@merge_request
.
errors
.
full_messages
.
each
do
|
msg
|
-
@merge_request
.
errors
.
full_messages
.
each
do
|
msg
|
%div
=
msg
%div
=
msg
.merge-request-branches
.form-group
=
label_tag
nil
,
class:
'control-label'
do
From
.col-sm-10
.clearfix
.pull-left
=
f
.
select
(
:source_project_id
,
[[
@merge_request
.
source_project_path
,
@merge_request
.
source_project
.
id
]]
,
{},
{
class:
'source_project select2 span3'
,
disabled:
@merge_request
.
persisted?
})
.pull-left
=
f
.
select
(
:source_branch
,
@merge_request
.
source_branches
,
{
include_blank:
"Select branch"
},
{
class:
'source_branch select2 span2'
})
.mr_source_commit
%br
.form-group
=
label_tag
nil
,
class:
'control-label'
do
To
.col-sm-10
.clearfix
.pull-left
-
projects
=
@project
.
forked_from_project
.
nil?
?
[
@project
]
:
[
@project
,
@project
.
forked_from_project
]
=
f
.
select
(
:target_project_id
,
options_from_collection_for_select
(
projects
,
'id'
,
'path_with_namespace'
,
f
.
object
.
target_project_id
),
{},
{
class:
'target_project select2 span3'
,
disabled:
@merge_request
.
persisted?
})
.pull-left
=
f
.
select
(
:target_branch
,
@merge_request
.
target_branches
,
{
include_blank:
"Select branch"
},
{
class:
'target_branch select2 span2'
})
.mr_target_commit
%hr
.merge-request-form-info
.merge-request-form-info
.form-group
.form-group
=
f
.
label
:title
,
class:
'control-label'
do
=
f
.
label
:title
,
class:
'control-label'
do
...
@@ -51,6 +24,23 @@
...
@@ -51,6 +24,23 @@
.col-sm-10
.col-sm-10
=
f
.
text_area
:description
,
class:
"form-control js-gfm-input"
,
rows:
14
=
f
.
text_area
:description
,
class:
"form-control js-gfm-input"
,
rows:
14
%p
.hint
Description is parsed with
#{
link_to
"GitLab Flavored Markdown"
,
help_markdown_path
,
target:
'_blank'
}
.
%p
.hint
Description is parsed with
#{
link_to
"GitLab Flavored Markdown"
,
help_markdown_path
,
target:
'_blank'
}
.
%hr
.form-group
.issue-assignee
=
f
.
label
:assignee_id
,
class:
'control-label'
do
%i
.icon-user
Assign to
.col-sm-10
=
project_users_select_tag
(
'merge_request[assignee_id]'
,
placeholder:
'Select a user'
,
class:
'custom-form-control'
,
selected:
@merge_request
.
assignee_id
)
=
link_to
'Assign to me'
,
'#'
,
class:
'btn btn-small assign-to-me-link'
.form-group
.issue-milestone
=
f
.
label
:milestone_id
,
class:
'control-label'
do
%i
.icon-time
Milestone
.col-sm-10
=
f
.
select
(
:milestone_id
,
milestone_options
(
@merge_request
),
{
include_blank:
"Select milestone"
},
{
class:
'select2'
})
.form-actions
.form-actions
-
if
@merge_request
.
new_record?
-
if
@merge_request
.
new_record?
...
@@ -66,20 +56,7 @@
...
@@ -66,20 +56,7 @@
:javascript
:javascript
disableButtonIfEmptyField
(
"
#merge_request_title
"
,
"
.btn-save
"
);
disableButtonIfEmptyField
(
"
#merge_request_title
"
,
"
.btn-save
"
);
$
(
'
.assign-to-me-link
'
).
on
(
'
click
'
,
function
(
e
){
var
source_branch
=
$
(
"
#merge_request_source_branch
"
)
$
(
'
#merge_request_assignee_id
'
).
val
(
"
#{
current_user
.
id
}
"
).
trigger
(
"
change
"
);
,
target_branch
=
$
(
"
#merge_request_target_branch
"
)
e
.
preventDefault
();
,
target_project
=
$
(
"
#merge_request_target_project_id
"
);
$
.
get
(
"
#{
branch_from_project_merge_requests_path
(
@source_project
)
}
"
,
{
ref
:
source_branch
.
val
()
});
$
.
get
(
"
#{
branch_to_project_merge_requests_path
(
@source_project
)
}
"
,
{
target_project_id
:
target_project
.
val
(),
ref
:
target_branch
.
val
()
});
target_project
.
on
(
"
change
"
,
function
()
{
$
.
get
(
"
#{
update_branches_project_merge_requests_path
(
@source_project
)
}
"
,
{
target_project_id
:
$
(
this
).
val
()
});
});
source_branch
.
on
(
"
change
"
,
function
()
{
$
.
get
(
"
#{
branch_from_project_merge_requests_path
(
@source_project
)
}
"
,
{
ref
:
$
(
this
).
val
()
});
});
target_branch
.
on
(
"
change
"
,
function
()
{
$
.
get
(
"
#{
branch_to_project_merge_requests_path
(
@source_project
)
}
"
,
{
target_project_id
:
target_project
.
val
(),
ref
:
$
(
this
).
val
()
});
});
});
app/views/projects/merge_requests/_new_compare.html.haml
0 → 100644
View file @
4917dc64
%h3
.page-title
Compare branches for new Merge Request
%hr
=
form_for
[
@project
,
@merge_request
],
url:
new_project_merge_request_path
(
@project
),
method: :get
,
html:
{
class:
"merge-request-form form-inline"
}
do
|
f
|
.hide.alert.alert-danger.mr-compare-errors
.merge-request-branches.row
.col-md-6
.panel.panel-default
.panel-heading
%strong
Source branch
.panel-body
=
f
.
select
(
:source_project_id
,
[[
@merge_request
.
source_project_path
,
@merge_request
.
source_project
.
id
]]
,
{},
{
class:
'source_project select2 span3'
,
disabled:
@merge_request
.
persisted?
})
=
f
.
select
(
:source_branch
,
@merge_request
.
source_branches
,
{
include_blank:
"Select branch"
},
{
class:
'source_branch select2 span2'
})
.panel-footer
.mr_source_commit
.col-md-6
.panel.panel-default
.panel-heading
%strong
Target branch
.panel-body
-
projects
=
@project
.
forked_from_project
.
nil?
?
[
@project
]
:
[
@project
,
@project
.
forked_from_project
]
=
f
.
select
(
:target_project_id
,
options_from_collection_for_select
(
projects
,
'id'
,
'path_with_namespace'
,
f
.
object
.
target_project_id
),
{},
{
class:
'target_project select2 span3'
,
disabled:
@merge_request
.
persisted?
})
=
f
.
select
(
:target_branch
,
@merge_request
.
target_branches
,
{
include_blank:
"Select branch"
},
{
class:
'target_branch select2 span2'
})
.panel-footer
.mr_target_commit
-
if
@merge_request
.
errors
.
any?
.alert.alert-danger
-
@merge_request
.
errors
.
full_messages
.
each
do
|
msg
|
%div
=
msg
-
if
@merge_request
.
source_branch
.
present?
&&
@merge_request
.
target_branch
.
present?
.light-well
%center
%h4
There isn't anything to merge.
%p
.slead
-
if
@merge_request
.
source_branch
==
@merge_request
.
target_branch
You'll need to use different branch names to get a valid comparison.
-
else
%span
.label-branch
#{
@merge_request
.
source_branch
}
and
%span
.label-branch
#{
@merge_request
.
target_branch
}
are the same.
%hr
=
f
.
submit
'Compare branches'
,
class:
"btn btn-primary mr-compare-btn"
:javascript
var
source_branch
=
$
(
"
#merge_request_source_branch
"
)
,
target_branch
=
$
(
"
#merge_request_target_branch
"
)
,
target_project
=
$
(
"
#merge_request_target_project_id
"
);
$
.
get
(
"
#{
branch_from_project_merge_requests_path
(
@source_project
)
}
"
,
{
ref
:
source_branch
.
val
()
});
$
.
get
(
"
#{
branch_to_project_merge_requests_path
(
@source_project
)
}
"
,
{
target_project_id
:
target_project
.
val
(),
ref
:
target_branch
.
val
()
});
target_project
.
on
(
"
change
"
,
function
()
{
$
.
get
(
"
#{
update_branches_project_merge_requests_path
(
@source_project
)
}
"
,
{
target_project_id
:
$
(
this
).
val
()
});
});
source_branch
.
on
(
"
change
"
,
function
()
{
$
.
get
(
"
#{
branch_from_project_merge_requests_path
(
@source_project
)
}
"
,
{
ref
:
$
(
this
).
val
()
});
$
(
"
.mr-compare-errors
"
).
fadeOut
();
$
(
"
.mr-compare-btn
"
).
enable
();
});
target_branch
.
on
(
"
change
"
,
function
()
{
$
.
get
(
"
#{
branch_to_project_merge_requests_path
(
@source_project
)
}
"
,
{
target_project_id
:
target_project
.
val
(),
ref
:
$
(
this
).
val
()
});
$
(
"
.mr-compare-errors
"
).
fadeOut
();
$
(
"
.mr-compare-btn
"
).
enable
();
});
:coffeescript
$(".merge-request-form").on 'submit', ->
if $("#merge_request_source_branch").val() is "" or $('#merge_request_target_branch').val() is ""
$(".mr-compare-errors").html("You must select source and target branch to proceed")
$(".mr-compare-errors").fadeIn()
event.preventDefault()
return
app/views/projects/merge_requests/_new_submit.html.haml
0 → 100644
View file @
4917dc64
%h3
.page-title
New merge request
%p
.slead
From
%strong
.monospace
#{
@merge_request
.
source_project_namespace
}
:
#{
@merge_request
.
source_branch
}
into
%strong
.monospace
#{
@merge_request
.
target_project_namespace
}
:
#{
@merge_request
.
target_branch
}
%span
.pull-right
=
link_to
'Change branches'
,
new_project_merge_request_path
(
@project
)
=
form_for
[
@project
,
@merge_request
],
html:
{
class:
"merge-request-form"
}
do
|
f
|
.panel.panel-default
.panel-body
.form-group
.light
=
f
.
label
:title
do
=
"Title *"
=
f
.
text_field
:title
,
class:
"form-control input-lg js-gfm-input"
,
maxlength:
255
,
rows:
5
,
required:
true
.form-group
.light
=
f
.
label
:description
,
"Description"
=
f
.
text_area
:description
,
class:
"form-control js-gfm-input"
,
rows:
10
%p
.hint
Description is parsed with
#{
link_to
"GitLab Flavored Markdown"
,
help_markdown_path
,
target:
'_blank'
}
.
.form-group
.issue-assignee
=
f
.
label
:assignee_id
do
%i
.icon-user
Assign to
%div
=
project_users_select_tag
(
'merge_request[assignee_id]'
,
placeholder:
'Select a user'
,
class:
'custom-form-control'
,
selected:
@merge_request
.
assignee_id
,
project_id:
@merge_request
.
target_project_id
)
=
link_to
'Assign to me'
,
'#'
,
class:
'btn btn-small assign-to-me-link'
.form-group
.issue-milestone
=
f
.
label
:milestone_id
do
%i
.icon-time
Milestone
%div
=
f
.
select
(
:milestone_id
,
milestone_options
(
@merge_request
),
{
include_blank:
"Select milestone"
},
{
class:
'select2'
})
.panel-footer
-
if
@target_repo
.
contribution_guide
-
contribution_guide_url
=
project_blob_path
(
@target_project
,
tree_join
(
@target_repo
.
root_ref
,
@target_repo
.
contribution_guide
.
name
))
%p
Please review the
%strong
#{
link_to
"guidelines for contribution"
,
contribution_guide_url
}
to this repository.
=
f
.
hidden_field
:source_project_id
=
f
.
hidden_field
:target_project_id
=
f
.
hidden_field
:target_branch
=
f
.
hidden_field
:source_branch
=
f
.
submit
'Submit merge request'
,
class:
"btn btn-create"
.mr-compare
%div
.ui-box
.title
Commits (
#{
@commits
.
count
}
)
-
if
@commits
.
size
>
MergeRequestDiff
::
COMMITS_SAFE_SIZE
%ul
.well-list
-
Commit
.
decorate
(
@commits
.
first
(
MergeRequestDiff
::
COMMITS_SAFE_SIZE
)).
each
do
|
commit
|
=
render
"projects/commits/inline_commit"
,
commit:
commit
,
project:
@project
%li
.warning-row.unstyled
other
#{
@commits
.
size
-
MergeRequestDiff
::
COMMITS_SAFE_SIZE
}
commits hidden to prevent performance issues.
-
else
%ul
.well-list
=
render
Commit
.
decorate
(
@commits
),
project:
@project
%h4
Changes
-
if
@diffs
.
present?
=
render
"projects/commits/diffs"
,
diffs:
@diffs
,
project:
@project
-
elsif
@commits
.
size
>
MergeRequestDiff
::
COMMITS_SAFE_SIZE
.bs-callout.bs-callout-danger
%h4
This comparison includes more than
#{
MergeRequestDiff
::
COMMITS_SAFE_SIZE
}
commits.
%p
To preserve performance the line changes are not shown.
:javascript
$
(
'
.assign-to-me-link
'
).
on
(
'
click
'
,
function
(
e
){
$
(
'
#merge_request_assignee_id
'
).
val
(
"
#{
current_user
.
id
}
"
).
trigger
(
"
change
"
);
e
.
preventDefault
();
});
app/views/projects/merge_requests/branch_from.js.haml
View file @
4917dc64
:plain
:plain
$(".mr_source_commit").html("
#{
commit_to_html
(
@commit
,
@source_project
,
false
)
}
");
$(".mr_source_commit").html("
#{
commit_to_html
(
@commit
,
@source_project
,
false
)
}
");
var mrTitle = $('#merge_request_title');
if(mrTitle.val().length == 0) {
mrTitle.val("
#{
params
[
:ref
].
titleize
.
humanize
}
");
}
app/views/projects/merge_requests/new.html.haml
View file @
4917dc64
%h3
.page-title
New Merge Request
-
if
@commits
.
present?
%hr
=
render
'new_submit'
=
render
'form'
-
else
=
render
'new_compare'
app/views/projects/merge_requests/show/_mr_title.html.haml
View file @
4917dc64
...
@@ -39,4 +39,4 @@
...
@@ -39,4 +39,4 @@
-
else
-
else
%span
=
@merge_request
.
source_branch
%span
=
@merge_request
.
source_branch
→
→
%span
h
=
@merge_request
.
target_branch
%span
=
@merge_request
.
target_branch
features/project/forked_merge_requests.feature
View file @
4917dc64
...
@@ -30,11 +30,10 @@ Feature: Project Forked Merge Requests
...
@@ -30,11 +30,10 @@ Feature: Project Forked Merge Requests
Given
I visit project
"Forked Shop"
merge requests page
Given
I visit project
"Forked Shop"
merge requests page
And
I click link
"New Merge Request"
And
I click link
"New Merge Request"
And
I fill out an invalid
"Merge Request On Forked Project"
merge request
And
I fill out an invalid
"Merge Request On Forked Project"
merge request
And
I submit the merge request
Then
I should see validation errors
Then
I should see validation errors
@javascript
@javascript
Scenario
:
Merge request should target fork repository by default
Scenario
:
Merge request should target fork repository by default
Given
I visit project
"Forked Shop"
merge requests page
Given
I visit project
"Forked Shop"
merge requests page
And
I click link
"New Merge Request"
And
I click link
"New Merge Request"
Then
the target repository should be the original repository
Then
the target repository should be the original repository
\ No newline at end of file
features/steps/project/forked_merge_requests.rb
View file @
4917dc64
...
@@ -53,6 +53,7 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps
...
@@ -53,6 +53,7 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps
find
(
:select
,
"merge_request_source_branch"
,
{}).
value
.
should
==
'master'
find
(
:select
,
"merge_request_source_branch"
,
{}).
value
.
should
==
'master'
find
(
:select
,
"merge_request_target_branch"
,
{}).
value
.
should
==
'stable'
find
(
:select
,
"merge_request_target_branch"
,
{}).
value
.
should
==
'stable'
click_button
"Compare branches"
fill_in
"merge_request_title"
,
with:
"Merge Request On Forked Project"
fill_in
"merge_request_title"
,
with:
"Merge Request On Forked Project"
end
end
...
@@ -148,29 +149,19 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps
...
@@ -148,29 +149,19 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps
current_path
.
should
==
edit_project_merge_request_path
(
@project
,
@merge_request
)
current_path
.
should
==
edit_project_merge_request_path
(
@project
,
@merge_request
)
page
.
should
have_content
"Edit merge request #
#{
@merge_request
.
id
}
"
page
.
should
have_content
"Edit merge request #
#{
@merge_request
.
id
}
"
find
(
"#merge_request_title"
).
value
.
should
==
"Merge Request On Forked Project"
find
(
"#merge_request_title"
).
value
.
should
==
"Merge Request On Forked Project"
find
(
"#merge_request_source_project_id"
).
value
.
should
==
@forked_project
.
id
.
to_s
find
(
"#merge_request_target_project_id"
).
value
.
should
==
@project
.
id
.
to_s
find
(
"#merge_request_source_branch"
).
value
.
should
have_content
"master"
verify_commit_link
(
".mr_source_commit"
,
@forked_project
)
find
(
"#merge_request_target_branch"
).
value
.
should
have_content
"stable"
verify_commit_link
(
".mr_target_commit"
,
@project
)
end
end
step
'I fill out an invalid "Merge Request On Forked Project" merge request'
do
step
'I fill out an invalid "Merge Request On Forked Project" merge request'
do
#If this isn't filled in the rest of the validations won't be triggered
fill_in
"merge_request_title"
,
with:
"Merge Request On Forked Project"
select
"Select branch"
,
from:
"merge_request_target_branch"
select
"Select branch"
,
from:
"merge_request_target_branch"
find
(
:select
,
"merge_request_source_project_id"
,
{}).
value
.
should
==
@forked_project
.
id
.
to_s
find
(
:select
,
"merge_request_source_project_id"
,
{}).
value
.
should
==
@forked_project
.
id
.
to_s
find
(
:select
,
"merge_request_target_project_id"
,
{}).
value
.
should
==
project
.
id
.
to_s
find
(
:select
,
"merge_request_target_project_id"
,
{}).
value
.
should
==
project
.
id
.
to_s
find
(
:select
,
"merge_request_source_branch"
,
{}).
value
.
should
==
""
find
(
:select
,
"merge_request_source_branch"
,
{}).
value
.
should
==
""
find
(
:select
,
"merge_request_target_branch"
,
{}).
value
.
should
==
""
find
(
:select
,
"merge_request_target_branch"
,
{}).
value
.
should
==
""
click_button
"Compare branches"
end
end
step
'I should see validation errors'
do
step
'I should see validation errors'
do
page
.
should
have_content
"Source branch can't be blank"
page
.
should
have_content
"You must select source and target branch"
page
.
should
have_content
"Target branch can't be blank"
end
end
step
'the target repository should be the original repository'
do
step
'the target repository should be the original repository'
do
...
...
features/steps/project/merge_requests.rb
View file @
4917dc64
...
@@ -61,9 +61,10 @@ class ProjectMergeRequests < Spinach::FeatureSteps
...
@@ -61,9 +61,10 @@ class ProjectMergeRequests < Spinach::FeatureSteps
end
end
step
'I submit new merge request "Wiki Feature"'
do
step
'I submit new merge request "Wiki Feature"'
do
fill_in
"merge_request_title"
,
with:
"Wiki Feature"
select
"master"
,
from:
"merge_request_source_branch"
select
"master"
,
from:
"merge_request_source_branch"
select
"notes_refactoring"
,
from:
"merge_request_target_branch"
select
"notes_refactoring"
,
from:
"merge_request_target_branch"
click_button
"Compare branches"
fill_in
"merge_request_title"
,
with:
"Wiki Feature"
click_button
"Submit merge request"
click_button
"Submit merge request"
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment