summaryrefslogtreecommitdiff
path: root/features/steps/project/wiki.rb
blob: 6146599cc4ac24f517184778e2a7d9e9f7981bf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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
class ProjectWiki < Spinach::FeatureSteps
  include SharedAuthentication
  include SharedProject
  include SharedNote
  include SharedPaths

  Given 'I click on the Cancel button' do
    within(:css, ".form-actions") do
      click_on "Cancel"
    end
  end

  Then 'I should be redirected back to the Edit Home Wiki page' do
    url = URI.parse(current_url)
    url.path.should == project_wiki_path(project, :home)
  end

  Given 'I create the Wiki Home page' do
    fill_in "Content", with: '[link test](test)'
    click_on "Create page"
  end

  Then 'I should see the newly created wiki page' do
    page.should have_content "Home"
    page.should have_content "link test"

    click_link "link test"
    page.should have_content "Editing"
  end

  Given 'I have an existing Wiki page' do
    wiki.create_page("existing", "content", :markdown, "first commit")
    @page = wiki.find_page("existing")
  end

  And 'I browse to that Wiki page' do
    visit project_wiki_path(project, @page)
  end

  And 'I click on the Edit button' do
    click_on "Edit"
  end

  And 'I change the content' do
    fill_in "Content", with: 'Updated Wiki Content'
    click_on "Save changes"
  end

  Then 'I should see the updated content' do
    page.should have_content "Updated Wiki Content"
  end

  Then 'I should be redirected back to that Wiki page' do
    url = URI.parse(current_url)
    url.path.should == project_wiki_path(project, @page)
  end

  And 'That page has two revisions' do
    @page.update("new content", :markdown, "second commit")
  end

  And 'I click the History button' do
    click_on "History"
  end

  Then 'I should see both revisions' do
    page.should have_content current_user.name
    page.should have_content "first commit"
    page.should have_content "second commit"
  end

  And 'I click on the "Delete this page" button' do
    click_on "Delete this page"
  end

  Then 'The page should be deleted' do
    page.should have_content "Page was successfully deleted"
  end

  And 'I click on the "Pages" button' do
    click_on "Pages"
  end

  Then 'I should see the existing page in the pages list' do
    page.should have_content current_user.name
    page.should have_content @page.title.titleize
  end

  def wiki
    @gollum_wiki = GollumWiki.new(project, current_user)
  end
end