project_markdown_render.rb 6.41 KB
Newer Older
1 2 3 4 5
class Spinach::Features::ProjectMarkdownRender < Spinach::FeatureSteps
  include SharedAuthentication
  include SharedPaths

  And 'I own project "Delta"' do
skv's avatar
skv committed
6
    @project = Project.find_by(name: "Delta")
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
7
    @project ||= create(:project, name: "Delta", namespace: @user.namespace)
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
    @project.team << [@user, :master]
  end

  Then 'I should see files from repository in master' do
    current_path.should == project_tree_path(@project, "master")
    page.should have_content "Gemfile"
    page.should have_content "app"
    page.should have_content "README"
  end

  And 'I should see rendered README which contains correct links' do
    page.should have_content "Welcome to GitLab GitLab is a free project and repository management application"
    page.should have_link "GitLab API doc"
    page.should have_link "GitLab API website"
    page.should have_link "Rake tasks"
    page.should have_link "backup and restore procedure"
24 25
    page.should have_link "GitLab API doc directory"
    page.should have_link "Maintenance"
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
  end

  And 'I click on Gitlab API in README' do
    click_link "GitLab API doc"
  end

  Then 'I should see correct document rendered' do
    current_path.should == project_blob_path(@project, "master/doc/api/README.md")
    page.should have_content "All API requests require authentication"
  end

  And 'I click on Rake tasks in README' do
    click_link "Rake tasks"
  end

  Then 'I should see correct directory rendered' do
    current_path.should == project_tree_path(@project, "master/doc/raketasks")
    page.should have_content "backup_restore.md"
    page.should have_content "maintenance.md"
  end

47 48 49 50 51 52

  And 'I click on GitLab API doc directory in README' do
    click_link "GitLab API doc directory"
  end

  Then 'I should see correct doc/api directory rendered' do
Marin Jankovski's avatar
Marin Jankovski committed
53
    current_path.should == project_tree_path(@project, "master/doc/api/")
54 55 56 57 58 59 60 61 62
    page.should have_content "README.md"
    page.should have_content "users.md"
  end

  And 'I click on Maintenance in README' do
    click_link "Maintenance"
  end

  Then 'I should see correct maintenance file rendered' do
Marin Jankovski's avatar
Marin Jankovski committed
63
    current_path.should == project_blob_path(@project, "master/doc/raketasks/maintenance.md")
64 65 66
    page.should have_content "bundle exec rake gitlab:env:info RAILS_ENV=production"
  end

67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
  And 'I navigate to the doc/api/README' do
    click_link "doc"
    click_link "api"
    click_link "README.md"
  end

  And 'I see correct file rendered' do
    current_path.should == project_blob_path(@project, "master/doc/api/README.md")
    page.should have_content "Contents"
    page.should have_link "Users"
    page.should have_link "Rake tasks"
  end

  And 'I click on users in doc/api/README' do
    click_link "Users"
  end

  Then 'I should see the correct document file' do
    current_path.should == project_blob_path(@project, "master/doc/api/users.md")
    page.should have_content "Get a list of users."
  end

  And 'I click on raketasks in doc/api/README' do
    click_link "Rake tasks"
  end

  When 'I visit markdown branch' do
    visit project_tree_path(@project, "markdown")
  end

  Then 'I should see files from repository in markdown branch' do
    current_path.should == project_tree_path(@project, "markdown")
    page.should have_content "Gemfile"
    page.should have_content "app"
    page.should have_content "README"
  end

  And 'I see correct file rendered in markdown branch' do
    current_path.should == project_blob_path(@project, "markdown/doc/api/README.md")
    page.should have_content "Contents"
    page.should have_link "Users"
    page.should have_link "Rake tasks"
  end

  Then 'I should see correct document rendered for markdown branch' do
    current_path.should == project_blob_path(@project, "markdown/doc/api/README.md")
    page.should have_content "All API requests require authentication"
  end

  Then 'I should see correct directory rendered for markdown branch' do
    current_path.should == project_tree_path(@project, "markdown/doc/raketasks")
    page.should have_content "backup_restore.md"
    page.should have_content "maintenance.md"
  end

  Then 'I should see the users document file in markdown branch' do
    current_path.should == project_blob_path(@project, "markdown/doc/api/users.md")
    page.should have_content "Get a list of users."
  end

  Given 'I go to wiki page' do
    click_link "Wiki"
    current_path.should == project_wiki_path(@project, "home")
  end

  And 'I add various links to the wiki page' do
    fill_in "wiki[content]", with: "[test](test)\n[GitLab API doc](doc/api/README.md)\n[Rake tasks](doc/raketasks)\n"
    fill_in "wiki[message]", with: "Adding links to wiki"
    click_button "Create page"
  end

  Then 'Wiki page should have added links' do
    current_path.should == project_wiki_path(@project, "home")
    page.should have_content "test GitLab API doc Rake tasks"
  end

  And 'I click on test link' do
    click_link "test"
  end

  Then 'I see new wiki page named test' do
    current_path.should ==  project_wiki_path(@project, "test")
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
149
    page.should have_content "Editing"
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
  end

  When 'I go back to wiki page home' do
    visit project_wiki_path(@project, "home")
    current_path.should == project_wiki_path(@project, "home")
  end

  And 'I click on GitLab API doc link' do
    click_link "GitLab API"
  end

  Then 'I see Gitlab API document' do
    current_path.should == project_blob_path(@project, "master/doc/api/README.md")
    page.should have_content "Status codes"
  end

  And 'I click on Rake tasks link' do
    click_link "Rake tasks"
  end

  Then 'I see Rake tasks directory' do
    current_path.should == project_tree_path(@project, "master/doc/raketasks")
    page.should have_content "backup_restore.md"
    page.should have_content "maintenance.md"
  end
175 176 177 178 179 180 181 182 183 184 185 186

  Given 'I visit to the help page' do
    visit help_path
  end

  And 'I select a page with markdown' do
    click_link "Rake Tasks"
  end

  Then 'I should see a help page with markdown' do
    page.should have_content "GitLab provides some specific rake tasks to enable special features or perform maintenance tasks"
  end
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201

  Given 'I go directory which contains README file' do
    visit project_tree_path(@project, "master/doc/api")
    current_path.should == project_tree_path(@project, "master/doc/api")
  end

  And 'I click on a relative link in README' do
    click_link "Users"
  end

  Then 'I should see the correct markdown' do
    current_path.should == project_blob_path(@project, "master/doc/api/users.md")
    page.should have_content "List users"
  end
end