slimmer 3.26.0 → 3.27.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,7 @@
1
+ # 3.27.0
2
+
3
+ * Added BETA_LABEL header and deprecated BETA_NOTICE header.
4
+
1
5
  # 3.26.0
2
6
 
3
7
  * Added X-Slimmer-World-Location header, value of which will be passed onto Google Analytics.
@@ -24,6 +24,7 @@ module Slimmer
24
24
 
25
25
  module Processors
26
26
  autoload :BetaNoticeInserter, 'slimmer/processors/beta_notice_inserter'
27
+ autoload :BetaLabelInserter, 'slimmer/processors/beta_label_inserter'
27
28
  autoload :BodyClassCopier, 'slimmer/processors/body_class_copier'
28
29
  autoload :BodyInserter, 'slimmer/processors/body_inserter'
29
30
  autoload :ConditionalCommentMover, 'slimmer/processors/conditional_comment_mover'
@@ -7,6 +7,7 @@ module Slimmer
7
7
  SLIMMER_HEADER_MAPPING = {
8
8
  application_name: "Application-Name",
9
9
  beta: "Beta",
10
+ beta_label: "Beta-Label",
10
11
  format: "Format",
11
12
  need_id: "Need-ID",
12
13
  page_owner: "Page-Owner",
@@ -23,6 +24,7 @@ module Slimmer
23
24
  APPLICATION_NAME_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:application_name]}"
24
25
  ARTEFACT_HEADER = "#{HEADER_PREFIX}-Artefact"
25
26
  BETA_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:beta]}"
27
+ BETA_LABEL = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:beta_label]}"
26
28
  FORMAT_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:format]}"
27
29
  ORGANISATIONS_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:organisations]}"
28
30
  WORLD_LOCATIONS_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:world_locations]}"
@@ -0,0 +1,35 @@
1
+ module Slimmer::Processors
2
+ class BetaLabelInserter
3
+ def initialize(skin, headers)
4
+ @skin = skin
5
+ @headers = headers
6
+ end
7
+
8
+ def filter(content_document, page_template)
9
+ if should_add_beta_label?
10
+ if position == 'before'
11
+ page_template.at_css(selector).add_previous_sibling(beta_label_block)
12
+ elsif position == 'after'
13
+ page_template.at_css(selector).add_next_sibling(beta_label_block)
14
+ end
15
+ end
16
+ end
17
+
18
+ def should_add_beta_label?
19
+ !! @headers[Slimmer::Headers::BETA_LABEL]
20
+ end
21
+
22
+ def beta_label_block
23
+ @beta_label_block ||= @skin.template('beta_label').to_s
24
+ end
25
+
26
+ private
27
+ def selector
28
+ @headers[Slimmer::Headers::BETA_LABEL].gsub(/.*:/, '')
29
+ end
30
+
31
+ def position
32
+ @headers[Slimmer::Headers::BETA_LABEL].gsub(/:.*/, '')
33
+ end
34
+ end
35
+ end
@@ -7,6 +7,7 @@ module Slimmer::Processors
7
7
 
8
8
  def filter(content_document, page_template)
9
9
  if should_add_beta_notice?
10
+ warn "[DEPRECATION WARNING] BETA_HEADER is deprecated. Use BETA_LABEL instead."
10
11
  page_template.css('body').add_class('beta')
11
12
  if header = page_template.at_css('#global-header')
12
13
  header.add_next_sibling(beta_notice_block)
@@ -32,4 +33,3 @@ module Slimmer::Processors
32
33
  end
33
34
  end
34
35
  end
35
-
@@ -129,6 +129,7 @@ module Slimmer
129
129
  Processors::SearchIndexSetter.new(response),
130
130
  Processors::MetaViewportRemover.new(response),
131
131
  Processors::BetaNoticeInserter.new(self, response.headers),
132
+ Processors::BetaLabelInserter.new(self, response.headers)
132
133
  ]
133
134
 
134
135
  template_name = response.headers[Headers::TEMPLATE_HEADER] || 'wrapper'
@@ -0,0 +1 @@
1
+ <div class="beta-label"><p>This page is BETA.</p></div>
@@ -1,3 +1,3 @@
1
1
  module Slimmer
