2013-04-03 01:17:17 +02:00
require 'spec_helper'
describe UploadsController do
it 'requires you to be logged in' do
- > { xhr :post , :create } . should raise_error ( Discourse :: NotLoggedIn )
end
context 'logged in' do
before do
@user = log_in :user
end
context '.create' do
2013-06-15 09:54:49 +02:00
let ( :logo ) do
ActionDispatch :: Http :: UploadedFile . new ( {
filename : 'logo.png' ,
type : 'image/png' ,
tempfile : File . new ( " #{ Rails . root } /spec/fixtures/images/logo.png " )
} )
2013-04-03 01:17:17 +02:00
end
2013-06-15 09:54:49 +02:00
let ( :logo_dev ) do
ActionDispatch :: Http :: UploadedFile . new ( {
filename : 'logo-dev.png' ,
type : 'image/png' ,
tempfile : File . new ( " #{ Rails . root } /spec/fixtures/images/logo-dev.png " )
} )
end
2013-04-03 01:17:17 +02:00
2013-06-15 09:54:49 +02:00
let ( :text_file ) do
ActionDispatch :: Http :: UploadedFile . new ( {
filename : 'LICENSE.txt' ,
type : 'text/plain' ,
tempfile : File . new ( " #{ Rails . root } /LICENSE.txt " )
} )
end
2013-04-03 01:17:17 +02:00
2013-06-15 09:54:49 +02:00
let ( :files ) { [ logo_dev , logo ] }
2013-04-03 01:17:17 +02:00
2013-06-15 09:54:49 +02:00
context 'with a file' do
2013-07-10 22:59:07 +02:00
it 'is successful' do
2013-06-15 09:54:49 +02:00
xhr :post , :create , file : logo
response . should be_success
2013-04-07 17:52:46 +02:00
end
2013-07-10 22:59:07 +02:00
context 'when authorized' do
before { SiteSetting . stubs ( :authorized_extensions ) . returns ( " .txt " ) }
it 'is successful' do
xhr :post , :create , file : text_file
response . status . should eq 200
end
end
context 'when not authorized' do
before { SiteSetting . stubs ( :authorized_extensions ) . returns ( " .png " ) }
it 'rejects the upload' do
xhr :post , :create , file : text_file
response . status . should eq 415
end
2013-04-03 01:17:17 +02:00
end
2013-07-10 22:59:07 +02:00
2013-06-15 09:54:49 +02:00
end
2013-04-03 01:17:17 +02:00
2013-06-15 09:54:49 +02:00
context 'with some files' do
2013-04-03 01:17:17 +02:00
2013-07-10 22:59:07 +02:00
it 'is successful' do
2013-06-15 09:54:49 +02:00
xhr :post , :create , files : files
response . should be_success
end
2013-04-03 01:17:17 +02:00
2013-06-15 09:54:49 +02:00
it 'takes the first file' do
xhr :post , :create , files : files
response . body . should match / logo-dev.png /
2013-04-03 01:17:17 +02:00
end
end
end
end
end