about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/mogilefs/backend.rb2
-rw-r--r--test/test_mogilefs_integration_list_keys.rb6
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/mogilefs/backend.rb b/lib/mogilefs/backend.rb
index a56abf1..50272df 100644
--- a/lib/mogilefs/backend.rb
+++ b/lib/mogilefs/backend.rb
@@ -288,6 +288,6 @@ class MogileFS::Backend
 
   # Unescapes naughty URL characters.
   def url_unescape(str) # :nodoc:
-    str.gsub(/%([a-f0-9][a-f0-9])/i) { [$1.to_i(16)].pack 'C' }.tr('+', ' ')
+    str.tr('+', ' ').gsub(/%([a-f0-9][a-f0-9])/i) { [$1.to_i(16)].pack 'C' }
   end
 end
diff --git a/test/test_mogilefs_integration_list_keys.rb b/test/test_mogilefs_integration_list_keys.rb
index bb3f94a..6c62e6b 100644
--- a/test/test_mogilefs_integration_list_keys.rb
+++ b/test/test_mogilefs_integration_list_keys.rb
@@ -23,6 +23,12 @@ class TestMogileFSIntegrationListKeys < TestMogIntegration
     end
   end
 
+  def test_list_keys_strange
+    @client.store_content("hello+world", nil, "HI")
+    rv = @client.list_keys
+    assert_equal "hello+world", rv[0][0]
+  end
+
   def test_each_key
     9.times { |i| @client.store_content("ek_#{i}", nil, i.to_s) }
     n = 0