Files
openproject/spec/controllers/application_controller_spec.rb
T
Michael Frister 38cdf2e2dd Add option to log user for all requests
Also remove before filter that worked around some session cookie bug
in Rails. This workaround wasn't effective anyway, since our session
cookie names don't contain chiliproject any more.
2013-09-02 08:14:18 +01:00

80 lines
2.2 KiB
Ruby

#-- copyright
# OpenProject is a project management system.
#
# Copyright (C) 2012-2013 the OpenProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# See doc/COPYRIGHT.rdoc for more details.
#++
require 'spec_helper'
describe ApplicationController do
let(:user) { FactoryGirl.create(:user, :lastname => "Crazy! Name with \r\n Newline") }
# Fake controller to test calling an action
controller do
def index
# just do anything that doesn't require an extra template
render_404
end
end
describe 'with log_requesting_user enabled' do
before do
Setting.stub(:log_requesting_user?).and_return(true)
end
it 'should log the current user' do
messages = []
Rails.logger.should_receive(:info).at_least(:once) do |message|
messages << message
end
as_logged_in_user(user) do
get(:index)
end
filtered_messages = messages.select { |message| message.start_with? 'OpenProject User' }
filtered_messages.length.should == 1
filtered_messages[0].should == "OpenProject User: #{user.firstname} Crazy! Name with \#\# " +
"Newline (#{user.login} ID: #{user.id} <#{user.mail}>)"
end
it 'should log an anonymous user' do
messages = []
Rails.logger.should_receive(:info).at_least(:once) do |message|
messages << message
end
# no login, so this is done as Anonymous
get(:index)
filtered_messages = messages.select { |message| message.start_with? 'OpenProject User' }
filtered_messages.length.should == 1
filtered_messages[0].should == "OpenProject User: Anonymous"
end
end
describe 'with log_requesting_user disabled' do
before do
Setting.stub(:log_requesting_user?).and_return(false)
end
it 'should not log the current user' do
messages = []
Rails.logger.stub(:info) do |message|
messages << message
end
as_logged_in_user(user) do
get(:index)
end
filtered_messages = messages.select { |message| message.start_with? 'OpenProject User' }
filtered_messages.length.should == 0
end
end
end