2
- VERSION = '3.26.0'
2
+ VERSION = '3.27.0'
3
3
  end
@@ -0,0 +1,25 @@
1
+ require_relative "test_helper"
2
+
3
+ module DeprecatedUsage
4
+ class BetaNoticeInserterTest < SlimmerIntegrationTest
5
+ def test_should_add_beta_warnings
6
+ Slimmer::Processors::BetaNoticeInserter.any_instance.
7
+ expects(:warn).
8
+ with(regexp_matches(/BETA_HEADER is deprecated. Use BETA_LABEL instead/))
9
+
10
+ given_response 200, %{
11
+ <html>
12
+ <body class="wibble">
13
+ <div id="wrapper">The body of the page</div>
14
+ </body>
15
+ </html>
16
+ }, {Slimmer::Headers::BETA_HEADER => '1'}
17
+
18
+ # beta notice after cookie bar
19
+ assert_rendered_in_template "body.beta.wibble #global-header + div.beta-notice"
20
+
21
+ # beta notice before footer
22
+ assert_rendered_in_template "body.beta.wibble div.beta-notice.js-footer + #footer"
23
+ end
24
+ end
25
+ end
@@ -0,0 +1 @@
1
+ <div class="beta-label"><p>This page is BETA.</p></div>
@@ -0,0 +1,42 @@
1
+ require_relative "../test_helper"
2
+
3
+ class BetaLabelInserterTest < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ super
7
+ beta_label_block = '<div class="beta-label"><p>This page is BETA.</p></div>'
8
+ @skin = stub("Skin", :template => beta_label_block)
9
+ @template = as_nokogiri %{
10
+ <html><body><div><div id="wrapper"><header id="main">GOV.UK</header></div></div></body></html>
11
+ }
12
+ end
13
+
14
+ def test_should_add_beta_label_after
15
+
16
+ headers = {
17
+ Slimmer::Headers::BETA_LABEL => "after:header#main"
18
+ }
19
+
20
+ Slimmer::Processors::BetaLabelInserter.new(@skin, headers).filter(nil, @template)
21
+
22
+ assert_in @template, '#main + .beta-label'
23
+ end
24
+
25
+ def test_should_add_beta_label_before
26
+ headers = {
27
+ Slimmer::Headers::BETA_LABEL => "before:header#main"
28
+ }
29
+
30
+ Slimmer::Processors::BetaLabelInserter.new(@skin, headers).filter(nil, @template)
31
+
32
+ assert_in @template, '.beta-label + #main'
33
+ end
34
+
35
+ def test_should_not_add_beta_label
36
+ headers = {}
37
+
38
+ Slimmer::Processors::BetaLabelInserter.new(@skin, headers).filter(nil, @template)
39
+
40
+ assert_not_in @template, '.beta-label'
41
+ end
42
+ end
@@ -78,6 +78,7 @@ class SlimmerIntegrationTest < MiniTest::Unit::TestCase
78
78
  use_template('related.raw')
79
79
  use_template('report_a_problem.raw')
80
80
  use_template('beta_notice')
81
+ use_template('beta_label')
81
82
 
82
83
  fetch_page
83
84
  end
@@ -253,21 +253,17 @@ module TypicalUsage
253
253
  end
254
254
  end
255
255
 
256
- class BetaNoticeInserterTest < SlimmerIntegrationTest
257
- def test_should_add_beta_warnings
256
+ class BetaLabelInserterTest < SlimmerIntegrationTest
257
+ def test_should_add_beta_label
258
258
  given_response 200, %{
259
259
  <html>
260
260
  <body class="wibble">
261
261
  <div id="wrapper">The body of the page</div>
262
262
  </body>
263
263
  </html>
264
- }, {Slimmer::Headers::BETA_HEADER => '1'}
264
+ }, {Slimmer::Headers::BETA_LABEL => 'after:#wrapper'}
265
265
 
266
- # beta notice after cookie bar
267
- assert_rendered_in_template "body.beta.wibble #global-header + div.beta-notice"
268
-
269
- # beta notice before footer
270
- assert_rendered_in_template "body.beta.wibble div.beta-notice.js-footer + #footer"
266
+ assert_rendered_in_template '.beta-label'
271
267
  end
