diff options
author | Starfall <us@starfall.systems> | 2020-07-07 10:08:13 -0500 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2020-07-07 10:10:33 -0500 |
commit | 147b4e7713cf5555fc4b515c7d88da49bf597f46 (patch) | |
tree | 67e33c2838eea691088e77ec4e19afb23104e77d /spec/controllers | |
parent | cfd52a032aa4ee545d479b65a295e6a9e77c4f4f (diff) | |
parent | c4e1b82caf5c932a3c19bc77726c9e3ab3d2c46a (diff) |
Mastodon 3.1.5 / Merge branch 'glitch' into main
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/media_controller_spec.rb | 3 | ||||
-rw-r--r-- | spec/controllers/media_proxy_controller_spec.rb | 42 |
2 files changed, 43 insertions, 2 deletions
diff --git a/spec/controllers/media_controller_spec.rb b/spec/controllers/media_controller_spec.rb index ac44a76f2..2925aed59 100644 --- a/spec/controllers/media_controller_spec.rb +++ b/spec/controllers/media_controller_spec.rb @@ -28,9 +28,8 @@ describe MediaController do end it 'raises when not permitted to view' do - status = Fabricate(:status) + status = Fabricate(:status, visibility: :direct) media_attachment = Fabricate(:media_attachment, status: status) - allow_any_instance_of(MediaController).to receive(:authorize).and_raise(ActiveRecord::RecordNotFound) get :show, params: { id: media_attachment.to_param } expect(response).to have_http_status(404) diff --git a/spec/controllers/media_proxy_controller_spec.rb b/spec/controllers/media_proxy_controller_spec.rb new file mode 100644 index 000000000..32510cf43 --- /dev/null +++ b/spec/controllers/media_proxy_controller_spec.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe MediaProxyController do + render_views + + before do + stub_request(:get, 'http://example.com/attachment.png').to_return(request_fixture('avatar.txt')) + end + + describe '#show' do + it 'redirects when attached to a status' do + status = Fabricate(:status) + media_attachment = Fabricate(:media_attachment, status: status, remote_url: 'http://example.com/attachment.png') + get :show, params: { id: media_attachment.id } + + expect(response).to have_http_status(302) + end + + it 'responds with missing when there is not an attached status' do + media_attachment = Fabricate(:media_attachment, status: nil, remote_url: 'http://example.com/attachment.png') + get :show, params: { id: media_attachment.id } + + expect(response).to have_http_status(404) + end + + it 'raises when id cant be found' do + get :show, params: { id: 'missing' } + + expect(response).to have_http_status(404) + end + + it 'raises when not permitted to view' do + status = Fabricate(:status, visibility: :direct) + media_attachment = Fabricate(:media_attachment, status: status, remote_url: 'http://example.com/attachment.png') + get :show, params: { id: media_attachment.id } + + expect(response).to have_http_status(404) + end + end +end |