2020-10-12 17:00:50 +00:00
# Pleroma: A lightweight social networking server
2021-01-13 06:49:20 +00:00
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
2020-10-12 17:00:50 +00:00
# SPDX-License-Identifier: AGPL-3.0-only
2020-07-22 19:18:09 +00:00
defmodule Pleroma.Repo.Migrations.FixMalformedFormatterConfigTest do
use Pleroma.DataCase
import Pleroma.Factory
2020-07-22 21:01:55 +00:00
import Pleroma.Tests.Helpers
2020-07-22 19:18:09 +00:00
alias Pleroma.ConfigDB
2020-07-22 21:01:55 +00:00
setup do : clear_config ( Pleroma.Formatter )
2020-07-22 19:18:09 +00:00
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 ,
2020-07-22 21:01:55 +00:00
rel : " F " ,
2020-07-22 19:18:09 +00:00
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 ,
2020-07-22 21:01:55 +00:00
rel : " F " ,
2020-07-22 19:18:09 +00:00
strip_prefix : false
]
2021-01-26 17:58:43 +00:00
clear_config ( Pleroma.Formatter , new_opts )
2020-07-22 21:01:55 +00:00
assert new_opts == Pleroma.Config . get ( Pleroma.Formatter )
2020-07-22 19:18:09 +00:00
{ text , _mentions , [ ] } =
Pleroma.Formatter . linkify (
" https://www.businessinsider.com/walmart-will-close-stores-on-thanksgiving-ending-black-friday-tradition-2020-7 \n \n Omg will COVID finally end Black Friday??? "
)
assert text ==
2020-07-22 21:01:55 +00:00
" <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 \n Omg will COVID finally end Black Friday??? "
2020-07-22 19:18:09 +00:00
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