summaryrefslogtreecommitdiff
path: root/features/steps/shared
diff options
context:
space:
mode:
Diffstat (limited to 'features/steps/shared')
-rw-r--r--features/steps/shared/paths.rb8
-rw-r--r--features/steps/shared/project.rb64
-rw-r--r--features/steps/shared/user.rb11
3 files changed, 83 insertions, 0 deletions
diff --git a/features/steps/shared/paths.rb b/features/steps/shared/paths.rb
index d287121bb84..c1aafc183dc 100644
--- a/features/steps/shared/paths.rb
+++ b/features/steps/shared/paths.rb
@@ -6,6 +6,14 @@ module SharedPaths
end
# ----------------------------------------
+ # User
+ # ----------------------------------------
+
+ step 'I visit user "John Doe" page' do
+ visit user_path("john_doe")
+ end
+
+ # ----------------------------------------
# Group
# ----------------------------------------
diff --git a/features/steps/shared/project.rb b/features/steps/shared/project.rb
index 7360482d736..a6354aeaf86 100644
--- a/features/steps/shared/project.rb
+++ b/features/steps/shared/project.rb
@@ -65,4 +65,68 @@ module SharedProject
def current_project
@project ||= Project.first
end
+
+ # ----------------------------------------
+ # Visibility level
+ # ----------------------------------------
+
+ step 'private project "Enterprise"' do
+ create :project, name: 'Enterprise'
+ end
+
+ step 'I should see project "Enterprise"' do
+ page.should have_content "Enterprise"
+ end
+
+ step 'I should not see project "Enterprise"' do
+ page.should_not have_content "Enterprise"
+ end
+
+ step 'internal project "Internal"' do
+ create :project, name: 'Internal', visibility_level: Gitlab::VisibilityLevel::INTERNAL
+ end
+
+ step 'I should see project "Internal"' do
+ page.should have_content "Internal"
+ end
+
+ step 'I should not see project "Internal"' do
+ page.should_not have_content "Internal"
+ end
+
+ step 'public project "Community"' do
+ create :project, name: 'Community', visibility_level: Gitlab::VisibilityLevel::PUBLIC
+ end
+
+ step 'I should see project "Community"' do
+ page.should have_content "Community"
+ end
+
+ step 'I should not see project "Community"' do
+ page.should_not have_content "Community"
+ end
+
+ step '"John Doe" is authorized to private project "Enterprise"' do
+ user = User.find_by(name: "John Doe")
+ user ||= create(:user, name: "John Doe", username: "john_doe")
+ project = Project.find_by(name: "Enterprise")
+ project ||= create(:project, name: "Enterprise", namespace: user.namespace)
+ project.team << [user, :master]
+ end
+
+ step '"John Doe" is authorized to internal project "Internal"' do
+ user = User.find_by(name: "John Doe")
+ user ||= create(:user, name: "John Doe", username: "john_doe")
+ project = Project.find_by(name: "Internal")
+ project ||= create :project, name: 'Internal', visibility_level: Gitlab::VisibilityLevel::INTERNAL
+ project.team << [user, :master]
+ end
+
+ step '"John Doe" is authorized to public project "Community"' do
+ user = User.find_by(name: "John Doe")
+ user ||= create(:user, name: "John Doe", username: "john_doe")
+ project = Project.find_by(name: "Community")
+ project ||= create :project, name: 'Community', visibility_level: Gitlab::VisibilityLevel::PUBLIC
+ project.team << [user, :master]
+ end
end
diff --git a/features/steps/shared/user.rb b/features/steps/shared/user.rb
new file mode 100644
index 00000000000..a2bf069a114
--- /dev/null
+++ b/features/steps/shared/user.rb
@@ -0,0 +1,11 @@
+module SharedUser
+ include Spinach::DSL
+
+ step 'Create user "John Doe"' do
+ create(:user, name: "John Doe", username: "john_doe")
+ end
+
+ step 'I sign in as "John Doe"' do
+ login_with(User.find_by(name: "John Doe"))
+ end
+end