Skip to content
Snippets Groups Projects
Commit b7f1cf9f authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Feature tests for deploy keys

parent 42b86b79
No related branches found
No related tags found
No related merge requests found
Feature: Project Deploy Keys
Background:
Given I sign in as a user
And I own project "Shop"
Scenario: I should see deploy keys list
Given project has deploy key
When I visit project deploy keys page
Then I should see project deploy keys
Scenario: I add new deploy key
Given I visit project deploy keys page
When I click 'New Deploy Key'
And I submit new deploy key
Then I should be on deploy keys page
And I should see newly created deploy key
Scenario: I attach deploy key to project
Given other project has deploy key
And I visit project deploy keys page
When I click attach deploy key
Then I should be on deploy keys page
And I should see newly created deploy key
class Spinach::Features::ProjectDeployKeys < Spinach::FeatureSteps
include SharedAuthentication
include SharedProject
include SharedPaths
step 'project has deploy key' do
create(:deploy_keys_project, project: @project)
end
step 'I should see project deploy keys' do
within '.enabled-keys' do
page.should have_content deploy_key.title
end
end
step 'I click \'New Deploy Key\'' do
click_link 'New Deploy Key'
end
step 'I submit new deploy key' do
fill_in "deploy_key_title", with: "laptop"
fill_in "deploy_key_key", with: "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzrEJUIR6Y03TCE9rIJ+GqTBvgb8t1jI9h5UBzCLuK4VawOmkLornPqLDrGbm6tcwM/wBrrLvVOqi2HwmkKEIecVO0a64A4rIYScVsXIniHRS6w5twyn1MD3sIbN+socBDcaldECQa2u1dI3tnNVcs8wi77fiRe7RSxePsJceGoheRQgC8AZ510UdIlO+9rjIHUdVN7LLyz512auAfYsgx1OfablkQ/XJcdEwDNgi9imI6nAXhmoKUm1IPLT2yKajTIC64AjLOnE0YyCh6+7RFMpiMyu1qiOCpdjYwTgBRiciNRZCH8xIedyCoAmiUgkUT40XYHwLuwiPJICpkAzp7Q== user@laptop"
click_button "Create"
end
step 'I should be on deploy keys page' do
current_path.should == project_deploy_keys_path(@project)
end
step 'I should see newly created deploy key' do
within '.enabled-keys' do
page.should have_content(deploy_key.title)
end
end
step 'other project has deploy key' do
@second_project = create :project, namespace: current_user.namespace
create(:deploy_keys_project, project: @second_project)
end
step 'I click attach deploy key' do
within '.available-keys' do
click_link 'Enable'
end
end
protected
def deploy_key
@project.deploy_keys.last
end
end
module SharedPaths
include Spinach::DSL
 
When 'I visit new project page' do
step 'I visit new project page' do
visit new_project_path
end
 
Loading
Loading
@@ -9,23 +9,23 @@ module SharedPaths
# Group
# ----------------------------------------
 
When 'I visit group page' do
step 'I visit group page' do
visit group_path(current_group)
end
 
When 'I visit group issues page' do
step 'I visit group issues page' do
visit issues_group_path(current_group)
end
 
When 'I visit group merge requests page' do
step 'I visit group merge requests page' do
visit merge_requests_group_path(current_group)
end
 
When 'I visit group people page' do
step 'I visit group people page' do
visit people_group_path(current_group)
end
 
When 'I visit group settings page' do
step 'I visit group settings page' do
visit edit_group_path(current_group)
end
 
Loading
Loading
@@ -33,27 +33,27 @@ module SharedPaths
# Dashboard
# ----------------------------------------
 
Given 'I visit dashboard page' do
step 'I visit dashboard page' do
visit dashboard_path
end
 
Given 'I visit dashboard projects page' do
step 'I visit dashboard projects page' do
visit projects_dashboard_path
end
 
Given 'I visit dashboard issues page' do
step 'I visit dashboard issues page' do
visit issues_dashboard_path
end
 
Given 'I visit dashboard merge requests page' do
step 'I visit dashboard merge requests page' do
visit merge_requests_dashboard_path
end
 
Given 'I visit dashboard search page' do
step 'I visit dashboard search page' do
visit search_path
end
 
Given 'I visit dashboard help page' do
step 'I visit dashboard help page' do
visit help_path
end
 
Loading
Loading
@@ -61,23 +61,23 @@ module SharedPaths
# Profile
# ----------------------------------------
 
Given 'I visit profile page' do
step 'I visit profile page' do
visit profile_path
end
 
Given 'I visit profile account page' do
step 'I visit profile account page' do
visit account_profile_path
end
 
Given 'I visit profile SSH keys page' do
step 'I visit profile SSH keys page' do
visit keys_path
end
 
Given 'I visit profile design page' do
step 'I visit profile design page' do
visit design_profile_path
end
 
Given 'I visit profile history page' do
step 'I visit profile history page' do
visit history_profile_path
end
 
Loading
Loading
@@ -85,35 +85,35 @@ module SharedPaths
# Admin
# ----------------------------------------
 
Given 'I visit admin page' do
step 'I visit admin page' do
visit admin_root_path
end
 
Given 'I visit admin projects page' do
step 'I visit admin projects page' do
visit admin_projects_path
end
 
Given 'I visit admin users page' do
step 'I visit admin users page' do
visit admin_users_path
end
 
Given 'I visit admin logs page' do
step 'I visit admin logs page' do
visit admin_logs_path
end
 
Given 'I visit admin hooks page' do
step 'I visit admin hooks page' do
visit admin_hooks_path
end
 
