From b640f35621b419ae9b9e621e00a8a055068ce2f4 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 20 Mar 2016 13:03:06 +0100 Subject: [PATCH] Writing out more tests, fixed some bugs --- app/assets/stylesheets/api/accounts.scss | 3 - app/assets/stylesheets/api/follows.scss | 3 - app/assets/stylesheets/api/salmon.scss | 3 - app/assets/stylesheets/api/statuses.scss | 3 - app/assets/stylesheets/api/subscriptions.scss | 3 - app/assets/stylesheets/application.scss | 9 - .../stylesheets/oauth/applications.scss | 3 - .../api/subscriptions_controller.rb | 2 +- app/controllers/api_controller.rb | 1 + app/services/process_feed_service.rb | 2 +- .../initializers/filter_parameter_logging.rb | 2 +- .../api/accounts_controller_spec.rb | 56 ++- .../api/follows_controller_spec.rb | 43 +- .../controllers/api/salmon_controller_spec.rb | 30 +- .../api/statuses_controller_spec.rb | 14 +- .../api/subscriptions_controller_spec.rb | 33 +- spec/fixtures/push/feed.atom | 424 +++++++++++++++++ spec/fixtures/requests/.host-meta.txt | 19 + spec/fixtures/requests/avatar.txt | Bin 0 -> 109962 bytes spec/fixtures/requests/feed.txt | 440 ++++++++++++++++++ spec/fixtures/requests/webfinger.txt | 11 + spec/fixtures/salmon/mention.xml | 2 + spec/rails_helper.rb | 4 + 23 files changed, 1069 insertions(+), 41 deletions(-) delete mode 100644 app/assets/stylesheets/api/accounts.scss delete mode 100644 app/assets/stylesheets/api/follows.scss delete mode 100644 app/assets/stylesheets/api/salmon.scss delete mode 100644 app/assets/stylesheets/api/statuses.scss delete mode 100644 app/assets/stylesheets/api/subscriptions.scss delete mode 100644 app/assets/stylesheets/oauth/applications.scss create mode 100644 spec/fixtures/push/feed.atom create mode 100644 spec/fixtures/requests/.host-meta.txt create mode 100644 spec/fixtures/requests/avatar.txt create mode 100644 spec/fixtures/requests/feed.txt create mode 100644 spec/fixtures/requests/webfinger.txt create mode 100644 spec/fixtures/salmon/mention.xml diff --git a/app/assets/stylesheets/api/accounts.scss b/app/assets/stylesheets/api/accounts.scss deleted file mode 100644 index 614f23d341..0000000000 --- a/app/assets/stylesheets/api/accounts.scss +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the Api::Accounts controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/api/follows.scss b/app/assets/stylesheets/api/follows.scss deleted file mode 100644 index 4da2e7e2c2..0000000000 --- a/app/assets/stylesheets/api/follows.scss +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the API::Follows controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/api/salmon.scss b/app/assets/stylesheets/api/salmon.scss deleted file mode 100644 index 13cb648a88..0000000000 --- a/app/assets/stylesheets/api/salmon.scss +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the API::Salmon controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/api/statuses.scss b/app/assets/stylesheets/api/statuses.scss deleted file mode 100644 index dfa3227d89..0000000000 --- a/app/assets/stylesheets/api/statuses.scss +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the API::Statuses controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/api/subscriptions.scss b/app/assets/stylesheets/api/subscriptions.scss deleted file mode 100644 index 9bee8c9bd4..0000000000 --- a/app/assets/stylesheets/api/subscriptions.scss +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the API::Subscriptions controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 9114acde4a..5e89c210bc 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -1,12 +1,3 @@ -$primary-color: #ff7473; -$secondary-color: #ffc952; -$tertiary-color: #47b8e0; -$quaternary-color: #34314c; -$background-color: #fff; -$darker-background-color: #e3dede; -$text-color: #333030; -$lighter-text-color: #8b8687; - @import url(https://fonts.googleapis.com/css?family=Roboto:400,500,400italic); @import url(https://fonts.googleapis.com/css?family=Roboto+Mono:400,500); @import "font-awesome"; diff --git a/app/assets/stylesheets/oauth/applications.scss b/app/assets/stylesheets/oauth/applications.scss deleted file mode 100644 index 50933741e5..0000000000 --- a/app/assets/stylesheets/oauth/applications.scss +++ /dev/null @@ -1,3 +0,0 @@ -// Place all the styles related to the oauth::applications controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/api/subscriptions_controller.rb b/app/controllers/api/subscriptions_controller.rb index 038d6c8776..6ae038a36f 100644 --- a/app/controllers/api/subscriptions_controller.rb +++ b/app/controllers/api/subscriptions_controller.rb @@ -12,7 +12,7 @@ class Api::SubscriptionsController < ApiController def update body = request.body.read - if @account.subscription(api_subscription_url(@account.id)).verify(body, env['HTTP_X_HUB_SIGNATURE']) + if @account.subscription(api_subscription_url(@account.id)).verify(body, request.headers['HTTP_X_HUB_SIGNATURE']) ProcessFeedService.new.(body, @account) render nothing: true, status: 201 else diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb index 80d0843283..35f1e62c56 100644 --- a/app/controllers/api_controller.rb +++ b/app/controllers/api_controller.rb @@ -1,5 +1,6 @@ class ApiController < ApplicationController protect_from_forgery with: :null_session + skip_before_filter :verify_authenticity_token protected diff --git a/app/services/process_feed_service.rb b/app/services/process_feed_service.rb index 504d58aed9..db69dfc6a2 100644 --- a/app/services/process_feed_service.rb +++ b/app/services/process_feed_service.rb @@ -17,7 +17,7 @@ class ProcessFeedService < BaseService status = Status.find_by(uri: activity_id(entry)) # If we already have a post and the verb is now "delete", we gotta delete it and move on! - if verb(entry) == :delete + if !status.nil? && verb(entry) == :delete delete_post!(status) next end diff --git a/config/initializers/filter_parameter_logging.rb b/config/initializers/filter_parameter_logging.rb index 4a994e1e7b..d2452f355b 100644 --- a/config/initializers/filter_parameter_logging.rb +++ b/config/initializers/filter_parameter_logging.rb @@ -1,4 +1,4 @@ # Be sure to restart your server when you modify this file. # Configure sensitive parameters which will be filtered from the log file. -Rails.application.config.filter_parameters += [:password] +Rails.application.config.filter_parameters += [:password, :private_key, :public_key] diff --git a/spec/controllers/api/accounts_controller_spec.rb b/spec/controllers/api/accounts_controller_spec.rb index 915a40a8a4..7bcb1a788d 100644 --- a/spec/controllers/api/accounts_controller_spec.rb +++ b/spec/controllers/api/accounts_controller_spec.rb @@ -1,27 +1,71 @@ require 'rails_helper' RSpec.describe Api::AccountsController, type: :controller do + let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } + let(:token) { double acceptable?: true, resource_owner_id: user.id } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + describe 'GET #show' do - it 'returns http success' + it 'returns http success' do + get :show, id: user.account.id + expect(response).to have_http_status(:success) + end end describe 'GET #statuses' do - it 'returns http success' + it 'returns http success' do + get :statuses, id: user.account.id + expect(response).to have_http_status(:success) + end end describe 'GET #followers' do - it 'returns http success' + it 'returns http success' do + get :followers, id: user.account.id + expect(response).to have_http_status(:success) + end end describe 'GET #following' do - it 'returns http success' + it 'returns http success' do + get :following, id: user.account.id + expect(response).to have_http_status(:success) + end end describe 'POST #follow' do - it 'returns http success' + let(:other_account) { Fabricate(:account, username: 'bob') } + + before do + post :follow, id: other_account.id + end + + it 'returns http success' do + expect(response).to have_http_status(:success) + end + + it 'creates a following relation between user and target user' do + expect(user.account.following?(other_account)).to be true + end end describe 'POST #unfollow' do - it 'returns http success' + let(:other_account) { Fabricate(:account, username: 'bob') } + + before do + user.account.follow!(other_account) + post :unfollow, id: other_account.id + end + + it 'returns http success' do + expect(response).to have_http_status(:success) + end + + it 'removes the following relation between user and target user' do + expect(user.account.following?(other_account)).to be false + end end end diff --git a/spec/controllers/api/follows_controller_spec.rb b/spec/controllers/api/follows_controller_spec.rb index 75f4701817..e9bb1bfa53 100644 --- a/spec/controllers/api/follows_controller_spec.rb +++ b/spec/controllers/api/follows_controller_spec.rb @@ -1,7 +1,48 @@ require 'rails_helper' RSpec.describe Api::FollowsController, type: :controller do + let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } + let(:token) { double acceptable?: true, resource_owner_id: user.id } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + describe 'POST #create' do - it 'returns http success' + before do + stub_request(:get, "https://quitter.no/.well-known/host-meta").to_return(request_fixture('.host-meta.txt')) + stub_request(:get, "https://quitter.no/.well-known/webfinger?resource=acct:gargron@quitter.no").to_return(request_fixture('webfinger.txt')) + stub_request(:get, "https://quitter.no/api/statuses/user_timeline/7477.atom").to_return(request_fixture('feed.txt')) + stub_request(:get, "https://quitter.no/avatar/7477-300-20160211190340.png").to_return(request_fixture('avatar.txt')) + stub_request(:post, "https://quitter.no/main/push/hub").to_return(:status => 200, :body => "", :headers => {}) + stub_request(:post, "https://quitter.no/main/salmon/user/7477").to_return(:status => 200, :body => "", :headers => {}) + stub_request(:post, "https://pubsubhubbub.superfeedr.com/").to_return(:status => 200, :body => "", :headers => {}) + + post :create, uri: 'gargron@quitter.no' + end + + it 'returns http success' do + expect(response).to have_http_status(:success) + end + + it 'creates account for remote user' do + expect(Account.find_by(username: 'gargron', domain: 'quitter.no')).to_not be_nil + end + + it 'creates a follow relation between user and remote user' do + expect(user.account.following?(Account.find_by(username: 'gargron', domain: 'quitter.no'))).to be true + end + + it 'sends a salmon slap to the remote user' do + expect(a_request(:post, "https://quitter.no/main/salmon/user/7477")).to have_been_made + end + + it 'notifies own hub' do + expect(a_request(:post, "https://pubsubhubbub.superfeedr.com/")).to have_been_made + end + + it 'subscribes to remote hub' do + expect(a_request(:post, "https://quitter.no/main/push/hub")).to have_been_made + end end end diff --git a/spec/controllers/api/salmon_controller_spec.rb b/spec/controllers/api/salmon_controller_spec.rb index e81ad12add..d5be69c014 100644 --- a/spec/controllers/api/salmon_controller_spec.rb +++ b/spec/controllers/api/salmon_controller_spec.rb @@ -1,7 +1,35 @@ require 'rails_helper' RSpec.describe Api::SalmonController, type: :controller do + let(:account) { Fabricate(:account, username: 'catsrgr8', user: Fabricate(:user)) } + + before do + stub_request(:get, "https://quitter.no/.well-known/host-meta").to_return(request_fixture('.host-meta.txt')) + stub_request(:get, "https://quitter.no/.well-known/webfinger?resource=acct:gargron@quitter.no").to_return(request_fixture('webfinger.txt')) + stub_request(:get, "https://quitter.no/api/statuses/user_timeline/7477.atom").to_return(request_fixture('feed.txt')) + stub_request(:get, "https://quitter.no/avatar/7477-300-20160211190340.png").to_return(request_fixture('avatar.txt')) + end + describe 'POST #update' do - pending + before do + request.env['RAW_POST_DATA'] = File.read(File.join(Rails.root, 'spec', 'fixtures', 'salmon', 'mention.xml')) + post :update, id: account.id + end + + it 'returns http success' do + expect(response).to have_http_status(:success) + end + + it 'creates remote account' do + expect(Account.find_by(username: 'gargron', domain: 'quitter.no')).to_not be_nil + end + + it 'creates status' do + expect(Status.find_by(uri: 'tag:quitter.no,2016-03-20:noticeId=1276923:objectType=note')).to_not be_nil + end + + it 'creates mention for target account' do + expect(account.mentions.count).to eq 1 + end end end diff --git a/spec/controllers/api/statuses_controller_spec.rb b/spec/controllers/api/statuses_controller_spec.rb index bd136a5598..75a8b999a3 100644 --- a/spec/controllers/api/statuses_controller_spec.rb +++ b/spec/controllers/api/statuses_controller_spec.rb @@ -1,8 +1,20 @@ require 'rails_helper' RSpec.describe Api::StatusesController, type: :controller do + let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } + let(:token) { double acceptable?: true, resource_owner_id: user.id } + + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + describe 'GET #show' do - it 'returns http success' + let(:status) { Fabricate(:status, account: user.account) } + + it 'returns http success' do + get :show, id: status.id + expect(response).to have_http_status(:success) + end end describe 'GET #home' do diff --git a/spec/controllers/api/subscriptions_controller_spec.rb b/spec/controllers/api/subscriptions_controller_spec.rb index 16995c687d..e2f2ddd7ec 100644 --- a/spec/controllers/api/subscriptions_controller_spec.rb +++ b/spec/controllers/api/subscriptions_controller_spec.rb @@ -1,11 +1,40 @@ require 'rails_helper' RSpec.describe Api::SubscriptionsController, type: :controller do + let(:account) { Fabricate(:account, username: 'gargron', domain: 'quitter.no', verify_token: '123', remote_url: 'topic_url', secret: 'abc') } + describe 'GET #show' do - pending + before do + get :show, id: account.id, 'hub.topic': 'topic_url', 'hub.verify_token': 123, 'hub.challenge': '456' + end + + it 'returns http success' do + expect(response).to have_http_status(:success) + end + + it 'echoes back the challenge' do + expect(response.body).to match '456' + end end describe 'POST #update' do - pending + let(:feed) { File.read(File.join(Rails.root, 'spec', 'fixtures', 'push', 'feed.atom')) } + + before do + stub_request(:get, "https://quitter.no/avatar/7477-300-20160211190340.png").to_return(request_fixture('avatar.txt')) + + request.env['HTTP_X_HUB_SIGNATURE'] = "sha1=#{OpenSSL::HMAC.hexdigest('sha1', 'abc', feed)}" + request.env['RAW_POST_DATA'] = feed + + post :update, id: account.id + end + + it 'returns http created' do + expect(response).to have_http_status(:created) + end + + it 'creates statuses for feed' do + expect(account.statuses.count).to_not eq 0 + end end end diff --git a/spec/fixtures/push/feed.atom b/spec/fixtures/push/feed.atom new file mode 100644 index 0000000000..349df139d0 --- /dev/null +++ b/spec/fixtures/push/feed.atom @@ -0,0 +1,424 @@ + + + GNU social + https://quitter.no/api/statuses/user_timeline/7477.atom + gargron timeline + Updates from gargron on Quitter.no! + https://quitter.no/avatar/7477-96-20160211190340.png + 2016-03-20T12:42:58+01:00 + + http://activitystrea.ms/schema/1.0/person + https://quitter.no/user/7477 + gargron + Software engineer, free time musician and DIGITAL SPORTS enthusiast. Likes cats. Warning: May contain memes + + + + + + gargron + DIGITAL CAT + Software engineer, free time musician and DIGITAL SPORTS enthusiast. Likes cats. Warning: May contain memes + + Germany + + + homepage + https://zeonfederated.com + true + + + + + + + + + + + + + + http://activitystrea.ms/schema/1.0/note + tag:quitter.no,2016-03-20:noticeId=1276923:objectType=note + New note by gargron + @<a href="https://cb6e6126.ngrok.io/users/catsrgr8" class="h-card mention">catsrgr8</a> this is a mention + + + http://activitystrea.ms/schema/1.0/post + 2016-03-20T11:05:31+00:00 + 2016-03-20T11:05:31+00:00 + + tag:quitter.no,2016-03-20:objectType=thread:nonce=7c998112e39a6685 + + + + + + + + http://activitystrea.ms/schema/1.0/note + tag:quitter.no,2016-03-19:noticeId=1273635:objectType=note + New note by gargron + Just testing a thing. + + + http://activitystrea.ms/schema/1.0/post + 2016-03-19T20:35:53+00:00 + 2016-03-19T20:35:53+00:00 + + tag:quitter.no,2016-03-19:objectType=thread:nonce=c4a61886d5cad4c2 + + + + + + + + tag:quitter.no,2016-03-19:noticeId=1272988:objectType=note + Delete + <a href="https://quitter.no/gargron">DIGITAL CAT</a> deleted notice <a href="https://quitter.no/notice/1272988">{{tag:quitter.no,2016-03-19:noticeId=1272988:objectType=note}}</a>. + + delete + 2016-03-19T18:16:58+00:00 + 2016-03-19T18:16:58+00:00 + + http://activitystrea.ms/schema/1.0/note + tag:quitter.no,2016-03-19:noticeId=1272988:objectType=note + + + tag:quitter.no,2016-03-19:objectType=thread:nonce=7913e6b6256b6d0b + + + http://activitystrea.ms/schema/1.0/note + tag:quitter.no,2016-03-19:noticeId=1272988:objectType=note + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-19:noticeId=1269381:objectType=comment + New comment by gargron + @<a href="https://mastodon.social/users/Gargron" class="h-card mention" title="Eugen">gargron</a> I have to wonder if this will appear as a reply to the right status, and not just a mention. + + + http://activitystrea.ms/schema/1.0/post + 2016-03-19T00:10:14+00:00 + 2016-03-19T00:10:14+00:00 + + + + tag:quitter.no,2016-03-18:objectType=thread:nonce=d05c6330fbe23fb9 + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-18:noticeId=1265337:objectType=comment + New comment by gargron + @<a href="https://community.highlandarrow.com/user/1" class="h-card mention" title="Maiyannah Bishop">maiyannah</a> Plus, Android can hardly be considered free software given how many proprietary blobs are used. I'm speaking as a disappointed Android user. + + + http://activitystrea.ms/schema/1.0/post + 2016-03-18T10:01:50+00:00 + 2016-03-18T10:01:50+00:00 + + + + tag:community.highlandarrow.com,2016-03-18:objectType=thread:nonce=d61438407b882959 + + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-18:noticeId=1265331:objectType=comment + New comment by gargron + @<a href="https://community.highlandarrow.com/user/1" class="h-card mention" title="Maiyannah Bishop">maiyannah</a> Well as it turns out, Apple software is better than Android in terms of security, and Apple is fighting FBI while Google promised to build a messaging app that facilitates wire tapping. The whole free software thing should imo be considered a bonus and not overshadow other factors. + + + http://activitystrea.ms/schema/1.0/post + 2016-03-18T10:01:01+00:00 + 2016-03-18T10:01:01+00:00 + + + + tag:community.highlandarrow.com,2016-03-18:objectType=thread:nonce=d61438407b882959 + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-17:noticeId=1261358:objectType=comment + New comment by gargron + @<a href="https://community.highlandarrow.com/user/1" class="h-card mention" title="Maiyannah Bishop">maiyannah</a> @<a href="https://gs.kawa-kun.com/user/2" class="h-card mention" title="&#x7AF9;&#x4E0B;&#x61B2;&#x4E8C;">takeshitakenji</a> There is a reason that was deprecated and we don't use tables to design websites anymore. HTML needs to be semantic, i.e. tags need to describe the *kind* of content, not how it should *look*, which is a responsibility delegated to CSS. There are so many upsides to this separation of concerns, should I start listing? + + + http://activitystrea.ms/schema/1.0/post + 2016-03-17T17:00:26+00:00 + 2016-03-17T17:00:26+00:00 + + + + tag:gs.kawa-kun.com,2016-03-17:objectType=thread:nonce=a83963573a0520f1 + + + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T21:24:13+01:00 + DIGITAL CAT (gargron)'s status on Wednesday, 16-Mar-2016 21:24:13 CET + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T20:24:13+00:00 + 2016-03-16T20:24:13+00:00 + + http://activitystrea.ms/schema/1.0/person + https://mastodon.social/users/Gargron + Eugen + Software engineer, free time musician and DIGITAL SPORTS enthusiast. Likes cats. Warning: May contain memes + + + + + + gargron + Eugen + Software engineer, free time musician and DIGITAL SPORTS enthusiast. Likes cats. Warning: May contain memes + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=073bda8223dfcaa7 + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T21:22:38+01:00 + + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T20:22:38+00:00 + 2016-03-16T20:22:38+00:00 + + http://activitystrea.ms/schema/1.0/person + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T21:22:38+01:00 + New person by gargron + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=b157f676181e0ecd + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T21:16:14+01:00 + + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T20:16:15+00:00 + 2016-03-16T20:16:15+00:00 + + http://activitystrea.ms/schema/1.0/person + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T21:16:14+01:00 + New person by gargron + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=6a6ebd1ed6504a11 + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15750:2016-03-16T21:13:06+01:00 + + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://acda7931.ngrok.io/users/catsrgr8">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T20:13:06+00:00 + 2016-03-16T20:13:06+00:00 + + http://activitystrea.ms/schema/1.0/person + tag:quitter.no,2016-03-16:subscription:7477:person:15750:2016-03-16T21:13:06+01:00 + New person by gargron + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://acda7931.ngrok.io/users/catsrgr8">Eugen</a>. + + + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=8f5f92443584e8f0 + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15750:2016-03-16T21:05:02+01:00 + + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://acda7931.ngrok.io/users/catsrgr8">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T20:05:03+00:00 + 2016-03-16T20:05:03+00:00 + + http://activitystrea.ms/schema/1.0/person + tag:quitter.no,2016-03-16:subscription:7477:person:15750:2016-03-16T21:05:02+01:00 + New person by gargron + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://acda7931.ngrok.io/users/catsrgr8">Eugen</a>. + + + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=b630d235232fcff5 + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T19:04:16+01:00 + + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T18:04:16+00:00 + 2016-03-16T18:04:16+00:00 + + http://activitystrea.ms/schema/1.0/person + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T19:04:16+01:00 + New person by gargron + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=40eb98e5f85c9908 + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-15:noticeId=1251422:objectType=comment + New comment by gargron + @<a href="https://community.highlandarrow.com/user/1" class="h-card mention" title="Maiyannah Bishop">maiyannah</a> LGB, not LGBT? + + + http://activitystrea.ms/schema/1.0/post + 2016-03-15T20:28:13+00:00 + 2016-03-15T20:28:13+00:00 + + + + tag:community.highlandarrow.com,2016-03-15:objectType=thread:nonce=70ff6886d69e5225 + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-15:noticeId=1250742:objectType=comment + New comment by gargron + @<a href="https://social.umeahackerspace.se/user/2" class="h-card mention" title="&lt;Mikael &amp; Nordfeldth&gt;">mmn</a> I'm like reeeeally close to actually deploying the first production instance of Mastodon, but it bugs me that there's gonna be that issue with avatars and profiles not updating :( + + + http://activitystrea.ms/schema/1.0/post + 2016-03-15T18:44:54+00:00 + 2016-03-15T18:44:54+00:00 + + + + tag:quitter.no,2016-03-15:objectType=thread:nonce=2fbd771270b5da80 + + + + + + + + http://activitystrea.ms/schema/1.0/note + tag:quitter.no,2016-03-15:noticeId=1250653:objectType=note + New note by gargron + @<a href="https://social.umeahackerspace.se/user/2" class="h-card mention" title="&lt;Mikael &amp; Nordfeldth&gt;">mmn</a> Any progress on the issues I created? + + + http://activitystrea.ms/schema/1.0/post + 2016-03-15T18:27:00+00:00 + 2016-03-15T18:27:00+00:00 + + tag:quitter.no,2016-03-15:objectType=thread:nonce=2fbd771270b5da80 + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-14:noticeId=1243566:objectType=comment + New comment by gargron + @<a href="https://community.highlandarrow.com/user/1" class="h-card mention" title="Maiyannah Bishop">maiyannah</a> I heard Piwik is also good. + + + http://activitystrea.ms/schema/1.0/post + 2016-03-14T15:35:23+00:00 + 2016-03-14T15:35:23+00:00 + + + + tag:community.highlandarrow.com,2016-03-14:objectType=thread:nonce=8fbf00e7f76866d3 + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-14:noticeId=1243331:objectType=comment + New comment by gargron + I do wish I had somebody else partake in the development process if only to give me feedback on my decisions + + + http://activitystrea.ms/schema/1.0/post + 2016-03-14T14:52:03+00:00 + 2016-03-14T14:52:03+00:00 + + + + tag:quitter.no,2016-03-14:objectType=thread:nonce=46e8a2abc1839d01 + + + + + + + diff --git a/spec/fixtures/requests/.host-meta.txt b/spec/fixtures/requests/.host-meta.txt new file mode 100644 index 0000000000..b312b11fb2 --- /dev/null +++ b/spec/fixtures/requests/.host-meta.txt @@ -0,0 +1,19 @@ +HTTP/1.1 200 OK +Server: nginx/1.6.2 +Date: Sun, 20 Mar 2016 11:11:00 GMT +Content-Type: application/xrd+xml +Transfer-Encoding: chunked +Connection: keep-alive +Access-Control-Allow-Origin: * +Vary: Accept-Encoding,Cookie +Strict-Transport-Security: max-age=31536000; includeSubdomains; + + + + + + + + + + diff --git a/spec/fixtures/requests/avatar.txt b/spec/fixtures/requests/avatar.txt new file mode 100644 index 0000000000000000000000000000000000000000..d57b0984fb2069a45592084c47e3c463fea878d9 GIT binary patch literal 109962 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

