Merge branch 'master' into normalize_capitalization
This commit is contained in:
commit
562af7a6a2
30 changed files with 236 additions and 171 deletions
|
@ -323,7 +323,7 @@ GEM
|
|||
multi_json (~> 1.0)
|
||||
rubyzip
|
||||
settingslogic (2.0.8)
|
||||
shoulda-matchers (1.1.0)
|
||||
shoulda-matchers (1.3.0)
|
||||
activesupport (>= 3.0.0)
|
||||
simplecov (0.6.4)
|
||||
multi_json (~> 1.0)
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
.btn {
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #f7f7f7), to(#d5d5d5));
|
||||
background-image: -webkit-linear-gradient(#f7f7f7 7.6%, #d5d5d5);
|
||||
background-image: -moz-linear-gradient(#f7f7f7 7.6%, #d5d5d5);
|
||||
background-image: -o-linear-gradient(#f7f7f7 7.6%, #d5d5d5);
|
||||
@include bg-gradient(#f7f7f7, #d5d5d5);
|
||||
border-color:#aaa;
|
||||
&:hover {
|
||||
@include bg-gray-gradient;
|
||||
|
@ -12,10 +9,8 @@
|
|||
|
||||
&.primary {
|
||||
background:#2a79A3;
|
||||
@include bg-gradient(#47A7b7, #2585b5);
|
||||
border-color: #2A79A3;
|
||||
background-image: -webkit-linear-gradient(#47A7b7 7.6%, #2585b5);
|
||||
background-image: -moz-linear-gradient(#47A7b7 7.6%, #2585b5);
|
||||
background-image: -o-linear-gradient(#47A7b7 7.6%, #2585b5);
|
||||
color:#fff;
|
||||
text-shadow: 0 1px 1px #268;
|
||||
&:hover {
|
||||
|
@ -30,16 +25,11 @@
|
|||
}
|
||||
|
||||
&.success {
|
||||
border-color: #4A4;
|
||||
background-image: -webkit-linear-gradient(#82D482 7.6%, #22B442);
|
||||
background-image: -moz-linear-gradient(#82D482 7.6%, #22B442);
|
||||
background-image: -o-linear-gradient(#82D482 7.6%, #22B442);
|
||||
color: #fff;
|
||||
text-shadow: 0 1px 1px #141;
|
||||
@extend .btn-success;
|
||||
|
||||
&:hover {
|
||||
background: #6C6;
|
||||
color: #fff;
|
||||
@extend .btn-success;
|
||||
background: #51a351;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
|
@ -62,10 +52,8 @@
|
|||
padding-right:30px;
|
||||
}
|
||||
|
||||
&.danger,
|
||||
&.btn-danger {
|
||||
color:#fff;
|
||||
background: #DA4E49;
|
||||
&.danger {
|
||||
@extend .btn-danger;
|
||||
border-color: #BD362F;
|
||||
|
||||
&:hover {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
*/
|
||||
.file_holder {
|
||||
border:1px solid #CCC;
|
||||
border:1px solid #BBB;
|
||||
margin-bottom:1em;
|
||||
@include solid_shade;
|
||||
|
||||
|
|
|
@ -56,6 +56,13 @@ $hover: #fdf5d9;
|
|||
border-radius: $radius;
|
||||
}
|
||||
|
||||
@mixin bg-gradient($from, $to) {
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from($from), to($to));
|
||||
background-image: -webkit-linear-gradient($from, $to);
|
||||
background-image: -moz-linear-gradient($from, $to);
|
||||
background-image: -o-linear-gradient($from, $to);
|
||||
}
|
||||
|
||||
@mixin bg-gray-gradient {
|
||||
background:#eee;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 30, color-stop(0.066, #eee), to(#dfdfdf));
|
||||
|
|
|
@ -22,7 +22,7 @@ header {
|
|||
*
|
||||
*/
|
||||
.app_logo {
|
||||
width:230px;
|
||||
width:200px;
|
||||
float:left;
|
||||
position:relative;
|
||||
top:-5px;
|
||||
|
@ -31,7 +31,7 @@ header {
|
|||
|
||||
h1 {
|
||||
padding-top: 5px;
|
||||
width:102px;
|
||||
width:90px;
|
||||
background: url('logo_dark.png') no-repeat 0px -3px;
|
||||
float:left;
|
||||
margin-left:5px;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Main Menu of Application
|
||||
*
|
||||
*/
|
||||
ul.main_menu {
|
||||
ul.main_menu {
|
||||
border-radius: 4px;
|
||||
margin: auto;
|
||||
margin:30px 0;
|
||||
|
@ -12,7 +12,7 @@ ul.main_menu {
|
|||
position:relative;
|
||||
overflow:hidden;
|
||||
@include shade;
|
||||
.count {
|
||||
.count {
|
||||
position: relative;
|
||||
top: -1px;
|
||||
display: inline-block;
|
||||
|
@ -29,12 +29,12 @@ ul.main_menu {
|
|||
border-radius: 8px;
|
||||
-moz-border-radius: 8px;
|
||||
}
|
||||
.label {
|
||||
.label {
|
||||
background:$hover;
|
||||
text-shadow:none;
|
||||
color:$style_color;
|
||||
}
|
||||
li {
|
||||
li {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
display: table-cell;
|
||||
|
@ -43,7 +43,7 @@ ul.main_menu {
|
|||
border-left: 1px solid #EEE;
|
||||
border-bottom:2px solid #CFCFCF;
|
||||
|
||||
&:first-child{
|
||||
&:first-child{
|
||||
-webkit-border-top-left-radius: 4px;
|
||||
-webkit-border-bottom-left-radius: 4px;
|
||||
-moz-border-radius-topleft: 4px;
|
||||
|
@ -53,31 +53,31 @@ ul.main_menu {
|
|||
border-left: 0;
|
||||
}
|
||||
|
||||
&.current {
|
||||
&.current {
|
||||
background-color:#D5D5D5;
|
||||
border-bottom: 2px solid $style_color;
|
||||
border-bottom: 1px solid #AAA;
|
||||
border-right: 1px solid #BBB;
|
||||
border-left: 1px solid #BBB;
|
||||
border-radius: 0 0 1px 1px;
|
||||
&:first-child{
|
||||
&:first-child{
|
||||
border-bottom:none;
|
||||
border-left:none;
|
||||
}
|
||||
}
|
||||
|
||||
&.home {
|
||||
a {
|
||||
&.home {
|
||||
a {
|
||||
background: url(home_icon.PNG) no-repeat center center;
|
||||
text-indent:-9999px;
|
||||
min-width:20px;
|
||||
img {
|
||||
img {
|
||||
position:relative;
|
||||
top:4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
a {
|
||||
a {
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-weight:bold;
|
||||
|
|
|
@ -104,6 +104,8 @@ class Project < ActiveRecord::Base
|
|||
length: { within: 1..255 }
|
||||
|
||||
validates :owner, presence: true
|
||||
validates :issues_enabled, :wall_enabled, :merge_requests_enabled,
|
||||
:wiki_enabled, inclusion: { in: [true, false] }
|
||||
validate :check_limit
|
||||
validate :repo_name
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ module IssueCommonality
|
|||
validates :title,
|
||||
presence: true,
|
||||
length: { within: 0..255 }
|
||||
|
||||
validates :closed, inclusion: { in: [true, false] }
|
||||
|
||||
scope :opened, where(closed: false)
|
||||
scope :closed, where(closed: true)
|
||||
|
|
|
@ -11,8 +11,13 @@
|
|||
.input= f.text_field :title
|
||||
.clearfix
|
||||
= f.label :key
|
||||
.input= f.text_area :key, class: "xlarge"
|
||||
.actions
|
||||
= f.submit 'Save', class: "primary btn"
|
||||
= link_to "Cancel", project_deploy_keys_path(@project), class: "btn"
|
||||
.input
|
||||
= f.text_area :key, class: [:xxlarge, :thin_area]
|
||||
%p.hint
|
||||
Paste a machine public key here. Read more about how generate it
|
||||
= link_to "here", help_ssh_path
|
||||
|
||||
.actions
|
||||
= f.submit 'Save', class: "save-btn btn"
|
||||
= link_to "Cancel", project_deploy_keys_path(@project), class: "btn cancel-btn"
|
||||
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
= render "repositories/head"
|
||||
- if can? current_user, :admin_project, @project
|
||||
.alert-message.block-message
|
||||
Deploy keys allow read-only access to repository.
|
||||
|
||||
%p.slead
|
||||
Deploy keys allow read-only access to repository. It matches perfectly for CI, staging or production servers.
|
||||
|
||||
- if can? current_user, :admin_project, @project
|
||||
= link_to new_project_deploy_key_path(@project), class: "btn small", title: "New Deploy Key" do
|
||||
Add Deploy Key
|
||||
|
||||
- if @keys.any?
|
||||
%table
|
||||
%thead
|
||||
%tr
|
||||
%th Keys
|
||||
%th
|
||||
%th
|
||||
- @keys.each do |key|
|
||||
= render(partial: 'show', locals: {key: key})
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
= render "repositories/head"
|
||||
|
||||
%h3 New Deploy key
|
||||
%h3.page_title New Deploy key
|
||||
%hr
|
||||
|
||||
= render 'form'
|
||||
|
|
|
@ -1,7 +1,14 @@
|
|||
= render "repositories/head"
|
||||
%h3= @key.title
|
||||
%h3.page_title
|
||||
Deploy key:
|
||||
= @key.title
|
||||
%small
|
||||
created at
|
||||
= @key.created_at.stamp("Aug 21, 2011")
|
||||
.back_link
|
||||
= link_to project_deploy_keys_path(@project) do
|
||||
← To keys list
|
||||
%hr
|
||||
%pre= @key.key
|
||||
.actions
|
||||
.right
|
||||
= link_to 'Remove', project_deploy_key_path(@key.project, @key), confirm: 'Are you sure?', method: :delete, class: "danger btn delete-key"
|
||||
.clear
|
||||
|
|
|
@ -10,5 +10,5 @@
|
|||
%hr
|
||||
|
||||
%pre= @key.key
|
||||
.actions
|
||||
.right
|
||||
= link_to 'Remove', @key, confirm: 'Are you sure?', method: :delete, class: "btn danger delete-key"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
.team_member_show
|
||||
- if can? current_user, :admin_project, @project
|
||||
= link_to 'Remove from team', project_team_member_path(project_id: @project, id: @team_member.id), confirm: 'Are you sure?', method: :delete, class: "right btn btn-danger"
|
||||
= link_to 'Remove from team', project_team_member_path(project_id: @project, id: @team_member.id), confirm: 'Are you sure?', method: :delete, class: "right btn danger"
|
||||
.profile_avatar_holder
|
||||
= image_tag gravatar_icon(user.email, 60), class: "borders"
|
||||
%h3
|
||||
|
|
|
@ -4,7 +4,7 @@ Feature: Issues
|
|||
And I own project "Shop"
|
||||
And project "Shop" have "Release 0.4" open issue
|
||||
And project "Shop" have "Release 0.3" closed issue
|
||||
And I visit project "Shop" issues page
|
||||
And I visit project "Shop" issues page
|
||||
|
||||
Scenario: I should see open issues
|
||||
Given I should see "Release 0.4" in issues
|
||||
|
@ -36,3 +36,31 @@ Feature: Issues
|
|||
Given I visit issue page "Release 0.4"
|
||||
And I leave a comment like "XML attached"
|
||||
Then I should see comment "XML attached"
|
||||
|
||||
@javascript
|
||||
Scenario: I search issue
|
||||
Given I fill in issue search with "Release"
|
||||
Then I should see "Release 0.4" in issues
|
||||
And I should not see "Release 0.3" in issues
|
||||
|
||||
@javascript
|
||||
Scenario: I search issue that not exist
|
||||
Given I fill in issue search with "Bug"
|
||||
Then I should not see "Release 0.4" in issues
|
||||
And I should not see "Release 0.3" in issues
|
||||
|
||||
|
||||
@javascript
|
||||
Scenario: I search all issues
|
||||
Given I click link "All"
|
||||
And I fill in issue search with "0.3"
|
||||
Then I should see "Release 0.3" in issues
|
||||
And I should not see "Release 0.4" in issues
|
||||
|
||||
@javascript
|
||||
Scenario: I clear search
|
||||
Given I click link "All"
|
||||
And I fill in issue search with "Something"
|
||||
And I fill in issue search with ""
|
||||
Then I should see "Release 0.4" in issues
|
||||
And I should see "Release 0.3" in issues
|
||||
|
|
21
features/step_definitions/common_steps.rb
Normal file
21
features/step_definitions/common_steps.rb
Normal file
|
@ -0,0 +1,21 @@
|
|||
include LoginHelpers
|
||||
|
||||
Given /^I signin as a user$/ do
|
||||
login_as :user
|
||||
end
|
||||
|
||||
When /^I click link "(.*?)"$/ do |link|
|
||||
click_link link
|
||||
end
|
||||
|
||||
When /^I click button "(.*?)"$/ do |button|
|
||||
click_button button
|
||||
end
|
||||
|
||||
When /^I fill in "(.*?)" with "(.*?)"$/ do |field, value|
|
||||
fill_in field, :with => value
|
||||
end
|
||||
|
||||
Given /^show me page$/ do
|
||||
save_and_open_page
|
||||
end
|
|
@ -1,7 +1,3 @@
|
|||
Given /^I visit dashboard page$/ do
|
||||
visit dashboard_path
|
||||
end
|
||||
|
||||
Then /^I should see "(.*?)" link$/ do |arg1|
|
||||
page.should have_link(arg1)
|
||||
end
|
||||
|
@ -51,10 +47,10 @@ Then /^I click "(.*?)" link$/ do |arg1|
|
|||
end
|
||||
|
||||
Then /^I see prefilled new Merge Request page$/ do
|
||||
current_path.should == new_project_merge_request_path(@project)
|
||||
find("#merge_request_source_branch").value.should == "new_design"
|
||||
find("#merge_request_target_branch").value.should == "master"
|
||||
find("#merge_request_title").value.should == "New Design"
|
||||
current_path.should == new_project_merge_request_path(@project)
|
||||
find("#merge_request_source_branch").value.should == "new_design"
|
||||
find("#merge_request_target_branch").value.should == "master"
|
||||
find("#merge_request_title").value.should == "New Design"
|
||||
end
|
||||
|
||||
Given /^I visit dashboard search page$/ do
|
||||
|
@ -66,10 +62,6 @@ Given /^I search for "(.*?)"$/ do |arg1|
|
|||
click_button "Search"
|
||||
end
|
||||
|
||||
Given /^I visit dashboard issues page$/ do
|
||||
visit dashboard_issues_path
|
||||
end
|
||||
|
||||
Then /^I should see issues assigned to me$/ do
|
||||
issues = @user.issues
|
||||
issues.each do |issue|
|
||||
|
@ -78,10 +70,6 @@ Then /^I should see issues assigned to me$/ do
|
|||
end
|
||||
end
|
||||
|
||||
Given /^I visit dashboard merge requests page$/ do
|
||||
visit dashboard_merge_requests_path
|
||||
end
|
||||
|
||||
Then /^I should see my merge requests$/ do
|
||||
merge_requests = @user.merge_requests
|
||||
merge_requests.each do |mr|
|
||||
|
|
|
@ -1,17 +1,9 @@
|
|||
Given /^I visit profile page$/ do
|
||||
visit profile_path
|
||||
end
|
||||
|
||||
Then /^I should see my profile info$/ do
|
||||
page.should have_content "Profile"
|
||||
page.should have_content @user.name
|
||||
page.should have_content @user.email
|
||||
end
|
||||
|
||||
Given /^I visit profile password page$/ do
|
||||
visit profile_password_path
|
||||
end
|
||||
|
||||
Then /^I change my password$/ do
|
||||
fill_in "user_password", :with => "222333"
|
||||
fill_in "user_password_confirmation", :with => "222333"
|
||||
|
@ -22,10 +14,6 @@ Then /^I should be redirected to sign in page$/ do
|
|||
current_path.should == new_user_session_path
|
||||
end
|
||||
|
||||
Given /^I visit profile token page$/ do
|
||||
visit profile_token_path
|
||||
end
|
||||
|
||||
Then /^I reset my token$/ do
|
||||
@old_token = @user.private_token
|
||||
click_button "Reset"
|
||||
|
|
|
@ -1,17 +1,9 @@
|
|||
Given /^I visit project source page$/ do
|
||||
visit tree_project_ref_path(@project, @project.root_ref)
|
||||
end
|
||||
|
||||
Then /^I should see files from repository$/ do
|
||||
page.should have_content("app")
|
||||
page.should have_content("History")
|
||||
page.should have_content("Gemfile")
|
||||
end
|
||||
|
||||
Given /^I visit project source page for "(.*?)"$/ do |arg1|
|
||||
visit tree_project_ref_path(@project, arg1)
|
||||
end
|
||||
|
||||
Then /^I should see files from repository for "(.*?)"$/ do |arg1|
|
||||
current_path.should == tree_project_ref_path(@project, arg1)
|
||||
page.should have_content("app")
|
||||
|
@ -31,10 +23,6 @@ Given /^I click on raw button$/ do
|
|||
click_link "raw"
|
||||
end
|
||||
|
||||
Given /^I visit blob file from repo$/ do
|
||||
visit tree_project_ref_path(@project, ValidCommit::ID, :path => ValidCommit::BLOB_FILE_PATH)
|
||||
end
|
||||
|
||||
Then /^I should see raw file content$/ do
|
||||
page.source.should == ValidCommit::BLOB_FILE
|
||||
end
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
Given /^I visit project commits page$/ do
|
||||
visit project_commits_path(@project)
|
||||
end
|
||||
|
||||
Then /^I see project commits$/ do
|
||||
current_path.should == project_commits_path(@project)
|
||||
|
||||
|
@ -23,19 +19,11 @@ Then /^I see commits atom feed$/ do
|
|||
page.body.should have_selector("entry summary", :text => commit.description)
|
||||
end
|
||||
|
||||
Given /^I click on commit link$/ do
|
||||
visit project_commit_path(@project, ValidCommit::ID)
|
||||
end
|
||||
|
||||
Then /^I see commit info$/ do
|
||||
page.should have_content ValidCommit::MESSAGE
|
||||
page.should have_content "Showing 1 changed file"
|
||||
end
|
||||
|
||||
Given /^I visit compare refs page$/ do
|
||||
visit compare_project_commits_path(@project)
|
||||
end
|
||||
|
||||
Given /^I fill compare fields with refs$/ do
|
||||
fill_in "from", :with => "master"
|
||||
fill_in "to", :with => "stable"
|
||||
|
@ -48,18 +36,6 @@ Given /^I see compared refs$/ do
|
|||
page.should have_content "Showing 73 changed files"
|
||||
end
|
||||
|
||||
Given /^I visit project branches page$/ do
|
||||
visit branches_project_repository_path(@project)
|
||||
end
|
||||
|
||||
Given /^I visit project commit page$/ do
|
||||
visit project_commit_path(@project, ValidCommit::ID)
|
||||
end
|
||||
|
||||
Given /^I visit project tags page$/ do
|
||||
visit tags_project_repository_path(@project)
|
||||
end
|
||||
|
||||
Then /^I should see "(.*?)" recent branches list$/ do |arg1|
|
||||
page.should have_content("Branches")
|
||||
page.should have_content("master")
|
||||
|
@ -76,7 +52,7 @@ Then /^I should see "(.*?)" all tags list$/ do |arg1|
|
|||
end
|
||||
|
||||
Then /^I should see "(.*?)" protected branches list$/ do |arg1|
|
||||
within "table" do
|
||||
within "table" do
|
||||
page.should have_content "stable"
|
||||
page.should_not have_content "master"
|
||||
end
|
||||
|
|
|
@ -8,16 +8,12 @@ Given /^project "(.*?)" have "(.*?)" closed issue$/ do |arg1, arg2|
|
|||
Factory.create(:issue, :title => arg2, :project => project, :author => project.users.first, :closed => true)
|
||||
end
|
||||
|
||||
Given /^I visit project "(.*?)" issues page$/ do |arg1|
|
||||
visit project_issues_path(Project.find_by_name(arg1))
|
||||
end
|
||||
|
||||
Given /^I should see "(.*?)" in issues$/ do |arg1|
|
||||
page.should have_content arg1
|
||||
page.should have_content arg1
|
||||
end
|
||||
|
||||
Given /^I should not see "(.*?)" in issues$/ do |arg1|
|
||||
page.should_not have_content arg1
|
||||
page.should_not have_content arg1
|
||||
end
|
||||
|
||||
Then /^I should see issue "(.*?)"$/ do |arg1|
|
||||
|
@ -27,11 +23,6 @@ Then /^I should see issue "(.*?)"$/ do |arg1|
|
|||
page.should have_content issue.project.name
|
||||
end
|
||||
|
||||
Given /^I visit issue page "(.*?)"$/ do |arg1|
|
||||
issue = Issue.find_by_title(arg1)
|
||||
visit project_issue_path(issue.project, issue)
|
||||
end
|
||||
|
||||
Given /^I submit new issue "(.*?)"$/ do |arg1|
|
||||
fill_in "issue_title", with: arg1
|
||||
click_button "Submit new issue"
|
||||
|
@ -51,7 +42,16 @@ Given /^I visit project "(.*?)" labels page$/ do |arg1|
|
|||
end
|
||||
|
||||
Then /^I should see label "(.*?)"$/ do |arg1|
|
||||
within ".labels-table" do
|
||||
within ".labels-table" do
|
||||
page.should have_content arg1
|
||||
end
|
||||
end
|
||||
|
||||
Given /^I fill in issue search with "(.*?)"$/ do |arg1|
|
||||
# Because fill_in, with: "" triggers nothing
|
||||
# we need to trigger a keyup event
|
||||
if arg1 == ''
|
||||
page.execute_script("$('.issue_search').val('').keyup();");
|
||||
end
|
||||
fill_in 'issue_search', with: arg1
|
||||
end
|
||||
|
|
|
@ -8,21 +8,17 @@ Given /^project "(.*?)" have "(.*?)" closed merge request$/ do |arg1, arg2|
|
|||
Factory.create(:merge_request, :title => arg2, :project => project, :author => project.users.first, :closed => true)
|
||||
end
|
||||
|
||||
Given /^I visit project "(.*?)" merge requests page$/ do |arg1|
|
||||
visit project_merge_requests_path(Project.find_by_name(arg1))
|
||||
end
|
||||
|
||||
Then /^I should see "(.*?)" in merge requests$/ do |arg1|
|
||||
page.should have_content arg1
|
||||
page.should have_content arg1
|
||||
end
|
||||
|
||||
Then /^I should not see "(.*?)" in merge requests$/ do |arg1|
|
||||
page.should_not have_content arg1
|
||||
page.should_not have_content arg1
|
||||
end
|
||||
|
||||
Then /^I should see merge request "(.*?)"$/ do |arg1|
|
||||
merge_request = MergeRequest.find_by_title(arg1)
|
||||
page.should have_content(merge_request.title[0..10])
|
||||
page.should have_content(merge_request.title[0..10])
|
||||
page.should have_content(merge_request.target_branch)
|
||||
page.should have_content(merge_request.source_branch)
|
||||
end
|
||||
|
@ -34,11 +30,6 @@ Given /^I submit new merge request "(.*?)"$/ do |arg1|
|
|||
click_button "Save"
|
||||
end
|
||||
|
||||
Given /^I visit merge request page "(.*?)"$/ do |arg1|
|
||||
mr = MergeRequest.find_by_title(arg1)
|
||||
visit project_merge_request_path(mr.project, mr)
|
||||
end
|
||||
|
||||
Then /^I should see closed merge request "(.*?)"$/ do |arg1|
|
||||
mr = MergeRequest.find_by_title(arg1)
|
||||
mr.closed.should be_true
|
||||
|
|
|
@ -12,11 +12,6 @@ Given /^project "(.*?)" has milestone "(.*?)"$/ do |arg1, arg2|
|
|||
end
|
||||
end
|
||||
|
||||
Given /^I visit project "(.*?)" milestones page$/ do |arg1|
|
||||
@project = Project.find_by_name(arg1)
|
||||
visit project_milestones_path(@project)
|
||||
end
|
||||
|
||||
Then /^I should see active milestones$/ do
|
||||
milestone = @project.milestones.first
|
||||
page.should have_content(milestone.title[0..10])
|
||||
|
|
|
@ -8,10 +8,6 @@ Given /^"(.*?)" is "(.*?)" developer$/ do |arg1, arg2|
|
|||
project.add_access(user, :write)
|
||||
end
|
||||
|
||||
Given /^I visit project "(.*?)" team page$/ do |arg1|
|
||||
visit team_project_path(Project.find_by_name(arg1))
|
||||
end
|
||||
|
||||
Then /^I should be able to see myself in team$/ do
|
||||
page.should have_content(@user.name)
|
||||
page.should have_content(@user.email)
|
||||
|
@ -23,13 +19,9 @@ Then /^I should see "(.*?)" in team list$/ do |arg1|
|
|||
page.should have_content(user.email)
|
||||
end
|
||||
|
||||
Given /^I click link "(.*?)"$/ do |arg1|
|
||||
click_link arg1
|
||||
end
|
||||
|
||||
Given /^I select "(.*?)" as "(.*?)"$/ do |arg1, arg2|
|
||||
user = User.find_by_name(arg1)
|
||||
within "#new_team_member" do
|
||||
within "#new_team_member" do
|
||||
select user.name, :from => "team_member_user_id"
|
||||
select arg2, :from => "team_member_project_access"
|
||||
end
|
||||
|
@ -44,7 +36,7 @@ end
|
|||
|
||||
Given /^I change "(.*?)" role to "(.*?)"$/ do |arg1, arg2|
|
||||
user = User.find_by_name(arg1)
|
||||
within ".user_#{user.id}" do
|
||||
within ".user_#{user.id}" do
|
||||
select arg2, :from => "team_member_project_access"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
Given /^I visit project wiki page$/ do
|
||||
visit project_wiki_path(@project, :index)
|
||||
end
|
||||
|
||||
Given /^I create Wiki page$/ do
|
||||
fill_in "Title", :with => 'Test title'
|
||||
fill_in "Content", :with => '[link test](test)'
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
include LoginHelpers
|
||||
|
||||
Given /^I signin as a user$/ do
|
||||
login_as :user
|
||||
end
|
||||
|
||||
When /^I visit new project page$/ do
|
||||
visit new_project_path
|
||||
end
|
||||
|
@ -65,10 +59,6 @@ Given /^I visit project "(.*?)" network page$/ do |arg1|
|
|||
visit graph_project_path(project)
|
||||
end
|
||||
|
||||
Given /^show me page$/ do
|
||||
save_and_open_page
|
||||
end
|
||||
|
||||
Given /^page should have network graph$/ do
|
||||
page.should have_content "Project Network Graph"
|
||||
within ".graph" do
|
||||
|
|
91
features/step_definitions/visit_steps.rb
Normal file
91
features/step_definitions/visit_steps.rb
Normal file
|
@ -0,0 +1,91 @@
|
|||
Given /^I visit project "(.*?)" issues page$/ do |arg1|
|
||||
visit project_issues_path(Project.find_by_name(arg1))
|
||||
end
|
||||
|
||||
Given /^I visit issue page "(.*?)"$/ do |arg1|
|
||||
issue = Issue.find_by_title(arg1)
|
||||
visit project_issue_path(issue.project, issue)
|
||||
end
|
||||
|
||||
Given /^I visit project "(.*?)" merge requests page$/ do |arg1|
|
||||
visit project_merge_requests_path(Project.find_by_name(arg1))
|
||||
end
|
||||
|
||||
Given /^I visit merge request page "(.*?)"$/ do |arg1|
|
||||
mr = MergeRequest.find_by_title(arg1)
|
||||
visit project_merge_request_path(mr.project, mr)
|
||||
end
|
||||
|
||||
Given /^I visit project "(.*?)" milestones page$/ do |arg1|
|
||||
@project = Project.find_by_name(arg1)
|
||||
visit project_milestones_path(@project)
|
||||
end
|
||||
|
||||
Given /^I visit project commits page$/ do
|
||||
visit project_commits_path(@project)
|
||||
end
|
||||
|
||||
Given /^I visit compare refs page$/ do
|
||||
visit compare_project_commits_path(@project)
|
||||
end
|
||||
|
||||
Given /^I visit project branches page$/ do
|
||||
visit branches_project_repository_path(@project)
|
||||
end
|
||||
|
||||
Given /^I visit project commit page$/ do
|
||||
visit project_commit_path(@project, ValidCommit::ID)
|
||||
end
|
||||
|
||||
Given /^I visit project tags page$/ do
|
||||
visit tags_project_repository_path(@project)
|
||||
end
|
||||
|
||||
Given /^I click on commit link$/ do
|
||||
visit project_commit_path(@project, ValidCommit::ID)
|
||||
end
|
||||
|
||||
Given /^I visit project source page$/ do
|
||||
visit tree_project_ref_path(@project, @project.root_ref)
|
||||
end
|
||||
|
||||
Given /^I visit project source page for "(.*?)"$/ do |arg1|
|
||||
visit tree_project_ref_path(@project, arg1)
|
||||
end
|
||||
|
||||
Given /^I visit blob file from repo$/ do
|
||||
visit tree_project_ref_path(@project, ValidCommit::ID, :path => ValidCommit::BLOB_FILE_PATH)
|
||||
end
|
||||
|
||||
Given /^I visit project "(.*?)" team page$/ do |arg1|
|
||||
visit team_project_path(Project.find_by_name(arg1))
|
||||
end
|
||||
|
||||
Given /^I visit project wiki page$/ do
|
||||
visit project_wiki_path(@project, :index)
|
||||
end
|
||||
|
||||
Given /^I visit profile page$/ do
|
||||
visit profile_path
|
||||
end
|
||||
|
||||
Given /^I visit profile token page$/ do
|
||||
visit profile_token_path
|
||||
end
|
||||
|
||||
Given /^I visit profile password page$/ do
|
||||
visit profile_password_path
|
||||
end
|
||||
|
||||
Given /^I visit dashboard page$/ do
|
||||
visit dashboard_path
|
||||
end
|
||||
|
||||
Given /^I visit dashboard issues page$/ do
|
||||
visit dashboard_issues_path
|
||||
end
|
||||
|
||||
Given /^I visit dashboard merge requests page$/ do
|
||||
visit dashboard_merge_requests_path
|
||||
end
|
||||
|
|
@ -7,6 +7,7 @@ describe Issue do
|
|||
|
||||
describe "Validation" do
|
||||
it { should ensure_length_of(:description).is_within(0..2000) }
|
||||
it { should ensure_inclusion_of(:closed).in_array([true, false]) }
|
||||
end
|
||||
|
||||
describe 'modules' do
|
||||
|
|
|
@ -9,6 +9,7 @@ describe Milestone do
|
|||
describe "Validation" do
|
||||
it { should validate_presence_of(:title) }
|
||||
it { should validate_presence_of(:project_id) }
|
||||
it { should ensure_inclusion_of(:closed).in_array([true, false]) }
|
||||
end
|
||||
|
||||
let(:milestone) { Factory :milestone }
|
||||
|
|
|
@ -37,6 +37,10 @@ describe Project do
|
|||
# TODO: Formats
|
||||
|
||||
it { should validate_presence_of(:owner) }
|
||||
it { should ensure_inclusion_of(:issues_enabled).in_array([true, false]) }
|
||||
it { should ensure_inclusion_of(:wall_enabled).in_array([true, false]) }
|
||||
it { should ensure_inclusion_of(:merge_requests_enabled).in_array([true, false]) }
|
||||
it { should ensure_inclusion_of(:wiki_enabled).in_array([true, false]) }
|
||||
|
||||
it "should not allow new projects beyond user limits" do
|
||||
project.stub(:owner).and_return(double(can_create_project?: false, projects_limit: 1))
|
||||
|
@ -239,7 +243,7 @@ describe Project do
|
|||
end
|
||||
end
|
||||
|
||||
describe :update_merge_requests do
|
||||
describe :update_merge_requests do
|
||||
let(:project) { Factory :project }
|
||||
|
||||
before do
|
||||
|
@ -259,7 +263,7 @@ describe Project do
|
|||
@merge_request.closed.should be_true
|
||||
end
|
||||
|
||||
it "should update merge request commits with new one if pushed to source branch" do
|
||||
it "should update merge request commits with new one if pushed to source branch" do
|
||||
@merge_request.last_commit.should == nil
|
||||
project.update_merge_requests("8716fc78f3c65bbf7bcf7b574febd583bc5d2812", "bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a", "refs/heads/master", @key.user)
|
||||
@merge_request.reload
|
||||
|
|
Loading…
Reference in a new issue