Merge branch 'main' into glitch-soc/merge-upstream

This commit is contained in:
Claire
2021-03-19 13:57:15 +01:00
63 changed files with 408 additions and 398 deletions

View File

@@ -370,7 +370,7 @@ RSpec.describe AccountsController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it_behaves_like 'cachable response'
@@ -402,7 +402,7 @@ RSpec.describe AccountsController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it 'returns public Cache-Control header' do
@@ -428,7 +428,7 @@ RSpec.describe AccountsController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it_behaves_like 'cachable response'
@@ -446,7 +446,7 @@ RSpec.describe AccountsController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it 'returns private Cache-Control header' do

View File

@@ -43,7 +43,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it_behaves_like 'cachable response'
@@ -88,7 +88,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it_behaves_like 'cachable response'
@@ -116,7 +116,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it 'returns private Cache-Control header' do
@@ -141,7 +141,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it 'returns private Cache-Control header' do

View File

@@ -40,7 +40,7 @@ RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controll
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it 'returns orderedItems with followers from example.com' do

View File

@@ -46,7 +46,7 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it 'returns totalItems' do
@@ -85,7 +85,7 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it 'returns orderedItems with public or unlisted statuses' do
@@ -133,7 +133,7 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it 'returns orderedItems with public or unlisted statuses' do
@@ -159,7 +159,7 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it 'returns orderedItems with private statuses' do
@@ -185,7 +185,7 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it 'returns empty orderedItems' do
@@ -210,7 +210,7 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it 'returns empty orderedItems' do

View File

@@ -73,7 +73,7 @@ RSpec.describe ActivityPub::RepliesController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it_behaves_like 'cachable response'
@@ -120,7 +120,7 @@ RSpec.describe ActivityPub::RepliesController, type: :controller do
end
it 'returns application/activity+json' do
expect(response.content_type).to eq 'application/activity+json'
expect(response.media_type).to eq 'application/activity+json'
end
it_behaves_like 'cachable response'

View File

@@ -0,0 +1,40 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe CacheConcern, type: :controller do
controller(ApplicationController) do
include CacheConcern
def empty_array
render plain: cache_collection([], Status).size
end
def empty_relation
render plain: cache_collection(Status.none, Status).size
end
end
before do
routes.draw do
get 'empty_array' => 'anonymous#empty_array'
post 'empty_relation' => 'anonymous#empty_relation'
end
end
describe '#cache_collection' do
context 'given an empty array' do
it 'returns an empty array' do
get :empty_array
expect(response.body).to eq '0'
end
end
context 'given an empty relation' do
it 'returns an empty array' do
get :empty_relation
expect(response.body).to eq '0'
end
end
end
end

View File

@@ -22,8 +22,8 @@ describe ApplicationController, type: :controller do
get :index, format: :csv
expect(response).to have_http_status(200)
expect(response.content_type).to eq 'text/csv'
expect(response.headers['Content-Disposition']).to eq 'attachment; filename="anonymous.csv"'
expect(response.media_type).to eq 'text/csv'
expect(response.headers['Content-Disposition']).to start_with 'attachment; filename="anonymous.csv"'
expect(response.body).to eq user.account.username
end

View File

@@ -8,7 +8,7 @@ describe WellKnown::HostMetaController, type: :controller do
get :show, format: :xml
expect(response).to have_http_status(200)
expect(response.content_type).to eq 'application/xrd+xml'
expect(response.media_type).to eq 'application/xrd+xml'
expect(response.body).to eq <<XML
<?xml version="1.0" encoding="UTF-8"?>
<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">

View File

@@ -8,7 +8,7 @@ describe WellKnown::KeybaseProofConfigController, type: :controller do
get :show
expect(response).to have_http_status(200)
expect(response.content_type).to eq 'application/json'
expect(response.media_type).to eq 'application/json'
expect { JSON.parse(response.body) }.not_to raise_exception
end
end

View File

@@ -8,7 +8,7 @@ describe WellKnown::NodeInfoController, type: :controller do
get :index
expect(response).to have_http_status(200)
expect(response.content_type).to eq 'application/json'
expect(response.media_type).to eq 'application/json'
json = body_as_json
@@ -23,7 +23,7 @@ describe WellKnown::NodeInfoController, type: :controller do
get :show
expect(response).to have_http_status(200)
expect(response.content_type).to eq 'application/json'
expect(response.media_type).to eq 'application/json'
json = body_as_json

View File

@@ -25,7 +25,7 @@ describe WellKnown::WebfingerController, type: :controller do
end
it 'returns application/jrd+json' do
expect(response.content_type).to eq 'application/jrd+json'
expect(response.media_type).to eq 'application/jrd+json'
end
it 'returns links for the account' do

View File

@@ -0,0 +1,19 @@
require 'rails_helper'
RSpec.describe EntityCache do
let(:local_account) { Fabricate(:account, domain: nil, username: 'alice') }
let(:remote_account) { Fabricate(:account, domain: 'remote.test', username: 'bob', url: 'https://remote.test/') }
describe '#emoji' do
subject { EntityCache.instance.emoji(shortcodes, domain) }
context 'called with an empty list of shortcodes' do
let(:shortcodes) { [] }
let(:domain) { 'example.org' }
it 'returns an empty array' do
is_expected.to eq []
end
end
end
end

View File

