diff --git a/app/views/wikis/_form.html.haml b/app/views/wikis/_form.html.haml
index 6fa41db4..7cf08815 100644
--- a/app/views/wikis/_form.html.haml
+++ b/app/views/wikis/_form.html.haml
@@ -30,4 +30,7 @@
.input= f.text_field :message, class: 'span8'
.actions
= f.submit 'Save', class: "btn-save btn"
- = link_to "Cancel", project_wiki_path(@project, :index), class: "btn btn-cancel"
+ - if @wiki && @wiki.persisted?
+ = link_to "Cancel", project_wiki_path(@project, @wiki), class: "btn btn-cancel"
+ - else
+ = link_to "Cancel", project_wiki_path(@project, :home), class: "btn btn-cancel"
diff --git a/features/project/wiki.feature b/features/project/wiki.feature
index 45761f09..90eb2b79 100644
--- a/features/project/wiki.feature
+++ b/features/project/wiki.feature
@@ -8,6 +8,10 @@ Feature: Project Wiki
Given I create the Wiki Home page
Then I should see the newly created wiki page
+ Scenario: Pressing Cancel while editing a brand new Wiki
+ Given I click on the Cancel button
+ Then I should be redirected back to the Edit Home Wiki page
+
Scenario: Edit existing page
Given I have an existing Wiki page
And I browse to that Wiki page
@@ -15,6 +19,13 @@ Feature: Project Wiki
And I change the content
Then I should see the updated content
+ Scenario: Pressing Cancel while editing an existing Wiki page
+ Given I have an existing Wiki page
+ And I browse to that Wiki page
+ And I click on the Edit button
+ And I click on the Cancel button
+ Then I should be redirected back to that Wiki page
+
Scenario: View page history
Given I have an existing wiki page
And That page has two revisions
diff --git a/features/steps/project/project_wiki.rb b/features/steps/project/project_wiki.rb
index 1a811bad..745e9ede 100644
--- a/features/steps/project/project_wiki.rb
+++ b/features/steps/project/project_wiki.rb
@@ -4,6 +4,17 @@ class ProjectWiki < Spinach::FeatureSteps
include SharedNote
include SharedPaths
+ Given 'I click on the Cancel button' do
+ within(:css, ".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 "Save"
@@ -39,6 +50,11 @@ class ProjectWiki < Spinach::FeatureSteps
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