Given 'I visit admin Resque page' do
step 'I visit admin Resque page' do
visit admin_resque_path
end
 
And 'I visit admin groups page' do
step 'I visit admin groups page' do
visit admin_groups_path
end
 
When 'I visit admin teams page' do
step 'I visit admin teams page' do
visit admin_teams_path
end
 
Loading
Loading
@@ -121,145 +121,149 @@ module SharedPaths
# Generic Project
# ----------------------------------------
 
Given "I visit my project's home page" do
step "I visit my project's home page" do
visit project_path(@project)
end
 
Given "I visit my project's settings page" do
step "I visit my project's settings page" do
visit edit_project_path(@project)
end
 
Given "I visit my project's files page" do
step "I visit my project's files page" do
visit project_tree_path(@project, root_ref)
end
 
Given "I visit my project's commits page" do
step "I visit my project's commits page" do
visit project_commits_path(@project, root_ref, {limit: 5})
end
 
Given "I visit my project's commits page for a specific path" do
step "I visit my project's commits page for a specific path" do
visit project_commits_path(@project, root_ref + "/app/models/project.rb", {limit: 5})
end
 
Given 'I visit my project\'s commits stats page' do
step 'I visit my project\'s commits stats page' do
visit stats_project_repository_path(@project)
end
 
Given "I visit my project's network page" do
step "I visit my project's network page" do
# Stub Graph max_size to speed up test (10 commits vs. 650)
Network::Graph.stub(max_count: 10)
 
visit project_graph_path(@project, root_ref)
end
 
Given "I visit my project's issues page" do
step "I visit my project's issues page" do
visit project_issues_path(@project)
end
 
Given "I visit my project's merge requests page" do
step "I visit my project's merge requests page" do
visit project_merge_requests_path(@project)
end
 
Given "I visit my project's wall page" do
step "I visit my project's wall page" do
visit project_wall_path(@project)
end
 
Given "I visit my project's wiki page" do
step "I visit my project's wiki page" do
visit project_wiki_path(@project, :home)
end
 
When 'I visit project hooks page' do
step 'I visit project hooks page' do
visit project_hooks_path(@project)
end
 
step 'I visit project deploy keys page' do
visit project_deploy_keys_path(@project)
end
# ----------------------------------------
# "Shop" Project
# ----------------------------------------
 
And 'I visit project "Shop" page' do
step 'I visit project "Shop" page' do
visit project_path(project)
end
 
When 'I visit edit project "Shop" page' do
step 'I visit edit project "Shop" page' do
visit edit_project_path(project)
end
 
Given 'I visit project branches page' do
step 'I visit project branches page' do
visit branches_project_repository_path(@project)
end
 
Given 'I visit compare refs page' do
step 'I visit compare refs page' do
visit project_compare_index_path(@project)
end
 
Given 'I visit project commits page' do
step 'I visit project commits page' do
visit project_commits_path(@project, root_ref, {limit: 5})
end
 
Given 'I visit project commits page for stable branch' do
step 'I visit project commits page for stable branch' do
visit project_commits_path(@project, 'stable', {limit: 5})
end
 
Given 'I visit project source page' do
step 'I visit project source page' do
visit project_tree_path(@project, root_ref)
end
 
Given 'I visit blob file from repo' do
step 'I visit blob file from repo' do
visit project_blob_path(@project, File.join(ValidCommit::ID, ValidCommit::BLOB_FILE_PATH))
end
 
Given 'I visit project source page for "8470d70"' do
step 'I visit project source page for "8470d70"' do
visit project_tree_path(@project, "8470d70")
end
 
Given 'I visit project tags page' do
step 'I visit project tags page' do
visit tags_project_repository_path(@project)
end
 
Given 'I visit project commit page' do
step 'I visit project commit page' do
visit project_commit_path(@project, ValidCommit::ID)
end
 
And 'I visit project "Shop" issues page' do
step 'I visit project "Shop" issues page' do
visit project_issues_path(project)
end
 
Given 'I visit issue page "Release 0.4"' do
step 'I visit issue page "Release 0.4"' do
issue = Issue.find_by_title("Release 0.4")
visit project_issue_path(issue.project, issue)
end
 
Given 'I visit project "Shop" labels page' do
step 'I visit project "Shop" labels page' do
visit project_labels_path(project)
end
 
Given 'I visit merge request page "Bug NS-04"' do
step 'I visit merge request page "Bug NS-04"' do
mr = MergeRequest.find_by_title("Bug NS-04")
visit project_merge_request_path(mr.project, mr)
end
 
Given 'I visit merge request page "Bug NS-05"' do
step 'I visit merge request page "Bug NS-05"' do
mr = MergeRequest.find_by_title("Bug NS-05")
visit project_merge_request_path(mr.project, mr)
end
 
And 'I visit project "Shop" merge requests page' do
step 'I visit project "Shop" merge requests page' do
visit project_merge_requests_path(project)
end
 
Given 'I visit project "Shop" milestones page' do
step 'I visit project "Shop" milestones page' do
visit project_milestones_path(project)
end
 
Then 'I visit project "Shop" team page' do
step 'I visit project "Shop" team page' do
visit project_team_index_path(project)
end
 
Then 'I visit project "Shop" wall page' do
step 'I visit project "Shop" wall page' do
visit project_wall_path(project)
end
 
Given 'I visit project wiki page' do
step 'I visit project wiki page' do
visit project_wiki_path(@project, :home)
end
 
Loading
Loading
@@ -267,7 +271,7 @@ module SharedPaths
# Public Projects
# ----------------------------------------
 
Given 'I visit the public projects area' do
step 'I visit the public projects area' do
visit public_root_path
end
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment