mirror of https://github.com/mastodon/mastodon
Strip protocol from attribution domains (#31900)
This commit is contained in:
parent
ba81e4e019
commit
c1b2c4fd9a
|
@ -13,7 +13,11 @@ module Account::AttributionDomains
|
|||
|
||||
def attribution_domains_as_text=(str)
|
||||
self[:attribution_domains] = str.split.filter_map do |line|
|
||||
line.strip.delete_prefix('*.')
|
||||
line
|
||||
.strip
|
||||
.delete_prefix('http://')
|
||||
.delete_prefix('https://')
|
||||
.delete_prefix('*.')
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -792,6 +792,34 @@ RSpec.describe Account do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#attribution_domains_as_text=' do
|
||||
subject { Fabricate(:account) }
|
||||
|
||||
it 'sets attribution_domains accordingly' do
|
||||
subject.attribution_domains_as_text = "hoge.com\nexample.com"
|
||||
|
||||
expect(subject.attribution_domains).to contain_exactly('hoge.com', 'example.com')
|
||||
end
|
||||
|
||||
it 'strips leading "*."' do
|
||||
subject.attribution_domains_as_text = "hoge.com\n*.example.com"
|
||||
|
||||
expect(subject.attribution_domains).to contain_exactly('hoge.com', 'example.com')
|
||||
end
|
||||
|
||||
it 'strips the protocol if present' do
|
||||
subject.attribution_domains_as_text = "http://hoge.com\nhttps://example.com"
|
||||
|
||||
expect(subject.attribution_domains).to contain_exactly('hoge.com', 'example.com')
|
||||
end
|
||||
|
||||
it 'strips a combination of leading "*." and protocol' do
|
||||
subject.attribution_domains_as_text = "http://*.hoge.com\nhttps://*.example.com"
|
||||
|
||||
expect(subject.attribution_domains).to contain_exactly('hoge.com', 'example.com')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Normalizations' do
|
||||
describe 'username' do
|
||||
it { is_expected.to normalize(:username).from(" \u3000bob \t \u00a0 \n ").to('bob') }
|
||||
|
|
Loading…
Reference in New Issue