Chris@0
|
1 require File.dirname(__FILE__) + '/test_helper'
|
Chris@0
|
2
|
Chris@0
|
3 class OpenIdAuthenticationTest < Test::Unit::TestCase
|
Chris@0
|
4 def setup
|
Chris@0
|
5 @controller = Class.new do
|
Chris@0
|
6 include OpenIdAuthentication
|
Chris@0
|
7 def params() {} end
|
Chris@0
|
8 end.new
|
Chris@0
|
9 end
|
Chris@0
|
10
|
Chris@0
|
11 def test_authentication_should_fail_when_the_identity_server_is_missing
|
Chris@0
|
12 open_id_consumer = mock()
|
Chris@0
|
13 open_id_consumer.expects(:begin).raises(OpenID::OpenIDError)
|
Chris@0
|
14 @controller.expects(:open_id_consumer).returns(open_id_consumer)
|
Chris@0
|
15 @controller.expects(:logger).returns(mock(:error => true))
|
Chris@0
|
16
|
Chris@0
|
17 @controller.send(:authenticate_with_open_id, "http://someone.example.com") do |result, identity_url|
|
Chris@0
|
18 assert result.missing?
|
Chris@0
|
19 assert_equal "Sorry, the OpenID server couldn't be found", result.message
|
Chris@0
|
20 end
|
Chris@0
|
21 end
|
Chris@0
|
22
|
Chris@0
|
23 def test_authentication_should_be_invalid_when_the_identity_url_is_invalid
|
Chris@0
|
24 @controller.send(:authenticate_with_open_id, "!") do |result, identity_url|
|
Chris@0
|
25 assert result.invalid?, "Result expected to be invalid but was not"
|
Chris@0
|
26 assert_equal "Sorry, but this does not appear to be a valid OpenID", result.message
|
Chris@0
|
27 end
|
Chris@0
|
28 end
|
Chris@0
|
29
|
Chris@0
|
30 def test_authentication_should_fail_when_the_identity_server_times_out
|
Chris@0
|
31 open_id_consumer = mock()
|
Chris@0
|
32 open_id_consumer.expects(:begin).raises(Timeout::Error, "Identity Server took too long.")
|
Chris@0
|
33 @controller.expects(:open_id_consumer).returns(open_id_consumer)
|
Chris@0
|
34 @controller.expects(:logger).returns(mock(:error => true))
|
Chris@0
|
35
|
Chris@0
|
36 @controller.send(:authenticate_with_open_id, "http://someone.example.com") do |result, identity_url|
|
Chris@0
|
37 assert result.missing?
|
Chris@0
|
38 assert_equal "Sorry, the OpenID server couldn't be found", result.message
|
Chris@0
|
39 end
|
Chris@0
|
40 end
|
Chris@0
|
41
|
Chris@0
|
42 def test_authentication_should_begin_when_the_identity_server_is_present
|
Chris@0
|
43 @controller.expects(:begin_open_id_authentication)
|
Chris@0
|
44 @controller.send(:authenticate_with_open_id, "http://someone.example.com")
|
Chris@0
|
45 end
|
Chris@0
|
46 end
|