oauth-plugin 0.3.14 → 0.4.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. data/CHANGELOG +10 -0
  2. data/README.rdoc +44 -9
  3. data/Rakefile +2 -2
  4. data/VERSION +1 -1
  5. data/generators/oauth_consumer/templates/migration.rb +1 -1
  6. data/generators/oauth_provider/oauth_provider_generator.rb +6 -0
  7. data/generators/oauth_provider/templates/access_token.rb +2 -2
  8. data/generators/oauth_provider/templates/client_application.rb +8 -6
  9. data/generators/oauth_provider/templates/client_applications.yml +6 -6
  10. data/generators/oauth_provider/templates/clients_controller_spec.rb +130 -193
  11. data/generators/oauth_provider/templates/controller.rb +12 -0
  12. data/generators/oauth_provider/templates/controller_spec.rb +762 -291
  13. data/generators/oauth_provider/templates/controller_spec_helper.rb +49 -63
  14. data/generators/oauth_provider/templates/migration.rb +6 -5
  15. data/generators/oauth_provider/templates/oauth2_authorize.html.erb +16 -0
  16. data/generators/oauth_provider/templates/oauth2_authorize.html.haml +17 -0
  17. data/generators/oauth_provider/templates/oauth2_token.rb +6 -0
  18. data/generators/oauth_provider/templates/oauth2_token_spec.rb +29 -0
  19. data/generators/oauth_provider/templates/oauth2_verifier.rb +28 -0
  20. data/generators/oauth_provider/templates/oauth2_verifier_spec.rb +54 -0
  21. data/generators/oauth_provider/templates/oauth_nonce_test.rb +1 -1
  22. data/generators/oauth_provider/templates/oauth_token.rb +3 -4
  23. data/generators/oauth_provider/templates/request_token.rb +1 -1
  24. data/lib/generators/active_record/oauth_consumer_generator.rb +33 -0
  25. data/lib/generators/active_record/oauth_consumer_templates/consumer_token.rb +5 -0
  26. data/lib/generators/active_record/oauth_consumer_templates/migration.rb +20 -0
  27. data/lib/generators/active_record/oauth_provider_generator.rb +39 -0
  28. data/lib/generators/active_record/oauth_provider_templates/access_token.rb +16 -0
  29. data/lib/generators/active_record/oauth_provider_templates/client_application.rb +57 -0
  30. data/lib/generators/active_record/oauth_provider_templates/migration.rb +47 -0
  31. data/lib/generators/active_record/oauth_provider_templates/oauth2_token.rb +5 -0
  32. data/lib/generators/active_record/oauth_provider_templates/oauth2_verifier.rb +28 -0
  33. data/lib/generators/active_record/oauth_provider_templates/oauth_nonce.rb +13 -0
  34. data/lib/generators/active_record/oauth_provider_templates/oauth_token.rb +30 -0
  35. data/lib/generators/active_record/oauth_provider_templates/request_token.rb +40 -0
  36. data/lib/generators/erb/oauth_consumer_generator.rb +14 -0
  37. data/lib/generators/erb/oauth_consumer_templates/index.html.erb +29 -0
  38. data/lib/generators/erb/oauth_consumer_templates/show.html.erb +7 -0
  39. data/lib/generators/erb/oauth_provider_generator.rb +21 -0
  40. data/lib/generators/erb/oauth_provider_templates/_form.html.erb +17 -0
  41. data/lib/generators/erb/oauth_provider_templates/authorize.html.erb +14 -0
  42. data/lib/generators/erb/oauth_provider_templates/authorize_failure.html.erb +1 -0
  43. data/lib/generators/erb/oauth_provider_templates/authorize_success.html.erb +1 -0
  44. data/lib/generators/erb/oauth_provider_templates/edit.html.erb +7 -0
  45. data/lib/generators/erb/oauth_provider_templates/index.html.erb +43 -0
  46. data/lib/generators/erb/oauth_provider_templates/new.html.erb +5 -0
  47. data/lib/generators/erb/oauth_provider_templates/oauth2_authorize.html.erb +16 -0
  48. data/lib/generators/erb/oauth_provider_templates/show.html.erb +27 -0
  49. data/lib/generators/haml/oauth_consumer_generator.rb +21 -0
  50. data/lib/generators/haml/oauth_consumer_templates/index.html.haml +18 -0
  51. data/lib/generators/haml/oauth_consumer_templates/show.html.haml +8 -0
  52. data/lib/generators/haml/oauth_provider_generator.rb +28 -0
  53. data/lib/generators/haml/oauth_provider_templates/_form.html.haml +21 -0
  54. data/lib/generators/haml/oauth_provider_templates/authorize.html.haml +16 -0
  55. data/lib/generators/haml/oauth_provider_templates/authorize_failure.html.haml +1 -0
  56. data/lib/generators/haml/oauth_provider_templates/authorize_success.html.haml +1 -0
  57. data/lib/generators/haml/oauth_provider_templates/edit.html.haml +4 -0
  58. data/lib/generators/haml/oauth_provider_templates/index.html.haml +39 -0
  59. data/lib/generators/haml/oauth_provider_templates/new.html.haml +5 -0
  60. data/lib/generators/haml/oauth_provider_templates/oauth2_authorize.html.haml +17 -0
  61. data/lib/generators/haml/oauth_provider_templates/show.html.haml +30 -0
  62. data/lib/generators/mongoid/oauth_consumer_generator.rb +15 -0
  63. data/lib/generators/mongoid/oauth_consumer_templates/consumer_token.rb +14 -0
  64. data/lib/generators/mongoid/oauth_provider_generator.rb +21 -0
  65. data/lib/generators/mongoid/oauth_provider_templates/access_token.rb +16 -0
  66. data/lib/generators/mongoid/oauth_provider_templates/client_application.rb +71 -0
  67. data/lib/generators/mongoid/oauth_provider_templates/oauth2_token.rb +5 -0
  68. data/lib/generators/mongoid/oauth_provider_templates/oauth2_verifier.rb +25 -0
  69. data/lib/generators/mongoid/oauth_provider_templates/oauth_nonce.rb +24 -0
  70. data/lib/generators/mongoid/oauth_provider_templates/oauth_token.rb +44 -0
  71. data/lib/generators/mongoid/oauth_provider_templates/request_token.rb +36 -0
  72. data/lib/generators/oauth_consumer/USAGE +8 -0
  73. data/lib/generators/oauth_consumer/oauth_consumer_generator.rb +27 -0
  74. data/lib/generators/oauth_consumer/templates/controller.rb +19 -0
  75. data/lib/generators/oauth_consumer/templates/oauth_config.rb +46 -0
  76. data/lib/generators/oauth_inflections.rb +6 -0
  77. data/lib/generators/oauth_plugin.rb +0 -0
  78. data/lib/generators/oauth_provider/USAGE +18 -0
  79. data/lib/generators/oauth_provider/oauth_provider_generator.rb +47 -0
  80. data/lib/generators/oauth_provider/templates/clients_controller.rb +52 -0
  81. data/lib/generators/oauth_provider/templates/controller.rb +23 -0
  82. data/lib/generators/rspec/oauth_provider_generator.rb +39 -0
  83. data/lib/generators/rspec/templates/client_application_spec.rb +29 -0
  84. data/lib/generators/rspec/templates/client_applications.yml +23 -0
  85. data/lib/generators/rspec/templates/clients_controller_spec.rb +176 -0
  86. data/lib/generators/rspec/templates/controller_spec.rb +838 -0
  87. data/lib/generators/rspec/templates/controller_spec_helper.rb +66 -0
  88. data/lib/generators/rspec/templates/oauth2_token_spec.rb +29 -0
  89. data/lib/generators/rspec/templates/oauth2_verifier_spec.rb +54 -0
  90. data/lib/generators/rspec/templates/oauth_nonce_spec.rb +24 -0
  91. data/lib/generators/rspec/templates/oauth_nonces.yml +13 -0
  92. data/lib/generators/rspec/templates/oauth_token_spec.rb +309 -0
  93. data/lib/generators/rspec/templates/oauth_tokens.yml +17 -0
  94. data/lib/generators/test_unit/oauth_provider_generator.rb +37 -0
  95. data/lib/generators/test_unit/templates/client_application_test.rb +42 -0
  96. data/lib/generators/test_unit/templates/client_applications.yml +23 -0
  97. data/lib/generators/test_unit/templates/clients_controller_test.rb +280 -0
  98. data/lib/generators/test_unit/templates/controller_test.rb +310 -0
  99. data/lib/generators/test_unit/templates/controller_test_helper.rb +115 -0
  100. data/lib/generators/test_unit/templates/oauth_nonce_test.rb +26 -0
  101. data/lib/generators/test_unit/templates/oauth_nonces.yml +13 -0
  102. data/lib/generators/test_unit/templates/oauth_token_test.rb +57 -0
  103. data/lib/generators/test_unit/templates/oauth_tokens.yml +17 -0
  104. data/lib/oauth/controllers/application_controller_methods.rb +169 -66
  105. data/lib/oauth/controllers/provider_controller.rb +154 -38
  106. data/lib/oauth/models/consumers/service_loader.rb +2 -0
  107. data/lib/oauth/models/consumers/token.rb +0 -1
  108. data/oauth-plugin.gemspec +97 -10
  109. data/rails/init.rb +6 -2
  110. metadata +119 -12
