slimmer 1.1.17 → 1.1.18

Sign up to get free protection for your applications and to get access to all the features.
@@ -98,7 +98,7 @@ module Slimmer
98
98
  end
99
99
 
100
100
  def filter_headers(header_hash)
101
- valid_keys = %w{vary set-cookie location content-type expires cache-control www-authenticate}
101
+ valid_keys = %w{vary set-cookie location content-type expires cache-control www-authenticate last-modified etag}
102
102
  logger.debug "Slimmer: removing headers except #{valid_keys} from #{header_hash.keys}"
103
103
  removed_keys = []
104
104
  header_hash.keys.each do |key|
@@ -1,3 +1,3 @@
1
1
  module Slimmer
2
- VERSION = '1.1.17'
2
+ VERSION = '1.1.18'
3
3
  end
@@ -0,0 +1,20 @@
1
+ require "test_helper"
2
+
3
+ class HeaderFilteringTest < SlimmerIntegrationTest
4
+ ALLOWED_HEADERS = ["Vary", "Set-Cookie", "Location", "Content-Type", "Expires", "Cache-Control", "WWW-Authenticate", "Last-Modified", "ETag"]
5
+ FORBIDDEN_HEADERS = ["Anything-Else"]
6
+
7
+ given_response 200, %{Anything}, (ALLOWED_HEADERS + FORBIDDEN_HEADERS).inject({}) {|memo, header| memo[header] = header.downcase; memo}
8
+
9
+ def test_allows_whitelisted_headers
10
+ ALLOWED_HEADERS.each do |header|
11
+ assert last_response.headers.keys.include?(header)
12
+ end
13
+ end
14
+
15
+ def test_filters_other_headers
16
+ FORBIDDEN_HEADERS.each do |header|
17
+ refute last_response.headers.keys.include?(header)
18
+ end
19
+ end
20
+ end
metadata CHANGED
@@ -1,139 +1,136 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: slimmer
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.18
4
5
  prerelease:
5
- version: 1.1.17
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Ben Griffiths
9
9
  - James Stewart
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
-
14
- date: 2012-01-06 00:00:00 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
13
+ date: 2012-01-10 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
17
16
  name: nokogiri
18
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &70351908621780 !ruby/object:Gem::Requirement
19
18
  none: false
20
- requirements:
19
+ requirements:
21
20
  - - ~>
22
- - !ruby/object:Gem::Version
21
+ - !ruby/object:Gem::Version
23
22
  version: 1.5.0
24
23
  type: :runtime
25
24
  prerelease: false
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
25
+ version_requirements: *70351908621780
26
+ - !ruby/object:Gem::Dependency
28
27
  name: rack
29
- requirement: &id002 !ruby/object:Gem::Requirement
28
+ requirement: &70351908620040 !ruby/object:Gem::Requirement
30
29
  none: false
31
- requirements:
30
+ requirements:
32
31
  - - ~>
33
- - !ruby/object:Gem::Version
32
+ - !ruby/object:Gem::Version
34
33
  version: 1.3.5
35
34
  type: :runtime
36
35
  prerelease: false
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
36
+ version_requirements: *70351908620040
37
+ - !ruby/object:Gem::Dependency
39
38
  name: plek
40
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &70351908619480 !ruby/object:Gem::Requirement
41
40
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
45
44
  version: 0.1.8
46
45
  type: :runtime
47
46
  prerelease: false
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
47
+ version_requirements: *70351908619480
48
+ - !ruby/object:Gem::Dependency
50
49
  name: json
51
- requirement: &id004 !ruby/object:Gem::Requirement
50
+ requirement: &70351908618940 !ruby/object:Gem::Requirement
52
51
  none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "0"
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
57
56
  type: :runtime
58
57
  prerelease: false
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
58
+ version_requirements: *70351908618940
59
+ - !ruby/object:Gem::Dependency
61
60
  name: null_logger
62
- requirement: &id005 !ruby/object:Gem::Requirement
61
+ requirement: &70351908617580 !ruby/object:Gem::Requirement
63
62
  none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
68
67
  type: :runtime
69
68
  prerelease: false
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
69
+ version_requirements: *70351908617580
70
+ - !ruby/object:Gem::Dependency
72
71
  name: rake
73
- requirement: &id006 !ruby/object:Gem::Requirement
72
+ requirement: &70351908611760 !ruby/object:Gem::Requirement
74
73
  none: false
75
- requirements:
74
+ requirements:
76
75
  - - ~>
77
- - !ruby/object:Gem::Version
76
+ - !ruby/object:Gem::Version
78
77
  version: 0.9.2.2
79
78
  type: :development
80
79
  prerelease: false
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
80
+ version_requirements: *70351908611760
81
+ - !ruby/object:Gem::Dependency
83
82
  name: rack-test
