omniauth-google-oauth2 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Rakefile CHANGED
@@ -1,2 +1,7 @@
1
1
  #!/usr/bin/env rake
2
2
  require "bundler/gem_tasks"
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task :default => :spec
data/examples/config.ru CHANGED
@@ -7,6 +7,8 @@ require 'sinatra'
7
7
  require 'omniauth'
8
8
  require 'omniauth-google-oauth2'
9
9
 
10
+ OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
11
+
10
12
  class App < Sinatra::Base
11
13
  get '/' do
12
14
  <<-HTML
@@ -18,12 +20,12 @@ class App < Sinatra::Base
18
20
 
19
21
  get '/auth/:provider/callback' do
20
22
  content_type 'text/plain'
21
- request.env['omniauth.auth'].to_hash.inspect
23
+ request.env['omniauth.auth'].to_hash.inspect rescue "No Data"
22
24
  end
23
25
 
24
26
  get '/auth/failure' do
25
27
  content_type 'text/plain'
26
- request.env['omniauth.auth'].to_hash.inspect
28
+ request.env['omniauth.auth'].to_hash.inspect rescue "No Data"
27
29
  end
28
30
  end
29
31
 
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module GoogleOauth2
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.1"
4
4
  end
5
5
  end
@@ -12,10 +12,11 @@ module OmniAuth
12
12
  }
13
13
 
14
14
  def request_phase
15
- redirect client.auth_code.authorize_url(authorize_options)
15
+ setup_authorize_params
16
+ super
16
17
  end
17
18
 
18
- def authorize_options
19
+ def setup_authorize_params
19
20
  opts = {
20
21
  :client_id => options[:client_id],
21
22
  :redirect_uri => callback_url,
@@ -25,7 +26,7 @@ module OmniAuth
25
26
  google_email_scope = "www.googleapis.com/auth/userinfo.email"
26
27
  opts[:scope] ||= "https://#{google_email_scope}"
27
28
  opts[:scope] << " https://#{google_email_scope}" unless opts[:scope] =~ %r[http[s]?:\/\/#{google_email_scope}]
28
- opts
29
+ options[:authorize_params] = opts.merge(options[:authorize_params])
29
30
  end
30
31
 
31
32
  def auth_hash
@@ -18,4 +18,7 @@ Gem::Specification.new do |gem|
18
18
  gem.version = OmniAuth::GoogleOauth2::VERSION
19
19
 
20
20
  gem.add_runtime_dependency 'omniauth-oauth2'
21
+
22
+ gem.add_development_dependency 'rspec', '~> 2.6.0'
23
+ gem.add_development_dependency 'rake'
21
24
  end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+ require 'omniauth-google-oauth2'
3
+
4
+ describe OmniAuth::Strategies::GoogleOauth2 do
5
+ subject do
6
+ OmniAuth::Strategies::GoogleOauth2.new(nil, @options || {})
7
+ end
8
+
9
+ it_should_behave_like 'an oauth2 strategy'
10
+
11
+ describe '#client' do
12
+ it 'has correct Google site' do
13
+ subject.client.site.should eq('https://accounts.google.com')
14
+ end
15
+
16
+ it 'has correct authorize url' do
17
+ subject.client.options[:authorize_url].should eq('/o/oauth2/auth')
18
+ end
19
+
20
+ it 'has correct token url' do
21
+ subject.client.options[:token_url].should eq('/o/oauth2/token')
22
+ end
23
+ end
24
+
25
+ describe '#callback_path' do
26
+ it "has the correct callback path" do
27
+ subject.callback_path.should eq('/auth/google_oauth2/callback')
28
+ end
29
+ end
30
+
31
+ # These are setup during the request_phase
32
+ # At init they are blank
33
+ describe '#authorize_params' do
34
+ it "has no authorize params at init" do
35
+ subject.authorize_params.should be_empty
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,6 @@
1
+ require 'bundler/setup'
2
+ require 'rspec'
3
+ Dir[File.expand_path('../support/**/*', __FILE__)].each { |f| require f }
4
+
5
+ RSpec.configure do |config|
6
+ end
@@ -0,0 +1,37 @@
1
+ # NOTE it would be useful if this lived in omniauth-oauth2 eventually
2
+ shared_examples 'an oauth2 strategy' do
3
+ describe '#client' do
4
+ it 'should be initialized with symbolized client_options' do
5
+ @options = { :client_options => { 'authorize_url' => 'https://example.com' } }
6
+ subject.client.options[:authorize_url].should == 'https://example.com'
7
+ end
8
+ end
9
+
10
+ describe '#authorize_params' do
11
+ it 'should include any authorize params passed in the :authorize_params option' do
12
+ @options = { :authorize_params => { :foo => 'bar', :baz => 'zip' } }
13
+ subject.authorize_params['foo'].should eq('bar')
14
+ subject.authorize_params['baz'].should eq('zip')
15
+ end
16
+
17
+ it 'should include top-level options that are marked as :authorize_options' do
18
+ @options = { :authorize_options => [:scope, :foo], :scope => 'bar', :foo => 'baz' }
19
+ subject.authorize_params['scope'].should eq('bar')
20
+ subject.authorize_params['foo'].should eq('baz')
21
+ end
22
+ end
23
+
24
+ describe '#token_params' do
25
+ it 'should include any token params passed in the :token_params option' do
26
+ @options = { :token_params => { :foo => 'bar', :baz => 'zip' } }
27
+ subject.token_params['foo'].should eq('bar')
28
+ subject.token_params['baz'].should eq('zip')
29
+ end
30
+
31
+ it 'should include top-level options that are marked as :token_options' do
32
+ @options = { :token_options => [:scope, :foo], :scope => 'bar', :foo => 'baz' }
33
+ subject.token_params['scope'].should eq('bar')
34
+ subject.token_params['foo'].should eq('baz')
35
+ end
36
+ end
37
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-google-oauth2
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Josh Ellithorpe
@@ -47,6 +47,36 @@ dependencies:
47
47
  version: "0"
48
48
  type: :runtime
49
49
  version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: rspec
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ hash: 23
59
+ segments:
60
+ - 2
61
+ - 6
62
+ - 0
63
+ version: 2.6.0
64
+ type: :development
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ name: rake
68
+ prerelease: false
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ type: :development
79
+ version_requirements: *id004
50
80
  description: A Google oauth2 strategy for OmniAuth 1.0
51
81
  email:
52
82
  - quest@mac.com
@@ -68,6 +98,9 @@ files:
68
98
  - lib/omniauth/google_oauth2/version.rb
69
99
  - lib/omniauth/strategies/google_oauth2.rb
70
100
  - omniauth-contrib.gemspec
101
+ - spec/omniauth/strategies/google_oauth2_spec.rb
102
+ - spec/spec_helper.rb
103
+ - spec/support/shared_examples.rb
71
104
  has_rdoc: true
72
105
  homepage: ""
73
106
  licenses: []
@@ -102,5 +135,7 @@ rubygems_version: 1.6.2
102
135
  signing_key:
103
136
  specification_version: 3
104
137
  summary: A Google oauth2 strategy for OmniAuth 1.0
105
- test_files: []
106
-
138
+ test_files:
139
+ - spec/omniauth/strategies/google_oauth2_spec.rb
140
+ - spec/spec_helper.rb
141
+ - spec/support/shared_examples.rb