From c6059153f892c369a2f7e327f18ad197111eeeec Mon Sep 17 00:00:00 2001 From: Garret Alfert Date: Thu, 11 Jul 2013 13:44:40 +0200 Subject: [PATCH] Fix encoding in directory listings --- lib/remote_storage/riak.rb | 2 +- spec/directories_spec.rb | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/remote_storage/riak.rb b/lib/remote_storage/riak.rb index 5fc8bed..c0af723 100644 --- a/lib/remote_storage/riak.rb +++ b/lib/remote_storage/riak.rb @@ -250,7 +250,7 @@ module RemoteStorage DateTime.rfc2822(entry["last_modified"]).to_i end - listing.merge!({ CGI.escape(entry_name) => timestamp }) + listing.merge!({ entry_name => timestamp }) end listing diff --git a/spec/directories_spec.rb b/spec/directories_spec.rb index 0f9691f..3292017 100644 --- a/spec/directories_spec.rb +++ b/spec/directories_spec.rb @@ -26,7 +26,7 @@ describe "Directories" do last_response.content_type.must_equal "application/json" content = JSON.parse(last_response.body) - content.must_include "http%3A%2F%2F5apps.com" + content.must_include "http://5apps.com" content.must_include "foo" content["foo"].must_be_kind_of Integer content["foo"].to_s.length.must_equal 13 @@ -65,7 +65,7 @@ describe "Directories" do content = JSON.parse(last_response.body) content.must_include "foo" - content.must_include "http%3A%2F%2F5apps.com" + content.must_include "http://5apps.com" content.must_include "home/" content["home/"].must_be_kind_of Integer content["home/"].to_s.length.must_equal 13 @@ -224,6 +224,21 @@ describe "Directories" do end end + context "special characters in object name" do + before do + put "/jimmy/tasks/bla~blub", "some task" + end + + it "lists the containing object" do + get "/jimmy/tasks/" + + last_response.status.must_equal 200 + + content = JSON.parse(last_response.body) + content.must_include "bla~blub" + end + end + context "for the root directory" do before do auth = auth_bucket.new("jimmy:123")