slimmer 3.17.0 → 3.18.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|