From bb44965c8ec1bda7e42af1eae8554d978028ec69 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Fri, 3 Jul 2015 16:09:42 -0700 Subject: [PATCH] ensure forward slash --- tests/workers/purge_cache_worker_tests.rb | 9 +++++++++ workers/purge_cache_worker.rb | 3 +++ 2 files changed, 12 insertions(+) diff --git a/tests/workers/purge_cache_worker_tests.rb b/tests/workers/purge_cache_worker_tests.rb index 48b5ee3f..90be0da8 100644 --- a/tests/workers/purge_cache_worker_tests.rb +++ b/tests/workers/purge_cache_worker_tests.rb @@ -52,4 +52,13 @@ describe PurgeCacheWorker do assert_requested :get, url end + + it 'works without forward slash' do + stub_request(:get, "http://#{@test_ip}/:cache/purge/test.jpg"). + with(headers: {'Host' => 'kyledrake.neocities.org'}) + .to_return(status: 200) + + worker = PurgeCacheWorker.new + worker.perform @test_ip, 'kyledrake', 'test.jpg' + end end diff --git a/workers/purge_cache_worker.rb b/workers/purge_cache_worker.rb index 5f03af6d..836b8a81 100644 --- a/workers/purge_cache_worker.rb +++ b/workers/purge_cache_worker.rb @@ -10,6 +10,9 @@ class PurgeCacheWorker end def perform(proxy_ip, username, path) + # Must always have a forward slash + path = '/' + path if path[0] != '/' + url = Addressable::URI.encode_component( "http://#{proxy_ip}/:cache/purge#{path}", Addressable::URI::CharacterClasses::QUERY