@@ -0,0 +1,66 @@
1
+ require 'oauth/client/action_controller_request'
2
+ module OAuthControllerSpecHelper
3
+
4
+ def current_user
5
+ @user||=users(:aaron)
6
+ end
7
+
8
+ def current_client_application
9
+ @client_application||=client_applications(:one)
10
+ end
11
+
12
+ def access_token
13
+ @access_token||=AccessToken.create :user=>current_user,:client_application=>current_client_application
14
+ end
15
+
16
+ def request_token
17
+ @request_token||=RequestToken.create :client_application=>current_client_application, :callback_url=>"http://application/callback"
18
+ end
19
+
20
+ def consumer_request_token
21
+ OAuth::RequestToken.new current_consumer,request_token.token,request_token.secret
22
+ end
23
+
24
+ def consumer_access_token
25
+ OAuth::AccessToken.new current_consumer,access_token.token,access_token.secret
26
+ end
27
+
28
+ if defined?(Devise)
29
+ include Devise::TestHelpers
30
+ def login
31
+ sign_in :user, current_user
32
+ end
33
+ else
34
+ def login
35
+ controller.stub!(:current_user).and_return(current_user)
36
+ end
37
+ end
38
+
39
+ def login_as_application_owner
40
+ @user = users(:quentin)
41
+ login
42
+ end
43
+
44
+ def current_consumer
45
+ @consumer ||= OAuth::Consumer.new(current_client_application.key,current_client_application.secret,{:site => "http://test.host"})
46
+ end
47
+
48
+ def setup_oauth_for_user
49
+ login
50
+ end
51
+
52
+ def sign_request_with_oauth(token=nil,options={})
53
+ ActionController::TestRequest.use_oauth=true
54
+ @request.configure_oauth(current_consumer,token,options)
55
+ end
56
+
57
+ def two_legged_sign_request_with_oauth(consumer=nil,options={})
58
+ ActionController::TestRequest.use_oauth=true
59
+ @request.configure_oauth(consumer,nil,options)
60
+ end
61
+
62
+ def add_oauth2_token_header(token,options={})
63
+ request.env['HTTP_AUTHORIZATION'] = "OAuth #{token.token}"
64
+ end
65
+
66
+ end
@@ -0,0 +1,29 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Oauth2Token do
4
+ fixtures :client_applications, :users, :oauth_tokens
5
+ before(:each) do
6
+ @token = Oauth2Token.create :client_application => client_applications(:one), :user=>users(:aaron)
7
+ end
8
+
9
+ it "should be valid" do
10
+ @token.should be_valid
11
+ end
12
+
13
+ it "should have a token" do
14
+ @token.token.should_not be_nil
15
+ end
16
+
17
+ it "should have a secret" do
18
+ @token.secret.should_not be_nil
19
+ end
20
+
21
+ it "should be authorized" do
22
+ @token.should be_authorized
23
+ end
24
+
25
+ it "should not be invalidated" do
26
+ @token.should_not be_invalidated
27
+ end
28
+
29
+ end
@@ -0,0 +1,54 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe Oauth2Verifier do
4
+ fixtures :client_applications, :users, :oauth_tokens
5
+ before(:each) do
6
+ @verifier = Oauth2Verifier.create :client_application => client_applications(:one), :user=>users(:aaron)
7
+ end
8
+
9
+ it "should be valid" do
10
+ @verifier.should be_valid
11
+ end
12
+
13
+ it "should have a code" do
14
+ @verifier.code.should_not be_nil
15
+ end
16
+
17
+ it "should not have a secret" do
18
+ @verifier.secret.should be_nil
19
+ end
20
+
21
+ it "should be authorized" do
22
+ @verifier.should be_authorized
23
+ end
24
+
25
+ it "should not be invalidated" do
26
+ @verifier.should_not be_invalidated
27
+ end
28
+
29
+ describe "exchange for oauth2 token" do
30
+ before(:each) do
31
+ @token = @verifier.exchange!
32
+ end
33
+
34
+ it "should invalidate verifier" do
35
+ @verifier.should be_invalidated
36
+ end
37
+
38
+ it "should set user on token" do
39
+ @token.user.should==@verifier.user
40
+ end
41
+
42
+ it "should set client application on token" do
43
+ @token.client_application.should == @verifier.client_application
44
+ end
45
+
46
+ it "should be authorized" do
47
+ @token.should be_authorized
48
+ end
49
+
50
+ it "should not be invalidated" do
51
+ @token.should_not be_invalidated
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,24 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+ require 'oauth/helper'
3
+ describe OauthNonce do
4
+ include OAuth::Helper
5
+ before(:each) do
6
+ @oauth_nonce = OauthNonce.remember(generate_key, Time.now.to_i)
7
+ end
8
+
9
+ it "should be valid" do
10
+ @oauth_nonce.should be_valid
11
+ end
12
+
13
+ it "should not have errors" do
14
+ @oauth_nonce.errors.full_messages.should == []
15
+ end
16
+
17
+ it "should not be a new record" do
18
+ @oauth_nonce.should_not be_new_record
19
+ end
20
+
21
+ it "should not allow a second one with the same values" do
22
+ OauthNonce.remember(@oauth_nonce.nonce,@oauth_nonce.timestamp).should == false
23
+ end
24
+ end
@@ -0,0 +1,13 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ nonce: a_nonce
5
+ timestamp: 1
6
+ created_at: 2007-11-25 17:27:04
7
+ updated_at: 2007-11-25 17:27:04
8
+ two:
9
+ id: 2
10
+ nonce: b_nonce
11
+ timestamp: 2
12
+ created_at: 2007-11-25 17:27:04
13
+ updated_at: 2007-11-25 17:27:04
@@ -0,0 +1,309 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe RequestToken do
4
+ fixtures :client_applications, :users, :oauth_tokens
5
+ before(:each) do
6
+ @token = RequestToken.create :client_application => client_applications(:one)
7
+ end
8
+
9
+ it "should be valid" do
10
+ @token.should be_valid
11
+ end
12
+
13
+ it "should not have errors" do
14
+ @token.errors.should_not == []
15
+ end
16
+
17
+ it "should have a token" do
18
+ @token.token.should_not be_nil
19
+ end
20
+
21
+ it "should have a secret" do
22
+ @token.secret.should_not be_nil
23
+ end
24
+
25
+ it "should not be authorized" do
26
+ @token.should_not be_authorized
27
+ end
28
+
29
+ it "should not be invalidated" do
30
+ @token.should_not be_invalidated
31
+ end
32
+
33
+ it "should not have a verifier" do
34
+ @token.verifier.should be_nil
35
+ end
36
+
37
+ it "should not be oob" do
38
+ @token.should_not be_oob
39
+ end
40
+
41
+ describe "OAuth 1.0a" do
42
+
43
+ describe "with provided callback" do
44
+ before(:each) do
45
+ @token.callback_url="http://test.com/callback"
46
+ end
47
+
48
+ it "should not be oauth10" do
49
+ @token.should_not be_oauth10
50
+ end
51
+
52
+ it "should not be oob" do
53
+ @token.should_not be_oob
54
+ end
55
+
56
+ describe "authorize request" do
57
+ before(:each) do
58
+ @token.authorize!(users(:quentin))
59
+ end
60
+
61
+ it "should be authorized" do
62
+ @token.should be_authorized
63
+ end
64
+
65
+ it "should have authorized at" do
66
+ @token.authorized_at.should_not be_nil
67
+ end
68
+
69
+ it "should have user set" do
70
+ @token.user.should == users(:quentin)
71
+ end
72
+
73
+ it "should have verifier" do
74
+ @token.verifier.should_not be_nil
75
+ end
76
+
77
+ describe "exchange for access token" do
78
+
79
+ before(:each) do
80
+ @token.provided_oauth_verifier=@token.verifier
81
+ @access = @token.exchange!
82
+ end
83
+
84
+ it "should be valid" do
85
+ @access.should be_valid
86
+ end
87
+
88
+ it "should have no error messages" do
89
+ @access.errors.full_messages.should==[]
90
+ end
91
+
92
+ it "should invalidate request token" do
93
+ @token.should be_invalidated
94
+ end
95
+
96
+ it "should set user on access token" do
97
+ @access.user.should == users(:quentin)
98
+ end
99
+
100
+ it "should authorize accesstoken" do
101
+ @access.should be_authorized
102
+ end
103
+ end
104
+
105
+ describe "attempt exchange with invalid verifier (OAuth 1.0a)" do
106
+
107
+ before(:each) do
108
+ @value = @token.exchange!
109
+ end
110
+
111
+ it "should return false" do
112
+ @value.should==false
113
+ end
114
+
115
+ it "should not invalidate request token" do
116
+ @token.should_not be_invalidated
117
+ end
118
+ end
119
+
120
+ end
121
+
122
+ describe "attempt exchange with out authorization" do
123
+
124
+ before(:each) do
125
+ @value = @token.exchange!
126
+ end
127
+
128
+ it "should return false" do
129
+ @value.should==false
130
+ end
131
+
132
+ it "should not invalidate request token" do
133
+ @token.should_not be_invalidated
134
+ end
135
+ end
136
+
137
+ it "should return 1.0a style to_query" do
138
+ @token.to_query.should=="oauth_token=#{@token.token}&oauth_token_secret=#{@token.secret}&oauth_callback_confirmed=true"
139
+ end
140
+
141
+ end
142
+
143
+ describe "with oob callback" do
144
+ before(:each) do
145
+ @token.callback_url='oob'
146
+ end
147
+
148
+ it "should not be oauth10" do
149
+ @token.should_not be_oauth10
150
+ end
151
+
152
+ it "should be oob" do
153
+ @token.should be_oob
154
+ end
155
+
156
+ describe "authorize request" do
157
+ before(:each) do
158
+ @token.authorize!(users(:quentin))
159
+ end
160
+
161
+ it "should be authorized" do
162
+ @token.should be_authorized
163
+ end
164
+
165
+ it "should have authorized at" do
166
+ @token.authorized_at.should_not be_nil
167
+ end
168
+
169
+ it "should have user set" do
170
+ @token.user.should == users(:quentin)
171
+ end
172
+
173
+ it "should have verifier" do
174
+ @token.verifier.should_not be_nil
175
+ end
176
+
177
+ describe "exchange for access token" do
178
+
179
+ before(:each) do
180
+ @token.provided_oauth_verifier=@token.verifier
181
+ @access = @token.exchange!
182
+ end
183
+
184
+ it "should invalidate request token" do
185
+ @token.should be_invalidated
186
+ end
187
+
188
+ it "should set user on access token" do
189
+ @access.user.should == users(:quentin)
190
+ end
191
+
192
+ it "should authorize accesstoken" do
193
+ @access.should be_authorized
194
+ end
195
+ end
196
+
197
+ describe "attempt exchange with invalid verifier (OAuth 1.0a)" do
198
+
199
+ before(:each) do
200
+ @value = @token.exchange!
201
+ end
202
+
203
+ it "should return false" do
204
+ @value.should==false
205
+ end
206
+
207
+ it "should not invalidate request token" do
208
+ @token.should_not be_invalidated
209
+ end
210
+ end
211
+
212
+ end
213
+
214
+ describe "attempt exchange with out authorization invalid verifier" do
215
+
216
+ before(:each) do
217
+ @value = @token.exchange!
218
+ end
219
+
220
+ it "should return false" do
221
+ @value.should==false
222
+ end
223
+
224
+ it "should not invalidate request token" do
225
+ @token.should_not be_invalidated
226
+ end
227
+ end
228
+
229
+ it "should return 1.0 style to_query" do
230
+ @token.to_query.should=="oauth_token=#{@token.token}&oauth_token_secret=#{@token.secret}&oauth_callback_confirmed=true"
231
+ end
232
+ end
233
+ end
234
+
235
+ if defined? OAUTH_10_SUPPORT && OAUTH_10_SUPPORT
236
+ describe "OAuth 1.0" do
237
+
238
+ it "should be oauth10" do
239
+ @token.should be_oauth10
240
+ end
241
+
242
+ it "should not be oob" do
243
+ @token.should_not be_oob
244
+ end
245
+
246
+ describe "authorize request" do
247
+ before(:each) do
248
+ @token.authorize!(users(:quentin))
249
+ end
250
+
251
+ it "should be authorized" do
252
+ @token.should be_authorized
253
+ end
254
+
255
+ it "should have authorized at" do
256
+ @token.authorized_at.should_not be_nil
257
+ end
258
+
259
+ it "should have user set" do
260
+ @token.user.should == users(:quentin)
261
+ end
262
+
263
+ it "should not have verifier" do
264
+ @token.verifier.should be_nil
265
+ end
266
+
267
+ describe "exchange for access token" do
268
+
269
+ before(:each) do
270
+ @access = @token.exchange!
271
+ end
272
+
273
+ it "should invalidate request token" do
274
+ @token.should be_invalidated
275
+ end
276
+
277
+ it "should set user on access token" do
278
+ @access.user.should == users(:quentin)
279
+ end
280
+
281
+ it "should authorize accesstoken" do
282
+ @access.should be_authorized
283
+ end
284
+ end
285
+
286
+ end
287
+
288
+ describe "attempt exchange with out authorization" do
289
+
290
+ before(:each) do
291
+ @value = @token.exchange!
292
+ end
293
+
294
+ it "should return false" do
295
+ @value.should==false
296
+ end
297
+
298
+ it "should not invalidate request token" do
299
+ @token.should_not be_invalidated
300
+ end
301
+ end
302
+
303
+ it "should return 1.0 style to_query" do
304
+ @token.to_query.should=="oauth_token=#{@token.token}&oauth_token_secret=#{@token.secret}"
305
+ end
306
+
307
+ end
308
+ end
309
+ end
@@ -0,0 +1,17 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ user_id: 1
5
+ client_application_id: 1
6
+ token: one
7
+ secret: MyString
8
+ created_at: 2007-11-19 07:31:46
9
+ updated_at: 2007-11-19 07:31:46
10
+ two:
11
+ id: 2
12
+ user_id: 1
13
+ client_application_id: 1
14
+ token: two
15
+ secret: MyString
16
+ created_at: 2007-11-19 07:31:46
17
+ updated_at: 2007-11-19 07:31:46
@@ -0,0 +1,37 @@
1
+ require 'rails/generators/test_unit'
2
+
3
+ module TestUnit
4
+ module Generators
5
+ class OauthProviderGenerator < Base
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ argument :name, :type => :string, :default => 'Oauth'
9
+ class_option :fixture, :type => :boolean
10
+
11
+ def copy_controller_test_files
12
+ template 'controller_test_helper.rb',
13
+ File.join('test', class_path, "#{file_name}_controller_test_helper.rb")
14
+ template 'controller_test.rb',
15
+ File.join('test/functional', class_path, "#{file_name}_controller_test.rb")
16
+ template 'clients_controller_test.rb',
17
+ File.join('test/functional', class_path, "#{file_name}_clients_controller_test.rb")
18
+ end
19
+
20
+ def copy_models_test_files
21
+ template 'client_application_test.rb', File.join('test/unit', 'client_application_test.rb')
22
+ template 'oauth_token_test.rb', File.join('test/unit', 'oauth_token_test.rb')
23
+ template 'oauth_nonce_test.rb', File.join('test/unit', 'oauth_nonce_test.rb')
24
+ end
25
+
26
+ hook_for :fixture_replacement
27
+
28
+ def create_fixture_file
29
+ if options[:fixtures] && options[:fixture_replacement].nil?
30
+ template 'client_applications.yml', File.join('test/fixtures', 'client_applications.yml')
31
+ template 'oauth_tokens.yml', File.join('test/fixtures', 'oauth_tokens.yml')
32
+ template 'oauth_nonces.yml', File.join('test/fixtures', 'oauth_nonces.yml')
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,42 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ module OAuthHelpers
3
+
4
+ def create_consumer
5
+ @consumer=OAuth::Consumer.new(@application.key,@application.secret,
6
+ {
7
+ :site=>@application.oauth_server.base_url
8
+ })
9
+ end
10
+
11
+ end
12
+
13
+ class ClientApplicationTest < ActiveSupport::TestCase
14
+ include OAuthHelpers
15
+ fixtures :users,:client_applications,:oauth_tokens
16
+
17
+ def setup
18
+ @application = ClientApplication.create :name=>"Agree2",:url=>"http://agree2.com",:user=>users(:quentin)
19
+ create_consumer
20
+ end
21
+
22
+ def test_should_be_valid
23
+ assert @application.valid?
24
+ end
25
+
26
+
27
+ def test_should_not_have_errors
28
+ assert_equal [], @application.errors.full_messages
29
+ end
30
+
31
+ def test_should_have_key_and_secret
32
+ assert_not_nil @application.key
33
+ assert_not_nil @application.secret
34
+ end
35
+
36
+ def test_should_have_credentials
37
+ assert_not_nil @application.credentials
38
+ assert_equal @application.key, @application.credentials.key
39
+ assert_equal @application.secret, @application.credentials.secret
40
+ end
41
+
42
+ end
@@ -0,0 +1,23 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ name: MyString
5
+ url: http://test.com
6
+ support_url: http://test.com/support
7
+ callback_url: http://test.com/callback
8
+ key: one_key
9
+ secret: MyString
10
+ user_id: 1
11
+ created_at: 2007-11-17 16:56:51
12
+ updated_at: 2007-11-17 16:56:51
13
+ two:
14
+ id: 2
15
+ name: MyString
16
+ url: http://test.com
17
+ support_url: http://test.com/support
18
+ callback_url: http://test.com/callback
19
+ key: two_key
20
+ secret: MyString
21
+ user_id: 1
22
+ created_at: 2007-11-17 16:56:51
23
+ updated_at: 2007-11-17 16:56:51