Chris@909: require File.dirname(__FILE__) + '/test_helper' Chris@909: Chris@909: class OpenIdAuthenticationTest < Test::Unit::TestCase Chris@909: def setup Chris@909: @controller = Class.new do Chris@909: include OpenIdAuthentication Chris@909: def params() {} end Chris@909: end.new Chris@909: end Chris@909: Chris@909: def test_authentication_should_fail_when_the_identity_server_is_missing Chris@909: open_id_consumer = mock() Chris@909: open_id_consumer.expects(:begin).raises(OpenID::OpenIDError) Chris@909: @controller.expects(:open_id_consumer).returns(open_id_consumer) Chris@909: @controller.expects(:logger).returns(mock(:error => true)) Chris@909: Chris@909: @controller.send(:authenticate_with_open_id, "http://someone.example.com") do |result, identity_url| Chris@909: assert result.missing? Chris@909: assert_equal "Sorry, the OpenID server couldn't be found", result.message Chris@909: end Chris@909: end Chris@909: Chris@909: def test_authentication_should_be_invalid_when_the_identity_url_is_invalid Chris@909: @controller.send(:authenticate_with_open_id, "!") do |result, identity_url| Chris@909: assert result.invalid?, "Result expected to be invalid but was not" Chris@909: assert_equal "Sorry, but this does not appear to be a valid OpenID", result.message Chris@909: end Chris@909: end Chris@909: Chris@909: def test_authentication_should_fail_when_the_identity_server_times_out Chris@909: open_id_consumer = mock() Chris@909: open_id_consumer.expects(:begin).raises(Timeout::Error, "Identity Server took too long.") Chris@909: @controller.expects(:open_id_consumer).returns(open_id_consumer) Chris@909: @controller.expects(:logger).returns(mock(:error => true)) Chris@909: Chris@909: @controller.send(:authenticate_with_open_id, "http://someone.example.com") do |result, identity_url| Chris@909: assert result.missing? Chris@909: assert_equal "Sorry, the OpenID server couldn't be found", result.message Chris@909: end Chris@909: end Chris@909: Chris@909: def test_authentication_should_begin_when_the_identity_server_is_present Chris@909: @controller.expects(:begin_open_id_authentication) Chris@909: @controller.send(:authenticate_with_open_id, "http://someone.example.com") Chris@909: end Chris@909: end