Commit b58155113b46690d9390597f9f1feccf44b00989

Authored by Nihad Abbasov
1 parent 698500dd

add spinach steps for remaining features

features/project/deploy_keys.feature
features/project/merge_requests.feature
1 -Feature: Merge Requests 1 +Feature: Project Merge Requests
2 Background: 2 Background:
3 - Given I signin as a user 3 + Given I sign in as a user
4 And I own project "Shop" 4 And I own project "Shop"
5 And project "Shop" have "Bug NS-04" open merge request 5 And project "Shop" have "Bug NS-04" open merge request
6 And project "Shop" have "Feature NS-03" closed merge request 6 And project "Shop" have "Feature NS-03" closed merge request
7 - And I visit project "Shop" merge requests page 7 + And I visit project "Shop" merge requests page
8 8
9 Scenario: I should see open merge requests 9 Scenario: I should see open merge requests
10 Then I should see "Bug NS-04" in merge requests 10 Then I should see "Bug NS-04" in merge requests
features/project/network.feature
1 -@javascript  
2 Feature: Project Network Graph 1 Feature: Project Network Graph
3 -  
4 Background: 2 Background:
5 - Given I signin as a user 3 + Given I sign in as a user
6 And I own project "Shop" 4 And I own project "Shop"
7 And I visit project "Shop" network page 5 And I visit project "Shop" network page
8 6
  7 + @javascript
9 Scenario: I should see project network 8 Scenario: I should see project network
10 Then page should have network graph 9 Then page should have network graph
features/project/project.feature
1 -Feature: Project 1 +Feature: Projects
2 Background: 2 Background:
3 Given I signin as a user 3 Given I signin as a user
4 And I own project "Shop" 4 And I own project "Shop"
5 - And I visit project "Shop" page 5 + And I visit project "Shop" page
6 6
7 - Scenario: I should see project activity 7 + # @wip
  8 + # Scenario: I should see project activity
8 9
9 - Scenario: I edit project 10 + # @wip
  11 + # Scenario: I edit project
10 12
11 - Scenario: I visit attachments 13 + # @wip
  14 + # Scenario: I visit attachments
features/project/snippets.feature
features/project/team_management.feature
1 Feature: Project Team management 1 Feature: Project Team management
2 - Background:  
3 - Given I signin as a user 2 + Background:
  3 + Given I sign in as a user
4 And I own project "Shop" 4 And I own project "Shop"
5 - And gitlab user "Mike"  
6 - And gitlab user "Sam" 5 + And gitlab user "Mike"
  6 + And gitlab user "Sam"
7 And "Sam" is "Shop" developer 7 And "Sam" is "Shop" developer
8 - And I visit project "Shop" team page 8 + And I visit project "Shop" team page
9 9
10 Scenario: See all team members 10 Scenario: See all team members
11 Then I should be able to see myself in team 11 Then I should be able to see myself in team
@@ -20,7 +20,7 @@ Feature: Project Team management @@ -20,7 +20,7 @@ Feature: Project Team management
20 Scenario: Update user access 20 Scenario: Update user access
21 Given I should see "Sam" in team list as "Developer" 21 Given I should see "Sam" in team list as "Developer"
22 And I change "Sam" role to "Reporter" 22 And I change "Sam" role to "Reporter"
23 - Then I visit project "Shop" team page 23 + Then I visit project "Shop" team page
24 And I should see "Sam" in team list as "Reporter" 24 And I should see "Sam" in team list as "Reporter"
25 25
26 Scenario: View team member profile 26 Scenario: View team member profile
@@ -30,6 +30,5 @@ Feature: Project Team management @@ -30,6 +30,5 @@ Feature: Project Team management
30 Scenario: Cancel team member 30 Scenario: Cancel team member
31 Given I click link "Sam" 31 Given I click link "Sam"
32 And I click link "Remove from team" 32 And I click link "Remove from team"
33 - Then I visit project "Shop" team page 33 + Then I visit project "Shop" team page
34 And I should not see "Sam" in team list 34 And I should not see "Sam" in team list
35 -  
features/project/wall.feature
@@ -7,11 +7,12 @@ Feature: Project Wall @@ -7,11 +7,12 @@ Feature: Project Wall
7 Background: 7 Background:
8 Given I signin as a user 8 Given I signin as a user
9 And I own project "Shop" 9 And I own project "Shop"
10 - And I visit project "Shop" wall page 10 + And I visit project "Shop" wall page
11 11
  12 + @javascript
