diff options
| author | feld <feld@feld.me> | 2019-08-02 17:07:09 +0000 | 
|---|---|---|
| committer | feld <feld@feld.me> | 2019-08-02 17:07:09 +0000 | 
| commit | d93d7779151c811e991e99098e64c1da2c783d68 (patch) | |
| tree | f4e1af0a781f7fef4523122bafd1cf19ff95d6ba /test/web/media_proxy | |
| parent | 5ff8f07ca906d77a6ec1d5ba912a787f855364f9 (diff) | |
| download | pleroma-d93d7779151c811e991e99098e64c1da2c783d68.tar.gz pleroma-d93d7779151c811e991e99098e64c1da2c783d68.zip  | |
Fix/mediaproxy whitelist base url
Diffstat (limited to 'test/web/media_proxy')
| -rw-r--r-- | test/web/media_proxy/media_proxy_test.exs | 58 | 
1 files changed, 37 insertions, 21 deletions
diff --git a/test/web/media_proxy/media_proxy_test.exs b/test/web/media_proxy/media_proxy_test.exs index edbbf9b66..0c94755df 100644 --- a/test/web/media_proxy/media_proxy_test.exs +++ b/test/web/media_proxy/media_proxy_test.exs @@ -171,21 +171,6 @@ defmodule Pleroma.Web.MediaProxyTest do        encoded = url(url)        assert decode_result(encoded) == url      end - -    test "does not change whitelisted urls" do -      upload_config = Pleroma.Config.get([Pleroma.Upload]) -      media_url = "https://media.pleroma.social" -      Pleroma.Config.put([Pleroma.Upload, :base_url], media_url) -      Pleroma.Config.put([:media_proxy, :whitelist], ["media.pleroma.social"]) -      Pleroma.Config.put([:media_proxy, :base_url], "https://cache.pleroma.social") - -      url = "#{media_url}/static/logo.png" -      encoded = url(url) - -      assert String.starts_with?(encoded, media_url) - -      Pleroma.Config.put([Pleroma.Upload], upload_config) -    end    end    describe "when disabled" do @@ -215,12 +200,43 @@ defmodule Pleroma.Web.MediaProxyTest do      decoded    end -  test "mediaproxy whitelist" do -    Pleroma.Config.put([:media_proxy, :enabled], true) -    Pleroma.Config.put([:media_proxy, :whitelist], ["google.com", "feld.me"]) -    url = "https://feld.me/foo.png" +  describe "whitelist" do +    setup do +      Pleroma.Config.put([:media_proxy, :enabled], true) +      :ok +    end + +    test "mediaproxy whitelist" do +      Pleroma.Config.put([:media_proxy, :whitelist], ["google.com", "feld.me"]) +      url = "https://feld.me/foo.png" + +      unencoded = url(url) +      assert unencoded == url +    end + +    test "does not change whitelisted urls" do +      Pleroma.Config.put([:media_proxy, :whitelist], ["mycdn.akamai.com"]) +      Pleroma.Config.put([:media_proxy, :base_url], "https://cache.pleroma.social") + +      media_url = "https://mycdn.akamai.com" -    unencoded = url(url) -    assert unencoded == url +      url = "#{media_url}/static/logo.png" +      encoded = url(url) + +      assert String.starts_with?(encoded, media_url) +    end + +    test "ensure Pleroma.Upload base_url is always whitelisted" do +      upload_config = Pleroma.Config.get([Pleroma.Upload]) +      media_url = "https://media.pleroma.social" +      Pleroma.Config.put([Pleroma.Upload, :base_url], media_url) + +      url = "#{media_url}/static/logo.png" +      encoded = url(url) + +      assert String.starts_with?(encoded, media_url) + +      Pleroma.Config.put([Pleroma.Upload], upload_config) +    end    end  end  | 