Gz=#pa5C7cWiI;*#B+!5q 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 z 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%0Di4K2ujN02c=X8_6ULdzhK_G= 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 TfPbk200000NkvXXu0mjfKz~?n literal 0 HcmV?d00001 diff --git a/spec/fixtures/requests/feed.txt b/spec/fixtures/requests/feed.txt new file mode 100644 index 0000000000..91eeb29bda --- /dev/null +++ b/spec/fixtures/requests/feed.txt @@ -0,0 +1,440 @@ +HTTP/1.1 200 OK +Server: nginx/1.6.2 +Date: Sun, 20 Mar 2016 11:15:03 GMT +Content-Type: application/atom+xml; charset=utf-8 +Transfer-Encoding: chunked +Connection: keep-alive +Access-Control-Allow-Origin: * +Vary: Accept-Encoding,Cookie +ETag: "ApiTimelineUser:0:en:7477:1458471931:1457967123" +Last-Modified: Sun, 20 Mar 2016 11:05:31 +0000 +Expires: Thu, 01 Jan 1970 00:00:00 GMT +Cache-Control: private, must-revalidate, max-age=0 +Pragma: +X-SUP-ID: https://quitter.no/main/sup +Strict-Transport-Security: max-age=31536000; includeSubdomains; + + + + GNU social + https://quitter.no/api/statuses/user_timeline/7477.atom + gargron timeline + Updates from gargron on Quitter.no! + https://quitter.no/avatar/7477-96-20160211190340.png + 2016-03-20T12:15:03+01:00 + + http://activitystrea.ms/schema/1.0/person + https://quitter.no/user/7477 + gargron +

