redirects.rb 2 KB
Newer Older
1 2 3 4 5 6
class Spinach::Features::ProjectRedirects < Spinach::FeatureSteps
  include SharedAuthentication
  include SharedPaths
  include SharedProject

  step 'public project "Community"' do
7
    create :project, :public, name: 'Community'
8 9 10 11 12 13 14
  end

  step 'private project "Enterprise"' do
    create :project, name: 'Enterprise'
  end

  step 'I visit project "Community" page' do
skv's avatar
skv committed
15
    project = Project.find_by(name: 'Community')
16 17 18 19
    visit project_path(project)
  end

  step 'I should see project "Community" home page' do
20
    Gitlab.config.gitlab.should_receive(:host).and_return("www.example.com")
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
21
    within '.navbar-gitlab .title' do
22 23 24 25 26
      page.should have_content 'Community'
    end
  end

  step 'I visit project "Enterprise" page' do
skv's avatar
skv committed
27
    project = Project.find_by(name: 'Enterprise')
28 29 30 31
    visit project_path(project)
  end

  step 'I visit project "CommunityDoesNotExist" page' do
skv's avatar
skv committed
32
    project = Project.find_by(name: 'Community')
33 34 35
    visit project_path(project) + 'DoesNotExist'
  end

Marin Jankovski's avatar
Marin Jankovski committed
36
  step 'I click on "Sign In"' do
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
37
    first(:link, "Sign in").click
Marin Jankovski's avatar
Marin Jankovski committed
38 39 40 41 42 43 44 45 46 47 48 49 50
  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')
51 52
    current_path.should == "/#{project.path_with_namespace}"
    status_code.should == 200
Marin Jankovski's avatar
Marin Jankovski committed
53 54 55 56 57 58 59 60 61 62 63 64 65
  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')
66 67
    current_path.should == "/#{project.path_with_namespace}"
    status_code.should == 200
Marin Jankovski's avatar
Marin Jankovski committed
68 69
  end
end