12 Scenario: Write comment 13 Scenario: Write comment
13 Given I write new comment "my special test message" 14 Given I write new comment "my special test message"
14 Then I should see project wall note "my special test message" 15 Then I should see project wall note "my special test message"
15 16
16 - Then I visit project "Shop" wall page 17 + Then I visit project "Shop" wall page
17 And I should see project wall note "my special test message" 18 And I should see project wall note "my special test message"
features/project/web_hooks.feature
features/project/wiki.feature
1 -Feature: Wiki  
2 - Background:  
3 - Given I signin as a user 1 +Feature: Project Wiki
  2 + Background:
  3 + Given I sign in as a user
4 And I own project "Shop" 4 And I own project "Shop"
5 Given I visit project wiki page 5 Given I visit project wiki page
6 6
features/steps/create_project.rb 0 → 100644
@@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
  1 +class CreateProject < Spinach::FeatureSteps
  2 + Given 'I signin as a user' do
  3 + login_as :user
  4 + end
  5 +
  6 + When 'I visit new project page' do
  7 + visit new_project_path
  8 + end
  9 +
  10 + And 'fill project form with valid data' do
  11 + fill_in 'project_name', :with => 'NewProject'
  12 + fill_in 'project_code', :with => 'NPR'
  13 + fill_in 'project_path', :with => 'newproject'
  14 + click_button "Create project"
  15 + end
  16 +
  17 + Then 'I should see project page' do
  18 + current_path.should == project_path(Project.last)
  19 + page.should have_content('NewProject')
  20 + end
  21 +
  22 + And 'I should see empty project instuctions' do
  23 + page.should have_content "git init"
  24 + page.should have_content "git remote"
  25 + page.should have_content Project.last.url_to_repo
  26 + end
  27 +end
features/steps/project.rb 0 → 100644
@@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
  1 +class Projects < Spinach::FeatureSteps
  2 + Given 'I sign in as a user' do
  3 + login_as :user
  4 + end
  5 +
  6 + And 'I own project "Shop"' do
  7 + @project = Factory :project, :name => "Shop"
  8 + @project.add_access(@user, :admin)
  9 + end
  10 +
  11 + And 'I visit project "Shop" page' do
  12 + project = Project.find_by_name("Shop")
  13 + visit project_path(project)
  14 + end
  15 +end
features/steps/project_merge_requests.rb 0 → 100644
@@ -0,0 +1,102 @@ @@ -0,0 +1,102 @@
  1 +class ProjectMergeRequests < Spinach::FeatureSteps
  2 + Then 'I should see "Bug NS-04" in merge requests' do
  3 + page.should have_content "Bug NS-04"
  4 + end
  5 +
  6 + And 'I should not see "Feature NS-03" in merge requests' do
  7 + page.should_not have_content "Feature NS-03"
  8 + end
  9 +
  10 + Given 'I click link "Closed"' do
  11 + click_link "Closed"
  12 + end
  13 +
  14 + Then 'I should see "Feature NS-03" in merge requests' do
  15 + page.should have_content "Feature NS-03"
  16 + end
  17 +
  18 + And 'I should not see "Bug NS-04" in merge requests' do
  19 + page.should_not have_content "Bug NS-04"
  20 + end
  21 +
  22 + Given 'I click link "All"' do
  23 + click_link "All"
  24 + end
  25 +
  26 + Given 'I click link "Bug NS-04"' do
  27 + click_link "Bug NS-04"
  28 + end
  29 +
  30 + Then 'I should see merge request "Bug NS-04"' do
  31 + page.should have_content "Bug NS-04"
  32 + end
  33 +
  34 + And 'I click link "Close"' do
  35 + click_link "Close"
  36 + end
  37 +
  38 + Then 'I should see closed merge request "Bug NS-04"' do
  39 + mr = MergeRequest.find_by_title("Bug NS-04")
  40 + mr.closed.should be_true
  41 + page.should have_content "Closed by"
  42 + end
  43 +
  44 + Given 'I click link "New Merge Request"' do
  45 + click_link "New Merge Request"
  46 + end
  47 +
  48 + And 'I submit new merge request "Wiki Feature"' do
  49 + fill_in "merge_request_title", :with => "Wiki Feature"
  50 + select "master", :from => "merge_request_source_branch"
  51 + select "stable", :from => "merge_request_target_branch"
  52 + click_button "Save"
  53 + end
  54 +
  55 + Then 'I should see merge request "Wiki Feature"' do
  56 + page.should have_content "Wiki Feature"
  57 + end
  58 +
  59 + Given 'I visit merge request page "Bug NS-04"' do
  60 + mr = MergeRequest.find_by_title("Bug NS-04")
  61 + visit project_merge_request_path(mr.project, mr)
  62 + end
  63 +
  64 + And 'I leave a comment like "XML attached"' do
  65 + fill_in "note_note", :with => "XML attached"
  66 + click_button "Add Comment"
  67 + end
  68 +
  69 + Then 'I should see comment "XML attached"' do
  70 + page.should have_content "XML attached"
  71 + end
  72 +
  73 + Given 'I sign in as a user' do
  74 + login_as :user
  75 + end
  76 +
  77 + And 'I own project "Shop"' do
  78 + @project = Factory :project, :name => "Shop"
  79 + @project.add_access(@user, :admin)
  80 + end
  81 +
  82 + And 'project "Shop" have "Bug NS-04" open merge request' do
  83 + project = Project.find_by_name("Shop")
  84 + Factory.create(:merge_request,
  85 + :title => "Bug NS-04",
  86 + :project => project,
  87 + :author => project.users.first)
  88 + end
  89 +
  90 + And 'project "Shop" have "Feature NS-03" closed merge request' do
  91 + project = Project.find_by_name("Shop")
  92 + Factory.create(:merge_request,
  93 + :title => "Feature NS-03",
  94 + :project => project,
  95 + :author => project.users.first,
  96 + :closed => true)
  97 + end
  98 +
  99 + And 'I visit project "Shop" merge requests page' do
  100 + visit project_merge_requests_path(Project.find_by_name("Shop"))
  101 + end
  102 +end
