diff options
Diffstat (limited to 'test/migrations')
| -rw-r--r-- | test/migrations/20200716195806_autolinker_to_linkify_test.exs | 68 | ||||
| -rw-r--r-- | test/migrations/20200722185515_fix_malformed_formatter_config_test.exs | 66 | 
2 files changed, 134 insertions, 0 deletions
diff --git a/test/migrations/20200716195806_autolinker_to_linkify_test.exs b/test/migrations/20200716195806_autolinker_to_linkify_test.exs new file mode 100644 index 000000000..250d11c61 --- /dev/null +++ b/test/migrations/20200716195806_autolinker_to_linkify_test.exs @@ -0,0 +1,68 @@ +defmodule Pleroma.Repo.Migrations.AutolinkerToLinkifyTest do +  use Pleroma.DataCase +  import Pleroma.Factory +  import Pleroma.Tests.Helpers +  alias Pleroma.ConfigDB + +  setup do: clear_config(Pleroma.Formatter) +  setup_all do: require_migration("20200716195806_autolinker_to_linkify") + +  test "change/0 converts auto_linker opts for Pleroma.Formatter", %{migration: migration} do +    autolinker_opts = [ +      extra: true, +      validate_tld: true, +      class: false, +      strip_prefix: false, +      new_window: false, +      rel: "testing" +    ] + +    insert(:config, group: :auto_linker, key: :opts, value: autolinker_opts) + +    migration.change() + +    assert nil == ConfigDB.get_by_params(%{group: :auto_linker, key: :opts}) + +    %{value: new_opts} = ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Formatter}) + +    assert new_opts == [ +             class: false, +             extra: true, +             new_window: false, +             rel: "testing", +             strip_prefix: false +           ] + +    Pleroma.Config.put(Pleroma.Formatter, new_opts) +    assert new_opts == Pleroma.Config.get(Pleroma.Formatter) + +    {text, _mentions, []} = +      Pleroma.Formatter.linkify( +        "https://www.businessinsider.com/walmart-will-close-stores-on-thanksgiving-ending-black-friday-tradition-2020-7\n\nOmg will COVID finally end Black Friday???" +      ) + +    assert text == +             "<a href=\"https://www.businessinsider.com/walmart-will-close-stores-on-thanksgiving-ending-black-friday-tradition-2020-7\" rel=\"testing\">https://www.businessinsider.com/walmart-will-close-stores-on-thanksgiving-ending-black-friday-tradition-2020-7</a>\n\nOmg will COVID finally end Black Friday???" +  end + +  test "transform_opts/1 returns a list of compatible opts", %{migration: migration} do +    old_opts = [ +      extra: true, +      validate_tld: true, +      class: false, +      strip_prefix: false, +      new_window: false, +      rel: "qqq" +    ] + +    expected_opts = [ +      class: false, +      extra: true, +      new_window: false, +      rel: "qqq", +      strip_prefix: false +    ] + +    assert migration.transform_opts(old_opts) == expected_opts +  end +end diff --git a/test/migrations/20200722185515_fix_malformed_formatter_config_test.exs b/test/migrations/20200722185515_fix_malformed_formatter_config_test.exs new file mode 100644 index 000000000..d3490478e --- /dev/null +++ b/test/migrations/20200722185515_fix_malformed_formatter_config_test.exs @@ -0,0 +1,66 @@ +defmodule Pleroma.Repo.Migrations.FixMalformedFormatterConfigTest do +  use Pleroma.DataCase +  import Pleroma.Factory +  import Pleroma.Tests.Helpers +  alias Pleroma.ConfigDB + +  setup do: clear_config(Pleroma.Formatter) +  setup_all do: require_migration("20200722185515_fix_malformed_formatter_config") + +  test "change/0 converts a map into a list", %{migration: migration} do +    incorrect_opts = %{ +      class: false, +      extra: true, +      new_window: false, +      rel: "F", +      strip_prefix: false +    } + +    insert(:config, group: :pleroma, key: Pleroma.Formatter, value: incorrect_opts) + +    assert :ok == migration.change() + +    %{value: new_opts} = ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Formatter}) + +    assert new_opts == [ +             class: false, +             extra: true, +             new_window: false, +             rel: "F", +             strip_prefix: false +           ] + +    Pleroma.Config.put(Pleroma.Formatter, new_opts) +    assert new_opts == Pleroma.Config.get(Pleroma.Formatter) + +    {text, _mentions, []} = +      Pleroma.Formatter.linkify( +        "https://www.businessinsider.com/walmart-will-close-stores-on-thanksgiving-ending-black-friday-tradition-2020-7\n\nOmg will COVID finally end Black Friday???" +      ) + +    assert text == +             "<a href=\"https://www.businessinsider.com/walmart-will-close-stores-on-thanksgiving-ending-black-friday-tradition-2020-7\" rel=\"F\">https://www.businessinsider.com/walmart-will-close-stores-on-thanksgiving-ending-black-friday-tradition-2020-7</a>\n\nOmg will COVID finally end Black Friday???" +  end + +  test "change/0 skips if Pleroma.Formatter config is already a list", %{migration: migration} do +    opts = [ +      class: false, +      extra: true, +      new_window: false, +      rel: "ugc", +      strip_prefix: false +    ] + +    insert(:config, group: :pleroma, key: Pleroma.Formatter, value: opts) + +    assert :skipped == migration.change() + +    %{value: new_opts} = ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.Formatter}) + +    assert new_opts == opts +  end + +  test "change/0 skips if Pleroma.Formatter is empty", %{migration: migration} do +    assert :skipped == migration.change() +  end +end  | 
