zendesk_remote_auth 0.9.0 → 1.0.0
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/README.rdoc +11 -4
- data/Rakefile +10 -22
- data/VERSION +1 -1
- data/lib/zendesk_remote_auth.rb +2 -1
- data/{test/test_helper.rb → spec/spec_helper.rb} +0 -8
- data/spec/zendesk_remote_auth_spec.rb +105 -0
- data/zendesk_remote_auth.gemspec +22 -33
- metadata +46 -36
- data/.gitignore +0 -5
- data/test/zendesk_remote_auth_test.rb +0 -103
data/README.rdoc
CHANGED
@@ -3,11 +3,16 @@
|
|
3
3
|
zendesk_remote_auth is a simple gem providing help with Zendesk's SSO
|
4
4
|
functionality (see http://www.zendesk.com/api/remote_authentication).
|
5
5
|
|
6
|
+
== HEY YOU!
|
7
|
+
|
8
|
+
Do you actually use this gem? Are you interested in taking it over?
|
9
|
+
I no longer use this, so don't have a lot of interest in maintaining it.
|
10
|
+
If you do, get in touch.
|
11
|
+
|
6
12
|
== Installation and Setup
|
7
13
|
|
8
14
|
* Install:
|
9
|
-
|
10
|
-
gem install tobias-zendesk_remote_auth
|
15
|
+
gem install zendesk_remote_auth
|
11
16
|
|
12
17
|
* Setup:
|
13
18
|
You will need to give the gem your token and authentication url,
|
@@ -16,10 +21,12 @@ perhaps in an initializer:
|
|
16
21
|
Zendesk::RemoteAuth.auth_url = 'https://yourcompany.zendesk.com/access/remote/'
|
17
22
|
|
18
23
|
and config the gem in environment.rb (if using rails):
|
19
|
-
config.gem '
|
24
|
+
config.gem 'zendesk_remote_auth'
|
20
25
|
|
21
26
|
== Usage
|
22
27
|
|
28
|
+
Note: The latest release requires ActiveSupport 3.0 or greater.
|
29
|
+
|
23
30
|
Mixin the Zendesk::RemoteAuthHelper module wherever needed, then call:
|
24
31
|
zendesk_remote_auth_url(:name => 'user name',
|
25
32
|
:email => 'user email',
|
@@ -86,4 +93,4 @@ zendesk:
|
|
86
93
|
|
87
94
|
== Copyright
|
88
95
|
|
89
|
-
Copyright (c)
|
96
|
+
Copyright (c) 2011 Tobias Crawley. See LICENSE for details.
|
data/Rakefile
CHANGED
@@ -10,9 +10,8 @@ begin
|
|
10
10
|
gem.email = "tcrawley@gmail.com"
|
11
11
|
gem.homepage = "http://github.com/tobias/zendesk_remote_auth"
|
12
12
|
gem.authors = ["Tobias Crawley"]
|
13
|
-
gem.
|
14
|
-
gem.add_development_dependency "
|
15
|
-
gem.add_development_dependency "matchy"
|
13
|
+
gem.add_dependency "active_support", ">= 3.0.0"
|
14
|
+
gem.add_development_dependency "rspec", ">= 2.6.0"
|
16
15
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
17
16
|
end
|
18
17
|
Jeweler::GemcutterTasks.new
|
@@ -20,29 +19,18 @@ rescue LoadError
|
|
20
19
|
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
21
20
|
end
|
22
21
|
|
23
|
-
require '
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
test.verbose = true
|
22
|
+
require 'rspec/core'
|
23
|
+
require 'rspec/core/rake_task'
|
24
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
25
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
28
26
|
end
|
29
27
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
test.libs << 'test'
|
34
|
-
test.pattern = 'test/**/*_test.rb'
|
35
|
-
test.verbose = true
|
36
|
-
end
|
37
|
-
rescue LoadError
|
38
|
-
task :rcov do
|
39
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
40
|
-
end
|
28
|
+
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
29
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
30
|
+
spec.rcov = true
|
41
31
|
end
|
42
32
|
|
43
|
-
task :
|
44
|
-
|
45
|
-
task :default => :test
|
33
|
+
task :default => :spec
|
46
34
|
|
47
35
|
begin
|
48
36
|
require 'yard'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0
|
data/lib/zendesk_remote_auth.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'digest/md5'
|
2
|
-
require 'active_support' #gives us Hash.to_query
|
2
|
+
require 'active_support/core_ext/object' #gives us Hash.to_query
|
3
3
|
|
4
4
|
##
|
5
5
|
# Provides a helper to use Zendesk's SSO/remote auth service.
|
@@ -73,6 +73,7 @@ module Zendesk
|
|
73
73
|
str_to_hash << params[:email]
|
74
74
|
str_to_hash << params[:external_id].to_s if params[:external_id]
|
75
75
|
str_to_hash << params[:organization].to_s if params[:organization]
|
76
|
+
str_to_hash << params[:remote_photo_url].to_s if params[:remote_photo_url]
|
76
77
|
str_to_hash << token
|
77
78
|
str_to_hash << params[:timestamp].to_s
|
78
79
|
Digest::MD5.hexdigest(str_to_hash)
|
@@ -1,12 +1,4 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'test/unit'
|
3
|
-
require 'shoulda'
|
4
|
-
require 'mocha'
|
5
|
-
require 'matchy'
|
6
|
-
|
7
1
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
8
2
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
9
3
|
require 'zendesk_remote_auth'
|
10
4
|
|
11
|
-
class Test::Unit::TestCase
|
12
|
-
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Zendesk::RemoteAuth do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@auth = Object.new
|
7
|
+
@auth.extend(Zendesk::RemoteAuthHelper)
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'RemoteAuth' do
|
11
|
+
before(:each) do
|
12
|
+
Zendesk::RemoteAuth.token = Zendesk::RemoteAuth.auth_url = nil
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should raise exception if token is not set' do
|
16
|
+
lambda{ Zendesk::RemoteAuth.token }.should raise_error(ArgumentError)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should return the token without exception if it is set' do
|
20
|
+
Zendesk::RemoteAuth.token = 'blah'
|
21
|
+
Zendesk::RemoteAuth.token.should == 'blah'
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
it 'should raise exception if auth_url is not set' do
|
26
|
+
lambda { Zendesk::RemoteAuth.auth_url }.should raise_error(ArgumentError)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should return the auth_url without exception if it is set' do
|
30
|
+
Zendesk::RemoteAuth.auth_url = 'blah'
|
31
|
+
Zendesk::RemoteAuth.auth_url.should == 'blah'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
context 'url generation' do
|
37
|
+
before(:each) do
|
38
|
+
Zendesk::RemoteAuth.token = 'the_token'
|
39
|
+
Zendesk::RemoteAuth.auth_url = 'the_url'
|
40
|
+
@valid_params = { :email => 'test@example.com', :name => 'blah'}
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'required fields' do
|
44
|
+
it 'should raise an argument error the name is not provided' do
|
45
|
+
lambda {
|
46
|
+
@valid_params.delete(:name)
|
47
|
+
@auth.zendesk_remote_auth_url(@valid_params)
|
48
|
+
}.should raise_error(ArgumentError)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'should raise an argument error the email is not provided' do
|
52
|
+
lambda {
|
53
|
+
@valid_params.delete(:email)
|
54
|
+
@auth.zendesk_remote_auth_url(@valid_params)
|
55
|
+
}.should raise_error(ArgumentError)
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should return a url that starts with the auth_url' do
|
61
|
+
@auth.zendesk_remote_auth_url(@valid_params)
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should have an empty hash param if external_id not provided' do
|
65
|
+
@auth.zendesk_remote_auth_url(@valid_params).should =~ /hash=(&|$)/
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'should have a hash param if external_id provided' do
|
69
|
+
@auth.zendesk_remote_auth_url(@valid_params.merge(:external_id => 'id')).should_not =~ /hash=(&|$)/
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should have a different hash param if external_id and remote_photo_url provided ' do
|
73
|
+
a=@auth.zendesk_remote_auth_url(@valid_params.merge(:external_id => 'id')).match(/(hash=[^&]*)/)[1]
|
74
|
+
b=@auth.zendesk_remote_auth_url(@valid_params.merge(:external_id => 'id', :remote_photo_url => 'photo_url')).match(/(hash=[^&]*)/)[1]
|
75
|
+
a.should_not == b
|
76
|
+
end
|
77
|
+
|
78
|
+
context 'given a user object' do
|
79
|
+
before(:each) do
|
80
|
+
@user = mock
|
81
|
+
@user.should_receive(:name).and_return('a_name')
|
82
|
+
@user.should_receive(:email).and_return('an_email')
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'should pull the name from the user' do
|
86
|
+
@auth.zendesk_remote_auth_url(@user).should =~ /name=a_name/
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should pull the email from the user' do
|
90
|
+
@auth.zendesk_remote_auth_url(@user).should =~ /email=an_email/
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should pull the id from the user' do
|
94
|
+
@user.should_receive(:id).and_return('an_id')
|
95
|
+
@auth.zendesk_remote_auth_url(@user).should =~ /external_id=an_id/
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should pull the organization from the user if available' do
|
99
|
+
@user.should_receive(:zendesk_organization).and_return('org')
|
100
|
+
@auth.zendesk_remote_auth_url(@user).should =~ /organization=org/
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
data/zendesk_remote_auth.gemspec
CHANGED
@@ -1,59 +1,48 @@
|
|
1
1
|
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{zendesk_remote_auth}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "1.0.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date = %q{
|
11
|
+
s.authors = [%q{Tobias Crawley}]
|
12
|
+
s.date = %q{2011-09-11}
|
13
13
|
s.description = %q{See the README.}
|
14
14
|
s.email = %q{tcrawley@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
|
17
|
+
"README.rdoc"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
"test/test_helper.rb",
|
28
|
-
"test/zendesk_remote_auth_test.rb",
|
29
|
-
"zendesk_remote_auth.gemspec"
|
21
|
+
"LICENSE",
|
22
|
+
"README.rdoc",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION",
|
25
|
+
"lib/zendesk_remote_auth.rb",
|
26
|
+
"zendesk_remote_auth.gemspec"
|
30
27
|
]
|
31
28
|
s.homepage = %q{http://github.com/tobias/zendesk_remote_auth}
|
32
|
-
s.
|
33
|
-
s.
|
34
|
-
s.rubygems_version = %q{1.3.5}
|
29
|
+
s.require_paths = [%q{lib}]
|
30
|
+
s.rubygems_version = %q{1.8.4}
|
35
31
|
s.summary = %q{Helper for Zendesk SSO/remote authentication}
|
36
|
-
s.test_files = [
|
37
|
-
"test/test_helper.rb",
|
38
|
-
"test/zendesk_remote_auth_test.rb"
|
39
|
-
]
|
40
32
|
|
41
33
|
if s.respond_to? :specification_version then
|
42
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
43
34
|
s.specification_version = 3
|
44
35
|
|
45
|
-
if Gem::Version.new(Gem::
|
46
|
-
s.
|
47
|
-
s.add_development_dependency(%q<
|
48
|
-
s.add_development_dependency(%q<matchy>, [">= 0"])
|
36
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
37
|
+
s.add_runtime_dependency(%q<active_support>, [">= 3.0.0"])
|
38
|
+
s.add_development_dependency(%q<rspec>, [">= 2.6.0"])
|
49
39
|
else
|
50
|
-
s.add_dependency(%q<
|
51
|
-
s.add_dependency(%q<
|
52
|
-
s.add_dependency(%q<matchy>, [">= 0"])
|
40
|
+
s.add_dependency(%q<active_support>, [">= 3.0.0"])
|
41
|
+
s.add_dependency(%q<rspec>, [">= 2.6.0"])
|
53
42
|
end
|
54
43
|
else
|
55
|
-
s.add_dependency(%q<
|
56
|
-
s.add_dependency(%q<
|
57
|
-
s.add_dependency(%q<matchy>, [">= 0"])
|
44
|
+
s.add_dependency(%q<active_support>, [">= 3.0.0"])
|
45
|
+
s.add_dependency(%q<rspec>, [">= 2.6.0"])
|
58
46
|
end
|
59
47
|
end
|
48
|
+
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zendesk_remote_auth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 23
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 1.0.0
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Tobias Crawley
|
@@ -9,39 +15,40 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date:
|
13
|
-
default_executable:
|
18
|
+
date: 2011-09-11 00:00:00 Z
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
17
|
-
|
18
|
-
|
19
|
-
|
21
|
+
name: active_support
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
20
25
|
requirements:
|
21
26
|
- - ">="
|
22
27
|
- !ruby/object:Gem::Version
|
23
|
-
|
24
|
-
|
28
|
+
hash: 7
|
29
|
+
segments:
|
30
|
+
- 3
|
31
|
+
- 0
|
32
|
+
- 0
|
33
|
+
version: 3.0.0
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
|
-
name:
|
27
|
-
|
28
|
-
|
29
|
-
|
37
|
+
name: rspec
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
30
41
|
requirements:
|
31
42
|
- - ">="
|
32
43
|
- !ruby/object:Gem::Version
|
33
|
-
|
34
|
-
|
35
|
-
-
|
36
|
-
|
44
|
+
hash: 23
|
45
|
+
segments:
|
46
|
+
- 2
|
47
|
+
- 6
|
48
|
+
- 0
|
49
|
+
version: 2.6.0
|
37
50
|
type: :development
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: "0"
|
44
|
-
version:
|
51
|
+
version_requirements: *id002
|
45
52
|
description: See the README.
|
46
53
|
email: tcrawley@gmail.com
|
47
54
|
executables: []
|
@@ -53,43 +60,46 @@ extra_rdoc_files:
|
|
53
60
|
- README.rdoc
|
54
61
|
files:
|
55
62
|
- .document
|
56
|
-
- .gitignore
|
57
63
|
- LICENSE
|
58
64
|
- README.rdoc
|
59
65
|
- Rakefile
|
60
66
|
- VERSION
|
61
67
|
- lib/zendesk_remote_auth.rb
|
62
|
-
-
|
63
|
-
-
|
68
|
+
- spec/spec_helper.rb
|
69
|
+
- spec/zendesk_remote_auth_spec.rb
|
64
70
|
- zendesk_remote_auth.gemspec
|
65
|
-
has_rdoc: true
|
66
71
|
homepage: http://github.com/tobias/zendesk_remote_auth
|
67
72
|
licenses: []
|
68
73
|
|
69
74
|
post_install_message:
|
70
|
-
rdoc_options:
|
71
|
-
|
75
|
+
rdoc_options: []
|
76
|
+
|
72
77
|
require_paths:
|
73
78
|
- lib
|
74
79
|
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
75
81
|
requirements:
|
76
82
|
- - ">="
|
77
83
|
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
85
|
+
segments:
|
86
|
+
- 0
|
78
87
|
version: "0"
|
79
|
-
version:
|
80
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
81
90
|
requirements:
|
82
91
|
- - ">="
|
83
92
|
- !ruby/object:Gem::Version
|
93
|
+
hash: 3
|
94
|
+
segments:
|
95
|
+
- 0
|
84
96
|
version: "0"
|
85
|
-
version:
|
86
97
|
requirements: []
|
87
98
|
|
88
99
|
rubyforge_project:
|
89
|
-
rubygems_version: 1.
|
100
|
+
rubygems_version: 1.8.4
|
90
101
|
signing_key:
|
91
102
|
specification_version: 3
|
92
103
|
summary: Helper for Zendesk SSO/remote authentication
|
93
|
-
test_files:
|
94
|
-
|
95
|
-
- test/zendesk_remote_auth_test.rb
|
104
|
+
test_files: []
|
105
|
+
|
@@ -1,103 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class ZendeskRemoteAuthTest < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
@auth = Object.new
|
7
|
-
@auth.extend(Zendesk::RemoteAuthHelper)
|
8
|
-
end
|
9
|
-
|
10
|
-
context 'RemoteAuth' do
|
11
|
-
setup do
|
12
|
-
Zendesk::RemoteAuth.token = Zendesk::RemoteAuth.auth_url = nil
|
13
|
-
end
|
14
|
-
|
15
|
-
should 'raise exception if token is not set' do
|
16
|
-
assert_raise ArgumentError do
|
17
|
-
Zendesk::RemoteAuth.token
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
should 'return the token without exception if it is set' do
|
22
|
-
Zendesk::RemoteAuth.token = 'blah'
|
23
|
-
Zendesk::RemoteAuth.token.should == 'blah'
|
24
|
-
end
|
25
|
-
|
26
|
-
|
27
|
-
should 'raise exception if auth_url is not set' do
|
28
|
-
assert_raise ArgumentError do
|
29
|
-
Zendesk::RemoteAuth.auth_url
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
should 'return the auth_url without exception if it is set' do
|
34
|
-
Zendesk::RemoteAuth.auth_url = 'blah'
|
35
|
-
Zendesk::RemoteAuth.auth_url.should == 'blah'
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
|
40
|
-
context 'url generation' do
|
41
|
-
setup do
|
42
|
-
Zendesk::RemoteAuth.token = 'the_token'
|
43
|
-
Zendesk::RemoteAuth.auth_url = 'the_url'
|
44
|
-
@valid_params = { :email => 'test@example.com', :name => 'blah'}
|
45
|
-
end
|
46
|
-
|
47
|
-
context 'required fields' do
|
48
|
-
should 'raise an argument error the name is not provided' do
|
49
|
-
assert_raise ArgumentError do
|
50
|
-
@valid_params.delete(:name)
|
51
|
-
@auth.zendesk_remote_auth_url(@valid_params)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
should 'raise an argument error the email is not provided' do
|
56
|
-
assert_raise ArgumentError do
|
57
|
-
@valid_params.delete(:email)
|
58
|
-
@auth.zendesk_remote_auth_url(@valid_params)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
63
|
-
|
64
|
-
should 'return a url that starts with the auth_url' do
|
65
|
-
@auth.zendesk_remote_auth_url(@valid_params)
|
66
|
-
end
|
67
|
-
|
68
|
-
should 'have an empty hash param if external_id not provided' do
|
69
|
-
@auth.zendesk_remote_auth_url(@valid_params).should =~ /hash=(&|$)/
|
70
|
-
end
|
71
|
-
|
72
|
-
should 'have a hash param if external_id provided' do
|
73
|
-
@auth.zendesk_remote_auth_url(@valid_params.merge(:external_id => 'id')).should_not =~ /hash=(&|$)/
|
74
|
-
end
|
75
|
-
|
76
|
-
context 'given a user object' do
|
77
|
-
setup do
|
78
|
-
@user = mock
|
79
|
-
@user.expects(:name).returns('a_name')
|
80
|
-
@user.expects(:email).returns('an_email')
|
81
|
-
end
|
82
|
-
|
83
|
-
should 'pull the name from the user' do
|
84
|
-
@auth.zendesk_remote_auth_url(@user).should =~ /name=a_name/
|
85
|
-
end
|
86
|
-
|
87
|
-
should 'pull the email from the user' do
|
88
|
-
@auth.zendesk_remote_auth_url(@user).should =~ /email=an_email/
|
89
|
-
end
|
90
|
-
|
91
|
-
should 'pull the id from the user' do
|
92
|
-
@user.expects(:id).returns('an_id')
|
93
|
-
@auth.zendesk_remote_auth_url(@user).should =~ /external_id=an_id/
|
94
|
-
end
|
95
|
-
|
96
|
-
should 'pull the organization from the user if available' do
|
97
|
-
@user.expects(:zendesk_organization).returns('org')
|
98
|
-
@auth.zendesk_remote_auth_url(@user).should =~ /organization=org/
|
99
|
-
end
|
100
|
-
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|