2013-02-05 14:16:51 -05:00
require 'spec_helper'
describe ListController do
2013-02-25 19:42:20 +03:00
# we need some data
before do
2013-02-05 14:16:51 -05:00
@user = Fabricate ( :coding_horror )
2013-03-23 20:32:59 +05:30
@post = Fabricate ( :post , user : @user )
2013-02-05 14:16:51 -05:00
end
2013-03-28 14:01:13 +01:00
describe 'indexes' do
[ :latest , :hot ] . each do | filter |
context '#{filter}' do
before { xhr :get , filter }
it { should respond_with ( :success ) }
end
end
[ :favorited , :read , :posted , :unread , :new ] . each do | filter |
context '#{filter}' do
it { expect { xhr :get , filter } . to raise_error ( Discourse :: NotLoggedIn ) }
end
2013-02-05 14:16:51 -05:00
end
end
context 'category' do
context 'in a category' do
let ( :category ) { Fabricate ( :category ) }
it " raises an invalid access error when the user can't see the category " do
Guardian . any_instance . expects ( :can_see? ) . with ( category ) . returns ( false )
xhr :get , :category , category : category . slug
response . should be_forbidden
end
context 'with access to see the category' do
before do
xhr :get , :category , category : category . slug
end
it { should respond_with ( :success ) }
end
2013-02-14 16:51:48 -05:00
context 'with a link that includes an id' do
before do
2013-02-14 17:13:03 -05:00
xhr :get , :category , category : " #{ category . id } - #{ category . slug } "
2013-02-14 16:51:48 -05:00
end
it { should respond_with ( :success ) }
end
2013-02-27 19:36:12 -08:00
describe 'feed' do
it 'renders RSS' do
get :category_feed , category : category . slug , format : :rss
response . should be_success
response . content_type . should == 'application/rss+xml'
end
end
2013-02-05 14:16:51 -05:00
end
context 'uncategorized' do
it " doesn't check access to see the category, since we didn't provide one " do
Guardian . any_instance . expects ( :can_see? ) . never
xhr :get , :category , category : SiteSetting . uncategorized_name
end
it " responds with success " do
xhr :get , :category , category : SiteSetting . uncategorized_name
response . should be_success
end
end
end
2013-03-27 16:17:49 -04:00
context 'hot' do
before do
xhr :get , :hot
end
it { should respond_with ( :success ) }
end
2013-02-05 14:16:51 -05:00
context 'favorited' do
it 'raises an error when not logged in' do
lambda { xhr :get , :favorited } . should raise_error ( Discourse :: NotLoggedIn )
end
context 'when logged in' do
before do
log_in_user ( @user )
xhr :get , :favorited
end
it { should respond_with ( :success ) }
end
end
2013-03-27 16:17:49 -04:00
2013-02-05 14:16:51 -05:00
context 'read' do
it 'raises an error when not logged in' do
lambda { xhr :get , :read } . should raise_error ( Discourse :: NotLoggedIn )
end
context 'when logged in' do
before do
log_in_user ( @user )
xhr :get , :read
end
it { should respond_with ( :success ) }
end
end
end