55 lines
2.0 KiB
Ruby
55 lines
2.0 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Travis::Web::App do
|
|
before do
|
|
current_session.global_env['HTTP_ACCEPT'] = 'text/html,*/*'
|
|
end
|
|
|
|
describe 'catch all' do
|
|
before { get('/foo/bar') }
|
|
example { last_response.should be_ok }
|
|
example { headers['Content-Location'].should be == '/' }
|
|
example { headers['Cache-Control'].should include('must-revalidate') }
|
|
example { headers['Cache-Control'].should include('public') }
|
|
example { headers['Vary'].should include('Accept') }
|
|
end
|
|
|
|
describe 'assets' do
|
|
before { get('/favicon.ico') }
|
|
example { last_response.should be_ok }
|
|
example { headers['Content-Location'].should be == '/favicon.ico' }
|
|
example { headers['Cache-Control'].should_not include('must-revalidate') }
|
|
example { headers['Cache-Control'].should include('public') }
|
|
example { headers['Vary'].split(',').should_not include('Accept') }
|
|
end
|
|
|
|
describe 'version' do
|
|
before { get('/version') }
|
|
example { last_response.should be_ok }
|
|
example { headers['Content-Location'].should be == '/version' }
|
|
example { headers['Cache-Control'].should be == 'no-cache' }
|
|
example { headers['Vary'].split(',').should_not include('Accept') }
|
|
end
|
|
|
|
describe 'alternate asset versions' do
|
|
context 'not passing an alt param' do
|
|
before { get('/') }
|
|
example { headers['Set-Cookie'].should be_nil }
|
|
end
|
|
|
|
context 'passing an alt param' do
|
|
before { get('/?alt=foo') }
|
|
example { last_response.should be_ok }
|
|
example { last_response.body.should include('/assets/foo/styles/app.css') }
|
|
example { last_response.body.should include('/assets/foo/scripts/app.js') }
|
|
example { headers['Set-Cookie'].should == 'alt=foo; path=/; max-age=86400' }
|
|
end
|
|
|
|
context 'passing default as an alt param' do
|
|
before { get('/?alt=default') }
|
|
example { last_response.body.should_not =~ /\/assets\/[^\/]+\/scripts\/app.js/ }
|
|
example { headers['Set-Cookie'].should == 'alt=; path=/; max-age=0' }
|
|
end
|
|
end
|
|
end
|