oauth_client_plugin_test.rb
2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
require File.dirname(__FILE__) + '/../test_helper'
class OauthClientPluginTest < ActiveSupport::TestCase
def setup
@plugin = OauthClientPlugin.new
@params = {}
@plugin.stubs(:context).returns(self)
@environment = Environment.default
end
attr_reader :params, :plugin, :environment
should 'has extra contents for login' do
assert plugin.login_extra_contents
end
should 'has no signup extra contents if no provider was enabled' do
assert_equal '', instance_eval(&plugin.signup_extra_contents)
end
should 'has signup extra contents if there is enabled providers' do
params[:user] = {:oauth_providers => [:provider]}
expects(:render).with(:partial => 'account/oauth_signup').once
instance_eval(&plugin.signup_extra_contents)
end
should 'list enabled providers' do
settings = Noosfero::Plugin::Settings.new(environment, OauthClientPlugin)
providers = {:test => {:enabled => true}, :test2 => {:enabled => false}}
settings.set_setting(:providers, providers)
assert_equal({:test => {:enabled => true}}, plugin.enabled_providers)
end
should 'define before filter for account controller' do
assert plugin.account_controller_filters
end
should 'raise error if oauth email was changed' do
request = mock
stubs(:request).returns(request)
request.expects(:post?).returns(true)
stubs(:session).returns({:oauth_email => 'test@example.com'})
params[:user] = {:email => 'test2@example.com'}
assert_raises RuntimeError do
instance_eval(&plugin.account_controller_filters[:block])
end
end
should 'do not raise error if oauth email was not changed' do
request = mock
stubs(:request).returns(request)
request.expects(:post?).returns(true)
stubs(:session).returns({:oauth_email => 'test@example.com'})
params[:user] = {:email => 'test@example.com'}
instance_eval(&plugin.account_controller_filters[:block])
end
should 'do not raise error if oauth email is not set' do
request = mock
stubs(:request).returns(request)
request.expects(:post?).returns(true)
stubs(:session).returns({})
instance_eval(&plugin.account_controller_filters[:block])
end
should 'do not raise error if it is not a post' do
request = mock
stubs(:request).returns(request)
request.expects(:post?).returns(false)
instance_eval(&plugin.account_controller_filters[:block])
end
end