diff --git a/lib/onigumo.ex b/lib/onigumo.ex index 979df75..5484b3f 100644 --- a/lib/onigumo.ex +++ b/lib/onigumo.ex @@ -19,7 +19,7 @@ defmodule Onigumo do end def download_url(url, root_path) do - file_name = Base.url_encode64(url, padding: false) + file_name = create_file_name(url) file_path = Path.join(root_path, file_name) url @@ -54,4 +54,8 @@ defmodule Onigumo do defp http_client() do Application.get_env(:onigumo, :http_client) end + + def create_file_name(url) do + Base.url_encode64(url, padding: false) + end end diff --git a/test/onigumo_test.exs b/test/onigumo_test.exs index 272ace8..4b526ef 100644 --- a/test/onigumo_test.exs +++ b/test/onigumo_test.exs @@ -17,7 +17,7 @@ defmodule OnigumoTest do download_result = Onigumo.download_url(input_url, tmp_dir) assert(download_result == :ok) - output_file_name = Base.url_encode64(input_url, padding: false) + output_file_name = Onigumo.create_file_name(input_url) output_path = Path.join(tmp_dir, output_file_name) read_output = File.read!(output_path) expected_output = body(input_url) @@ -90,6 +90,17 @@ defmodule OnigumoTest do assert(read_output == response) end + test("create file name from URL") do + input_url = "https://onigumo.local/hello.html" + created_file_name = Onigumo.create_file_name(input_url) + + expected_file_name = Base.url_encode64(input_url, padding: false) + assert(created_file_name == expected_file_name) + + unexpected_file_name = Base.url_encode64(input_url, padding: true) + assert(created_file_name != unexpected_file_name) + end + defp prepare_response(url) do %HTTPoison.Response{ status_code: 200,