84
- requirement: &id007 !ruby/object:Gem::Requirement
83
+ requirement: &70351908609820 !ruby/object:Gem::Requirement
85
84
  none: false
86
- requirements:
85
+ requirements:
87
86
  - - ~>
88
- - !ruby/object:Gem::Version
87
+ - !ruby/object:Gem::Version
89
88
  version: 0.6.1
90
89
  type: :development
91
90
  prerelease: false
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
91
+ version_requirements: *70351908609820
92
+ - !ruby/object:Gem::Dependency
94
93
  name: mocha
95
- requirement: &id008 !ruby/object:Gem::Requirement
94
+ requirement: &70351908606800 !ruby/object:Gem::Requirement
96
95
  none: false
97
- requirements:
96
+ requirements:
98
97
  - - ~>
99
- - !ruby/object:Gem::Version
98
+ - !ruby/object:Gem::Version
100
99
  version: 0.9.12
101
100
  type: :development
102
101
  prerelease: false
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
102
+ version_requirements: *70351908606800
103
+ - !ruby/object:Gem::Dependency
105
104
  name: webmock
106
- requirement: &id009 !ruby/object:Gem::Requirement
105
+ requirement: &70351908602140 !ruby/object:Gem::Requirement
107
106
  none: false
108
- requirements:
107
+ requirements:
109
108
  - - ~>
110
- - !ruby/object:Gem::Version
111
- version: "1.7"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.7'
112
111
  type: :development
113
112
  prerelease: false
114
- version_requirements: *id009
115
- - !ruby/object:Gem::Dependency
113
+ version_requirements: *70351908602140
114
+ - !ruby/object:Gem::Dependency
116
115
  name: therubyracer
117
- requirement: &id010 !ruby/object:Gem::Requirement
116
+ requirement: &70351908599800 !ruby/object:Gem::Requirement
118
117
  none: false
119
- requirements:
120
- - - ">="
121
- - !ruby/object:Gem::Version
122
- version: "0"
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
123
122
  type: :development
124
123
  prerelease: false
125
- version_requirements: *id010
124
+ version_requirements: *70351908599800
126
125
  description: Rack middleware for skinning pages using a specific template
127
- email:
126
+ email:
128
127
  - bengriffiths@gmail.com
129
128
  - james.stewart@digital.cabinet-office.gov.uk
130
- executables:
129
+ executables:
131
130
  - render_slimmer_error
132
131
  extensions: []
133
-
134
132
  extra_rdoc_files: []
135
-
136
- files:
133
+ files:
137
134
  - README.md
138
135
  - CHANGELOG.md
139
136
  - lib/slimmer/admin_title_inserter.rb
@@ -160,6 +157,7 @@ files:
160
157
  - test/fixtures/500.html.erb
161
158
  - test/fixtures/wrapper.html.erb
162
159
  - test/google_analytics_test.rb
160
+ - test/header_filtering_test.rb
163
161
  - test/headers_test.rb
164
162
  - test/processors/body_inserter_test.rb
165
163
  - test/processors/header_context_inserter_test.rb
@@ -169,42 +167,34 @@ files:
169
167
  - bin/render_slimmer_error
170
168
  homepage: http://github.com/alphagov/slimmer
171
169
  licenses: []
172
-
173
170
  post_install_message:
174
171
  rdoc_options: []
175
-
176
- require_paths:
172
+ require_paths:
177
173
  - lib
178
- required_ruby_version: !ruby/object:Gem::Requirement
174
+ required_ruby_version: !ruby/object:Gem::Requirement
179
175
  none: false
180
- requirements:
181
- - - ">="
182
- - !ruby/object:Gem::Version
183
- hash: -4136330702604149835
184
- segments:
185
- - 0
186
- version: "0"
187
- required_rubygems_version: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ! '>='
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ required_rubygems_version: !ruby/object:Gem::Requirement
188
181
  none: false
189
- requirements:
190
- - - ">="
191
- - !ruby/object:Gem::Version
192
- hash: -4136330702604149835
193
- segments:
194
- - 0
195
- version: "0"
182
+ requirements:
183
+ - - ! '>='
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
196
186
  requirements: []
197
-
198
187
  rubyforge_project: slimmer
199
- rubygems_version: 1.8.13
188
+ rubygems_version: 1.8.11
200
189
  signing_key:
201
190
  specification_version: 3
202
191
  summary: Thinner than the skinner
203
- test_files:
192
+ test_files:
204
193
  - test/fixtures/404.html.erb
205
194
  - test/fixtures/500.html.erb
206
195
  - test/fixtures/wrapper.html.erb
207
196
  - test/google_analytics_test.rb
197
+ - test/header_filtering_test.rb
208
198
  - test/headers_test.rb
209
199
  - test/processors/body_inserter_test.rb
210
200
  - test/processors/header_context_inserter_test.rb