diff options
author | Thibaut Girka <thib@sitedethib.com> | 2018-09-19 21:46:01 +0200 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2018-09-19 21:46:01 +0200 |
commit | 91bef4759f40422b64d7990f9b90db0b493773b1 (patch) | |
tree | 3211b1014a6d0a88737db16c44d210ef96a070e4 /spec/services | |
parent | 382cdd7f959480d59fee5646be320d6076cb18d8 (diff) | |
parent | 554f659f2aa1eb9c0ca64ec1c9c177538434826c (diff) |
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts: Vagrantfile app/javascript/packs/public.js app/views/admin/settings/edit.html.haml app/views/settings/preferences/show.html.haml app/views/settings/profiles/show.html.haml config/locales/es.yml config/locales/simple_form.en.yml config/webpack/configuration.js config/webpack/loaders/babel.js package.json yarn.lock Split new additions to app/javascript/packs/public.js to app/javascript/core/settings.js
Diffstat (limited to 'spec/services')
-rw-r--r-- | spec/services/process_feed_service_spec.rb | 2 | ||||
-rw-r--r-- | spec/services/verify_link_service_spec.rb | 66 |
2 files changed, 67 insertions, 1 deletions
diff --git a/spec/services/process_feed_service_spec.rb b/spec/services/process_feed_service_spec.rb index d8b065063..1f26660ed 100644 --- a/spec/services/process_feed_service_spec.rb +++ b/spec/services/process_feed_service_spec.rb @@ -166,7 +166,7 @@ XML expect(created_statuses.first.reblog.text).to eq 'Overwatch rocks' end - it 'ignores reblogs if it failed to retreive reblogged statuses' do + it 'ignores reblogs if it failed to retrieve reblogged statuses' do stub_request(:get, 'https://overwatch.com/users/tracer/updates/1').to_return(status: 404) actor = Fabricate(:account, username: 'tracer', domain: 'overwatch.com') diff --git a/spec/services/verify_link_service_spec.rb b/spec/services/verify_link_service_spec.rb new file mode 100644 index 000000000..acd4e851e --- /dev/null +++ b/spec/services/verify_link_service_spec.rb @@ -0,0 +1,66 @@ +require 'rails_helper' + +RSpec.describe VerifyLinkService, type: :service do + subject { described_class.new } + + let(:account) { Fabricate(:account, username: 'alice') } + let(:field) { Account::Field.new(account, 'name' => 'Website', 'value' => 'http://example.com') } + + before do + stub_request(:get, 'http://example.com').to_return(status: 200, body: html) + subject.call(field) + end + + context 'when a link contains an <a> back' do + let(:html) do + <<-HTML + <!doctype html> + <body> + <a href="#{ActivityPub::TagManager.instance.url_for(account)}" rel="me">Follow me on Mastodon</a> + </body> + HTML + end + + it 'marks the field as verified' do + expect(field.verified?).to be true + end + end + + context 'when a link contains an <a rel="noopener"> back' do + let(:html) do + <<-HTML + <!doctype html> + <body> + <a href="#{ActivityPub::TagManager.instance.url_for(account)}" rel="noopener me" target="_blank">Follow me on Mastodon</a> + </body> + HTML + end + + it 'marks the field as verified' do + expect(field.verified?).to be true + end + end + + context 'when a link contains a <link> back' do + let(:html) do + <<-HTML + <!doctype html> + <head> + <link type="text/html" href="#{ActivityPub::TagManager.instance.url_for(account)}" rel="me" /> + </head> + HTML + end + + it 'marks the field as verified' do + expect(field.verified?).to be true + end + end + + context 'when a link does not contain a link back' do + let(:html) { '' } + + it 'marks the field as verified' do + expect(field.verified?).to be false + end + end +end |