@@ -1,7 +1,6 @@
# frozen_string_literal: true
require 'rails_helper'
require Rails.root.join('app', 'lib', 'sanitize_config.rb')
describe Sanitize::Config do
shared_examples 'common HTML sanitization' do

View File

@@ -1,57 +0,0 @@
require 'rails_helper'
RSpec.describe AccountStat, type: :model do
describe '#increment_count!' do
it 'increments the count' do
account_stat = AccountStat.create(account: Fabricate(:account))
expect(account_stat.followers_count).to eq 0
account_stat.increment_count!(:followers_count)
expect(account_stat.followers_count).to eq 1
end
it 'increments the count in multi-threaded an environment' do
account_stat = AccountStat.create(account: Fabricate(:account), statuses_count: 0)
increment_by = 15
wait_for_start = true
threads = Array.new(increment_by) do
Thread.new do
true while wait_for_start
AccountStat.find(account_stat.id).increment_count!(:statuses_count)
end
end
wait_for_start = false
threads.each(&:join)
expect(account_stat.reload.statuses_count).to eq increment_by
end
end
describe '#decrement_count!' do
it 'decrements the count' do
account_stat = AccountStat.create(account: Fabricate(:account), followers_count: 15)
expect(account_stat.followers_count).to eq 15
account_stat.decrement_count!(:followers_count)
expect(account_stat.followers_count).to eq 14
end
it 'decrements the count in multi-threaded an environment' do
account_stat = AccountStat.create(account: Fabricate(:account), statuses_count: 15)
decrement_by = 10
wait_for_start = true
threads = Array.new(decrement_by) do
Thread.new do
true while wait_for_start
AccountStat.find(account_stat.id).decrement_count!(:statuses_count)
end
end
wait_for_start = false
threads.each(&:join)
expect(account_stat.reload.statuses_count).to eq 5
end
end
end

View File

@@ -0,0 +1,60 @@
require 'rails_helper'
describe AccountCounters do
let!(:account) { Fabricate(:account) }
describe '#increment_count!' do
it 'increments the count' do
expect(account.followers_count).to eq 0
account.increment_count!(:followers_count)
expect(account.followers_count).to eq 1
end
it 'increments the count in multi-threaded an environment' do
increment_by = 15
wait_for_start = true
threads = Array.new(increment_by) do
Thread.new do
true while wait_for_start
account.increment_count!(:statuses_count)
end
end
wait_for_start = false
threads.each(&:join)
expect(account.statuses_count).to eq increment_by
end
end
describe '#decrement_count!' do
it 'decrements the count' do
account.followers_count = 15
account.save!
expect(account.followers_count).to eq 15
account.decrement_count!(:followers_count)
expect(account.followers_count).to eq 14
end
it 'decrements the count in multi-threaded an environment' do
decrement_by = 10
wait_for_start = true
account.statuses_count = 15
account.save!
threads = Array.new(decrement_by) do
Thread.new do
true while wait_for_start
account.decrement_count!(:statuses_count)
end
end
wait_for_start = false
threads.each(&:join)
expect(account.statuses_count).to eq 5
end
end
end

View File

@@ -6,7 +6,7 @@ describe "The catch all route" do
get "/test"
expect(response.status).to eq 404
expect(response.content_type).to eq "text/html"
expect(response.media_type).to eq "text/html"
end
end
@@ -15,7 +15,7 @@ describe "The catch all route" do
get "/test.test"
expect(response.status).to eq 404
expect(response.content_type).to eq "text/html"
expect(response.media_type).to eq "text/html"
end
end
end

View File

@@ -6,7 +6,7 @@ describe "The host_meta route" do
get host_meta_url
expect(response).to have_http_status(200)
expect(response.content_type).to eq "application/xrd+xml"
expect(response.media_type).to eq "application/xrd+xml"
end
end
end

View File

@@ -25,7 +25,7 @@ describe 'Link headers' do
end
def link_header_with_type(type)
response.headers['Link'].links.find do |link|
LinkHeader.parse(response.headers['Link'].to_s).links.find do |link|
link.attr_pairs.any? { |pair| pair == ['type', type] }
end
end

View File

@@ -8,7 +8,7 @@ describe 'The webfinger route' do
get webfinger_url(resource: alice.to_webfinger_s)
expect(response).to have_http_status(200)
expect(response.content_type).to eq 'application/jrd+json'
expect(response.media_type).to eq 'application/jrd+json'
end
end
@@ -17,7 +17,7 @@ describe 'The webfinger route' do
get webfinger_url(resource: alice.to_webfinger_s, format: :json)
expect(response).to have_http_status(200)
expect(response.content_type).to eq 'application/jrd+json'
expect(response.media_type).to eq 'application/jrd+json'
end
it 'returns a json response for json accept header' do
@@ -25,7 +25,7 @@ describe 'The webfinger route' do
get webfinger_url(resource: alice.to_webfinger_s), headers: headers
expect(response).to have_http_status(200)
expect(response.content_type).to eq 'application/jrd+json'
expect(response.media_type).to eq 'application/jrd+json'
end
end
end

View File

@@ -2,7 +2,7 @@
require 'rails_helper'
RSpec.describe UrlValidator, type: :validator do
RSpec.describe URLValidator, type: :validator do
describe '#validate_each' do
before do
allow(validator).to receive(:compliant?).with(value) { compliant }