summaryrefslogtreecommitdiff
path: root/features
diff options
context:
space:
mode:
Diffstat (limited to 'features')
-rw-r--r--features/project/fork_project.feature14
-rw-r--r--features/steps/project/project_fork.rb30
2 files changed, 44 insertions, 0 deletions
diff --git a/features/project/fork_project.feature b/features/project/fork_project.feature
new file mode 100644
index 00000000000..dc477ca3bf3
--- /dev/null
+++ b/features/project/fork_project.feature
@@ -0,0 +1,14 @@
+Feature: Fork Project
+ Background:
+ Given I sign in as a user
+ And I am a member of project "Shop"
+ When I visit project "Shop" page
+
+ Scenario: User fork a project
+ Given I click link "Fork"
+ Then I should see the forked project page
+
+ Scenario: User already has forked the project
+ Given I already have a project named "Shop" in my namespace
+ And I click link "Fork"
+ Then I should see a "Name has already been taken" warning
diff --git a/features/steps/project/project_fork.rb b/features/steps/project/project_fork.rb
new file mode 100644
index 00000000000..f3335deb279
--- /dev/null
+++ b/features/steps/project/project_fork.rb
@@ -0,0 +1,30 @@
+class ForkProject < Spinach::FeatureSteps
+ include SharedAuthentication
+ include SharedPaths
+ include SharedProject
+
+ step 'I click link "Fork"' do
+ Gitlab::Shell.any_instance.stub(:fork_repository).and_return(true)
+ click_link "Fork"
+ end
+
+ step 'I am a member of project "Shop"' do
+ @project = Project.find_by_name "Shop"
+ @project ||= create(:project_with_code, name: "Shop")
+ @project.team << [@user, :reporter]
+ end
+
+ step 'I should see the forked project page' do
+ page.should have_content "Project was successfully forked."
+ current_path.should include current_user.namespace.path
+ end
+
+ step 'I already have a project named "Shop" in my namespace' do
+ @my_project = create(:project_with_code, name: "Shop", namespace: current_user.namespace)
+ end
+
+ step 'I should see a "Name has already been taken" warning' do
+ page.should have_content "Name has already been taken"
+ end
+
+end \ No newline at end of file