From 55de4a3375793fa31993a1e9b4be777007bd31b8 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 11 Nov 2011 10:47:16 +0000 Subject: url_unescape: fix ordering of "+" => " " of swap Otherwise we'll be converting "%2B" into " " instead of "+" when it appears in a file name. --- lib/mogilefs/backend.rb | 2 +- test/test_mogilefs_integration_list_keys.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3-24-ge0c7