Software engineer, free time musician and DIGITAL SPORTS enthusiast. Likes cats. Warning: May contain memes + + + + + + gargron + DIGITAL CAT + Software engineer, free time musician and DIGITAL SPORTS enthusiast. Likes cats. Warning: May contain memes + + Germany + + + homepage + https://zeonfederated.com + true + + + + + + + + + + + + + + http://activitystrea.ms/schema/1.0/note + tag:quitter.no,2016-03-20:noticeId=1276923:objectType=note + New note by gargron + @<a href="https://cb6e6126.ngrok.io/users/catsrgr8" class="h-card mention">catsrgr8</a> this is a mention + + + http://activitystrea.ms/schema/1.0/post + 2016-03-20T11:05:31+00:00 + 2016-03-20T11:05:31+00:00 + + tag:quitter.no,2016-03-20:objectType=thread:nonce=7c998112e39a6685 + + + + + + + + http://activitystrea.ms/schema/1.0/note + tag:quitter.no,2016-03-19:noticeId=1273635:objectType=note + New note by gargron + Just testing a thing. + + + http://activitystrea.ms/schema/1.0/post + 2016-03-19T20:35:53+00:00 + 2016-03-19T20:35:53+00:00 + + tag:quitter.no,2016-03-19:objectType=thread:nonce=c4a61886d5cad4c2 + + + + + + + + tag:quitter.no,2016-03-19:noticeId=1272988:objectType=note + Delete + <a href="https://quitter.no/gargron">DIGITAL CAT</a> deleted notice <a href="https://quitter.no/notice/1272988">{{tag:quitter.no,2016-03-19:noticeId=1272988:objectType=note}}</a>. + + delete + 2016-03-19T18:16:58+00:00 + 2016-03-19T18:16:58+00:00 + + http://activitystrea.ms/schema/1.0/note + tag:quitter.no,2016-03-19:noticeId=1272988:objectType=note + + + tag:quitter.no,2016-03-19:objectType=thread:nonce=7913e6b6256b6d0b + + + http://activitystrea.ms/schema/1.0/note + tag:quitter.no,2016-03-19:noticeId=1272988:objectType=note + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-19:noticeId=1269381:objectType=comment + New comment by gargron + @<a href="https://mastodon.social/users/Gargron" class="h-card mention" title="Eugen">gargron</a> I have to wonder if this will appear as a reply to the right status, and not just a mention. + + + http://activitystrea.ms/schema/1.0/post + 2016-03-19T00:10:14+00:00 + 2016-03-19T00:10:14+00:00 + + + + tag:quitter.no,2016-03-18:objectType=thread:nonce=d05c6330fbe23fb9 + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-18:noticeId=1265337:objectType=comment + New comment by gargron + @<a href="https://community.highlandarrow.com/user/1" class="h-card mention" title="Maiyannah Bishop">maiyannah</a> Plus, Android can hardly be considered free software given how many proprietary blobs are used. I'm speaking as a disappointed Android user. + + + http://activitystrea.ms/schema/1.0/post + 2016-03-18T10:01:50+00:00 + 2016-03-18T10:01:50+00:00 + + + + tag:community.highlandarrow.com,2016-03-18:objectType=thread:nonce=d61438407b882959 + + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-18:noticeId=1265331:objectType=comment + New comment by gargron + @<a href="https://community.highlandarrow.com/user/1" class="h-card mention" title="Maiyannah Bishop">maiyannah</a> Well as it turns out, Apple software is better than Android in terms of security, and Apple is fighting FBI while Google promised to build a messaging app that facilitates wire tapping. The whole free software thing should imo be considered a bonus and not overshadow other factors. + + + http://activitystrea.ms/schema/1.0/post + 2016-03-18T10:01:01+00:00 + 2016-03-18T10:01:01+00:00 + + + + tag:community.highlandarrow.com,2016-03-18:objectType=thread:nonce=d61438407b882959 + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-17:noticeId=1261358:objectType=comment + New comment by gargron + @<a href="https://community.highlandarrow.com/user/1" class="h-card mention" title="Maiyannah Bishop">maiyannah</a> @<a href="https://gs.kawa-kun.com/user/2" class="h-card mention" title="&#x7AF9;&#x4E0B;&#x61B2;&#x4E8C;">takeshitakenji</a> There is a reason that was deprecated and we don't use tables to design websites anymore. HTML needs to be semantic, i.e. tags need to describe the *kind* of content, not how it should *look*, which is a responsibility delegated to CSS. There are so many upsides to this separation of concerns, should I start listing? + + + http://activitystrea.ms/schema/1.0/post + 2016-03-17T17:00:26+00:00 + 2016-03-17T17:00:26+00:00 + + + + tag:gs.kawa-kun.com,2016-03-17:objectType=thread:nonce=a83963573a0520f1 + + + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T21:24:13+01:00 + DIGITAL CAT (gargron)'s status on Wednesday, 16-Mar-2016 21:24:13 CET + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T20:24:13+00:00 + 2016-03-16T20:24:13+00:00 + + http://activitystrea.ms/schema/1.0/person + https://mastodon.social/users/Gargron + Eugen + Software engineer, free time musician and DIGITAL SPORTS enthusiast. Likes cats. Warning: May contain memes + + + + + + gargron + Eugen + Software engineer, free time musician and DIGITAL SPORTS enthusiast. Likes cats. Warning: May contain memes + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=073bda8223dfcaa7 + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T21:22:38+01:00 + + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T20:22:38+00:00 + 2016-03-16T20:22:38+00:00 + + http://activitystrea.ms/schema/1.0/person + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T21:22:38+01:00 + New person by gargron + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=b157f676181e0ecd + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T21:16:14+01:00 + + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T20:16:15+00:00 + 2016-03-16T20:16:15+00:00 + + http://activitystrea.ms/schema/1.0/person + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T21:16:14+01:00 + New person by gargron + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=6a6ebd1ed6504a11 + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15750:2016-03-16T21:13:06+01:00 + + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://acda7931.ngrok.io/users/catsrgr8">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T20:13:06+00:00 + 2016-03-16T20:13:06+00:00 + + http://activitystrea.ms/schema/1.0/person + tag:quitter.no,2016-03-16:subscription:7477:person:15750:2016-03-16T21:13:06+01:00 + New person by gargron + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://acda7931.ngrok.io/users/catsrgr8">Eugen</a>. + + + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=8f5f92443584e8f0 + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15750:2016-03-16T21:05:02+01:00 + + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://acda7931.ngrok.io/users/catsrgr8">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T20:05:03+00:00 + 2016-03-16T20:05:03+00:00 + + http://activitystrea.ms/schema/1.0/person + tag:quitter.no,2016-03-16:subscription:7477:person:15750:2016-03-16T21:05:02+01:00 + New person by gargron + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://acda7931.ngrok.io/users/catsrgr8">Eugen</a>. + + + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=b630d235232fcff5 + + + + + + + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T19:04:16+01:00 + + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + http://activitystrea.ms/schema/1.0/follow + 2016-03-16T18:04:16+00:00 + 2016-03-16T18:04:16+00:00 + + http://activitystrea.ms/schema/1.0/person + tag:quitter.no,2016-03-16:subscription:7477:person:15743:2016-03-16T19:04:16+01:00 + New person by gargron + <a href="https://quitter.no/gargron">DIGITAL CAT</a> started following <a href="https://mastodon.social/users/Gargron">Eugen</a>. + + + + + tag:quitter.no,2016-03-16:objectType=thread:nonce=40eb98e5f85c9908 + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-15:noticeId=1251422:objectType=comment + New comment by gargron + @<a href="https://community.highlandarrow.com/user/1" class="h-card mention" title="Maiyannah Bishop">maiyannah</a> LGB, not LGBT? + + + http://activitystrea.ms/schema/1.0/post + 2016-03-15T20:28:13+00:00 + 2016-03-15T20:28:13+00:00 + + + + tag:community.highlandarrow.com,2016-03-15:objectType=thread:nonce=70ff6886d69e5225 + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-15:noticeId=1250742:objectType=comment + New comment by gargron + @<a href="https://social.umeahackerspace.se/user/2" class="h-card mention" title="&lt;Mikael &amp; Nordfeldth&gt;">mmn</a> I'm like reeeeally close to actually deploying the first production instance of Mastodon, but it bugs me that there's gonna be that issue with avatars and profiles not updating :( + + + http://activitystrea.ms/schema/1.0/post + 2016-03-15T18:44:54+00:00 + 2016-03-15T18:44:54+00:00 + + + + tag:quitter.no,2016-03-15:objectType=thread:nonce=2fbd771270b5da80 + + + + + + + + http://activitystrea.ms/schema/1.0/note + tag:quitter.no,2016-03-15:noticeId=1250653:objectType=note + New note by gargron + @<a href="https://social.umeahackerspace.se/user/2" class="h-card mention" title="&lt;Mikael &amp; Nordfeldth&gt;">mmn</a> Any progress on the issues I created? + + + http://activitystrea.ms/schema/1.0/post + 2016-03-15T18:27:00+00:00 + 2016-03-15T18:27:00+00:00 + + tag:quitter.no,2016-03-15:objectType=thread:nonce=2fbd771270b5da80 + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-14:noticeId=1243566:objectType=comment + New comment by gargron + @<a href="https://community.highlandarrow.com/user/1" class="h-card mention" title="Maiyannah Bishop">maiyannah</a> I heard Piwik is also good. + + + http://activitystrea.ms/schema/1.0/post + 2016-03-14T15:35:23+00:00 + 2016-03-14T15:35:23+00:00 + + + + tag:community.highlandarrow.com,2016-03-14:objectType=thread:nonce=8fbf00e7f76866d3 + + + + + + + + http://activitystrea.ms/schema/1.0/comment + tag:quitter.no,2016-03-14:noticeId=1243331:objectType=comment + New comment by gargron + I do wish I had somebody else partake in the development process if only to give me feedback on my decisions + + + http://activitystrea.ms/schema/1.0/post + 2016-03-14T14:52:03+00:00 + 2016-03-14T14:52:03+00:00 + + + + tag:quitter.no,2016-03-14:objectType=thread:nonce=46e8a2abc1839d01 + + + + + + + diff --git a/spec/fixtures/requests/webfinger.txt b/spec/fixtures/requests/webfinger.txt new file mode 100644 index 0000000000..edb8a2dbb5 --- /dev/null +++ b/spec/fixtures/requests/webfinger.txt @@ -0,0 +1,11 @@ +HTTP/1.1 200 OK +Server: nginx/1.6.2 +Date: Sun, 20 Mar 2016 11:13:16 GMT +Content-Type: application/jrd+json +Transfer-Encoding: chunked +Connection: keep-alive +Access-Control-Allow-Origin: * +Vary: Accept-Encoding,Cookie +Strict-Transport-Security: max-age=31536000; includeSubdomains; + +{"subject":"acct:gargron@quitter.no","aliases":["https:\/\/quitter.no\/user\/7477","https:\/\/quitter.no\/gargron","https:\/\/quitter.no\/index.php\/user\/7477","https:\/\/quitter.no\/index.php\/gargron"],"links":[{"rel":"http:\/\/webfinger.net\/rel\/profile-page","type":"text\/html","href":"https:\/\/quitter.no\/gargron"},{"rel":"http:\/\/gmpg.org\/xfn\/11","type":"text\/html","href":"https:\/\/quitter.no\/gargron"},{"rel":"describedby","type":"application\/rdf+xml","href":"https:\/\/quitter.no\/gargron\/foaf"},{"rel":"http:\/\/apinamespace.org\/atom","type":"application\/atomsvc+xml","href":"https:\/\/quitter.no\/api\/statusnet\/app\/service\/gargron.xml"},{"rel":"http:\/\/apinamespace.org\/twitter","href":"https:\/\/quitter.no\/api\/"},{"rel":"http:\/\/specs.openid.net\/auth\/2.0\/provider","href":"https:\/\/quitter.no\/gargron"},{"rel":"http:\/\/schemas.google.com\/g\/2010#updates-from","type":"application\/atom+xml","href":"https:\/\/quitter.no\/api\/statuses\/user_timeline\/7477.atom"},{"rel":"magic-public-key","href":"data:application\/magic-public-key,RSA.1ZBkHTavLvxH3FzlKv4O6WtlILKRFfNami3_Rcu8EuogtXSYiS-bB6hElZfUCSHbC4uLemOA34PEhz__CDMozax1iI_t8dzjDnh1x0iFSup7pSfW9iXk_WU3Dm74yWWW2jildY41vWgrEstuQ1dJ8vVFfSJ9T_tO4c-T9y8vDI8=.AQAB"},{"rel":"salmon","href":"https:\/\/quitter.no\/main\/salmon\/user\/7477"},{"rel":"http:\/\/salmon-protocol.org\/ns\/salmon-replies","href":"https:\/\/quitter.no\/main\/salmon\/user\/7477"},{"rel":"http:\/\/salmon-protocol.org\/ns\/salmon-mention","href":"https:\/\/quitter.no\/main\/salmon\/user\/7477"},{"rel":"http:\/\/ostatus.org\/schema\/1.0\/subscribe","template":"https:\/\/quitter.no\/main\/ostatussub?profile={uri}"}]} \ No newline at end of file diff --git a/spec/fixtures/salmon/mention.xml b/spec/fixtures/salmon/mention.xml new file mode 100644 index 0000000000..4d387ad83f --- /dev/null +++ b/spec/fixtures/salmon/mention.xml @@ -0,0 +1,2 @@ + +PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8-PGVudHJ5IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iIHhtbG5zOnRocj0iaHR0cDovL3B1cmwub3JnL3N5bmRpY2F0aW9uL3RocmVhZC8xLjAiIHhtbG5zOmFjdGl2aXR5PSJodHRwOi8vYWN0aXZpdHlzdHJlYS5tcy9zcGVjLzEuMC8iIHhtbG5zOmdlb3Jzcz0iaHR0cDovL3d3dy5nZW9yc3Mub3JnL2dlb3JzcyIgeG1sbnM6b3N0YXR1cz0iaHR0cDovL29zdGF0dXMub3JnL3NjaGVtYS8xLjAiIHhtbG5zOnBvY289Imh0dHA6Ly9wb3J0YWJsZWNvbnRhY3RzLm5ldC9zcGVjLzEuMCIgeG1sbnM6bWVkaWE9Imh0dHA6Ly9wdXJsLm9yZy9zeW5kaWNhdGlvbi9hdG9tbWVkaWEiIHhtbG5zOnN0YXR1c25ldD0iaHR0cDovL3N0YXR1cy5uZXQvc2NoZW1hL2FwaS8xLyI-CiA8YWN0aXZpdHk6b2JqZWN0LXR5cGU-aHR0cDovL2FjdGl2aXR5c3RyZWEubXMvc2NoZW1hLzEuMC9ub3RlPC9hY3Rpdml0eTpvYmplY3QtdHlwZT4KIDxpZD50YWc6cXVpdHRlci5ubywyMDE2LTAzLTIwOm5vdGljZUlkPTEyNzY5MjM6b2JqZWN0VHlwZT1ub3RlPC9pZD4KIDx0aXRsZT5OZXcgbm90ZSBieSBnYXJncm9uPC90aXRsZT4KIDxjb250ZW50IHR5cGU9Imh0bWwiPkAmbHQ7YSBocmVmPSZxdW90O2h0dHBzOi8vY2I2ZTYxMjYubmdyb2suaW8vdXNlcnMvY2F0c3JncjgmcXVvdDsgY2xhc3M9JnF1b3Q7aC1jYXJkIG1lbnRpb24mcXVvdDsmZ3Q7Y2F0c3JncjgmbHQ7L2EmZ3Q7IHRoaXMgaXMgYSBtZW50aW9uPC9jb250ZW50PgogPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9InRleHQvaHRtbCIgaHJlZj0iaHR0cHM6Ly9xdWl0dGVyLm5vL25vdGljZS8xMjc2OTIzIi8-CiA8c3RhdHVzX25ldCBub3RpY2VfaWQ9IjEyNzY5MjMiPjwvc3RhdHVzX25ldD4KIDxhY3Rpdml0eTp2ZXJiPmh0dHA6Ly9hY3Rpdml0eXN0cmVhLm1zL3NjaGVtYS8xLjAvcG9zdDwvYWN0aXZpdHk6dmVyYj4KIDxwdWJsaXNoZWQ-MjAxNi0wMy0yMFQxMTowNTozMSswMDowMDwvcHVibGlzaGVkPgogPHVwZGF0ZWQ-MjAxNi0wMy0yMFQxMTowNTozMSswMDowMDwvdXBkYXRlZD4KIDxhdXRob3I-CiAgPGFjdGl2aXR5Om9iamVjdC10eXBlPmh0dHA6Ly9hY3Rpdml0eXN0cmVhLm1zL3NjaGVtYS8xLjAvcGVyc29uPC9hY3Rpdml0eTpvYmplY3QtdHlwZT4KICA8dXJpPmh0dHBzOi8vcXVpdHRlci5uby91c2VyLzc0Nzc8L3VyaT4KICA8bmFtZT5nYXJncm9uPC9uYW1lPgogIDxzdW1tYXJ5PlNvZnR3YXJlIGVuZ2luZWVyLCBmcmVlIHRpbWUgbXVzaWNpYW4gYW5kIO-8pO-8qe-8p--8qe-8tO-8oe-8rCDvvLPvvLDvvK_vvLLvvLTvvLMgZW50aHVzaWFzdC4gTGlrZXMgY2F0cy4gV2FybmluZzogTWF5IGNvbnRhaW4gbWVtZXM8L3N1bW1hcnk-CiAgPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9InRleHQvaHRtbCIgaHJlZj0iaHR0cHM6Ly9xdWl0dGVyLm5vL2dhcmdyb24iLz4KICA8bGluayByZWw9ImF2YXRhciIgdHlwZT0iaW1hZ2UvcG5nIiBtZWRpYTp3aWR0aD0iMzAwIiBtZWRpYTpoZWlnaHQ9IjMwMCIgaHJlZj0iaHR0cHM6Ly9xdWl0dGVyLm5vL2F2YXRhci83NDc3LTMwMC0yMDE2MDIxMTE5MDM0MC5wbmciLz4KICA8bGluayByZWw9ImF2YXRhciIgdHlwZT0iaW1hZ2UvcG5nIiBtZWRpYTp3aWR0aD0iOTYiIG1lZGlhOmhlaWdodD0iOTYiIGhyZWY9Imh0dHBzOi8vcXVpdHRlci5uby9hdmF0YXIvNzQ3Ny05Ni0yMDE2MDIxMTE5MDM0MC5wbmciLz4KICA8bGluayByZWw9ImF2YXRhciIgdHlwZT0iaW1hZ2UvcG5nIiBtZWRpYTp3aWR0aD0iNDgiIG1lZGlhOmhlaWdodD0iNDgiIGhyZWY9Imh0dHBzOi8vcXVpdHRlci5uby9hdmF0YXIvNzQ3Ny00OC0yMDE2MDIxMTE5MDQ0OS5wbmciLz4KICA8bGluayByZWw9ImF2YXRhciIgdHlwZT0iaW1hZ2UvcG5nIiBtZWRpYTp3aWR0aD0iMjQiIG1lZGlhOmhlaWdodD0iMjQiIGhyZWY9Imh0dHBzOi8vcXVpdHRlci5uby9hdmF0YXIvNzQ3Ny0yNC0yMDE2MDIxMTE5MDUxNy5wbmciLz4KICA8cG9jbzpwcmVmZXJyZWRVc2VybmFtZT5nYXJncm9uPC9wb2NvOnByZWZlcnJlZFVzZXJuYW1lPgogIDxwb2NvOmRpc3BsYXlOYW1lPu-8pO-8qe-8p--8qe-8tO-8oe-8rCDvvKPvvKHvvLQ8L3BvY286ZGlzcGxheU5hbWU-CiAgPHBvY286bm90ZT5Tb2Z0d2FyZSBlbmdpbmVlciwgZnJlZSB0aW1lIG11c2ljaWFuIGFuZCDvvKTvvKnvvKfvvKnvvLTvvKHvvKwg77yz77yw77yv77yy77y077yzIGVudGh1c2lhc3QuIExpa2VzIGNhdHMuIFdhcm5pbmc6IE1heSBjb250YWluIG1lbWVzPC9wb2NvOm5vdGU-CiAgPHBvY286YWRkcmVzcz4KICAgPHBvY286Zm9ybWF0dGVkPkdlcm1hbnk8L3BvY286Zm9ybWF0dGVkPgogIDwvcG9jbzphZGRyZXNzPgogIDxwb2NvOnVybHM-CiAgIDxwb2NvOnR5cGU-aG9tZXBhZ2U8L3BvY286dHlwZT4KICAgPHBvY286dmFsdWU-aHR0cHM6Ly96ZW9uZmVkZXJhdGVkLmNvbTwvcG9jbzp2YWx1ZT4KICAgPHBvY286cHJpbWFyeT50cnVlPC9wb2NvOnByaW1hcnk-CiAgPC9wb2NvOnVybHM-CiAgPGZvbGxvd2VycyB1cmw9Imh0dHBzOi8vcXVpdHRlci5uby9nYXJncm9uL3N1YnNjcmliZXJzIj48L2ZvbGxvd2Vycz4KICA8c3RhdHVzbmV0OnByb2ZpbGVfaW5mbyBsb2NhbF9pZD0iNzQ3NyI-PC9zdGF0dXNuZXQ6cHJvZmlsZV9pbmZvPgogPC9hdXRob3I-CiA8bGluayByZWw9Im9zdGF0dXM6Y29udmVyc2F0aW9uIiBocmVmPSJ0YWc6cXVpdHRlci5ubywyMDE2LTAzLTIwOm9iamVjdFR5cGU9dGhyZWFkOm5vbmNlPTdjOTk4MTEyZTM5YTY2ODUiLz4KIDxvc3RhdHVzOmNvbnZlcnNhdGlvbj50YWc6cXVpdHRlci5ubywyMDE2LTAzLTIwOm9iamVjdFR5cGU9dGhyZWFkOm5vbmNlPTdjOTk4MTEyZTM5YTY2ODU8L29zdGF0dXM6Y29udmVyc2F0aW9uPgogPGxpbmsgcmVsPSJtZW50aW9uZWQiIG9zdGF0dXM6b2JqZWN0LXR5cGU9Imh0dHA6Ly9hY3Rpdml0eXN0cmVhLm1zL3NjaGVtYS8xLjAvcGVyc29uIiBocmVmPSJodHRwczovL2NiNmU2MTI2Lm5ncm9rLmlvL3VzZXJzL2NhdHNyZ3I4Ii8-CiA8bGluayByZWw9Im1lbnRpb25lZCIgb3N0YXR1czpvYmplY3QtdHlwZT0iaHR0cDovL2FjdGl2aXR5c3RyZWEubXMvc2NoZW1hLzEuMC9jb2xsZWN0aW9uIiBocmVmPSJodHRwOi8vYWN0aXZpdHlzY2hlbWEub3JnL2NvbGxlY3Rpb24vcHVibGljIi8-CiA8c291cmNlPgogIDxpZD5odHRwczovL3F1aXR0ZXIubm8vYXBpL3N0YXR1c2VzL3VzZXJfdGltZWxpbmUvNzQ3Ny5hdG9tPC9pZD4KICA8dGl0bGU-77yk77yp77yn77yp77y077yh77ysIO-8o--8oe-8tDwvdGl0bGU-CiAgPGxpbmsgcmVsPSJhbHRlcm5hdGUiIHR5cGU9InRleHQvaHRtbCIgaHJlZj0iaHR0cHM6Ly9xdWl0dGVyLm5vL2dhcmdyb24iLz4KICA8bGluayByZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL2F0b20reG1sIiBocmVmPSJodHRwczovL3F1aXR0ZXIubm8vYXBpL3N0YXR1c2VzL3VzZXJfdGltZWxpbmUvNzQ3Ny5hdG9tIi8-CiAgPGxpbmsgcmVsPSJsaWNlbnNlIiBocmVmPSJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wLyIvPgogIDxpY29uPmh0dHBzOi8vcXVpdHRlci5uby9hdmF0YXIvNzQ3Ny05Ni0yMDE2MDIxMTE5MDM0MC5wbmc8L2ljb24-CiAgPHVwZGF0ZWQ-MjAxNi0wMy0yMFQxMTowNTozMSswMDowMDwvdXBkYXRlZD4KIDwvc291cmNlPgogPGxpbmsgcmVsPSJzZWxmIiB0eXBlPSJhcHBsaWNhdGlvbi9hdG9tK3htbCIgaHJlZj0iaHR0cHM6Ly9xdWl0dGVyLm5vL2FwaS9zdGF0dXNlcy9zaG93LzEyNzY5MjMuYXRvbSIvPgogPGxpbmsgcmVsPSJlZGl0IiB0eXBlPSJhcHBsaWNhdGlvbi9hdG9tK3htbCIgaHJlZj0iaHR0cHM6Ly9xdWl0dGVyLm5vL2FwaS9zdGF0dXNlcy9zaG93LzEyNzY5MjMuYXRvbSIvPgogPHN0YXR1c25ldDpub3RpY2VfaW5mbyBsb2NhbF9pZD0iMTI3NjkyMyIgc291cmNlPSJRdml0dGVyIj48L3N0YXR1c25ldDpub3RpY2VfaW5mbz4KPC9lbnRyeT4Kbase64urlRSA-SHA256XOSdsku4Tq6zLxmOv0KtTpyG-UKOnlYzEoDXyPl_lkZzcZYm8Jc7ao50swJE1NFIw4uW8PfTTlqnz0pC62MVOVRxOUtiPTTJicux5W__HWf0j_ymUre87VF0Wdt1BoZYR9HeLnx2SGALDc6_ib-eabHA0O3AtSdm0JLq2pprtpA= diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 52c76d0daf..cf21bcd8d2 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -19,3 +19,7 @@ RSpec.configure do |config| config.include Devise::TestHelpers, type: :controller config.include Devise::TestHelpers, type: :view end + +def request_fixture(name) + File.read(File.join(Rails.root, 'spec', 'fixtures', 'requests', name)) +end