Merge pull request #390 from arr2036/app_rest_fix

App rest fix.
This commit is contained in:
bootstraponline
2012-06-26 13:27:57 -07:00
2 changed files with 37 additions and 5 deletions
+13 -5
View File
@@ -101,7 +101,7 @@ module Precious
mustache :edit
end
else
mustache :create
redirect "/create/#{CGI.escape(@name)}"
end
end
@@ -124,7 +124,17 @@ module Precious
redirect "/#{page.escaped_url_path}"
end
get '/create/*' do
wiki = Gollum::Wiki.new(settings.gollum_path, settings.wiki_options)
@name = params[:splat].first
if wiki.page(@name)
redirect "/#{CGI.escape(@name)}"
else
mustache :create
end
end
post '/create' do
name = params[:page]
path = sanitize_empty_params(params[:path])
@@ -298,9 +308,7 @@ module Precious
content_type file.mime_type
file.raw_data
else
@name = name
@path = path
mustache :create
redirect "/create/#{CGI.escape(name)}"
end
end
+24
View File
@@ -124,6 +124,30 @@ context "Frontend" do
assert_match /ghi/, last_response.body
end
test "redirects to create on non-existant page" do
name = "E"
get "/#{name}"
follow_redirect!
assert_equal "/create/#{name}", last_request.fullpath
assert last_response.ok?
end
test "edit redirects to create on non-existant page" do
name = "E"
get "/edit/#{name}"
follow_redirect!
assert_equal "/create/#{name}", last_request.fullpath
assert last_response.ok?
end
test "create redirects to page if already exists" do
name = "A"
get "/create/#{name}"
follow_redirect!
assert_equal "/#{name}", last_request.fullpath
assert last_response.ok?
end
test "guards against creation of existing page" do
name = "A"
post "/create", :content => 'abc', :page => name,