slimmer 1.1.17 → 1.1.18

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.
@@ -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