Merge branch 'main' into glitch-soc/merge-upstream
Conflicts: - `app/views/admin/announcements/edit.html.haml`: Upstream change too close to theming-related glitch-soc change. Ported upstream changes. - `app/views/admin/announcements/new.html.haml` Upstream change too close to theming-related glitch-soc change. Ported upstream changes.
This commit is contained in:
@@ -94,25 +94,37 @@ RSpec.describe Api::V1::Admin::DomainAllowsController, type: :controller do
|
||||
describe 'POST #create' do
|
||||
let!(:domain_allow) { Fabricate(:domain_allow, domain: 'example.com') }
|
||||
|
||||
before do
|
||||
post :create, params: { domain: 'foo.bar.com' }
|
||||
context do
|
||||
before do
|
||||
post :create, params: { domain: 'foo.bar.com' }
|
||||
end
|
||||
|
||||
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
|
||||
it_behaves_like 'forbidden for wrong role', ''
|
||||
it_behaves_like 'forbidden for wrong role', 'Moderator'
|
||||
|
||||
it 'returns http success' do
|
||||
expect(response).to have_http_status(200)
|
||||
end
|
||||
|
||||
it 'returns expected domain name' do
|
||||
json = body_as_json
|
||||
expect(json[:domain]).to eq 'foo.bar.com'
|
||||
end
|
||||
|
||||
it 'creates a domain block' do
|
||||
expect(DomainAllow.find_by(domain: 'foo.bar.com')).to_not be_nil
|
||||
end
|
||||
end
|
||||
|
||||
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
|
||||
it_behaves_like 'forbidden for wrong role', ''
|
||||
it_behaves_like 'forbidden for wrong role', 'Moderator'
|
||||
context 'with invalid domain name' do
|
||||
before do
|
||||
post :create, params: { domain: 'foo bar' }
|
||||
end
|
||||
|
||||
it 'returns http success' do
|
||||
expect(response).to have_http_status(200)
|
||||
end
|
||||
|
||||
it 'returns expected domain name' do
|
||||
json = body_as_json
|
||||
expect(json[:domain]).to eq 'foo.bar.com'
|
||||
end
|
||||
|
||||
it 'creates a domain block' do
|
||||
expect(DomainAllow.find_by(domain: 'foo.bar.com')).to_not be_nil
|
||||
it 'returns http unprocessable entity' do
|
||||
expect(response).to have_http_status(422)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -1,6 +1,6 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Api::V1::Filters::KeywordsController, type: :controller do
|
||||
RSpec.describe Api::V2::Filters::KeywordsController, type: :controller do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
@@ -1,6 +1,6 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Api::V1::Filters::StatusesController, type: :controller do
|
||||
RSpec.describe Api::V2::Filters::StatusesController, type: :controller do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
1
spec/fixtures/files/utf8-followers.txt
vendored
Normal file
1
spec/fixtures/files/utf8-followers.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
@nare@թութ.հայ
|
@@ -89,6 +89,14 @@ RSpec.describe Account::Field, type: :model do
|
||||
expect(subject.verifiable?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
context 'for text which is blank' do
|
||||
let(:value) { '' }
|
||||
|
||||
it 'returns false' do
|
||||
expect(subject.verifiable?).to be false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'for remote accounts' do
|
||||
@@ -133,6 +141,14 @@ RSpec.describe Account::Field, type: :model do
|
||||
expect(subject.verifiable?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
context 'for text which is blank' do
|
||||
let(:value) { '' }
|
||||
|
||||
it 'returns false' do
|
||||
expect(subject.verifiable?).to be false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -50,10 +50,10 @@ RSpec.describe CustomEmojiFilter do
|
||||
context 'else' do
|
||||
let(:params) { { else: 'else' } }
|
||||
|
||||
it 'raises RuntimeError' do
|
||||
it 'raises Mastodon::InvalidParameterError' do
|
||||
expect do
|
||||
subject
|
||||
end.to raise_error(RuntimeError, /Unknown filter: else/)
|
||||
end.to raise_error(Mastodon::InvalidParameterError, /Unknown filter: else/)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -172,6 +172,29 @@ RSpec.describe ImportService, type: :service do
|
||||
end
|
||||
end
|
||||
|
||||
# Based on the bug report 20571 where UTF-8 encoded domains were rejecting import of their users
|
||||
#
|
||||
# https://github.com/mastodon/mastodon/issues/20571
|
||||
context 'utf-8 encoded domains' do
|
||||
subject { ImportService.new }
|
||||
|
||||
let!(:nare) { Fabricate(:account, username: 'nare', domain: 'թութ.հայ', locked: false, protocol: :activitypub, inbox_url: 'https://թութ.հայ/inbox') }
|
||||
|
||||
# Make sure to not actually go to the remote server
|
||||
before do
|
||||
stub_request(:post, "https://թութ.հայ/inbox").to_return(status: 200)
|
||||
end
|
||||
|
||||
let(:csv) { attachment_fixture('utf8-followers.txt') }
|
||||
let(:import) { Import.create(account: account, type: 'following', data: csv) }
|
||||
|
||||
it 'follows the listed account' do
|
||||
expect(account.follow_requests.count).to eq 0
|
||||
subject.call(import)
|
||||
expect(account.follow_requests.count).to eq 1
|
||||
end
|
||||
end
|
||||
|
||||
context 'import bookmarks' do
|
||||
subject { ImportService.new }
|
||||
|
||||
|
Reference in New Issue
Block a user