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.
@@ -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),
@@ -1,3 +1,3 @@
1
1
  module Slimmer
2
- VERSION = '3.17.0'
2
+ VERSION = '3.18.0'
3
3
  end
@@ -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 test_should_set_proposition_header
28
- set_slimmer_headers proposition: "rhubarb"
29
- assert_equal "rhubarb", headers["X-Slimmer-Proposition"]
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
- template = as_nokogiri %{
15
- <html>
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.17.0
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-06-18 00:00:00 Z
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: "1.7"
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/version.rb
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/footer_remover.rb
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/search_path_setter.rb
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/test_template.rb
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/test_template_dependency_on_static_test.rb
229
- - test/typical_usage_test.rb
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: 4605535357493844384
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: 4605535357493844384
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/test_template_dependency_on_static_test.rb
290
- - test/typical_usage_test.rb
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