2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-06 10:50:21 +08:00

proper content-disposition header when downloading attachments

This commit is contained in:
Régis Hanol 2013-09-06 19:18:42 +02:00
parent eae7e75611
commit 45b838009c
8 changed files with 94 additions and 42 deletions

View file

@ -2,17 +2,15 @@ require 'spec_helper'
describe UploadsController do
it 'requires you to be logged in' do
-> { xhr :post, :create }.should raise_error(Discourse::NotLoggedIn)
end
context '.create' do
context 'logged in' do
before do
@user = log_in :user
it 'requires you to be logged in' do
-> { xhr :post, :create }.should raise_error(Discourse::NotLoggedIn)
end
context '.create' do
context 'logged in' do
before { @user = log_in :user }
let(:logo) do
ActionDispatch::Http::UploadedFile.new({
@ -97,4 +95,29 @@ describe UploadsController do
end
context '.show' do
it "returns 404 when using external storage" do
store = stub(internal?: false)
Discourse.stubs(:store).returns(store)
Upload.expects(:where).never
get :show, site: "default", id: 1, sha: "1234567890abcdef", extension: "pdf"
response.response_code.should == 404
end
it "returns 404 when the upload doens't exist" do
Upload.expects(:where).with(id: 2, url: "/uploads/default/2/1234567890abcdef.pdf").returns [nil]
get :show, site: "default", id: 2, sha: "1234567890abcdef", extension: "pdf"
response.response_code.should == 404
end
it 'uses send_file' do
Fabricate(:attachment)
controller.stubs(:render)
controller.expects(:send_file)
get :show, site: "default", id: 42, sha: "66b3ed1503efc936", extension: "zip"
end
end
end