Mercurial > hg > soundsoftware-site
diff test/functional/auth_sources_controller_test.rb @ 1115:433d4f72a19b redmine-2.2
Update to Redmine SVN revision 11137 on 2.2-stable branch
author | Chris Cannam |
---|---|
date | Mon, 07 Jan 2013 12:01:42 +0000 |
parents | cbb26bc654de |
children | 622f24f53b42 |
line wrap: on
line diff
--- a/test/functional/auth_sources_controller_test.rb Wed Jun 27 14:54:18 2012 +0100 +++ b/test/functional/auth_sources_controller_test.rb Mon Jan 07 12:01:42 2013 +0000 @@ -1,94 +1,127 @@ +# Redmine - project management software +# Copyright (C) 2006-2012 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + require File.expand_path('../../test_helper', __FILE__) class AuthSourcesControllerTest < ActionController::TestCase + fixtures :users, :auth_sources def setup @request.session[:user_id] = 1 end - context "get :index" do - setup do - get :index + def test_index + get :index + + assert_response :success + assert_template 'index' + assert_not_nil assigns(:auth_sources) + end + + def test_new + get :new + + assert_response :success + assert_template 'new' + + source = assigns(:auth_source) + assert_equal AuthSourceLdap, source.class + assert source.new_record? + + assert_tag 'input', :attributes => {:name => 'type', :value => 'AuthSourceLdap'} + assert_tag 'input', :attributes => {:name => 'auth_source[host]'} + end + + def test_create + assert_difference 'AuthSourceLdap.count' do + post :create, :type => 'AuthSourceLdap', :auth_source => {:name => 'Test', :host => '127.0.0.1', :port => '389', :attr_login => 'cn'} + assert_redirected_to '/auth_sources' end - should_assign_to :auth_sources - should_assign_to :auth_source_pages - should_respond_with :success - should_render_template :index + source = AuthSourceLdap.first(:order => 'id DESC') + assert_equal 'Test', source.name + assert_equal '127.0.0.1', source.host + assert_equal 389, source.port + assert_equal 'cn', source.attr_login end - context "get :new" do - setup do - get :new + def test_create_with_failure + assert_no_difference 'AuthSourceLdap.count' do + post :create, :type => 'AuthSourceLdap', :auth_source => {:name => 'Test', :host => '', :port => '389', :attr_login => 'cn'} + assert_response :success + assert_template 'new' end + assert_error_tag :content => /host can't be blank/i + end - should_assign_to :auth_source - should_respond_with :success - should_render_template :new + def test_edit + get :edit, :id => 1 - should "initilize a new AuthSource" do - assert_equal AuthSource, assigns(:auth_source).class - assert assigns(:auth_source).new_record? + assert_response :success + assert_template 'edit' + + assert_tag 'input', :attributes => {:name => 'auth_source[host]'} + end + + def test_update + put :update, :id => 1, :auth_source => {:name => 'Renamed', :host => '192.168.0.10', :port => '389', :attr_login => 'uid'} + assert_redirected_to '/auth_sources' + + source = AuthSourceLdap.find(1) + assert_equal 'Renamed', source.name + assert_equal '192.168.0.10', source.host + end + + def test_update_with_failure + put :update, :id => 1, :auth_source => {:name => 'Renamed', :host => '', :port => '389', :attr_login => 'uid'} + assert_response :success + assert_template 'edit' + assert_error_tag :content => /host can't be blank/i + end + + def test_destroy + assert_difference 'AuthSourceLdap.count', -1 do + delete :destroy, :id => 1 end end - context "post :create" do - setup do - post :create, :auth_source => {:name => 'Test'} + def test_destroy_auth_source_in_use + User.find(2).update_attribute :auth_source_id, 1 + + assert_no_difference 'AuthSourceLdap.count' do + delete :destroy, :id => 1 end - - should_respond_with :redirect - should_redirect_to("index") {{:action => 'index'}} - should_set_the_flash_to /success/i end - context "get :edit" do - setup do - @auth_source = AuthSource.generate!(:name => 'TestEdit') - get :edit, :id => @auth_source.id - end + def test_test_connection + AuthSourceLdap.any_instance.stubs(:test_connection).returns(true) - should_assign_to(:auth_source) {@auth_source} - should_respond_with :success - should_render_template :edit + get :test_connection, :id => 1 + assert_redirected_to '/auth_sources' + assert_not_nil flash[:notice] + assert_match /successful/i, flash[:notice] end - context "post :update" do - setup do - @auth_source = AuthSource.generate!(:name => 'TestEdit') - post :update, :id => @auth_source.id, :auth_source => {:name => 'TestUpdate'} - end + def test_test_connection_with_failure + AuthSourceLdap.any_instance.stubs(:initialize_ldap_con).raises(Net::LDAP::LdapError.new("Something went wrong")) - should_respond_with :redirect - should_redirect_to("index") {{:action => 'index'}} - should_set_the_flash_to /update/i - end - - context "post :destroy" do - setup do - @auth_source = AuthSource.generate!(:name => 'TestEdit') - end - - context "without users" do - setup do - post :destroy, :id => @auth_source.id - end - - should_respond_with :redirect - should_redirect_to("index") {{:action => 'index'}} - should_set_the_flash_to /deletion/i - end - - context "with users" do - setup do - User.generate!(:auth_source => @auth_source) - post :destroy, :id => @auth_source.id - end - - should_respond_with :redirect - should "not destroy the AuthSource" do - assert AuthSource.find(@auth_source.id) - end - end + get :test_connection, :id => 1 + assert_redirected_to '/auth_sources' + assert_not_nil flash[:error] + assert_include 'Something went wrong', flash[:error] end end