Fixing atom feeds for accounts, adding tests that would catch such bugs in future

This commit is contained in:
Eugen Rochko 2016-09-08 00:33:07 +02:00
parent 499beb4484
commit 87576e1ab1
9 changed files with 41 additions and 7 deletions

View file

@ -126,7 +126,7 @@ module AtomBuilderHelper
end end
def link_enclosure(xml, media) def link_enclosure(xml, media)
xml.link(rel: 'enclosure', href: full_asset_url(media.file.url), type: media.file_content_type, length: media.file_size) xml.link(rel: 'enclosure', href: full_asset_url(media.file.url), type: media.file_content_type, length: media.file_file_size)
end end
def link_avatar(xml, account) def link_avatar(xml, account)

View file

@ -1,20 +1,40 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe AccountsController, type: :controller do RSpec.describe AccountsController, type: :controller do
render_views
let(:alice) { Fabricate(:account, username: 'alice') } let(:alice) { Fabricate(:account, username: 'alice') }
describe 'GET #show' do describe 'GET #show' do
it 'returns http success' do before do
get :show, params: { username: alice.username } status1 = Status.create!(account: alice, text: 'Hello world')
expect(response).to have_http_status(:success) status2 = Status.create!(account: alice, text: 'Boop', thread: status1)
status3 = Status.create!(account: alice, text: 'Picture!')
status3.media_attachments.create!(account: alice, file: fixture_file_upload('files/attachment.jpg', 'image/jpeg'))
status4 = Status.create!(account: alice, text: 'Mentioning @alice')
end
context 'atom' do
before do
get :show, params: { username: alice.username }, format: 'atom'
end end
it 'returns http success with Atom' do it 'returns http success with Atom' do
get :show, params: { username: alice.username }, format: 'atom'
expect(response).to have_http_status(:success) expect(response).to have_http_status(:success)
end end
end end
context 'html' do
before do
get :show, params: { username: alice.username }
end
it 'returns http success' do
expect(response).to have_http_status(:success)
end
end
end
describe 'GET #followers' do describe 'GET #followers' do
it 'returns http success' do it 'returns http success' do
get :followers, params: { username: alice.username } get :followers, params: { username: alice.username }

View file

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Api::Accounts::LookupController, type: :controller do RSpec.describe Api::Accounts::LookupController, type: :controller do
render_views
let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) }
let(:token) { double acceptable?: true, resource_owner_id: user.id } let(:token) { double acceptable?: true, resource_owner_id: user.id }

View file

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Api::AccountsController, type: :controller do RSpec.describe Api::AccountsController, type: :controller do
render_views
let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) }
let(:token) { double acceptable?: true, resource_owner_id: user.id } let(:token) { double acceptable?: true, resource_owner_id: user.id }

View file

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Api::FollowsController, type: :controller do RSpec.describe Api::FollowsController, type: :controller do
render_views
let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } let(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) }
let(:token) { double acceptable?: true, resource_owner_id: user.id } let(:token) { double acceptable?: true, resource_owner_id: user.id }

View file

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Api::SalmonController, type: :controller do RSpec.describe Api::SalmonController, type: :controller do
render_views
let(:account) { Fabricate(:user, account: Fabricate(:account, username: 'catsrgr8')).account } let(:account) { Fabricate(:user, account: Fabricate(:account, username: 'catsrgr8')).account }
before do before do

View file

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Api::SubscriptionsController, type: :controller do RSpec.describe Api::SubscriptionsController, type: :controller do
render_views
let(:account) { Fabricate(:account, username: 'gargron', domain: 'quitter.no', verify_token: '123', remote_url: 'topic_url', secret: 'abc') } let(:account) { Fabricate(:account, username: 'gargron', domain: 'quitter.no', verify_token: '123', remote_url: 'topic_url', secret: 'abc') }
describe 'GET #show' do describe 'GET #show' do

View file

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe StreamEntriesController, type: :controller do RSpec.describe StreamEntriesController, type: :controller do
render_views
let(:alice) { Fabricate(:account, username: 'alice') } let(:alice) { Fabricate(:account, username: 'alice') }
let(:status) { Fabricate(:status, account: alice) } let(:status) { Fabricate(:status, account: alice) }

View file

@ -1,6 +1,8 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe XrdController, type: :controller do RSpec.describe XrdController, type: :controller do
render_views
describe 'GET #host_meta' do describe 'GET #host_meta' do
it 'returns http success' do it 'returns http success' do
get :host_meta get :host_meta