272
268
  end
273
269
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slimmer
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.26.0
4
+ version: 3.27.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-02-18 00:00:00.000000000 Z
13
+ date: 2014-03-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
@@ -270,6 +270,7 @@ files:
270
270
  - lib/slimmer/test_templates/header_footer_only.html
271
271
  - lib/slimmer/test_templates/wrapper.html
272
272
  - lib/slimmer/test_templates/beta_notice.html
273
+ - lib/slimmer/test_templates/beta_label.html
273
274
  - lib/slimmer/test.rb
274
275
  - lib/slimmer/version.rb
275
276
  - lib/slimmer/artefact.rb
@@ -283,6 +284,7 @@ files:
283
284
  - lib/slimmer/processors/tag_mover.rb
284
285
  - lib/slimmer/processors/meta_viewport_remover.rb
285
286
  - lib/slimmer/processors/body_class_copier.rb
287
+ - lib/slimmer/processors/beta_label_inserter.rb
286
288
  - lib/slimmer/processors/report_a_problem_inserter.rb
287
289
  - lib/slimmer/processors/title_inserter.rb
288
290
  - lib/slimmer/processors/search_index_setter.rb
@@ -298,12 +300,14 @@ files:
298
300
  - test/changelog_test.rb
299
301
  - test/typical_usage_test.rb
300
302
  - test/skin_test.rb
303
+ - test/deprecated_usage_test.rb
301
304
  - test/artefact_test.rb
302
305
  - test/fixtures/wrapper.html.erb
303
306
  - test/fixtures/500.html.erb
304
307
  - test/fixtures/proposition_menu.html.erb
305
308
  - test/fixtures/404.html.erb
306
309
  - test/fixtures/report_a_problem.raw.html.erb
310
+ - test/fixtures/beta_label.html.erb
307
311
  - test/fixtures/related.raw.html.erb
308
312
  - test/fixtures/beta_notice.html.erb
309
313
  - test/headers_test.rb
@@ -321,6 +325,7 @@ files:
321
325
  - test/processors/report_a_problem_inserter_test.rb
322
326
  - test/processors/tag_mover_test.rb
323
327
  - test/processors/logo_class_inserter_test.rb
328
+ - test/processors/beta_label_inserter_test.rb
324
329
  - bin/render_slimmer_error
325
330
  homepage: http://github.com/alphagov/slimmer
326
331
  licenses: []
@@ -336,7 +341,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
336
341
  version: '0'
337
342
  segments:
338
343
  - 0
339
- hash: -2647039670405045744
344
+ hash: 553986080410227119
340
345
  required_rubygems_version: !ruby/object:Gem::Requirement
341
346
  none: false
342
347
  requirements:
@@ -345,7 +350,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
345
350
  version: '0'
346
351
  segments:
347
352
  - 0
348
- hash: -2647039670405045744
353
+ hash: 553986080410227119
349
354
  requirements: []
350
355
  rubyforge_project: slimmer
351
356
  rubygems_version: 1.8.23
@@ -356,12 +361,14 @@ test_files:
356
361
  - test/changelog_test.rb
357
362
  - test/typical_usage_test.rb
358
363
  - test/skin_test.rb
364
+ - test/deprecated_usage_test.rb
359
365
  - test/artefact_test.rb
360
366
  - test/fixtures/wrapper.html.erb
361
367
  - test/fixtures/500.html.erb
362
368
  - test/fixtures/proposition_menu.html.erb
363
369
  - test/fixtures/404.html.erb
364
370
  - test/fixtures/report_a_problem.raw.html.erb
371
+ - test/fixtures/beta_label.html.erb
365
372
  - test/fixtures/related.raw.html.erb
366
373
  - test/fixtures/beta_notice.html.erb
367
374
  - test/headers_test.rb
@@ -379,3 +386,4 @@ test_files:
379
386
  - test/processors/report_a_problem_inserter_test.rb
380
387
  - test/processors/tag_mover_test.rb
381
388
  - test/processors/logo_class_inserter_test.rb
389
+ - test/processors/beta_label_inserter_test.rb