cookieless_sessions 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.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +25 -0
  3. data/.rspec +2 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +6 -0
  7. data/Gemfile +4 -0
  8. data/Guardfile +24 -0
  9. data/LICENSE.txt +22 -0
  10. data/README.md +102 -0
  11. data/Rakefile +7 -0
  12. data/cookieless_sessions.gemspec +31 -0
  13. data/lib/cookieless_sessions.rb +31 -0
  14. data/lib/cookieless_sessions/version.rb +3 -0
  15. data/spec/controllers/cookieless_controller_spec.rb +38 -0
  16. data/spec/controllers/sub_cookie_controller_from_cookieless_controller_spec.rb +36 -0
  17. data/spec/cookieless_sessions_spec.rb +4 -0
  18. data/spec/dummy/README.rdoc +28 -0
  19. data/spec/dummy/Rakefile +6 -0
  20. data/spec/dummy/app/assets/images/.keep +0 -0
  21. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  22. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  23. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  24. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  25. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  26. data/spec/dummy/app/mailers/.keep +0 -0
  27. data/spec/dummy/app/models/.keep +0 -0
  28. data/spec/dummy/app/models/concerns/.keep +0 -0
  29. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  30. data/spec/dummy/bin/bundle +3 -0
  31. data/spec/dummy/bin/rails +4 -0
  32. data/spec/dummy/bin/rake +4 -0
  33. data/spec/dummy/config.ru +4 -0
  34. data/spec/dummy/config/application.rb +30 -0
  35. data/spec/dummy/config/boot.rb +5 -0
  36. data/spec/dummy/config/database.yml +25 -0
  37. data/spec/dummy/config/environment.rb +5 -0
  38. data/spec/dummy/config/environments/development.rb +37 -0
  39. data/spec/dummy/config/environments/production.rb +83 -0
  40. data/spec/dummy/config/environments/test.rb +39 -0
  41. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  42. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  43. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  44. data/spec/dummy/config/initializers/inflections.rb +16 -0
  45. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  46. data/spec/dummy/config/initializers/session_store.rb +13 -0
  47. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  48. data/spec/dummy/config/locales/en.yml +23 -0
  49. data/spec/dummy/config/routes.rb +2 -0
  50. data/spec/dummy/config/secrets.yml +22 -0
  51. data/spec/dummy/lib/assets/.keep +0 -0
  52. data/spec/dummy/public/404.html +67 -0
  53. data/spec/dummy/public/422.html +67 -0
  54. data/spec/dummy/public/500.html +66 -0
  55. data/spec/dummy/public/favicon.ico +0 -0
  56. data/spec/features/cookieless_spec.rb +69 -0
  57. data/spec/spec_helper.rb +41 -0
  58. data/spec/support/cookieless_controller.rb +25 -0
  59. metadata +295 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+ require 'support/cookieless_controller'
