Browse Source

Append '.test' to hostname in stub data (#7260)

pull/4/head
MIYAGI Hikaru 6 years ago
committed by Eugen Rochko
parent
commit
eb593a5a0c
11 changed files with 76 additions and 76 deletions
  1. +1
    -1
      spec/fixtures/requests/oembed_json.html
  2. +2
    -2
      spec/fixtures/requests/oembed_json_xml.html
  3. +1
    -1
      spec/fixtures/requests/oembed_xml.html
  4. +12
    -12
      spec/helpers/jsonld_helper_spec.rb
  5. +3
    -3
      spec/lib/formatter_spec.rb
  6. +13
    -13
      spec/lib/ostatus/atom_serializer_spec.rb
  7. +19
    -19
      spec/lib/provider_discovery_spec.rb
  8. +17
    -17
      spec/lib/tag_manager_spec.rb
  9. +5
    -5
      spec/models/account_spec.rb
  10. +1
    -1
      spec/models/status_pin_spec.rb
  11. +2
    -2
      spec/services/activitypub/process_account_service_spec.rb

+ 1
- 1
spec/fixtures/requests/oembed_json.html View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link href='https://host/provider.json' rel='alternate' type='application/json+oembed'>
<link href='https://host.test/provider.json' rel='alternate' type='application/json+oembed'>
</head>
<body></body>
</html>

+ 2
- 2
spec/fixtures/requests/oembed_json_xml.html View File

@ -7,8 +7,8 @@
> The type attribute must contain either application/json+oembed for JSON
> responses, or text/xml+oembed for XML.
-->
<link href='https://host/provider.json' rel='alternate' type='application/json+oembed'>
<link href='https://host/provider.xml' rel='alternate' type='text/xml+oembed'>
<link href='https://host.test/provider.json' rel='alternate' type='application/json+oembed'>
<link href='https://host.test/provider.xml' rel='alternate' type='text/xml+oembed'>
</head>
<body></body>
</html>

+ 1
- 1
spec/fixtures/requests/oembed_xml.html View File

@ -7,7 +7,7 @@
> The type attribute must contain either application/json+oembed for JSON
> responses, or text/xml+oembed for XML.
-->
<link href='https://host/provider.xml' rel='alternate' type='text/xml+oembed'>
<link href='https://host.test/provider.xml' rel='alternate' type='text/xml+oembed'>
</head>
<body></body>
</html>

+ 12
- 12
spec/helpers/jsonld_helper_spec.rb View File

@ -32,37 +32,37 @@ describe JsonLdHelper do
describe '#fetch_resource' do
context 'when the second argument is false' do
it 'returns resource even if the retrieved ID and the given URI does not match' do
stub_request(:get, 'https://bob/').to_return body: '{"id": "https://alice/"}'
stub_request(:get, 'https://alice/').to_return body: '{"id": "https://alice/"}'
stub_request(:get, 'https://bob.test/').to_return body: '{"id": "https://alice.test/"}'
stub_request(:get, 'https://alice.test/').to_return body: '{"id": "https://alice.test/"}'
expect(fetch_resource('https://bob/', false)).to eq({ 'id' => 'https://alice/' })
expect(fetch_resource('https://bob.test/', false)).to eq({ 'id' => 'https://alice.test/' })
end
it 'returns nil if the object identified by the given URI and the object identified by the retrieved ID does not match' do
stub_request(:get, 'https://mallory/').to_return body: '{"id": "https://marvin/"}'
stub_request(:get, 'https://marvin/').to_return body: '{"id": "https://alice/"}'
stub_request(:get, 'https://mallory.test/').to_return body: '{"id": "https://marvin.test/"}'
stub_request(:get, 'https://marvin.test/').to_return body: '{"id": "https://alice.test/"}'
expect(fetch_resource('https://mallory/', false)).to eq nil
expect(fetch_resource('https://mallory.test/', false)).to eq nil
end
end
context 'when the second argument is true' do
it 'returns nil if the retrieved ID and the given URI does not match' do
stub_request(:get, 'https://mallory/').to_return body: '{"id": "https://alice/"}'
expect(fetch_resource('https://mallory/', true)).to eq nil
stub_request(:get, 'https://mallory.test/').to_return body: '{"id": "https://alice.test/"}'
expect(fetch_resource('https://mallory.test/', true)).to eq nil
end
end
end
describe '#fetch_resource_without_id_validation' do
it 'returns nil if the status code is not 200' do
stub_request(:get, 'https://host/').to_return status: 400, body: '{}'
expect(fetch_resource_without_id_validation('https://host/')).to eq nil
stub_request(:get, 'https://host.test/').to_return status: 400, body: '{}'
expect(fetch_resource_without_id_validation('https://host.test/')).to eq nil
end
it 'returns hash' do
stub_request(:get, 'https://host/').to_return status: 200, body: '{}'
expect(fetch_resource_without_id_validation('https://host/')).to eq({})
stub_request(:get, 'https://host.test/').to_return status: 200, body: '{}'
expect(fetch_resource_without_id_validation('https://host.test/')).to eq({})
end
end
end

+ 3
- 3
spec/lib/formatter_spec.rb View File

@ -2,7 +2,7 @@ require 'rails_helper'
RSpec.describe Formatter do
let(:local_account) { Fabricate(:account, domain: nil, username: 'alice') }
let(:remote_account) { Fabricate(:account, domain: 'remote', username: 'bob', url: 'https://remote/') }
let(:remote_account) { Fabricate(:account, domain: 'remote.test', username: 'bob', url: 'https://remote.test/') }
shared_examples 'encode and link URLs' do
context 'matches a stand-alone medium URL' do
@ -377,12 +377,12 @@ RSpec.describe Formatter do
end
context 'contains linkable mentions for remote accounts' do
let(:text) { '@bob@remote' }
let(:text) { '@bob@remote.test' }
before { remote_account }
it 'links' do
is_expected.to eq '<p><span class="h-card"><a href="https://remote/" class="u-url mention">@<span>bob</span></a></span></p>'
is_expected.to eq '<p><span class="h-card"><a href="https://remote.test/" class="u-url mention">@<span>bob</span></a></span></p>'
end
end

+ 13
- 13
spec/lib/ostatus/atom_serializer_spec.rb View File

@ -30,13 +30,13 @@ RSpec.describe OStatus::AtomSerializer do
end
it 'appends activity:object with target account' do
target_account = Fabricate(:account, domain: 'domain', uri: 'https://domain/id')
target_account = Fabricate(:account, domain: 'domain.test', uri: 'https://domain.test/id')
follow_request = Fabricate(:follow_request, target_account: target_account)
follow_request_salmon = serialize(follow_request)
object = follow_request_salmon.nodes.find { |node| node.name == 'activity:object' }
expect(object.id.text).to eq 'https://domain/id'
expect(object.id.text).to eq 'https://domain.test/id'
end
end
@ -413,20 +413,20 @@ RSpec.describe OStatus::AtomSerializer do
entry = OStatus::AtomSerializer.new.entry(remote_status.stream_entry, true)
entry.nodes.delete_if { |node| node[:type] == 'application/activity+json' } # Remove ActivityPub link to simplify test
xml = OStatus::AtomSerializer.render(entry).gsub('cb6e6126.ngrok.io', 'remote')
xml = OStatus::AtomSerializer.render(entry).gsub('cb6e6126.ngrok.io', 'remote.test')
remote_status.destroy!
remote_account.destroy!
account = Account.create!(
domain: 'remote',
domain: 'remote.test',
username: 'username',
last_webfingered_at: Time.now.utc
)
ProcessFeedService.new.call(xml, account)
expect(Status.find_by(uri: "https://remote/users/#{remote_status.account.to_param}/statuses/#{remote_status.id}")).to be_instance_of Status
expect(Status.find_by(uri: "https://remote.test/users/#{remote_status.account.to_param}/statuses/#{remote_status.id}")).to be_instance_of Status
end
end
@ -776,13 +776,13 @@ RSpec.describe OStatus::AtomSerializer do
end
it 'appends activity:object element with target account' do
target_account = Fabricate(:account, domain: 'domain', uri: 'https://domain/id')
target_account = Fabricate(:account, domain: 'domain.test', uri: 'https://domain.test/id')
block = Fabricate(:block, target_account: target_account)
block_salmon = OStatus::AtomSerializer.new.block_salmon(block)
object = block_salmon.nodes.find { |node| node.name == 'activity:object' }
expect(object.id.text).to eq 'https://domain/id'
expect(object.id.text).to eq 'https://domain.test/id'
end
it 'returns element whose rendered view triggers block when processed' do
@ -863,13 +863,13 @@ RSpec.describe OStatus::AtomSerializer do
end
it 'appends activity:object element with target account' do
target_account = Fabricate(:account, domain: 'domain', uri: 'https://domain/id')
target_account = Fabricate(:account, domain: 'domain.test', uri: 'https://domain.test/id')
block = Fabricate(:block, target_account: target_account)
unblock_salmon = OStatus::AtomSerializer.new.unblock_salmon(block)
object = unblock_salmon.nodes.find { |node| node.name == 'activity:object' }
expect(object.id.text).to eq 'https://domain/id'
expect(object.id.text).to eq 'https://domain.test/id'
end
it 'returns element whose rendered view triggers block when processed' do
@ -1124,13 +1124,13 @@ RSpec.describe OStatus::AtomSerializer do
end
it 'appends activity:object element with target account' do
target_account = Fabricate(:account, domain: 'domain', uri: 'https://domain/id')
target_account = Fabricate(:account, domain: 'domain.test', uri: 'https://domain.test/id')
follow = Fabricate(:follow, target_account: target_account)
follow_salmon = OStatus::AtomSerializer.new.follow_salmon(follow)
object = follow_salmon.nodes.find { |node| node.name == 'activity:object' }
expect(object.id.text).to eq 'https://domain/id'
expect(object.id.text).to eq 'https://domain.test/id'
end
it 'includes description' do
@ -1242,14 +1242,14 @@ RSpec.describe OStatus::AtomSerializer do
end
it 'appends activity:object element with target account' do
target_account = Fabricate(:account, domain: 'domain', uri: 'https://domain/id')
target_account = Fabricate(:account, domain: 'domain.test', uri: 'https://domain.test/id')
follow = Fabricate(:follow, target_account: target_account)
follow.destroy!
unfollow_salmon = OStatus::AtomSerializer.new.unfollow_salmon(follow)
object = unfollow_salmon.nodes.find { |node| node.name == 'activity:object' }
expect(object.id.text).to eq 'https://domain/id'
expect(object.id.text).to eq 'https://domain.test/id'
end
it 'returns element whose rendered view triggers unfollow when processed' do

+ 19
- 19
spec/lib/provider_discovery_spec.rb View File

@ -7,7 +7,7 @@ describe ProviderDiscovery do
context 'when status code is 200 and MIME type is text/html' do
context 'Both of JSON and XML provider are discoverable' do
before do
stub_request(:get, 'https://host/oembed.html').to_return(
stub_request(:get, 'https://host.test/oembed.html').to_return(
status: 200,
headers: { 'Content-Type': 'text/html' },
body: request_fixture('oembed_json_xml.html')
@ -15,21 +15,21 @@ describe ProviderDiscovery do
end
it 'returns new OEmbed::Provider for JSON provider if :format option is set to :json' do
provider = ProviderDiscovery.discover_provider('https://host/oembed.html', format: :json)
expect(provider.endpoint).to eq 'https://host/provider.json'
provider = ProviderDiscovery.discover_provider('https://host.test/oembed.html', format: :json)
expect(provider.endpoint).to eq 'https://host.test/provider.json'
expect(provider.format).to eq :json
end
it 'returns new OEmbed::Provider for XML provider if :format option is set to :xml' do
provider = ProviderDiscovery.discover_provider('https://host/oembed.html', format: :xml)
expect(provider.endpoint).to eq 'https://host/provider.xml'
provider = ProviderDiscovery.discover_provider('https://host.test/oembed.html', format: :xml)
expect(provider.endpoint).to eq 'https://host.test/provider.xml'
expect(provider.format).to eq :xml
end
end
context 'JSON provider is discoverable while XML provider is not' do
before do
stub_request(:get, 'https://host/oembed.html').to_return(
stub_request(:get, 'https://host.test/oembed.html').to_return(
status: 200,
headers: { 'Content-Type': 'text/html' },
body: request_fixture('oembed_json.html')
@ -37,15 +37,15 @@ describe ProviderDiscovery do
end
it 'returns new OEmbed::Provider for JSON provider' do
provider = ProviderDiscovery.discover_provider('https://host/oembed.html')
expect(provider.endpoint).to eq 'https://host/provider.json'
provider = ProviderDiscovery.discover_provider('https://host.test/oembed.html')
expect(provider.endpoint).to eq 'https://host.test/provider.json'
expect(provider.format).to eq :json
end
end
context 'XML provider is discoverable while JSON provider is not' do
before do
stub_request(:get, 'https://host/oembed.html').to_return(
stub_request(:get, 'https://host.test/oembed.html').to_return(
status: 200,
headers: { 'Content-Type': 'text/html' },
body: request_fixture('oembed_xml.html')
@ -53,15 +53,15 @@ describe ProviderDiscovery do
end
it 'returns new OEmbed::Provider for XML provider' do
provider = ProviderDiscovery.discover_provider('https://host/oembed.html')
expect(provider.endpoint).to eq 'https://host/provider.xml'
provider = ProviderDiscovery.discover_provider('https://host.test/oembed.html')
expect(provider.endpoint).to eq 'https://host.test/provider.xml'
expect(provider.format).to eq :xml
end
end
context 'Invalid XML provider is discoverable while JSON provider is not' do
before do
stub_request(:get, 'https://host/oembed.html').to_return(
stub_request(:get, 'https://host.test/oembed.html').to_return(
status: 200,
headers: { 'Content-Type': 'text/html' },
body: request_fixture('oembed_invalid_xml.html')
@ -69,13 +69,13 @@ describe ProviderDiscovery do
end
it 'raises OEmbed::NotFound' do
expect { ProviderDiscovery.discover_provider('https://host/oembed.html') }.to raise_error OEmbed::NotFound
expect { ProviderDiscovery.discover_provider('https://host.test/oembed.html') }.to raise_error OEmbed::NotFound
end
end
context 'Neither of JSON and XML provider is discoverable' do
before do
stub_request(:get, 'https://host/oembed.html').to_return(
stub_request(:get, 'https://host.test/oembed.html').to_return(
status: 200,
headers: { 'Content-Type': 'text/html' },
body: request_fixture('oembed_undiscoverable.html')
@ -83,14 +83,14 @@ describe ProviderDiscovery do
end
it 'raises OEmbed::NotFound' do
expect { ProviderDiscovery.discover_provider('https://host/oembed.html') }.to raise_error OEmbed::NotFound
expect { ProviderDiscovery.discover_provider('https://host.test/oembed.html') }.to raise_error OEmbed::NotFound
end
end
end
context 'when status code is not 200' do
before do
stub_request(:get, 'https://host/oembed.html').to_return(
stub_request(:get, 'https://host.test/oembed.html').to_return(
status: 400,
headers: { 'Content-Type': 'text/html' },
body: request_fixture('oembed_xml.html')
@ -98,20 +98,20 @@ describe ProviderDiscovery do
end
it 'raises OEmbed::NotFound' do
expect { ProviderDiscovery.discover_provider('https://host/oembed.html') }.to raise_error OEmbed::NotFound
expect { ProviderDiscovery.discover_provider('https://host.test/oembed.html') }.to raise_error OEmbed::NotFound
end
end
context 'when MIME type is not text/html' do
before do
stub_request(:get, 'https://host/oembed.html').to_return(
stub_request(:get, 'https://host.test/oembed.html').to_return(
status: 200,
body: request_fixture('oembed_xml.html')
)
end
it 'raises OEmbed::NotFound' do
expect { ProviderDiscovery.discover_provider('https://host/oembed.html') }.to raise_error OEmbed::NotFound
expect { ProviderDiscovery.discover_provider('https://host.test/oembed.html') }.to raise_error OEmbed::NotFound
end
end
end

+ 17
- 17
spec/lib/tag_manager_spec.rb View File

@ -6,7 +6,7 @@ RSpec.describe TagManager do
around do |example|
original_local_domain = Rails.configuration.x.local_domain
Rails.configuration.x.local_domain = 'domain'
Rails.configuration.x.local_domain = 'domain.test'
example.run
@ -18,11 +18,11 @@ RSpec.describe TagManager do
end
it 'returns true if the slash-stripped string equals to local domain' do
expect(TagManager.instance.local_domain?('DoMaIn/')).to eq true
expect(TagManager.instance.local_domain?('DoMaIn.Test/')).to eq true
end
it 'returns false for irrelevant string' do
expect(TagManager.instance.local_domain?('DoMaIn!')).to eq false
expect(TagManager.instance.local_domain?('DoMaIn.Test!')).to eq false
end
end
@ -31,7 +31,7 @@ RSpec.describe TagManager do
around do |example|
original_web_domain = Rails.configuration.x.web_domain
Rails.configuration.x.web_domain = 'domain'
Rails.configuration.x.web_domain = 'domain.test'
example.run
@ -43,11 +43,11 @@ RSpec.describe TagManager do
end
it 'returns true if the slash-stripped string equals to web domain' do
expect(TagManager.instance.web_domain?('DoMaIn/')).to eq true
expect(TagManager.instance.web_domain?('DoMaIn.Test/')).to eq true
end
it 'returns false for string with irrelevant characters' do
expect(TagManager.instance.web_domain?('DoMaIn!')).to eq false
expect(TagManager.instance.web_domain?('DoMaIn.Test!')).to eq false
end
end
@ -57,7 +57,7 @@ RSpec.describe TagManager do
end
it 'returns normalized domain' do
expect(TagManager.instance.normalize_domain('DoMaIn/')).to eq 'domain'
expect(TagManager.instance.normalize_domain('DoMaIn.Test/')).to eq 'domain.test'
end
end
@ -69,18 +69,18 @@ RSpec.describe TagManager do
end
it 'returns true if the normalized string with port is local URL' do
Rails.configuration.x.web_domain = 'domain:42'
expect(TagManager.instance.local_url?('https://DoMaIn:42/')).to eq true
Rails.configuration.x.web_domain = 'domain.test:42'
expect(TagManager.instance.local_url?('https://DoMaIn.Test:42/')).to eq true
end
it 'returns true if the normalized string without port is local URL' do
Rails.configuration.x.web_domain = 'domain'
expect(TagManager.instance.local_url?('https://DoMaIn/')).to eq true
Rails.configuration.x.web_domain = 'domain.test'
expect(TagManager.instance.local_url?('https://DoMaIn.Test/')).to eq true
end
it 'returns false for string with irrelevant characters' do
Rails.configuration.x.web_domain = 'domain'
expect(TagManager.instance.local_url?('https://domainn/')).to eq false
Rails.configuration.x.web_domain = 'domain.test'
expect(TagManager.instance.local_url?('https://domainn.test/')).to eq false
end
end
@ -88,19 +88,19 @@ RSpec.describe TagManager do
# The following comparisons MUST be case-insensitive.
it 'returns true if the needle has a correct username and domain for remote user' do
expect(TagManager.instance.same_acct?('username@domain', 'UsErNaMe@DoMaIn')).to eq true
expect(TagManager.instance.same_acct?('username@domain.test', 'UsErNaMe@DoMaIn.Test')).to eq true
end
it 'returns false if the needle is missing a domain for remote user' do
expect(TagManager.instance.same_acct?('username@domain', 'UsErNaMe')).to eq false
expect(TagManager.instance.same_acct?('username@domain.test', 'UsErNaMe')).to eq false
end
it 'returns false if the needle has an incorrect domain for remote user' do
expect(TagManager.instance.same_acct?('username@domain', 'UsErNaMe@incorrect')).to eq false
expect(TagManager.instance.same_acct?('username@domain.test', 'UsErNaMe@incorrect.test')).to eq false
end
it 'returns false if the needle has an incorrect username for remote user' do
expect(TagManager.instance.same_acct?('username@domain', 'incorrect@DoMaIn')).to eq false
expect(TagManager.instance.same_acct?('username@domain.test', 'incorrect@DoMaIn.test')).to eq false
end
it 'returns true if the needle has a correct username and domain for local user' do

+ 5
- 5
spec/models/account_spec.rb View File

@ -94,14 +94,14 @@ RSpec.describe Account, type: :model do
describe '#save_with_optional_media!' do
before do
stub_request(:get, 'https://remote/valid_avatar').to_return(request_fixture('avatar.txt'))
stub_request(:get, 'https://remote/invalid_avatar').to_return(request_fixture('feed.txt'))
stub_request(:get, 'https://remote.test/valid_avatar').to_return(request_fixture('avatar.txt'))
stub_request(:get, 'https://remote.test/invalid_avatar').to_return(request_fixture('feed.txt'))
end
let(:account) do
Fabricate(:account,
avatar_remote_url: 'https://remote/valid_avatar',
header_remote_url: 'https://remote/valid_avatar')
avatar_remote_url: 'https://remote.test/valid_avatar',
header_remote_url: 'https://remote.test/valid_avatar')
end
let!(:expectation) { account.dup }
@ -121,7 +121,7 @@ RSpec.describe Account, type: :model do
context 'with invalid properties' do
before do
account.avatar_remote_url = 'https://remote/invalid_avatar'
account.avatar_remote_url = 'https://remote.test/invalid_avatar'
account.save_with_optional_media!
end

+ 1
- 1
spec/models/status_pin_spec.rb View File

@ -55,7 +55,7 @@ RSpec.describe StatusPin, type: :model do
end
it 'allows pins above the max for remote accounts' do
account = Fabricate(:account, domain: 'remote', username: 'bob', url: 'https://remote/')
account = Fabricate(:account, domain: 'remote.test', username: 'bob', url: 'https://remote.test/')
status = []
(max_pins + 1).times do |i|

+ 2
- 2
spec/services/activitypub/process_account_service_spec.rb View File

@ -6,9 +6,9 @@ RSpec.describe ActivityPub::ProcessAccountService do
context 'property values' do
let(:payload) do
{
id: 'https://foo',
id: 'https://foo.test',
type: 'Actor',
inbox: 'https://foo/inbox',
inbox: 'https://foo.test/inbox',
attachment: [
{ type: 'PropertyValue', name: 'Pronouns', value: 'They/them' },
{ type: 'PropertyValue', name: 'Occupation', value: 'Unit test' },

Loading…
Cancel
Save