Commit 2a6a945e752c454d7471b75ab560a73e4ba0c9c1
1 parent
ca65f5bd
Adds tests for provider specific Auth classes
Signed-off-by: Gabriel Silva <gabriel93.silva@gmail.com>
Showing
2 changed files
with
31 additions
and
4 deletions
Show diff stats
plugins/oauth_client/models/oauth_client_plugin/noosfero_oauth2_auth.rb
plugins/oauth_client/test/unit/auth_test.rb
| ... | ... | @@ -5,7 +5,12 @@ class AuthTest < ActiveSupport::TestCase |
| 5 | 5 | def setup |
| 6 | 6 | @person = fast_create(Person) |
| 7 | 7 | @provider = fast_create(OauthClientPlugin::Provider, name: "GitHub") |
| 8 | - @external_person = fast_create(ExternalPerson, name: "testuser", email: "test@email,com") | |
| 8 | + @external_person = fast_create(ExternalPerson, name: "testuser", email: "test@email.com", | |
| 9 | + identifier: "testuser") | |
| 10 | + | |
| 11 | + OauthClientPlugin::Auth.any_instance.stubs(:external_person_image_url).returns("http://some.host/image") | |
| 12 | + OauthClientPlugin::Auth.any_instance.stubs(:external_person_uid).returns("j4b25cj234hb5n235") | |
| 13 | + OauthClientPlugin::Provider.any_instance.stubs(:client_options).returns({site: "http://host.com"}) | |
| 9 | 14 | end |
| 10 | 15 | |
| 11 | 16 | should "not create an auth without a related profile or external person" do |
| ... | ... | @@ -14,7 +19,8 @@ class AuthTest < ActiveSupport::TestCase |
| 14 | 19 | end |
| 15 | 20 | |
| 16 | 21 | should "create an auth with an external person" do |
| 17 | - auth = OauthClientPlugin::Auth.create!(external_person: @external_person, provider: @provider) | |
| 22 | + auth = OauthClientPlugin::Auth.create!(external_person: @external_person, | |
| 23 | + provider: @provider) | |
| 18 | 24 | assert auth.id.present? |
| 19 | 25 | end |
| 20 | 26 | |
| ... | ... | @@ -25,9 +31,30 @@ class AuthTest < ActiveSupport::TestCase |
| 25 | 31 | |
| 26 | 32 | should "create an auth for a custom provider" do |
| 27 | 33 | auth = OauthClientPlugin::Auth.create_for_strategy("github", provider: @provider, |
| 28 | - profile: @person) | |
| 34 | + profile: @person) | |
| 29 | 35 | assert auth.id.present? |
| 30 | 36 | assert auth.is_a? OauthClientPlugin::GithubAuth |
| 31 | 37 | end |
| 32 | 38 | |
| 39 | + STRATEGIES = %w[facebook github google_oauth2 noosfero_oauth2 twitter] | |
| 40 | + STRATEGIES.each do |strategy| | |
| 41 | + should "override the external person's image url for #{strategy} strategy" do | |
| 42 | + auth = OauthClientPlugin::Auth.create_for_strategy(strategy, provider: @provider, | |
| 43 | + external_person: @external_person) | |
| 44 | + assert_not auth.image_url.nil? | |
| 45 | + end | |
| 46 | + | |
| 47 | + should "override the external person's profile url for #{strategy} strategy" do | |
| 48 | + auth = OauthClientPlugin::Auth.create_for_strategy(strategy, provider: @provider, | |
| 49 | + external_person: @external_person) | |
| 50 | + assert_not auth.profile_url.nil? | |
| 51 | + end | |
| 52 | + | |
| 53 | + should "override the external person's profile settings url for #{strategy} strategy" do | |
| 54 | + auth = OauthClientPlugin::Auth.create_for_strategy(strategy, provider: @provider, | |
| 55 | + external_person: @external_person) | |
| 56 | + assert_not auth.settings_url.nil? | |
| 57 | + end | |
| 58 | + end | |
| 59 | + | |
| 33 | 60 | end | ... | ... |