diff --git a/features/project/redirects.feature b/features/project/redirects.feature
index ce197912f641f9c412ec24631441c17d99eb64ba..a2e77e7bf3091e934bcc09730c41df61c9e0811a 100644
--- a/features/project/redirects.feature
+++ b/features/project/redirects.feature
@@ -24,3 +24,15 @@ Feature: Project Redirects
     Given I sign in as a user
     When I visit project "Enterprise" page
     Then page status code should be 404
+
+  Scenario: I visit a public project without signing in
+    When I visit project "Community" page
+    And I should see project "Community" home page
+    And I click on "Sign In"
+    And Authenticate
+    Then I should be redirected to "Community" page
+
+  Scenario: I visit private project page without signing in
+    When I visit project "Enterprise" page
+    And I get redirected to signin page where I sign in
+    Then I should be redirected to "Enterprise" page
diff --git a/features/steps/project/redirects.rb b/features/steps/project/redirects.rb
index cfa4ce82be387217375dfbb95b207c3fba353e4f..25d37fd788863ba683580bbadb490e7cb40553a5 100644
--- a/features/steps/project/redirects.rb
+++ b/features/steps/project/redirects.rb
@@ -31,5 +31,40 @@ class Spinach::Features::ProjectRedirects < Spinach::FeatureSteps
     project = Project.find_by(name: 'Community')
     visit project_path(project) + 'DoesNotExist'
   end
-end
 
+  step 'I click on "Sign In"' do
+    within '.pull-right' do
+      click_link "Sign in"
+    end
+  end
+
+  step 'Authenticate' do
+    admin = create(:admin)
+    project = Project.find_by(name: 'Community')
+    fill_in "user_login", with: admin.email
+    fill_in "user_password", with: admin.password
+    click_button "Sign in"
+    Thread.current[:current_user] = admin
+  end
+
+  step 'I should be redirected to "Community" page' do
+    project = Project.find_by(name: 'Community')
+    page.current_path.should == "/#{project.path_with_namespace}"
+    page.status_code.should == 200
+  end
+
+  step 'I get redirected to signin page where I sign in' do
+    admin = create(:admin)
+    project = Project.find_by(name: 'Enterprise')
+    fill_in "user_login", with: admin.email
+    fill_in "user_password", with: admin.password
+    click_button "Sign in"
+    Thread.current[:current_user] = admin
+  end
+
+  step 'I should be redirected to "Enterprise" page' do
+    project = Project.find_by(name: 'Enterprise')
+    page.current_path.should == "/#{project.path_with_namespace}"
+    page.status_code.should == 200
+  end
+end