features/steps/project_network_graph.rb 0 → 100644
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
  1 +class ProjectNetworkGraph < Spinach::FeatureSteps
  2 + Then 'page should have network graph' do
  3 + page.should have_content "Project Network Graph"
  4 + within ".graph" do
  5 + page.should have_content "master"
  6 + page.should have_content "scss_refactor..."
  7 + end
  8 + end
  9 +
  10 + Given 'I sign in as a user' do
  11 + login_as :user
  12 + end
  13 +
  14 + And 'I own project "Shop"' do
  15 + @project = Factory :project, :name => "Shop"
  16 + @project.add_access(@user, :admin)
  17 + end
  18 +
  19 + And 'I visit project "Shop" network page' do
  20 + project = Project.find_by_name("Shop")
  21 +
  22 + # Stub out find_all to speed this up (10 commits vs. 650)
  23 + commits = Grit::Commit.find_all(project.repo, nil, {max_count: 10})
  24 + Grit::Commit.stub(:find_all).and_return(commits)
  25 +
  26 + visit graph_project_path(project)
  27 + end
  28 +end
features/steps/project_team_management.rb 0 → 100644
@@ -0,0 +1,98 @@ @@ -0,0 +1,98 @@
  1 +class ProjectTeamManagement < Spinach::FeatureSteps
  2 + Then 'I should be able to see myself in team' do
  3 + page.should have_content(@user.name)
  4 + page.should have_content(@user.email)
  5 + end
  6 +
  7 + And 'I should see "Sam" in team list' do
  8 + user = User.find_by_name("Sam")
  9 + page.should have_content(user.name)
  10 + page.should have_content(user.email)
  11 + end
  12 +
  13 + Given 'I click link "New Team Member"' do
  14 + click_link "New Team Member"
  15 + end
  16 +
  17 + And 'I select "Mike" as "Reporter"' do
  18 + user = User.find_by_name("Mike")
  19 + within "#new_team_member" do
  20 + select user.name, :from => "user_ids"
  21 + select "Reporter", :from => "project_access"
  22 + end
  23 + click_button "Save"
  24 + end
  25 +
  26 + Then 'I should see "Mike" in team list as "Reporter"' do
  27 + user = User.find_by_name("Mike")
  28 + role_id = find(".user_#{user.id} #team_member_project_access").value
  29 + role_id.should == UsersProject.access_roles["Reporter"].to_s
  30 + end
  31 +
  32 + Given 'I should see "Sam" in team list as "Developer"' do
  33 + user = User.find_by_name("Sam")
  34 + role_id = find(".user_#{user.id} #team_member_project_access").value
  35 + role_id.should == UsersProject.access_roles["Developer"].to_s
  36 + end
  37 +
  38 + And 'I change "Sam" role to "Reporter"' do
  39 + user = User.find_by_name("Sam")
  40 + within ".user_#{user.id}" do
  41 + select "Reporter", :from => "team_member_project_access"
  42 + end
  43 + end
  44 +
  45 + Then 'I visit project "Shop" team page' do
  46 + visit team_project_path(Project.find_by_name("Shop"))
  47 + end
  48 +
  49 + And 'I should see "Sam" in team list as "Reporter"' do
  50 + user = User.find_by_name("Sam")
  51 + role_id = find(".user_#{user.id} #team_member_project_access").value
  52 + role_id.should == UsersProject.access_roles["Reporter"].to_s
  53 + end
  54 +
  55 + Given 'I click link "Sam"' do
  56 + click_link "Sam"
  57 + end
  58 +
  59 + Then 'I should see "Sam" team profile' do
  60 + user = User.find_by_name("Sam")
  61 + page.should have_content(user.name)
  62 + page.should have_content(user.email)
  63 + page.should have_content("To team list")
  64 + end
  65 +
  66 + And 'I click link "Remove from team"' do
  67 + click_link "Remove from team"
  68 + end
  69 +
  70 + And 'I should not see "Sam" in team list' do
  71 + user = User.find_by_name("Sam")
  72 + page.should_not have_content(user.name)
  73 + page.should_not have_content(user.email)
  74 + end
  75 +
  76 + Given 'I sign in as a user' do
  77 + login_as :user
  78 + end
  79 +
  80 + And 'I own project "Shop"' do
  81 + @project = Factory :project, :name => "Shop"
  82 + @project.add_access(@user, :admin)
  83 + end
  84 +
  85 + And 'gitlab user "Mike"' do
  86 + Factory :user, :name => "Mike"
  87 + end
  88 +
  89 + And 'gitlab user "Sam"' do
  90 + Factory :user, :name => "Sam"
  91 + end
  92 +
  93 + And '"Sam" is "Shop" developer' do
  94 + user = User.find_by_name("Sam")
  95 + project = Project.find_by_name("Shop")
  96 + project.add_access(user, :write)
  97 + end
  98 +end