3
+
4
+ describe 'Cookieless', js: true do
5
+ # We've set js: true because we want to use poltergeist in ths tests.
6
+
7
+ context "with cookies disabled" do
8
+ before(:each) do
9
+ Capybara.current_session.driver.cookies_enabled = false
10
+ end
11
+
12
+ after(:each) do
13
+ Capybara.current_session.driver.cookies_enabled = true
14
+ end
15
+
16
+ it "uses session_id from params" do
17
+ visit root_path # visit first time to get a valid session_id
18
+
19
+ session_id = extract_session_id_from_headers(page.response_headers)
20
+
21
+ page.should have_content("'#{session_id}'")
22
+
23
+ visit root_path(rails_app_session_key => "some_not_invalid_session_id")
24
+
25
+ page.should have_no_content("'some_not_invalid_session_id'")
26
+ page.should have_no_content("'#{session_id}'")
27
+
28
+ visit root_path(rails_app_session_key => session_id)
29
+
30
+ page.should have_content("'#{session_id}'")
31
+ end
32
+ end
33
+
34
+
35
+ context "with cookies cookies enabled" do
36
+ before(:each) do
37
+ Capybara.current_session.driver.cookies_enabled = true
38
+ end
39
+
40
+ after(:each) do
41
+ Capybara.current_session.driver.cookies_enabled = true
42
+ end
43
+
44
+ it "uses session_id only from cookie" do
45
+ visit root_path # visit first time to get a valid session_id.
46
+
47
+ session_id = extract_session_id_from_headers(page.response_headers)
48
+
49
+ page.should have_content("'#{session_id}'")
50
+
51
+ visit root_path # visit second time. should keep session_id.
52
+ page.should have_content("'#{session_id}'")
53
+
54
+ page.reset_session!
55
+ visit root_path # visit again with fresh session to get a new session_id.
56
+
57
+ other_session_id = extract_session_id_from_headers(page.response_headers)
58
+
59
+ page.should have_content("'#{other_session_id}'")
60
+
61
+ visit root_path # visit fourth time. should keep other_session_id.
62
+ page.should have_content("'#{other_session_id}'")
63
+
64
+ visit root_path(rails_app_session_key => session_id) # visit with other session_id in get param than in cookie
65
+ page.should have_content("'#{other_session_id}'")
66
+ end
67
+ end
68
+
69
+ end
@@ -0,0 +1,41 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+
8
+ ENV['RAILS_ENV'] ||= 'test'
9
+ require File.expand_path('../dummy/config/environment', __FILE__)
10
+ require 'rspec/rails'
11
+ require 'capybara/rspec'
12
+ require 'capybara/poltergeist'
13
+ require 'pry'
14
+
15
+ # We're using Poltergeist with phantomjs, because this driver allows to
16
+ # enable and disable cookies. We need this feature for our tests.
17
+ Capybara.javascript_driver = :poltergeist
18
+
19
+
20
+ RSpec.configure do |config|
21
+ config.treat_symbols_as_metadata_keys_with_true_values = true
22
+ config.run_all_when_everything_filtered = true
23
+ config.filter_run :focus
24
+
25
+ # Run specs in random order to surface order dependencies. If you find an
26
+ # order dependency and want to debug it, you can fix the order by providing
27
+ # the seed, which is printed after each run.
28
+ # --seed 1234
29
+ config.order = 'random'
30
+ end
31
+
32
+
33
+ # Some helper methods ...
34
+
35
+ def rails_app_session_key
36
+ Rails.application.config.session_options[:key]
37
+ end
38
+
39
+ def extract_session_id_from_headers(headers, session_key=rails_app_session_key)
40
+ headers['Set-Cookie'].match(/\A#{session_key}=(?<sid>[0-9a-f]+);/)[:sid]
41
+ end
@@ -0,0 +1,25 @@
1
+ Rails.application.routes.draw do
2
+ get "/cookieless" => "cookieless#index", as: :root
3
+ get "/cookieless/redirect" => "cookieless#redirect_to_root", as: :redirect_to_root
4
+ end
5
+
6
+
7
+ class ApplicationController < ActionController::Base
8
+ end
9
+
10
+
11
+ class CookielessController < ApplicationController
12
+ include CookielessSessions::EnabledController
13
+
14
+ protect_from_forgery with: :exception
15
+
16
+ def index
17
+ session[:useless] = :content
18
+
19
+ render text: "CookielessController#Index\r\nSession-Key: '#{session_key}'\r\nSession-ID: '#{session_id}'\r\n"
20
+ end
21
+
22
+ def redirect_to_root
23
+ redirect_to root_url
24
+ end
25
+ end
metadata ADDED
@@ -0,0 +1,295 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cookieless_sessions
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Taktsoft
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.3'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.3'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.14'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.14'
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard-rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '4.2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.2'
69
+ - !ruby/object:Gem::Dependency
70
+ name: capybara
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.2'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: poltergeist
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.5'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.5'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.9'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.9'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: 3.0.0
118
+ - - "<"
119
+ - !ruby/object:Gem::Version
120
+ version: '5.0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ version: 3.0.0
128
+ - - "<"
129
+ - !ruby/object:Gem::Version
130
+ version: '5.0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: sqlite3
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '1.3'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '1.3'
145
+ - !ruby/object:Gem::Dependency
146
+ name: redis-session-store
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '0.7'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '0.7'
159
+ description: cookieless_sessions implements a fallback mechanism for keeping Session-IDs
160
+ (via GET-Parameter) on clients that doesn't support or allow cookies.
161
+ email:
162
+ - developers@taktsoft.com
163
+ executables: []
164
+ extensions: []
165
+ extra_rdoc_files: []
166
+ files:
167
+ - ".gitignore"
168
+ - ".rspec"
169
+ - ".ruby-gemset"
170
+ - ".ruby-version"
171
+ - ".travis.yml"
172
+ - Gemfile
173
+ - Guardfile
174
+ - LICENSE.txt
175
+ - README.md
176
+ - Rakefile
177
+ - cookieless_sessions.gemspec
178
+ - lib/cookieless_sessions.rb
179
+ - lib/cookieless_sessions/version.rb
180
+ - spec/controllers/cookieless_controller_spec.rb
181
+ - spec/controllers/sub_cookie_controller_from_cookieless_controller_spec.rb
182
+ - spec/cookieless_sessions_spec.rb
183
+ - spec/dummy/README.rdoc
184
+ - spec/dummy/Rakefile
185
+ - spec/dummy/app/assets/images/.keep
186
+ - spec/dummy/app/assets/javascripts/application.js
187
+ - spec/dummy/app/assets/stylesheets/application.css
188
+ - spec/dummy/app/controllers/application_controller.rb
189
+ - spec/dummy/app/controllers/concerns/.keep
190
+ - spec/dummy/app/helpers/application_helper.rb
191
+ - spec/dummy/app/mailers/.keep
192
+ - spec/dummy/app/models/.keep
193
+ - spec/dummy/app/models/concerns/.keep
194
+ - spec/dummy/app/views/layouts/application.html.erb
195
+ - spec/dummy/bin/bundle
196
+ - spec/dummy/bin/rails
197
+ - spec/dummy/bin/rake
198
+ - spec/dummy/config.ru
199
+ - spec/dummy/config/application.rb
200
+ - spec/dummy/config/boot.rb
201
+ - spec/dummy/config/database.yml
202
+ - spec/dummy/config/environment.rb
203
+ - spec/dummy/config/environments/development.rb
204
+ - spec/dummy/config/environments/production.rb
205
+ - spec/dummy/config/environments/test.rb
206
+ - spec/dummy/config/initializers/backtrace_silencers.rb
207
+ - spec/dummy/config/initializers/cookies_serializer.rb
208
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
209
+ - spec/dummy/config/initializers/inflections.rb
210
+ - spec/dummy/config/initializers/mime_types.rb
211
+ - spec/dummy/config/initializers/session_store.rb
212
+ - spec/dummy/config/initializers/wrap_parameters.rb
213
+ - spec/dummy/config/locales/en.yml
214
+ - spec/dummy/config/routes.rb
215
+ - spec/dummy/config/secrets.yml
216
+ - spec/dummy/lib/assets/.keep
217
+ - spec/dummy/log/.keep
218
+ - spec/dummy/public/404.html
219
+ - spec/dummy/public/422.html
220
+ - spec/dummy/public/500.html
221
+ - spec/dummy/public/favicon.ico
222
+ - spec/features/cookieless_spec.rb
223
+ - spec/spec_helper.rb
224
+ - spec/support/cookieless_controller.rb
225
+ homepage: https://github.com/taktsoft/cookieless_sessions
226
+ licenses:
227
+ - MIT
228
+ metadata: {}
229
+ post_install_message:
230
+ rdoc_options: []
231
+ require_paths:
232
+ - lib
233
+ required_ruby_version: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ required_rubygems_version: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ requirements: []
244
+ rubyforge_project:
245
+ rubygems_version: 2.2.2
246
+ signing_key:
247
+ specification_version: 4
248
+ summary: cookieless_sessions implements a fallback mechanism for keeping Session-IDs
249
+ (via GET-Parameter) on clients that doesn't support or allow cookies.
250
+ test_files:
251
+ - spec/controllers/cookieless_controller_spec.rb
252
+ - spec/controllers/sub_cookie_controller_from_cookieless_controller_spec.rb
253
+ - spec/cookieless_sessions_spec.rb
254
+ - spec/dummy/README.rdoc
255
+ - spec/dummy/Rakefile
256
+ - spec/dummy/app/assets/images/.keep
257
+ - spec/dummy/app/assets/javascripts/application.js
258
+ - spec/dummy/app/assets/stylesheets/application.css
259
+ - spec/dummy/app/controllers/application_controller.rb
260
+ - spec/dummy/app/controllers/concerns/.keep
261
+ - spec/dummy/app/helpers/application_helper.rb
262
+ - spec/dummy/app/mailers/.keep
263
+ - spec/dummy/app/models/.keep
264
+ - spec/dummy/app/models/concerns/.keep
265
+ - spec/dummy/app/views/layouts/application.html.erb
266
+ - spec/dummy/bin/bundle
267
+ - spec/dummy/bin/rails
268
+ - spec/dummy/bin/rake
269
+ - spec/dummy/config.ru
270
+ - spec/dummy/config/application.rb
271
+ - spec/dummy/config/boot.rb
272
+ - spec/dummy/config/database.yml
273
+ - spec/dummy/config/environment.rb
274
+ - spec/dummy/config/environments/development.rb
275
+ - spec/dummy/config/environments/production.rb
276
+ - spec/dummy/config/environments/test.rb
277
+ - spec/dummy/config/initializers/backtrace_silencers.rb
278
+ - spec/dummy/config/initializers/cookies_serializer.rb
279
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
280
+ - spec/dummy/config/initializers/inflections.rb
281
+ - spec/dummy/config/initializers/mime_types.rb
282
+ - spec/dummy/config/initializers/session_store.rb
283
+ - spec/dummy/config/initializers/wrap_parameters.rb
284
+ - spec/dummy/config/locales/en.yml
285
+ - spec/dummy/config/routes.rb
286
+ - spec/dummy/config/secrets.yml
287
+ - spec/dummy/lib/assets/.keep
288
+ - spec/dummy/log/.keep
289
+ - spec/dummy/public/404.html
290
+ - spec/dummy/public/422.html
291
+ - spec/dummy/public/500.html
292
+ - spec/dummy/public/favicon.ico
293
+ - spec/features/cookieless_spec.rb
294
+ - spec/spec_helper.rb
295
+ - spec/support/cookieless_controller.rb