slimmer 3.17.0 → 3.18.0

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