features/steps/project_wall.rb 0 → 100644
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
  1 +class ProjectWall < Spinach::FeatureSteps
  2 + Given 'I write new comment "my special test message"' do
  3 + fill_in "note_note", :with => "my special test message"
  4 + click_button "Add Comment"
  5 + end
  6 +
  7 + Then 'I should see project wall note "my special test message"' do
  8 + page.should have_content "my special test message"
  9 + end
  10 +
  11 + Then 'I visit project "Shop" wall page' do
  12 + project = Project.find_by_name("Shop")
  13 + visit wall_project_path(project)
  14 + end
  15 +
  16 + Given 'I signin as a user' do
  17 + login_as :user
  18 + end
  19 +
  20 + And 'I own project "Shop"' do
  21 + @project = Factory :project, :name => "Shop"
  22 + @project.add_access(@user, :admin)
  23 + end
  24 +end
features/steps/project_wiki.rb 0 → 100644
@@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
  1 +class ProjectWiki < Spinach::FeatureSteps
  2 + Given 'I create Wiki page' do
  3 + fill_in "Title", :with => 'Test title'
  4 + fill_in "Content", :with => '[link test](test)'
  5 + click_on "Save"
  6 + end
  7 +
  8 + Then 'I should see newly created wiki page' do
  9 + page.should have_content "Test title"
  10 + page.should have_content "link test"
  11 +
  12 + click_link "link test"
  13 + page.should have_content "Editing page"
  14 + end
  15 +
  16 + And 'I leave a comment like "XML attached"' do
  17 + fill_in "note_note", :with => "XML attached"
  18 + click_button "Add Comment"
  19 + end
  20 +
  21 + Then 'I should see comment "XML attached"' do
  22 + page.should have_content "XML attached"
  23 + end
  24 +
  25 + Given 'I sign in as a user' do
  26 + login_as :user
  27 + end
  28 +
  29 + And 'I own project "Shop"' do
  30 + @project = Factory :project, :name => "Shop"
  31 + @project.add_access(@user, :admin)
  32 + end
  33 +
  34 + Given 'I visit project wiki page' do
  35 + visit project_wiki_path(@project, :index)
  36 + end
  37 +end