-
diff --git a/spec/fixtures/host_xrd b/spec/fixtures/host_xrd
deleted file mode 100644
index ca2d3b5fc..000000000
--- a/spec/fixtures/host_xrd
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- Resource Descriptor
-
-
diff --git a/spec/fixtures/nonseed_finger_xrd b/spec/fixtures/nonseed_finger_xrd
deleted file mode 100644
index b26e7d15d..000000000
--- a/spec/fixtures/nonseed_finger_xrd
+++ /dev/null
@@ -1,15 +0,0 @@
-
- acct:evan@status.net
- acct:evan@evan.status.net
- http://evan.status.net/user/1
-
-
-
-
-
-
-
-
-
-
-
diff --git a/spec/helper_methods.rb b/spec/helper_methods.rb
index e0df90faa..ad4371a34 100644
--- a/spec/helper_methods.rb
+++ b/spec/helper_methods.rb
@@ -19,46 +19,6 @@ module HelperMethods
:receiving => true)
end
- def stub_success(address = 'abc@example.com', opts = {})
- host = address.split('@')[1]
- stub_request(:get, "https://#{host}/.well-known/host-meta").to_return(:status => 200, :body => host_xrd)
- stub_request(:get, "http://#{host}/.well-known/host-meta").to_return(:status => 200, :body => host_xrd)
- if opts[:diaspora] || host.include?("diaspora")
- stub_request(:get, /webfinger\/\?q=#{address}/).to_return(:status => 200, :body => finger_xrd)
- stub_request(:get, "http://#{host}/hcard/users/4c8eccce34b7da59ff000002").to_return(:status => 200, :body => hcard_response)
- else
- stub_request(:get, /webfinger\/\?q=#{address}/).to_return(:status => 200, :body => nonseed_finger_xrd)
- stub_request(:get, 'http://evan.status.net/hcard').to_return(:status => 200, :body => evan_hcard)
- end
- end
-
- def stub_failure(address = 'abc@example.com')
- host = address.split('@')[1]
- stub_request(:get, "https://#{host}/.well-known/host-meta").to_return(:status => 200, :body => host_xrd)
- stub_request(:get, "http://#{host}/.well-known/host-meta").to_return(:status => 200, :body => host_xrd)
- stub_request(:get, /webfinger\/\?q=#{address}/).to_return(:status => 500)
- end
-
- def host_xrd
- File.open(File.dirname(__FILE__) + '/fixtures/host_xrd').read
- end
-
- def finger_xrd
- File.open(File.dirname(__FILE__) + '/fixtures/finger_xrd').read
- end
-
- def hcard_response
- File.open(File.dirname(__FILE__) + '/fixtures/hcard_response').read
- end
-
- def nonseed_finger_xrd
- File.open(File.dirname(__FILE__) + '/fixtures/nonseed_finger_xrd').read
- end
-
- def evan_hcard
- File.open(File.dirname(__FILE__) + '/fixtures/evan_hcard').read
- end
-
def uploaded_photo
fixture_filename = 'button.png'
fixture_name = File.join(File.dirname(__FILE__), 'fixtures', fixture_filename)
diff --git a/spec/integration/receiving_spec.rb b/spec/integration/receiving_spec.rb
index 1d31116e9..c62241cf7 100644
--- a/spec/integration/receiving_spec.rb
+++ b/spec/integration/receiving_spec.rb
@@ -225,11 +225,10 @@ describe 'a user receives a post', :type => :request do
Profile.where(:person_id => remote_person.id).delete_all
remote_person.attributes.delete(:id) # leaving a nil id causes it to try to save with id set to NULL in postgres
- m = double()
- expect(Webfinger).to receive(:new).twice.with(eve.person.diaspora_handle).and_return(m)
remote_person.save(:validate => false)
remote_person.profile = FactoryGirl.create(:profile, :person => remote_person)
- expect(m).to receive(:fetch).twice.and_return(remote_person)
+ expect(Person).to receive(:find_or_fetch_by_identifier).twice.with(eve.person.diaspora_handle)
+ .and_return(remote_person)
expect(bob.reload.visible_shareables(Post).size).to eq(1)
post_in_db = StatusMessage.find(@post.id)
diff --git a/spec/lib/h_card_spec.rb b/spec/lib/h_card_spec.rb
deleted file mode 100644
index d4197c0b4..000000000
--- a/spec/lib/h_card_spec.rb
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2010-2011, Diaspora Inc. This file is
-# licensed under the Affero General Public License version 3 or later. See
-# the COPYRIGHT file.
-
-require "spec_helper"
-
-describe HCard do
- it "should parse an hcard" do
- raw_hcard = hcard_response
- hcard = HCard.build raw_hcard
- expect(hcard[:family_name].include?("Hamiltom")).to be true
- expect(hcard[:given_name].include?("Alex")).to be true
- expect(hcard[:photo].include?("thumb_large")).to be true
- expect(hcard[:photo_medium].include?("thumb_medium")).to be true
- expect(hcard[:photo_small].include?("thumb_small")).to be true
- expect(hcard[:url]).to eq("http://localhost:3000/")
- expect(hcard[:searchable]).to eq(false)
- end
-
- it "should parse an hcard with searchable true" do
- raw_hcard = hcard_response.sub("false", "true")
- hcard = HCard.build raw_hcard
- expect(hcard[:family_name].include?("Hamiltom")).to be true
- expect(hcard[:given_name].include?("Alex")).to be true
- expect(hcard[:photo].include?("thumb_large")).to be true
- expect(hcard[:photo_medium].include?("thumb_medium")).to be true
- expect(hcard[:photo_small].include?("thumb_small")).to be true
- expect(hcard[:url]).to eq("http://localhost:3000/")
- expect(hcard[:searchable]).to eq(true)
- end
-
- it "should parse an hcard with empty searchable" do
- raw_hcard = hcard_response.sub("false", "")
- hcard = HCard.build raw_hcard
- expect(hcard[:family_name].include?("Hamiltom")).to be true
- expect(hcard[:given_name].include?("Alex")).to be true
- expect(hcard[:photo].include?("thumb_large")).to be true
- expect(hcard[:photo_medium].include?("thumb_medium")).to be true
- expect(hcard[:photo_small].include?("thumb_small")).to be true
- expect(hcard[:url]).to eq("http://localhost:3000/")
- expect(hcard[:searchable]).to eq(false)
- end
-end
diff --git a/spec/lib/postzord/receiver/private_spec.rb b/spec/lib/postzord/receiver/private_spec.rb
index 717dbe8c1..088df5ecf 100644
--- a/spec/lib/postzord/receiver/private_spec.rb
+++ b/spec/lib/postzord/receiver/private_spec.rb
@@ -13,7 +13,7 @@ describe Postzord::Receiver::Private do
describe '.initialize' do
it 'valid for local' do
- expect(Webfinger).not_to receive(:new)
+ expect(Person).not_to receive(:find_or_fetch_by_identifier)
expect(Salmon::EncryptedSlap).not_to receive(:from_xml)
zord = Postzord::Receiver::Private.new(bob, :person => alice.person, :object => @alices_post)
@@ -24,11 +24,9 @@ describe Postzord::Receiver::Private do
it 'valid for remote' do
salmon_double = double()
- web_double = double()
- expect(web_double).to receive(:fetch).and_return true
expect(salmon_double).to receive(:author_id).and_return(true)
expect(Salmon::EncryptedSlap).to receive(:from_xml).with(@salmon_xml, bob).and_return(salmon_double)
- expect(Webfinger).to receive(:new).and_return(web_double)
+ expect(Person).to receive(:find_or_fetch_by_identifier).and_return(true)
zord = Postzord::Receiver::Private.new(bob, :salmon_xml => @salmon_xml)
expect(zord.instance_variable_get(:@user)).not_to be_nil
diff --git a/spec/lib/webfinger_profile_spec.rb b/spec/lib/webfinger_profile_spec.rb
deleted file mode 100644
index 51991f084..000000000
--- a/spec/lib/webfinger_profile_spec.rb
+++ /dev/null
@@ -1,42 +0,0 @@
-require 'spec_helper'
-
-describe WebfingerProfile do
- let(:webfinger_profile){File.open(Rails.root.join("spec", "fixtures", "finger_xrd")).read.strip}
- let(:not_diaspora_webfinger){File.open(Rails.root.join("spec", "fixtures", "nonseed_finger_xrd")).read.strip}
-
- let(:account){"tom@tom.joindiaspora.com"}
- let(:profile){ WebfingerProfile.new(account, webfinger_profile) }
-
- context "parsing a diaspora profile" do
-
- describe '#valid_diaspora_profile?' do
- it 'should check all of the required fields' do
- expect(manual_nil_check(profile)).to eq(profile.valid_diaspora_profile?)
- end
- end
-
- describe '#set_fields' do
- it 'should check to make sure it has a the right webfinger profile' do
- expect{ WebfingerProfile.new("nottom@tom.joindiaspora.com", webfinger_profile)}.to raise_error
- end
-
- it 'should handle a non-diaspora profile without blowing up' do
- expect{ WebfingerProfile.new("evan@status.net", not_diaspora_webfinger)}.not_to raise_error
- end
-
- [:links, :hcard, :guid, :seed_location, :public_key].each do |field|
- it 'should sets the #{field} field' do
- expect(profile.send(field)).to be_present
- end
- end
- end
- end
-
- def manual_nil_check(profile)
- profile.instance_variables.each do |var|
- var = var.to_s.gsub('@', '')
- return false if profile.send(var).nil? == true
- end
- true
- end
-end
diff --git a/spec/lib/webfinger_spec.rb b/spec/lib/webfinger_spec.rb
deleted file mode 100644
index c3515bebe..000000000
--- a/spec/lib/webfinger_spec.rb
+++ /dev/null
@@ -1,221 +0,0 @@
-# Copyright (c) 2010-2011, Diaspora Inc. This file is
-# licensed under the Affero General Public License version 3 or later. See
-# the COPYRIGHT file.
-
-require 'spec_helper'
-
-describe Webfinger do
- let(:host_meta_xrd) { File.open(Rails.root.join('spec', 'fixtures', 'host-meta.fixture.html')).read }
- let(:webfinger_xrd) { File.open(Rails.root.join('spec', 'fixtures', 'webfinger.fixture.html')).read }
- let(:hcard_xml) { File.open(Rails.root.join('spec', 'fixtures', 'hcard.fixture.html')).read }
- let(:account){'foo@bar.com'}
- let(:account_in_fixtures){"alice@localhost:9887"}
- let(:finger){Webfinger.new(account)}
- let(:host_meta_url){"http://#{AppConfig.pod_uri.authority}/webfinger?q="}
-
- describe '#intialize' do
- it 'sets account ' do
- n = Webfinger.new("mbs348@gmail.com")
- expect(n.account).not_to be nil
- end
-
- it "downcases account and strips whitespace, and gsub 'acct:'" do
- n = Webfinger.new("acct:BIGBOY@Example.Org ")
- expect(n.account).to eq('bigboy@example.org')
- end
-
- it 'should set ssl as the default' do
- foo = Webfinger.new(account)
- expect(foo.ssl).to be true
- end
- end
-
- describe '.in_background' do
- it 'enqueues a Workers::FetchWebfinger job' do
- expect(Workers::FetchWebfinger).to receive(:perform_async).with(account)
- Webfinger.in_background(account)
- end
- end
-
- describe '#fetch' do
- it 'works' do
- finger = Webfinger.new(account_in_fixtures)
- allow(finger).to receive(:host_meta_xrd).and_return(host_meta_xrd)
- allow(finger).to receive(:hcard_xrd).and_return(hcard_xml)
- allow(finger).to receive(:webfinger_profile_xrd).and_return(webfinger_xrd)
- person = finger.fetch
- expect(person).to be_valid
- expect(person).to be_a Person
- end
-
- end
-
- describe '#get' do
- it 'makes a request and grabs the body' do
- url ="https://bar.com/.well-known/host-meta"
- stub_request(:get, url).
- to_return(:status => 200, :body => host_meta_xrd)
-
- expect(finger.get(url)).to eq(host_meta_xrd)
- end
-
- it 'follows redirects' do
- redirect_url = "http://whereami.whatisthis/host-meta"
-
- stub_request(:get, "https://bar.com/.well-known/host-meta").
- to_return(:status => 302, :headers => { 'Location' => redirect_url })
-
- stub_request(:get, redirect_url).
- to_return(:status => 200, :body => host_meta_xrd)
-
- finger.host_meta_xrd
-
- expect(a_request(:get, redirect_url)).to have_been_made
- end
-
- it 'raises on 404' do
- url ="https://bar.com/.well-known/host-meta"
- stub_request(:get, url).
- to_return(:status => 404, :body => nil)
-
- expect {
- expect(finger.get(url)).to eq(false)
- }.to raise_error
- end
- end
-
- describe 'existing_person_with_profile?' do
- it 'returns true if cached_person is present and has a profile' do
- expect(finger).to receive(:cached_person).twice.and_return(FactoryGirl.create(:person))
- expect(finger.existing_person_with_profile?).to be true
- end
-
- it 'returns false if it has no person' do
- allow(finger).to receive(:cached_person).and_return false
- expect(finger.existing_person_with_profile?).to be false
- end
-
- it 'returns false if the person has no profile' do
- p = FactoryGirl.create(:person)
- p.profile = nil
- allow(finger).to receive(:cached_person).and_return(p)
- expect(finger.existing_person_with_profile?).to be false
- end
- end
-
- describe 'cached_person' do
- it 'sets the person by looking up the account from Person.by_account_identifier' do
- person = double
- expect(Person).to receive(:by_account_identifier).with(account).and_return(person)
- expect(finger.cached_person).to eq(person)
- expect(finger.person).to eq(person)
- end
- end
-
-
- describe 'create_or_update_person_from_webfinger_profile!' do
- context 'with a cached_person' do
- it 'calls Person#assign_new_profile_from_hcard with the fetched hcard' do
- finger.hcard_xrd = hcard_xml
- allow(finger).to receive(:person).and_return(bob.person)
- expect(bob.person).to receive(:assign_new_profile_from_hcard).with(finger.hcard)
- finger.create_or_update_person_from_webfinger_profile!
- end
- end
-
- context 'with no cached person' do
- it 'sets person based on make_person_from_webfinger' do
- allow(finger).to receive(:person).and_return(nil)
- expect(finger).to receive(:make_person_from_webfinger)
- finger.create_or_update_person_from_webfinger_profile!
- end
- end
- end
-
- describe '#host_meta_xrd' do
- it 'calls #get with host_meta_url' do
- allow(finger).to receive(:host_meta_url).and_return('meta')
- expect(finger).to receive(:get).with('meta')
- finger.host_meta_xrd
- end
-
- it 'should retry with ssl off a second time' do
- expect(finger).to receive(:get).and_raise(StandardError)
- expect(finger).to receive(:get)
- finger.host_meta_xrd
- expect(finger.ssl).to be false
- end
- end
-
- describe '#hcard' do
- it 'calls HCard.build' do
- allow(finger).to receive(:hcard_xrd).and_return(hcard_xml)
- expect(HCard).to receive(:build).with(hcard_xml).and_return true
- expect(finger.hcard).not_to be_nil
- end
- end
-
- describe '#webfinger_profile' do
- it 'constructs a new WebfingerProfile object' do
- allow(finger).to receive(:webfinger_profile_xrd).and_return(webfinger_xrd)
- expect(WebfingerProfile).to receive(:new).with(account, webfinger_xrd)
- finger.webfinger_profile
- end
- end
-
- describe '#webfinger_profile_url' do
- it 'returns the llrd link for a valid host meta' do
- allow(finger).to receive(:host_meta_xrd).and_return(host_meta_xrd)
- expect(finger.webfinger_profile_url).not_to be_nil
- end
-
- it 'returns nil if no link is found' do
- allow(finger).to receive(:host_meta_xrd).and_return(nil)
- expect(finger.webfinger_profile_url).to be_nil
- end
- end
-
- describe '#webfinger_profile_xrd' do
- it 'calls #get with the hcard_url' do
- allow(finger).to receive(:hcard_url).and_return("url")
- expect(finger).to receive(:get).with("url")
- finger.hcard_xrd
- end
- end
-
- describe '#make_person_from_webfinger' do
- it 'with an hcard and a webfinger_profile, it calls Person.create_from_webfinger' do
- allow(finger).to receive(:hcard).and_return("hcard")
- allow(finger).to receive(:webfinger_profile_xrd).and_return("webfinger_profile_xrd")
- allow(finger).to receive(:webfinger_profile).and_return("webfinger_profile")
- expect(Person).to receive(:create_from_webfinger).with("webfinger_profile", "hcard")
- finger.make_person_from_webfinger
- end
-
- it 'with an false xrd it does not call Person.create_from_webfinger' do
- allow(finger).to receive(:webfinger_profile_xrd).and_return(false)
- expect(Person).not_to receive(:create_from_webfinger)
- finger.make_person_from_webfinger
- end
- end
-
-
-
- describe '#host_meta_url' do
- it 'should return canonical host-meta url for http' do
- finger.ssl = false
- expect(finger.host_meta_url).to eq("http://bar.com/.well-known/host-meta")
- end
-
- it 'can return the https version' do
- expect(finger.host_meta_url).to eq("https://bar.com/.well-known/host-meta")
- end
- end
-
- describe 'swizzle' do
- it 'gsubs out {uri} for the account' do
- string = "{uri} is the coolest"
- expect(finger.swizzle(string)).to eq("#{finger.account} is the coolest")
- end
- end
-end
diff --git a/spec/models/reshare_spec.rb b/spec/models/reshare_spec.rb
index ff1781b9a..e235c4066 100644
--- a/spec/models/reshare_spec.rb
+++ b/spec/models/reshare_spec.rb
@@ -212,9 +212,7 @@ describe Reshare, :type => :model do
@original_author.profile = @original_profile
- wf_prof_double = double
- expect(wf_prof_double).to receive(:fetch).and_return(@original_author)
- expect(Webfinger).to receive(:new).and_return(wf_prof_double)
+ expect(Person).to receive(:find_or_fetch_by_identifier).and_return(@original_author)
allow(@response).to receive(:body).and_return(@root_object.to_diaspora_xml)
@@ -287,10 +285,7 @@ describe Reshare, :type => :model do
@xml = @reshare.to_xml.to_s
different_person = FactoryGirl.build(:person)
-
- wf_prof_double = double
- expect(wf_prof_double).to receive(:fetch).and_return(different_person)
- expect(Webfinger).to receive(:new).and_return(wf_prof_double)
+ expect(Person).to receive(:find_or_fetch_by_identifier).and_return(different_person)
allow(different_person).to receive(:url).and_return(@original_author.url)
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 03f50b9c0..c9cede84e 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -912,11 +912,9 @@ describe User, :type => :model do
context "with autofollow sharing enabled" do
it "should start sharing with autofollow account" do
AppConfig.settings.autofollow_on_join = true
- AppConfig.settings.autofollow_on_join_user = 'one'
+ AppConfig.settings.autofollow_on_join_user = "one"
- wf_double = double
- expect(wf_double).to receive(:fetch)
- expect(Webfinger).to receive(:new).with('one').and_return(wf_double)
+ expect(Person).to receive(:find_or_fetch_by_identifier).with("one")
user.seed_aspects
end
@@ -926,7 +924,7 @@ describe User, :type => :model do
it "should not start sharing with the diasporahq account" do
AppConfig.settings.autofollow_on_join = false
- expect(Webfinger).not_to receive(:new)
+ expect(Person).not_to receive(:find_or_fetch_by_identifier)
user.seed_aspects
end
diff --git a/spec/workers/fetch_webfinger_spec.rb b/spec/workers/fetch_webfinger_spec.rb
index cfa83b24a..0a9469c75 100644
--- a/spec/workers/fetch_webfinger_spec.rb
+++ b/spec/workers/fetch_webfinger_spec.rb
@@ -3,7 +3,7 @@ require "spec_helper"
describe Workers::FetchWebfinger do
it "should webfinger and queue a job to fetch public posts" do
@person = FactoryGirl.create(:person)
- allow(Webfinger).to receive(:new).and_return(double(fetch: @person))
+ allow(Person).to receive(:find_or_fetch_by_identifier).and_return(@person)
expect(Diaspora::Fetcher::Public).to receive(:queue_for).exactly(1).times
@@ -11,7 +11,7 @@ describe Workers::FetchWebfinger do
end
it "should webfinger and queue no job to fetch public posts if the person is not found" do
- allow(Webfinger).to receive(:new).and_return(double(fetch: nil))
+ allow(Person).to receive(:find_or_fetch_by_identifier).and_return(nil)
expect(Diaspora::Fetcher::Public).not_to receive(:queue_for)