rack-oauth 0.1.2 → 0.1.3
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 +13 -10
- data/Rakefile +2 -1
- data/VERSION +1 -1
- data/examples/rails-example/app/controllers/application_controller.rb +6 -0
- data/examples/rails-example/app/controllers/welcome_controller.rb +1 -4
- data/examples/rails-example/config/environment.rb +3 -1
- data/examples/rails-example/config/environments/test.rb +1 -0
- data/examples/rails-example/log/development.log +76 -0
- data/examples/rails-example/log/test.log +159 -0
- data/examples/rails-example/spec/integration/login_spec.rb +2 -12
- data/examples/rails-example/spec/spec_helper.rb +4 -0
- data/examples/rails-example/tmp/webrat-1257219890.html +211 -0
- data/examples/rails-example/tmp/webrat-1257219947.html +213 -0
- data/examples/rails-example/tmp/webrat-1257219957.html +213 -0
- data/examples/sinatra-twitter.rb +5 -22
- data/lib/rack-oauth.rb +49 -110
- data/spec/sample_sinatra_app_spec.rb +11 -40
- metadata +25 -3
data/README.rdoc
CHANGED
@@ -1,9 +1,3 @@
|
|
1
|
-
== OUT-OF-DATE
|
2
|
-
|
3
|
-
I'll be releasing new documentation shortly ... everything should be *nearly* entirely backwards compatible ...
|
4
|
-
if it's not, I'll document changes you need to make to use 0.2.0
|
5
|
-
|
6
|
-
|
7
1
|
= Rack::OAuth
|
8
2
|
|
9
3
|
Rack::OAuth is a Rack middleware for easily integrating OAuth into your Ruby web applications.
|
@@ -39,11 +33,20 @@ There are a number of defaults that can be overridden. Defaults can be viewed a
|
|
39
33
|
:login => '/path_that_will_goto_oauth_providers_login',
|
40
34
|
:redirect => '/path_to_redirect_to_after_oauth_authorization',
|
41
35
|
:session_key => 'name_of_session_variable_to_store_oauth_user_info_in',
|
42
|
-
:rack_session => 'name_of_rack_session_variable'
|
43
|
-
|
36
|
+
:rack_session => 'name_of_rack_session_variable'
|
37
|
+
|
38
|
+
The important thing to note is that, after you redirect to /oauth_login and the OAuth provider
|
39
|
+
redirects back to your web application at /oauth_complete, you can gain access to the user's
|
40
|
+
access token. This is what lets you make requests to Twitter and whatnot to post tweets or
|
41
|
+
merely get the user's information.
|
42
|
+
|
43
|
+
The easiest way to do this is to include the Rack::OAuth::Methods module in your ApplicationController,
|
44
|
+
if you're using Rails, or your helpers block, if you're using Sinatra or ... wherever. Once you've done
|
45
|
+
that, you can just call #get_access_token to get the access token. For example, if you want to get the
|
46
|
+
user's twitter profile information you can:
|
47
|
+
|
48
|
+
json = get_access_token.get('/account/verify_credentials.json').body
|
44
49
|
|
45
50
|
=== Notes
|
46
51
|
|
47
52
|
Rack::OAuth was created to work with Twitter OAuth and has, thus far, only been tested using Twitter's OAuth. If this doesn't work for you for a different OAuth provider, please let me know! Or, if you patch Rack::OAuth to support another provider, please send me a pull request with the patch.
|
48
|
-
|
49
|
-
Also, I haven't added any specs yet. My bad.
|
data/Rakefile
CHANGED
@@ -15,7 +15,8 @@ begin
|
|
15
15
|
s.description = 'Rack Middleware for OAuth Authorization'
|
16
16
|
s.authors = %w( remi )
|
17
17
|
s.files = FileList['[A-Z]*', '{lib,spec,bin,examples}/**/*']
|
18
|
-
|
18
|
+
s.add_dependency 'oauth'
|
19
|
+
s.add_dependency 'rack'
|
19
20
|
# s.executables << 'script'
|
20
21
|
# s.rubyforge_project = 'gemname'
|
21
22
|
s.extra_rdoc_files = %w( README.rdoc )
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
@@ -16,10 +16,7 @@ class WelcomeController < ApplicationController
|
|
16
16
|
|
17
17
|
# GET /oauth_complete
|
18
18
|
def after_login
|
19
|
-
|
20
|
-
session[:info] = oauth_request_with_access_token oauth_access_token, '/account/verify_credentials.json'
|
21
|
-
end
|
22
|
-
|
19
|
+
session[:info] = get_access_token.get('/account/verify_credentials.json').body
|
23
20
|
redirect_to root_path
|
24
21
|
end
|
25
22
|
|
@@ -9,6 +9,8 @@ require File.join(File.dirname(__FILE__), 'boot')
|
|
9
9
|
require File.dirname(__FILE__) + '/../../../lib/rack-oauth'
|
10
10
|
|
11
11
|
Rails::Initializer.run do |config|
|
12
|
-
config.middleware.use Rack::OAuth, :
|
12
|
+
config.middleware.use Rack::OAuth, :site => 'http://twitter.com',
|
13
|
+
:key => '4JjFmhjfZyQ6rdbiql5A',
|
14
|
+
:secret => 'rv4ZaCgvxVPVjxHIDbMxTGFbIMxUa4KkIdPqL7HmaQo'
|
13
15
|
config.time_zone = 'UTC'
|
14
16
|
end
|
@@ -163,3 +163,79 @@ Completed in 2ms (DB: 0) | 302 Found [http://localhost/oauth_complete]
|
|
163
163
|
|
164
164
|
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 16:51:07) [GET]
|
165
165
|
Completed in 2ms (View: 0, DB: 0) | 200 OK [http://localhost/]
|
166
|
+
|
167
|
+
|
168
|
+
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 18:13:52) [GET]
|
169
|
+
Completed in 5ms (View: 3, DB: 0) | 200 OK [http://localhost/]
|
170
|
+
|
171
|
+
|
172
|
+
Processing WelcomeController#login (for 127.0.0.1 at 2009-11-02 18:13:55) [GET]
|
173
|
+
Redirected to http://localhost:3000/oauth_login
|
174
|
+
Completed in 2ms (DB: 0) | 302 Found [http://localhost/login]
|
175
|
+
/!\ FAILSAFE /!\ Mon Nov 02 18:13:55 -0700 2009
|
176
|
+
Status: 500 Internal Server Error
|
177
|
+
401 Unauthorized
|
178
|
+
/usr/lib/ruby/gems/1.8/gems/oauth-0.3.5/lib/oauth/consumer.rb:199:in `token_request'
|
179
|
+
/usr/lib/ruby/gems/1.8/gems/oauth-0.3.5/lib/oauth/consumer.rb:125:in `get_request_token'
|
180
|
+
/home/remi/projects/remi/rack-oauth/examples/rails-example/config/../../../lib/rack-oauth.rb:226:in `do_login'
|
181
|
+
/home/remi/projects/remi/rack-oauth/examples/rails-example/config/../../../lib/rack-oauth.rb:211:in `call'
|
182
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/head.rb:9:in `call'
|
183
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/methodoverride.rb:24:in `call'
|
184
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/params_parser.rb:15:in `call'
|
185
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/session/cookie_store.rb:93:in `call'
|
186
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/failsafe.rb:26:in `call'
|
187
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
|
188
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `synchronize'
|
189
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
|
190
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:114:in `call'
|
191
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/reloader.rb:34:in `run'
|
192
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:108:in `call'
|
193
|
+
/usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/rails/rack/static.rb:31:in `call'
|
194
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:46:in `call'
|
195
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in `each'
|
196
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in `call'
|
197
|
+
/usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/rails/rack/log_tailer.rb:17:in `call'
|
198
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/content_length.rb:13:in `call'
|
199
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/chunked.rb:15:in `call'
|
200
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:61:in `process'
|
201
|
+
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client'
|
202
|
+
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each'
|
203
|
+
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client'
|
204
|
+
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
|
205
|
+
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize'
|
206
|
+
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new'
|
207
|
+
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
|
208
|
+
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize'
|
209
|
+
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new'
|
210
|
+
/usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run'
|
211
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:34:in `run'
|
212
|
+
/usr/lib/ruby/gems/1.8/gems/rails-2.3.4/lib/commands/server.rb:111
|
213
|
+
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
|
214
|
+
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
|
215
|
+
./script/server:3
|
216
|
+
|
217
|
+
|
218
|
+
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 18:14:47) [GET]
|
219
|
+
Completed in 5ms (View: 2, DB: 0) | 200 OK [http://localhost/]
|
220
|
+
|
221
|
+
|
222
|
+
Processing WelcomeController#login (for 127.0.0.1 at 2009-11-02 18:14:50) [GET]
|
223
|
+
Redirected to http://localhost:3000/oauth_login
|
224
|
+
Completed in 2ms (DB: 0) | 302 Found [http://localhost/login]
|
225
|
+
|
226
|
+
|
227
|
+
Processing WelcomeController#after_login (for 127.0.0.1 at 2009-11-02 18:14:53) [GET]
|
228
|
+
Redirected to http://localhost:3000/
|
229
|
+
Completed in 7ms (DB: 0) | 302 Found [http://localhost/oauth_complete]
|
230
|
+
|
231
|
+
|
232
|
+
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 18:14:54) [GET]
|
233
|
+
Completed in 8ms (View: 1, DB: 0) | 200 OK [http://localhost/]
|
234
|
+
|
235
|
+
|
236
|
+
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 18:15:40) [GET]
|
237
|
+
Completed in 4ms (View: 1, DB: 0) | 200 OK [http://localhost/]
|
238
|
+
|
239
|
+
|
240
|
+
Processing WelcomeController#after_login (for 127.0.0.1 at 2009-11-02 18:16:25) [GET]
|
241
|
+
Completed in 3ms (View: 1, DB: 0) | 200 OK [http://localhost/oauth_complete]
|
@@ -1589,3 +1589,162 @@ REQUESTING PAGE: GET / with {} and HTTP headers {"HTTP_REFERER"=>"http://www.exa
|
|
1589
1589
|
|
1590
1590
|
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 18:10:33) [GET]
|
1591
1591
|
Completed in 1ms (View: 0, DB: 0) | 200 OK [http://www.example.com/]
|
1592
|
+
REQUESTING PAGE: GET / with {} and HTTP headers {}
|
1593
|
+
|
1594
|
+
|
1595
|
+
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 20:44:50) [GET]
|
1596
|
+
|
1597
|
+
NoMethodError (undefined method `logged_in?' for #<WelcomeController:0x7f0aa3be34f8>):
|
1598
|
+
app/controllers/welcome_controller.rb:5:in `index'
|
1599
|
+
webrat (0.4.4) lib/webrat/rails.rb:70:in `send'
|
1600
|
+
webrat (0.4.4) lib/webrat/rails.rb:70:in `do_request'
|
1601
|
+
webrat (0.4.4) lib/webrat/rails.rb:35:in `get'
|
1602
|
+
webrat (0.4.4) lib/webrat/core/session.rb:104:in `send'
|
1603
|
+
webrat (0.4.4) lib/webrat/core/session.rb:104:in `request_page'
|
1604
|
+
webrat (0.4.4) lib/webrat/core/session.rb:205:in `visit'
|
1605
|
+
(eval):2:in `visit'
|
1606
|
+
/spec/integration/login_spec.rb:8
|
1607
|
+
rspec (1.2.8) lib/spec/example/example_methods.rb:40:in `instance_eval'
|
1608
|
+
rspec (1.2.8) lib/spec/example/example_methods.rb:40:in `execute'
|
1609
|
+
/usr/lib/ruby/1.8/timeout.rb:53:in `timeout'
|
1610
|
+
rspec (1.2.8) lib/spec/example/example_methods.rb:37:in `execute'
|
1611
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:207:in `run_examples'
|
1612
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:205:in `each'
|
1613
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:205:in `run_examples'
|
1614
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:103:in `run'
|
1615
|
+
rspec (1.2.8) lib/spec/runner/example_group_runner.rb:23:in `run'
|
1616
|
+
rspec (1.2.8) lib/spec/runner/example_group_runner.rb:22:in `each'
|
1617
|
+
rspec (1.2.8) lib/spec/runner/example_group_runner.rb:22:in `run'
|
1618
|
+
rspec (1.2.8) lib/spec/runner/options.rb:127:in `run_examples'
|
1619
|
+
rspec (1.2.8) lib/spec/runner/command_line.rb:9:in `run'
|
1620
|
+
rspec (1.2.8) bin/spec:4
|
1621
|
+
/usr/bin/spec:19:in `load'
|
1622
|
+
/usr/bin/spec:19
|
1623
|
+
|
1624
|
+
Rendered rescues/_trace (193.6ms)
|
1625
|
+
Rendered rescues/_request_and_response (1.6ms)
|
1626
|
+
Rendering rescues/layout (internal_server_error)
|
1627
|
+
REQUESTING PAGE: GET / with {} and HTTP headers {}
|
1628
|
+
|
1629
|
+
|
1630
|
+
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 20:45:47) [GET]
|
1631
|
+
Completed in 6ms (View: 0, DB: 0) | 200 OK [http://www.example.com/]
|
1632
|
+
REQUESTING PAGE: GET /login with {} and HTTP headers {"HTTP_REFERER"=>"/"}
|
1633
|
+
|
1634
|
+
|
1635
|
+
Processing WelcomeController#login (for 127.0.0.1 at 2009-11-02 20:45:47) [GET]
|
1636
|
+
Redirected to http://www.example.com/oauth_login
|
1637
|
+
Completed in 0ms (DB: 0) | 302 Found [http://www.example.com/login]
|
1638
|
+
REQUESTING PAGE: GET http://www.example.com/oauth_login with {} and HTTP headers {"HTTP_REFERER"=>"/login"}
|
1639
|
+
REQUESTING PAGE: GET /oauth_complete with {} and HTTP headers {"HTTP_REFERER"=>"http://www.example.com/oauth_login"}
|
1640
|
+
|
1641
|
+
|
1642
|
+
Processing WelcomeController#after_login (for 127.0.0.1 at 2009-11-02 20:45:47) [GET]
|
1643
|
+
|
1644
|
+
NameError (undefined local variable or method `oauth_access_token' for #<WelcomeController:0x7f45a7a74858>):
|
1645
|
+
app/controllers/welcome_controller.rb:19:in `after_login'
|
1646
|
+
webrat (0.4.4) lib/webrat/rails.rb:70:in `send'
|
1647
|
+
webrat (0.4.4) lib/webrat/rails.rb:70:in `do_request'
|
1648
|
+
webrat (0.4.4) lib/webrat/rails.rb:35:in `get'
|
1649
|
+
webrat (0.4.4) lib/webrat/core/session.rb:106:in `send'
|
1650
|
+
webrat (0.4.4) lib/webrat/core/session.rb:106:in `request_page'
|
1651
|
+
webrat (0.4.4) lib/webrat/core/session.rb:120:in `request_page'
|
1652
|
+
webrat (0.4.4) lib/webrat/core/session.rb:205:in `visit'
|
1653
|
+
(eval):2:in `visit'
|
1654
|
+
/spec/integration/login_spec.rb:11
|
1655
|
+
rspec (1.2.8) lib/spec/example/example_methods.rb:40:in `instance_eval'
|
1656
|
+
rspec (1.2.8) lib/spec/example/example_methods.rb:40:in `execute'
|
1657
|
+
/usr/lib/ruby/1.8/timeout.rb:53:in `timeout'
|
1658
|
+
rspec (1.2.8) lib/spec/example/example_methods.rb:37:in `execute'
|
1659
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:207:in `run_examples'
|
1660
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:205:in `each'
|
1661
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:205:in `run_examples'
|
1662
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:103:in `run'
|
1663
|
+
rspec (1.2.8) lib/spec/runner/example_group_runner.rb:23:in `run'
|
1664
|
+
rspec (1.2.8) lib/spec/runner/example_group_runner.rb:22:in `each'
|
1665
|
+
rspec (1.2.8) lib/spec/runner/example_group_runner.rb:22:in `run'
|
1666
|
+
rspec (1.2.8) lib/spec/runner/options.rb:127:in `run_examples'
|
1667
|
+
rspec (1.2.8) lib/spec/runner/command_line.rb:9:in `run'
|
1668
|
+
rspec (1.2.8) bin/spec:4
|
1669
|
+
/usr/bin/spec:19:in `load'
|
1670
|
+
/usr/bin/spec:19
|
1671
|
+
|
1672
|
+
Rendered rescues/_trace (118.3ms)
|
1673
|
+
Rendered rescues/_request_and_response (1.5ms)
|
1674
|
+
Rendering rescues/layout (internal_server_error)
|
1675
|
+
REQUESTING PAGE: GET / with {} and HTTP headers {}
|
1676
|
+
|
1677
|
+
|
1678
|
+
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 20:45:57) [GET]
|
1679
|
+
Completed in 6ms (View: 0, DB: 0) | 200 OK [http://www.example.com/]
|
1680
|
+
REQUESTING PAGE: GET /login with {} and HTTP headers {"HTTP_REFERER"=>"/"}
|
1681
|
+
|
1682
|
+
|
1683
|
+
Processing WelcomeController#login (for 127.0.0.1 at 2009-11-02 20:45:57) [GET]
|
1684
|
+
Redirected to http://www.example.com/oauth_login
|
1685
|
+
Completed in 0ms (DB: 0) | 302 Found [http://www.example.com/login]
|
1686
|
+
REQUESTING PAGE: GET http://www.example.com/oauth_login with {} and HTTP headers {"HTTP_REFERER"=>"/login"}
|
1687
|
+
REQUESTING PAGE: GET /oauth_complete with {} and HTTP headers {"HTTP_REFERER"=>"http://www.example.com/oauth_login"}
|
1688
|
+
|
1689
|
+
|
1690
|
+
Processing WelcomeController#after_login (for 127.0.0.1 at 2009-11-02 20:45:57) [GET]
|
1691
|
+
|
1692
|
+
NameError (undefined local variable or method `oauth_access_token' for #<WelcomeController:0x7f6b2af39ca0>):
|
1693
|
+
app/controllers/welcome_controller.rb:19:in `after_login'
|
1694
|
+
webrat (0.4.4) lib/webrat/rails.rb:70:in `send'
|
1695
|
+
webrat (0.4.4) lib/webrat/rails.rb:70:in `do_request'
|
1696
|
+
webrat (0.4.4) lib/webrat/rails.rb:35:in `get'
|
1697
|
+
webrat (0.4.4) lib/webrat/core/session.rb:106:in `send'
|
1698
|
+
webrat (0.4.4) lib/webrat/core/session.rb:106:in `request_page'
|
1699
|
+
webrat (0.4.4) lib/webrat/core/session.rb:120:in `request_page'
|
1700
|
+
webrat (0.4.4) lib/webrat/core/session.rb:205:in `visit'
|
1701
|
+
(eval):2:in `visit'
|
1702
|
+
/spec/integration/login_spec.rb:11
|
1703
|
+
rspec (1.2.8) lib/spec/example/example_methods.rb:40:in `instance_eval'
|
1704
|
+
rspec (1.2.8) lib/spec/example/example_methods.rb:40:in `execute'
|
1705
|
+
/usr/lib/ruby/1.8/timeout.rb:53:in `timeout'
|
1706
|
+
rspec (1.2.8) lib/spec/example/example_methods.rb:37:in `execute'
|
1707
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:207:in `run_examples'
|
1708
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:205:in `each'
|
1709
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:205:in `run_examples'
|
1710
|
+
rspec (1.2.8) lib/spec/example/example_group_methods.rb:103:in `run'
|
1711
|
+
rspec (1.2.8) lib/spec/runner/example_group_runner.rb:23:in `run'
|
1712
|
+
rspec (1.2.8) lib/spec/runner/example_group_runner.rb:22:in `each'
|
1713
|
+
rspec (1.2.8) lib/spec/runner/example_group_runner.rb:22:in `run'
|
1714
|
+
rspec (1.2.8) lib/spec/runner/options.rb:127:in `run_examples'
|
1715
|
+
rspec (1.2.8) lib/spec/runner/command_line.rb:9:in `run'
|
1716
|
+
rspec (1.2.8) bin/spec:4
|
1717
|
+
/usr/bin/spec:19:in `load'
|
1718
|
+
/usr/bin/spec:19
|
1719
|
+
|
1720
|
+
Rendered rescues/_trace (118.2ms)
|
1721
|
+
Rendered rescues/_request_and_response (1.5ms)
|
1722
|
+
Rendering rescues/layout (internal_server_error)
|
1723
|
+
REQUESTING PAGE: GET / with {} and HTTP headers {}
|
1724
|
+
|
1725
|
+
|
1726
|
+
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 20:46:24) [GET]
|
1727
|
+
Completed in 5ms (View: 0, DB: 0) | 200 OK [http://www.example.com/]
|
1728
|
+
REQUESTING PAGE: GET /login with {} and HTTP headers {"HTTP_REFERER"=>"/"}
|
1729
|
+
|
1730
|
+
|
1731
|
+
Processing WelcomeController#login (for 127.0.0.1 at 2009-11-02 20:46:24) [GET]
|
1732
|
+
Redirected to http://www.example.com/oauth_login
|
1733
|
+
Completed in 0ms (DB: 0) | 302 Found [http://www.example.com/login]
|
1734
|
+
REQUESTING PAGE: GET http://www.example.com/oauth_login with {} and HTTP headers {"HTTP_REFERER"=>"/login"}
|
1735
|
+
REQUESTING PAGE: GET /oauth_complete with {} and HTTP headers {"HTTP_REFERER"=>"http://www.example.com/oauth_login"}
|
1736
|
+
|
1737
|
+
|
1738
|
+
Processing WelcomeController#after_login (for 127.0.0.1 at 2009-11-02 20:46:24) [GET]
|
1739
|
+
Redirected to http://www.example.com/
|
1740
|
+
Completed in 3ms (DB: 0) | 302 Found [http://www.example.com/oauth_complete]
|
1741
|
+
REQUESTING PAGE: GET http://www.example.com/ with {} and HTTP headers {"HTTP_REFERER"=>"/oauth_complete"}
|
1742
|
+
|
1743
|
+
|
1744
|
+
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 20:46:24) [GET]
|
1745
|
+
Completed in 1ms (View: 0, DB: 0) | 200 OK [http://www.example.com/]
|
1746
|
+
REQUESTING PAGE: GET / with {} and HTTP headers {"HTTP_REFERER"=>"http://www.example.com/"}
|
1747
|
+
|
1748
|
+
|
1749
|
+
Processing WelcomeController#index (for 127.0.0.1 at 2009-11-02 20:46:24) [GET]
|
1750
|
+
Completed in 1ms (View: 0, DB: 0) | 200 OK [http://www.example.com/]
|
@@ -4,24 +4,14 @@ Rack::OAuth.enable_test_mode
|
|
4
4
|
|
5
5
|
describe 'Login' do
|
6
6
|
|
7
|
-
def example_json
|
8
|
-
%[{"time_zone":"Pacific Time (US & Canada)","profile_image_url":"http://a3.twimg.com/profile_images/54765389/remi-rock-on_bak_normal.png","description":"Beer goes in, Code comes out","following":false,"profile_text_color":"3E4415","status":{"source":"web","in_reply_to_user_id":64218381,"in_reply_to_status_id":5352275994,"truncated":false,"created_at":"Mon Nov 02 02:00:26 +0000 2009","favorited":false,"in_reply_to_screen_name":"benatkin","id":5352407184,"text":"@benatkin For GoldBar, they would want to tell you when you buy something because lots of people are coming in and not buying anything :/"},"profile_background_image_url":"http://s.twimg.com/a/1256928834/images/themes/theme5/bg.gif","followers_count":257,"screen_name":"remitaylor","profile_link_color":"D02B55","profile_background_tile":false,"friends_count":190,"url":"http://remi.org","created_at":"Tue Dec 11 09:13:43 +0000 2007","profile_background_color":"352726","notifications":false,"favourites_count":0,"statuses_count":1700,"profile_sidebar_fill_color":"99CC33","protected":false,"geo_enabled":false,"location":"Phoenix, AZ","name":"remitaylor","profile_sidebar_border_color":"829D5E","id":11043342,"verified":false,"utc_offset":-28800}]
|
9
|
-
end
|
10
|
-
|
11
7
|
it 'should be able to mock a twitter login and web API call' do
|
12
|
-
Rack::OAuth.mock_request '/account/verify_credentials.json', example_json
|
13
|
-
|
14
8
|
visit root_path
|
15
|
-
response.should_not contain('
|
9
|
+
response.should_not contain('THE_REAL_SHAQ')
|
16
10
|
|
17
11
|
visit login_path # should auto login
|
18
12
|
|
19
13
|
visit root_path
|
20
|
-
response.should contain('
|
14
|
+
response.should contain('THE_REAL_SHAQ')
|
21
15
|
end
|
22
16
|
|
23
|
-
it 'should be able to mock logging in as a different user'
|
24
|
-
|
25
|
-
it "should be able to get the accesstoken for a user after they've logged in once"
|
26
|
-
|
27
17
|
end
|
@@ -10,3 +10,7 @@ end
|
|
10
10
|
Spec::Runner.configure do |config|
|
11
11
|
config.include(Webrat::Matchers, :type => [:integration])
|
12
12
|
end
|
13
|
+
|
14
|
+
FakeWeb.allow_net_connect = false
|
15
|
+
|
16
|
+
FakeWeb.register_uri :get, 'http://twitter.com/account/verify_credentials.json', :body => %{{"friends_count":190,"utc_offset":-28800,"profile_sidebar_border_color":"829D5E","status":{"in_reply_to_screen_name":null,"text":"Come on people, don't you realize that smoking isn't cool anymore? Try a healthier stimulant. Maybe one that doesn't irritate my sinuses?","in_reply_to_user_id":null,"in_reply_to_status_id":null,"source":"web","truncated":false,"favorited":false,"id":5177704516,"created_at":"Mon Oct 26 17:15:10 +0000 2009"},"notifications":false,"statuses_count":1689,"time_zone":"Pacific Time (US & Canada)","verified":false,"profile_text_color":"3E4415","profile_image_url":"http://a3.twimg.com/profile_images/54765389/remi-rock-on_bak_normal.png","profile_background_image_url":"http://s.twimg.com/a/1256577591/images/themes/theme5/bg.gif","location":"Phoenix, AZ","following":false,"favourites_count":0,"profile_link_color":"D02B55","screen_name":"THE_REAL_SHAQ","geo_enabled":false,"profile_background_tile":false,"protected":false,"profile_background_color":"352726","name":"THE_REAL_SHAQ","followers_count":255,"url":"http://remi.org","id":11043342,"created_at":"Tue Dec 11 09:13:43 +0000 2007","profile_sidebar_fill_color":"99CC33","description":"Beer goes in, Code comes out"}}
|
@@ -0,0 +1,211 @@
|
|
1
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
2
|
+
<head>
|
3
|
+
<title>Action Controller: Exception caught</title>
|
4
|
+
<style>
|
5
|
+
body { background-color: #fff; color: #333; }
|
6
|
+
|
7
|
+
body, p, ol, ul, td {
|
8
|
+
font-family: verdana, arial, helvetica, sans-serif;
|
9
|
+
font-size: 13px;
|
10
|
+
line-height: 18px;
|
11
|
+
}
|
12
|
+
|
13
|
+
pre {
|
14
|
+
background-color: #eee;
|
15
|
+
padding: 10px;
|
16
|
+
font-size: 11px;
|
17
|
+
}
|
18
|
+
|
19
|
+
a { color: #000; }
|
20
|
+
a:visited { color: #666; }
|
21
|
+
a:hover { color: #fff; background-color:#000; }
|
22
|
+
</style>
|
23
|
+
</head>
|
24
|
+
<body>
|
25
|
+
|
26
|
+
<h1>
|
27
|
+
NoMethodError
|
28
|
+
|
29
|
+
in WelcomeController#index
|
30
|
+
|
31
|
+
</h1>
|
32
|
+
<pre>undefined method `logged_in?' for #<WelcomeController:0x7f0aa3be34f8></pre>
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
<p><code>RAILS_ROOT: /home/remi/projects/remi/rack-oauth/examples/rails-example</code></p>
|
37
|
+
|
38
|
+
<div id="traces">
|
39
|
+
|
40
|
+
|
41
|
+
<a href="#" onclick="document.getElementById('Framework-Trace').style.display='none';document.getElementById('Full-Trace').style.display='none';document.getElementById('Application-Trace').style.display='block';; return false;">Application Trace</a> |
|
42
|
+
|
43
|
+
|
44
|
+
<a href="#" onclick="document.getElementById('Application-Trace').style.display='none';document.getElementById('Full-Trace').style.display='none';document.getElementById('Framework-Trace').style.display='block';; return false;">Framework Trace</a> |
|
45
|
+
|
46
|
+
|
47
|
+
<a href="#" onclick="document.getElementById('Application-Trace').style.display='none';document.getElementById('Framework-Trace').style.display='none';document.getElementById('Full-Trace').style.display='block';; return false;">Full Trace</a>
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
<div id="Application-Trace" style="display: block;">
|
52
|
+
<pre><code>/home/remi/projects/remi/rack-oauth/examples/rails-example/app/controllers/welcome_controller.rb:5:in `index'</code></pre>
|
53
|
+
</div>
|
54
|
+
|
55
|
+
<div id="Framework-Trace" style="display: none;">
|
56
|
+
<pre><code>/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:1331:in `send'
|
57
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:1331:in `perform_action_without_filters'
|
58
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/filters.rb:617:in `call_filters'
|
59
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark'
|
60
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
|
61
|
+
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/core_ext/benchmark.rb:17:in `ms'
|
62
|
+
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
|
63
|
+
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/core_ext/benchmark.rb:17:in `ms'
|
64
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
|
65
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/rescue.rb:160:in `perform_action_without_flash'
|
66
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/flash.rb:146:in `perform_action'
|
67
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:532:in `send'
|
68
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:532:in `process_without_filters'
|
69
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/filters.rb:606:in `process'
|
70
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:391:in `process'
|
71
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:386:in `call'
|
72
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/routing/route_set.rb:437:in `call'
|
73
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:87:in `dispatch'
|
74
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:121:in `_call'
|
75
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack'
|
76
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/query_cache.rb:29:in `call'
|
77
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/query_cache.rb:29:in `call'
|
78
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
|
79
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/query_cache.rb:9:in `cache'
|
80
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/query_cache.rb:28:in `call'
|
81
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
|
82
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/head.rb:9:in `call'
|
83
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/methodoverride.rb:24:in `call'
|
84
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/params_parser.rb:15:in `call'
|
85
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/session/cookie_store.rb:93:in `call'
|
86
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/failsafe.rb:26:in `call'
|
87
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
|
88
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `synchronize'
|
89
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
|
90
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:106:in `call'
|
91
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lint.rb:47:in `_call'
|
92
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lint.rb:35:in `call'
|
93
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/integration.rb:313:in `process'
|
94
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/integration.rb:196:in `get'
|
95
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/integration.rb:491:in `__send__'
|
96
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/integration.rb:491:in `get'
|
97
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/rails.rb:70:in `send'
|
98
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/rails.rb:70:in `do_request'
|
99
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/rails.rb:35:in `get'
|
100
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/core/session.rb:104:in `send'
|
101
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/core/session.rb:104:in `request_page'
|
102
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/core/session.rb:205:in `visit'
|
103
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:40:in `instance_eval'
|
104
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:40:in `execute'
|
105
|
+
/usr/lib/ruby/1.8/timeout.rb:53:in `timeout'
|
106
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:37:in `execute'
|
107
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:207:in `run_examples'
|
108
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:205:in `each'
|
109
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:205:in `run_examples'
|
110
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:103:in `run'
|
111
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/example_group_runner.rb:23:in `run'
|
112
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/example_group_runner.rb:22:in `each'
|
113
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/example_group_runner.rb:22:in `run'
|
114
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/options.rb:127:in `run_examples'
|
115
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/command_line.rb:9:in `run'
|
116
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/bin/spec:4</code></pre>
|
117
|
+
</div>
|
118
|
+
|
119
|
+
<div id="Full-Trace" style="display: none;">
|
120
|
+
<pre><code>/home/remi/projects/remi/rack-oauth/examples/rails-example/app/controllers/welcome_controller.rb:5:in `index'
|
121
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:1331:in `send'
|
122
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:1331:in `perform_action_without_filters'
|
123
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/filters.rb:617:in `call_filters'
|
124
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark'
|
125
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
|
126
|
+
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/core_ext/benchmark.rb:17:in `ms'
|
127
|
+
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
|
128
|
+
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/core_ext/benchmark.rb:17:in `ms'
|
129
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue'
|
130
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/rescue.rb:160:in `perform_action_without_flash'
|
131
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/flash.rb:146:in `perform_action'
|
132
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:532:in `send'
|
133
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:532:in `process_without_filters'
|
134
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/filters.rb:606:in `process'
|
135
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:391:in `process'
|
136
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/base.rb:386:in `call'
|
137
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/routing/route_set.rb:437:in `call'
|
138
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:87:in `dispatch'
|
139
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:121:in `_call'
|
140
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack'
|
141
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/query_cache.rb:29:in `call'
|
142
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/query_cache.rb:29:in `call'
|
143
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache'
|
144
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/query_cache.rb:9:in `cache'
|
145
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/query_cache.rb:28:in `call'
|
146
|
+
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call'
|
147
|
+
../../lib/rack-oauth.rb:186:in `call'
|
148
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/head.rb:9:in `call'
|
149
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/methodoverride.rb:24:in `call'
|
150
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/params_parser.rb:15:in `call'
|
151
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/session/cookie_store.rb:93:in `call'
|
152
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/failsafe.rb:26:in `call'
|
153
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
|
154
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `synchronize'
|
155
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call'
|
156
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/dispatcher.rb:106:in `call'
|
157
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lint.rb:47:in `_call'
|
158
|
+
/usr/lib/ruby/gems/1.8/gems/rack-1.0.0/lib/rack/lint.rb:35:in `call'
|
159
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/integration.rb:313:in `process'
|
160
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/integration.rb:196:in `get'
|
161
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/integration.rb:491:in `__send__'
|
162
|
+
/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.4/lib/action_controller/integration.rb:491:in `get'
|
163
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/rails.rb:70:in `send'
|
164
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/rails.rb:70:in `do_request'
|
165
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/rails.rb:35:in `get'
|
166
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/core/session.rb:104:in `send'
|
167
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/core/session.rb:104:in `request_page'
|
168
|
+
/usr/lib/ruby/gems/1.8/gems/webrat-0.4.4/lib/webrat/core/session.rb:205:in `visit'
|
169
|
+
(eval):2:in `visit'
|
170
|
+
spec/integration/login_spec.rb:8
|
171
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:40:in `instance_eval'
|
172
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:40:in `execute'
|
173
|
+
/usr/lib/ruby/1.8/timeout.rb:53:in `timeout'
|
174
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_methods.rb:37:in `execute'
|
175
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:207:in `run_examples'
|
176
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:205:in `each'
|
177
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:205:in `run_examples'
|
178
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/example/example_group_methods.rb:103:in `run'
|
179
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/example_group_runner.rb:23:in `run'
|
180
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/example_group_runner.rb:22:in `each'
|
181
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/example_group_runner.rb:22:in `run'
|
182
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/options.rb:127:in `run_examples'
|
183
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/lib/spec/runner/command_line.rb:9:in `run'
|
184
|
+
/usr/lib/ruby/gems/1.8/gems/rspec-1.2.8/bin/spec:4
|
185
|
+
/usr/bin/spec:19:in `load'
|
186
|
+
/usr/bin/spec:19</code></pre>
|
187
|
+
</div>
|
188
|
+
|
189
|
+
</div>
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
|
196
|
+
<h2 style="margin-top: 30px">Request</h2>
|
197
|
+
<p><b>Parameters</b>: <pre>None</pre></p>
|
198
|
+
|
199
|
+
<p><a href="#" onclick="document.getElementById('session_dump').style.display='block'; return false;">Show session dump</a></p>
|
200
|
+
<div id="session_dump" style="display:none"><pre class='debug_dump'>---
|
201
|
+
</pre></div>
|
202
|
+
|
203
|
+
|
204
|
+
<h2 style="margin-top: 30px">Response</h2>
|
205
|
+
<p><b>Headers</b>: <pre>{"Content-Type"=>"",
|
206
|
+
"Cache-Control"=>"no-cache"}</pre></p>
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
</body>
|
211
|
+
</html>
|