From 0b020403276519da84dce51053240ac6637eb1b3 Mon Sep 17 00:00:00 2001 From: Alexander Date: Wed, 25 Dec 2019 15:31:51 +0300 Subject: [PATCH] little fixes and typos fix --- config/description.exs | 12 +++--- lib/pleroma/web/admin_api/config.ex | 5 +++ test/docs/generator_test.exs | 12 ++++++ .../admin_api/admin_api_controller_test.exs | 41 +++++++++++++++++++ test/web/admin_api/config_test.exs | 6 +++ 5 files changed, 70 insertions(+), 6 deletions(-) diff --git a/config/description.exs b/config/description.exs index 52f7d2017..a9b2efec5 100644 --- a/config/description.exs +++ b/config/description.exs @@ -101,8 +101,8 @@ %{ key: :versions, type: {:list, :atom}, - descriptions: "List of TLS version to use", - suggestions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"] + description: "List of TLS version to use", + suggestions: [:tlsv1, ":tlsv1.1", ":tlsv1.2"] } ] } @@ -1509,8 +1509,8 @@ %{ key: :versions, type: {:list, :atom}, - descriptions: "List of TLS version to use", - suggestions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"] + description: "List of TLS version to use", + suggestions: [:tlsv1, ":tlsv1.1", ":tlsv1.2"] } ] } @@ -2820,8 +2820,8 @@ %{ key: :versions, type: {:list, :atom}, - descriptions: "List of TLS version to use", - suggestions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"] + description: "List of TLS version to use", + suggestions: [:tlsv1, ":tlsv1.1", ":tlsv1.2"] } ] } diff --git a/lib/pleroma/web/admin_api/config.ex b/lib/pleroma/web/admin_api/config.ex index ef658e079..b55851602 100644 --- a/lib/pleroma/web/admin_api/config.ex +++ b/lib/pleroma/web/admin_api/config.ex @@ -183,6 +183,11 @@ defp do_convert(entity) when is_tuple(entity), defp do_convert(entity) when is_boolean(entity) or is_number(entity) or is_nil(entity), do: entity + defp do_convert(entity) + when is_atom(entity) and entity in [:"tlsv1.1", :"tlsv1.2", :"tlsv1.3"] do + ":#{to_string(entity)}" + end + defp do_convert(entity) when is_atom(entity), do: inspect(entity) defp do_convert(entity) when is_binary(entity), do: entity diff --git a/test/docs/generator_test.exs b/test/docs/generator_test.exs index 0106809c2..9c9f4357b 100644 --- a/test/docs/generator_test.exs +++ b/test/docs/generator_test.exs @@ -85,6 +85,12 @@ defmodule Pleroma.Docs.GeneratorTest do key: "application/xml", type: {:list, :string}, suggestions: ["xml"] + }, + %{ + key: :versions, + type: {:list, :atom}, + description: "List of TLS version to use", + suggestions: [:tlsv1, ":tlsv1.1", ":tlsv1.2"] } ] }, @@ -208,6 +214,12 @@ test "key as string subchild" do assert child[:key] == "application/xml" end + test "suggestion for tls versions" do + [%{children: children} | _] = Generator.convert_to_strings(@descriptions) + child = Enum.at(children, 8) + assert child[:suggestions] == [":tlsv1", ":tlsv1.1", ":tlsv1.2"] + end + test "subgroup with module name" do [%{children: children} | _] = Generator.convert_to_strings(@descriptions) diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index ea3c43158..d83a95aae 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -2204,6 +2204,47 @@ test "saving config with partial update", %{conn: conn} do } end + test "saving special atoms", %{conn: conn} do + conn = + post(conn, "/api/pleroma/admin/config", %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => [ + %{ + "tuple" => [ + ":ssl_options", + [%{"tuple" => [":versions", [":tlsv1", ":tlsv1.1", ":tlsv1.2"]]}] + ] + } + ] + } + ] + }) + + assert json_response(conn, 200) == %{ + "configs" => [ + %{ + "group" => ":pleroma", + "key" => ":key1", + "value" => [ + %{ + "tuple" => [ + ":ssl_options", + [%{"tuple" => [":versions", [":tlsv1", ":tlsv1.1", ":tlsv1.2"]]}] + ] + } + ] + } + ] + } + + assert Application.get_env(:pleroma, :key1) == [ + ssl_options: [versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"]] + ] + end + test "saving full setting if value is in full_key_update list", %{conn: conn} do backends = Application.get_env(:logger, :backends) on_exit(fn -> Application.put_env(:logger, :backends, backends) end) diff --git a/test/web/admin_api/config_test.exs b/test/web/admin_api/config_test.exs index 4f96322af..cc4c903bf 100644 --- a/test/web/admin_api/config_test.exs +++ b/test/web/admin_api/config_test.exs @@ -151,6 +151,12 @@ test "atom" do assert Config.from_binary(binary) == :atom end + test "ssl options" do + binary = Config.transform([":tlsv1", ":tlsv1.1", ":tlsv1.2"]) + assert binary == :erlang.term_to_binary([:tlsv1, :"tlsv1.1", :"tlsv1.2"]) + assert Config.from_binary(binary) == [:tlsv1, :"tlsv1.1", :"tlsv1.2"] + end + test "pleroma module" do binary = Config.transform("Pleroma.Bookmark") assert binary == :erlang.term_to_binary(Pleroma.Bookmark)