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
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
|
class Spinach::Features::ProjectWiki < Spinach::FeatureSteps
include SharedAuthentication
include SharedProject
include SharedNote
include SharedPaths
step 'I click on the Cancel button' do
within(:css, ".form-actions") do
click_on "Cancel"
end
end
step 'I should be redirected back to the Edit Home Wiki page' do
current_path.should == project_wiki_path(project, :home)
end
step 'I create the Wiki Home page' do
fill_in "wiki_content", with: '[link test](test)'
click_on "Create page"
end
step '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
step 'I have an existing Wiki page' do
wiki.create_page("existing", "content", :markdown, "first commit")
@page = wiki.find_page("existing")
end
step 'I browse to that Wiki page' do
visit project_wiki_path(project, @page)
end
step 'I click on the Edit button' do
click_on "Edit"
end
step 'I change the content' do
fill_in "Content", with: 'Updated Wiki Content'
click_on "Save changes"
end
step 'I should see the updated content' do
page.should have_content "Updated Wiki Content"
end
step 'I should be redirected back to that Wiki page' do
current_path.should == project_wiki_path(project, @page)
end
step 'That page has two revisions' do
@page.update("new content", :markdown, "second commit")
end
step 'I click the History button' do
click_on "History"
end
step '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
step 'I click on the "Delete this page" button' do
click_on "Delete this page"
end
step 'The page should be deleted' do
page.should have_content "Page was successfully deleted"
end
step 'I click on the "Pages" button' do
click_on "Pages"
end
step 'I should see the existing page in the pages list' do
page.should have_content current_user.name
page.should have_content @page.title
end
step 'I have an existing Wiki page with images linked on page' do
wiki.create_page("pictures", "Look at this [image](image.jpg)\n\n ![image](image.jpg)", :markdown, "first commit")
@wiki_page = wiki.find_page("pictures")
end
step 'I browse to wiki page with images' do
visit project_wiki_path(project, @wiki_page)
end
step 'I click on existing image link' do
file = Gollum::File.new(wiki.wiki)
Gollum::Wiki.any_instance.stub(:file).with("image.jpg", "master", true).and_return(file)
Gollum::File.any_instance.stub(:mime_type).and_return("image/jpeg")
page.should have_link('image', href: "image.jpg")
click_on "image"
end
step 'I should see the image from wiki repo' do
current_path.should match('wikis/image.jpg')
page.should_not have_xpath('/html') # Page should render the image which means there is no html involved
Gollum::Wiki.any_instance.unstub(:file)
Gollum::File.any_instance.unstub(:mime_type)
end
step 'Image should be shown on the page' do
page.should have_xpath("//img[@src=\"image.jpg\"]")
end
step 'I click on image link' do
page.should have_link('image', href: "image.jpg")
click_on "image"
end
step 'I should see the new wiki page form' do
current_path.should match('wikis/image.jpg')
page.should have_content('New Wiki Page')
page.should have_content('Editing - image.jpg')
end
def wiki
@project_wiki = ProjectWiki.new(project, current_user)
end
end
|