64 lines
2.0 KiB
Ruby
64 lines
2.0 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Locomotive::Liquid::Drops::CurrentUser do
|
|
|
|
before(:each) do
|
|
@page = FactoryGirl.build(:sub_page)
|
|
|
|
@site = @page.site
|
|
@site.pages.expects(:any_in).returns([@page])
|
|
|
|
@controller = Locomotive::TestController.new
|
|
@controller.stubs(:flash).returns(ActionDispatch::Flash::FlashHash.new())
|
|
@controller.stubs(:params).returns(:url => '/subpage')
|
|
@controller.stubs(:request).returns(OpenStruct.new(:url => '/subpage', :fullpath => '/subpage'))
|
|
@controller.current_site = @site
|
|
|
|
@admin = FactoryGirl.build(:admin)
|
|
end
|
|
|
|
def expect_render(template, text)
|
|
@page.raw_template = template
|
|
@page.send(:serialize_template)
|
|
@controller.expects(:render).with(:text => text, :layout => false, :status => :ok).returns(true)
|
|
@controller.send(:render_locomotive_page)
|
|
end
|
|
|
|
context '#logged_in?' do
|
|
it 'returns false when no user is logged in' do
|
|
expect_render('{{ current_user.logged_in? }}', 'false')
|
|
end
|
|
it 'returns true when there is a user logged in' do
|
|
@controller.expects(:current_admin).twice.returns(true)
|
|
expect_render('{{ current_user.logged_in? }}', 'true')
|
|
end
|
|
end
|
|
|
|
context '#name' do
|
|
it 'returns nothing when no user is logged in' do
|
|
expect_render('{{ current_user.name }}', '')
|
|
end
|
|
it 'returns the username when the user is logged in' do
|
|
@controller.expects(:current_admin).twice.returns(@admin)
|
|
expect_render('{{ current_user.name }}', 'Admin')
|
|
end
|
|
end
|
|
|
|
context '#email' do
|
|
it 'returns nothing when no user is logged in' do
|
|
expect_render('{{ current_user.email }}', '')
|
|
end
|
|
it 'returns the username when the user is logged in' do
|
|
@controller.expects(:current_admin).twice.returns(@admin)
|
|
expect_render('{{ current_user.email }}', 'admin@locomotiveapp.org')
|
|
end
|
|
end
|
|
|
|
context '#logout_path' do
|
|
it 'returns the logout url' do
|
|
expect_render('{{ current_user.logout_path }}', '/admin/sign_out')
|
|
end
|
|
end
|
|
|
|
end
|