slimmer 3.17.0 → 3.18.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.
- data/lib/slimmer/headers.rb +4 -0
- data/lib/slimmer/processors/report_a_problem_inserter.rb +4 -1
- data/lib/slimmer/skin.rb +1 -1
- data/lib/slimmer/version.rb +1 -1
- data/test/fixtures/report_a_problem.raw.html.erb +2 -0
- data/test/headers_test.rb +8 -3
- data/test/processors/report_a_problem_inserter_test.rb +27 -11
- metadata +63 -63
data/lib/slimmer/headers.rb
CHANGED
|
@@ -5,10 +5,12 @@ module Slimmer
|
|
|
5
5
|
HEADER_PREFIX = "X-Slimmer"
|
|
6
6
|
|
|
7
7
|
SLIMMER_HEADER_MAPPING = {
|
|
8
|
+
application_name: "Application-Name",
|
|
8
9
|
beta: "Beta",
|
|
9
10
|
campaign_notification:"Campaign-Notification",
|
|
10
11
|
format: "Format",
|
|
11
12
|
need_id: "Need-ID",
|
|
13
|
+
page_owner: "Page-Owner",
|
|
12
14
|
proposition: "Proposition",
|
|
13
15
|
organisations: "Organisations",
|
|
14
16
|
remove_meta_viewport: "Remove-Meta-Viewport",
|
|
@@ -18,11 +20,13 @@ module Slimmer
|
|
|
18
20
|
template: "Template",
|
|
19
21
|
}
|
|
20
22
|
|
|
23
|
+
APPLICATION_NAME_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:application_name]}"
|
|
21
24
|
ARTEFACT_HEADER = "#{HEADER_PREFIX}-Artefact"
|
|
22
25
|
BETA_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:beta]}"
|
|
23
26
|
CAMPAIGN_NOTIFICATION = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:campaign_notification]}"
|
|
24
27
|
FORMAT_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:format]}"
|
|
25
28
|
ORGANISATIONS_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:organisations]}"
|
|
29
|
+
PAGE_OWNER_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:page_owner]}"
|
|
26
30
|
REMOVE_META_VIEWPORT = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:remove_meta_viewport]}"
|
|
27
31
|
RESULT_COUNT_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:result_count]}"
|
|
28
32
|
SEARCH_INDEX_HEADER = "#{HEADER_PREFIX}-Search-Index"
|
|
@@ -2,9 +2,10 @@ module Slimmer::Processors
|
|
|
2
2
|
class ReportAProblemInserter
|
|
3
3
|
include ERB::Util
|
|
4
4
|
|
|
5
|
-
def initialize(skin, url)
|
|
5
|
+
def initialize(skin, url, headers)
|
|
6
6
|
@skin = skin
|
|
7
7
|
@request_url = url
|
|
8
|
+
@headers = headers
|
|
8
9
|
end
|
|
9
10
|
|
|
10
11
|
def filter(content_document, page_template)
|
|
@@ -15,6 +16,8 @@ module Slimmer::Processors
|
|
|
15
16
|
|
|
16
17
|
def report_a_problem_block
|
|
17
18
|
request_url = @request_url
|
|
19
|
+
source = @headers[Slimmer::Headers::APPLICATION_NAME_HEADER]
|
|
20
|
+
page_owner = @headers[Slimmer::Headers::PAGE_OWNER_HEADER]
|
|
18
21
|
report_a_problem_template = @skin.template('report_a_problem.raw')
|
|
19
22
|
html = ERB.new(report_a_problem_template).result(binding)
|
|
20
23
|
Nokogiri::HTML.fragment(html)
|
data/lib/slimmer/skin.rb
CHANGED
|
@@ -127,7 +127,7 @@ module Slimmer
|
|
|
127
127
|
Processors::SearchPathSetter.new(response),
|
|
128
128
|
Processors::RelatedItemsInserter.new(self, artefact),
|
|
129
129
|
Processors::LogoClassInserter.new(artefact),
|
|
130
|
-
Processors::ReportAProblemInserter.new(self, source_request.url),
|
|
130
|
+
Processors::ReportAProblemInserter.new(self, source_request.url, response.headers),
|
|
131
131
|
Processors::SearchIndexSetter.new(response),
|
|
132
132
|
Processors::MetaViewportRemover.new(response),
|
|
133
133
|
Processors::CampaignNotificationInserter.new(self, response.headers),
|
data/lib/slimmer/version.rb
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
<form accept-charset="UTF-8" action="/feedback" method="post">
|
|
4
4
|
<div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"></div>
|
|
5
5
|
<input id="url" name="url" type="hidden" value="<%= request_url %>">
|
|
6
|
+
<input id="url" name="source" type="hidden" value="<%= source %>">
|
|
7
|
+
<input id="url" name="page_owner" type="hidden" value="<%= page_owner %>">
|
|
6
8
|
<label for="what_doing">
|
|
7
9
|
What were you doing?
|
|
8
10
|
<input id="what_doing" name="what_doing" type="text">
|
data/test/headers_test.rb
CHANGED
|
@@ -24,9 +24,14 @@ class HeadersTest < MiniTest::Unit::TestCase
|
|
|
24
24
|
assert_equal "rhubarb", headers["X-Slimmer-Format"]
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
def
|
|
28
|
-
set_slimmer_headers
|
|
29
|
-
assert_equal "
|
|
27
|
+
def test_should_set_application_name_header
|
|
28
|
+
set_slimmer_headers application_name: "whitehall"
|
|
29
|
+
assert_equal "whitehall", headers["X-Slimmer-Application-Name"]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_should_set_page_owner_header
|
|
33
|
+
set_slimmer_headers page_owner: "bobby"
|
|
34
|
+
assert_equal "bobby", headers["X-Slimmer-Page-Owner"]
|
|
30
35
|
end
|
|
31
36
|
|
|
32
37
|
def test_should_set_organisations_header
|
|
@@ -11,19 +11,21 @@ class ReportAProblemInserterTest < MiniTest::Unit::TestCase
|
|
|
11
11
|
def test_should_add_report_a_problem_form_using_the_template_from_static
|
|
12
12
|
@skin.expects(:template).with('report_a_problem.raw').returns(@report_a_problem_template)
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
<body">
|
|
17
|
-
<div id="wrapper">
|
|
18
|
-
<div id="report-a-problem"></div>
|
|
19
|
-
</div>
|
|
20
|
-
</body>
|
|
21
|
-
</html>
|
|
22
|
-
}
|
|
14
|
+
headers = { Slimmer::Headers::APPLICATION_NAME_HEADER => 'government' }
|
|
15
|
+
Slimmer::Processors::ReportAProblemInserter.new(@skin, "http://www.example.com/somewhere?foo=bar", headers).filter(:any_source, template)
|
|
23
16
|
|
|
24
|
-
Slimmer::Processors::ReportAProblemInserter.new(@skin, "http://www.example.com/somewhere?foo=bar").filter(:any_source, template)
|
|
25
17
|
assert_in template, "#wrapper div.report-a-problem-container"
|
|
26
18
|
assert_in template, "div.report-a-problem-container form input[name=url][value='http://www.example.com/somewhere?foo=bar']"
|
|
19
|
+
assert_in template, "div.report-a-problem-container form input[name=source][value='government']"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_should_add_page_owner_if_provided_in_headers
|
|
23
|
+
@skin.expects(:template).with('report_a_problem.raw').returns(@report_a_problem_template)
|
|
24
|
+
headers = { Slimmer::Headers::PAGE_OWNER_HEADER => 'hmrc' }
|
|
25
|
+
Slimmer::Processors::ReportAProblemInserter.new(@skin, "http://www.example.com/somewhere", headers).filter(:any_source, template)
|
|
26
|
+
|
|
27
|
+
assert_in template, "#wrapper div.report-a-problem-container"
|
|
28
|
+
assert_in template, "div.report-a-problem-container form input[name=page_owner][value='hmrc']"
|
|
27
29
|
end
|
|
28
30
|
|
|
29
31
|
def test_should_not_add_report_a_problem_form_if_wrapper_element_missing
|
|
@@ -38,7 +40,21 @@ class ReportAProblemInserterTest < MiniTest::Unit::TestCase
|
|
|
38
40
|
|
|
39
41
|
@skin.expects(:template).never # Shouldn't fetch template when not inserting block
|
|
40
42
|
|
|
41
|
-
Slimmer::Processors::ReportAProblemInserter.new(@skin, "").filter(:any_source, template)
|
|
43
|
+
Slimmer::Processors::ReportAProblemInserter.new(@skin, "", {}).filter(:any_source, template)
|
|
42
44
|
assert_not_in template, "div.report-a-problem-container"
|
|
43
45
|
end
|
|
46
|
+
|
|
47
|
+
private
|
|
48
|
+
|
|
49
|
+
def template
|
|
50
|
+
@template ||= as_nokogiri %{
|
|
51
|
+
<html>
|
|
52
|
+
<body">
|
|
53
|
+
<div id="wrapper">
|
|
54
|
+
<div id="report-a-problem"></div>
|
|
55
|
+
</div>
|
|
56
|
+
</body>
|
|
57
|
+
</html>
|
|
58
|
+
}
|
|
59
|
+
end
|
|
44
60
|
end
|
metadata
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: slimmer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease:
|
|
5
|
-
version: 3.
|
|
5
|
+
version: 3.18.0
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
8
8
|
- Ben Griffiths
|
|
@@ -11,7 +11,7 @@ autorequire:
|
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
13
|
|
|
14
|
-
date: 2013-
|
|
14
|
+
date: 2013-07-03 00:00:00 Z
|
|
15
15
|
dependencies:
|
|
16
16
|
- !ruby/object:Gem::Dependency
|
|
17
17
|
name: nokogiri
|
|
@@ -117,9 +117,9 @@ dependencies:
|
|
|
117
117
|
requirement: &id010 !ruby/object:Gem::Requirement
|
|
118
118
|
none: false
|
|
119
119
|
requirements:
|
|
120
|
-
- -
|
|
120
|
+
- - "="
|
|
121
121
|
- !ruby/object:Gem::Version
|
|
122
|
-
version:
|
|
122
|
+
version: 1.11.0
|
|
123
123
|
type: :development
|
|
124
124
|
prerelease: false
|
|
125
125
|
version_requirements: *id010
|
|
@@ -181,60 +181,60 @@ files:
|
|
|
181
181
|
- README.md
|
|
182
182
|
- CHANGELOG.md
|
|
183
183
|
- lib/tasks/slimmer.rake
|
|
184
|
-
- lib/slimmer
|
|
184
|
+
- lib/slimmer.rb
|
|
185
|
+
- lib/slimmer/skin.rb
|
|
186
|
+
- lib/slimmer/railtie.rb
|
|
187
|
+
- lib/slimmer/template.rb
|
|
188
|
+
- lib/slimmer/test_template.rb
|
|
189
|
+
- lib/slimmer/test.rb
|
|
190
|
+
- lib/slimmer/app.rb
|
|
191
|
+
- lib/slimmer/processors/logo_class_inserter.rb
|
|
192
|
+
- lib/slimmer/processors/search_index_setter.rb
|
|
185
193
|
- lib/slimmer/processors/body_class_copier.rb
|
|
194
|
+
- lib/slimmer/processors/tag_mover.rb
|
|
195
|
+
- lib/slimmer/processors/search_path_setter.rb
|
|
196
|
+
- lib/slimmer/processors/title_inserter.rb
|
|
186
197
|
- lib/slimmer/processors/google_analytics_configurator.rb
|
|
198
|
+
- lib/slimmer/processors/navigation_mover.rb
|
|
199
|
+
- lib/slimmer/processors/conditional_comment_mover.rb
|
|
187
200
|
- lib/slimmer/processors/related_items_inserter.rb
|
|
201
|
+
- lib/slimmer/processors/header_context_inserter.rb
|
|
188
202
|
- lib/slimmer/processors/body_inserter.rb
|
|
189
|
-
- lib/slimmer/processors/logo_class_inserter.rb
|
|
190
203
|
- lib/slimmer/processors/report_a_problem_inserter.rb
|
|
191
|
-
- lib/slimmer/processors/
|
|
204
|
+
- lib/slimmer/processors/meta_viewport_remover.rb
|
|
192
205
|
- lib/slimmer/processors/campaign_notification_inserter.rb
|
|
193
|
-
- lib/slimmer/processors/conditional_comment_mover.rb
|
|
194
206
|
- lib/slimmer/processors/beta_notice_inserter.rb
|
|
195
207
|
- lib/slimmer/processors/section_inserter.rb
|
|
196
|
-
- lib/slimmer/processors/
|
|
197
|
-
- lib/slimmer/processors/navigation_mover.rb
|
|
198
|
-
- lib/slimmer/processors/tag_mover.rb
|
|
199
|
-
- lib/slimmer/processors/title_inserter.rb
|
|
200
|
-
- lib/slimmer/processors/search_index_setter.rb
|
|
201
|
-
- lib/slimmer/processors/header_context_inserter.rb
|
|
202
|
-
- lib/slimmer/processors/meta_viewport_remover.rb
|
|
203
|
-
- lib/slimmer/template.rb
|
|
204
|
-
- lib/slimmer/railtie.rb
|
|
205
|
-
- lib/slimmer/test.rb
|
|
206
|
-
- lib/slimmer/artefact.rb
|
|
207
|
-
- lib/slimmer/skin.rb
|
|
208
|
-
- lib/slimmer/app.rb
|
|
208
|
+
- lib/slimmer/processors/footer_remover.rb
|
|
209
209
|
- lib/slimmer/headers.rb
|
|
210
|
-
- lib/slimmer/
|
|
211
|
-
- lib/slimmer.rb
|
|
210
|
+
- lib/slimmer/version.rb
|
|
211
|
+
- lib/slimmer/artefact.rb
|
|
212
212
|
- Rakefile
|
|
213
|
-
- test/processors/meta_viewport_remover_test.rb
|
|
214
|
-
- test/processors/related_items_inserter_test.rb
|
|
215
|
-
- test/processors/report_a_problem_inserter_test.rb
|
|
216
|
-
- test/processors/section_inserter_test.rb
|
|
217
|
-
- test/processors/google_analytics_test.rb
|
|
218
|
-
- test/processors/search_index_setter_test.rb
|
|
219
|
-
- test/processors/header_context_inserter_test.rb
|
|
220
|
-
- test/processors/body_inserter_test.rb
|
|
221
|
-
- test/processors/logo_class_inserter_test.rb
|
|
222
|
-
- test/processors/campaign_notification_inserter_test.rb
|
|
223
|
-
- test/processors/navigation_mover_test.rb
|
|
224
|
-
- test/processors/search_path_setter_test.rb
|
|
225
|
-
- test/artefact_test.rb
|
|
226
|
-
- test/skin_test.rb
|
|
227
213
|
- test/headers_test.rb
|
|
228
|
-
- test/
|
|
229
|
-
- test/
|
|
214
|
+
- test/artefact_test.rb
|
|
215
|
+
- test/fixtures/related.raw.html.erb
|
|
216
|
+
- test/fixtures/campaign.html.erb
|
|
230
217
|
- test/fixtures/500.html.erb
|
|
231
218
|
- test/fixtures/404.html.erb
|
|
232
219
|
- test/fixtures/proposition_menu.html.erb
|
|
233
220
|
- test/fixtures/beta_notice.html.erb
|
|
234
|
-
- test/fixtures/report_a_problem.raw.html.erb
|
|
235
|
-
- test/fixtures/campaign.html.erb
|
|
236
|
-
- test/fixtures/related.raw.html.erb
|
|
237
221
|
- test/fixtures/wrapper.html.erb
|
|
222
|
+
- test/fixtures/report_a_problem.raw.html.erb
|
|
223
|
+
- test/skin_test.rb
|
|
224
|
+
- test/processors/campaign_notification_inserter_test.rb
|
|
225
|
+
- test/processors/meta_viewport_remover_test.rb
|
|
226
|
+
- test/processors/logo_class_inserter_test.rb
|
|
227
|
+
- test/processors/navigation_mover_test.rb
|
|
228
|
+
- test/processors/search_index_setter_test.rb
|
|
229
|
+
- test/processors/google_analytics_test.rb
|
|
230
|
+
- test/processors/report_a_problem_inserter_test.rb
|
|
231
|
+
- test/processors/body_inserter_test.rb
|
|
232
|
+
- test/processors/search_path_setter_test.rb
|
|
233
|
+
- test/processors/section_inserter_test.rb
|
|
234
|
+
- test/processors/related_items_inserter_test.rb
|
|
235
|
+
- test/processors/header_context_inserter_test.rb
|
|
236
|
+
- test/typical_usage_test.rb
|
|
237
|
+
- test/test_template_dependency_on_static_test.rb
|
|
238
238
|
- test/test_helper.rb
|
|
239
239
|
- bin/render_slimmer_error
|
|
240
240
|
homepage: http://github.com/alphagov/slimmer
|
|
@@ -250,7 +250,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
250
250
|
requirements:
|
|
251
251
|
- - ">="
|
|
252
252
|
- !ruby/object:Gem::Version
|
|
253
|
-
hash:
|
|
253
|
+
hash: -4305673931480993366
|
|
254
254
|
segments:
|
|
255
255
|
- 0
|
|
256
256
|
version: "0"
|
|
@@ -259,7 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
259
259
|
requirements:
|
|
260
260
|
- - ">="
|
|
261
261
|
- !ruby/object:Gem::Version
|
|
262
|
-
hash:
|
|
262
|
+
hash: -4305673931480993366
|
|
263
263
|
segments:
|
|
264
264
|
- 0
|
|
265
265
|
version: "0"
|
|
@@ -271,29 +271,29 @@ signing_key:
|
|
|
271
271
|
specification_version: 3
|
|
272
272
|
summary: Thinner than the skinner
|
|
273
273
|
test_files:
|
|
274
|
-
- test/processors/meta_viewport_remover_test.rb
|
|
275
|
-
- test/processors/related_items_inserter_test.rb
|
|
276
|
-
- test/processors/report_a_problem_inserter_test.rb
|
|
277
|
-
- test/processors/section_inserter_test.rb
|
|
278
|
-
- test/processors/google_analytics_test.rb
|
|
279
|
-
- test/processors/search_index_setter_test.rb
|
|
280
|
-
- test/processors/header_context_inserter_test.rb
|
|
281
|
-
- test/processors/body_inserter_test.rb
|
|
282
|
-
- test/processors/logo_class_inserter_test.rb
|
|
283
|
-
- test/processors/campaign_notification_inserter_test.rb
|
|
284
|
-
- test/processors/navigation_mover_test.rb
|
|
285
|
-
- test/processors/search_path_setter_test.rb
|
|
286
|
-
- test/artefact_test.rb
|
|
287
|
-
- test/skin_test.rb
|
|
288
274
|
- test/headers_test.rb
|
|
289
|
-
- test/
|
|
290
|
-
- test/
|
|
275
|
+
- test/artefact_test.rb
|
|
276
|
+
- test/fixtures/related.raw.html.erb
|
|
277
|
+
- test/fixtures/campaign.html.erb
|
|
291
278
|
- test/fixtures/500.html.erb
|
|
292
279
|
- test/fixtures/404.html.erb
|
|
293
280
|
- test/fixtures/proposition_menu.html.erb
|
|
294
281
|
- test/fixtures/beta_notice.html.erb
|
|
295
|
-
- test/fixtures/report_a_problem.raw.html.erb
|
|
296
|
-
- test/fixtures/campaign.html.erb
|
|
297
|
-
- test/fixtures/related.raw.html.erb
|
|
298
282
|
- test/fixtures/wrapper.html.erb
|
|
283
|
+
- test/fixtures/report_a_problem.raw.html.erb
|
|
284
|
+
- test/skin_test.rb
|
|
285
|
+
- test/processors/campaign_notification_inserter_test.rb
|
|
286
|
+
- test/processors/meta_viewport_remover_test.rb
|
|
287
|
+
- test/processors/logo_class_inserter_test.rb
|
|
288
|
+
- test/processors/navigation_mover_test.rb
|
|
289
|
+
- test/processors/search_index_setter_test.rb
|
|
290
|
+
- test/processors/google_analytics_test.rb
|
|
291
|
+
- test/processors/report_a_problem_inserter_test.rb
|
|
292
|
+
- test/processors/body_inserter_test.rb
|
|
293
|
+
- test/processors/search_path_setter_test.rb
|
|
294
|
+
- test/processors/section_inserter_test.rb
|
|
295
|
+
- test/processors/related_items_inserter_test.rb
|
|
296
|
+
- test/processors/header_context_inserter_test.rb
|
|
297
|
+
- test/typical_usage_test.rb
|
|
298
|
+
- test/test_template_dependency_on_static_test.rb
|
|
299
299
|
- test/test_helper.rb
|