slimmer 7.0.0 → 8.0.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/lib/slimmer.rb +1 -1
- data/lib/slimmer/headers.rb +0 -1
- data/lib/slimmer/processors/metadata_inserter.rb +34 -0
- data/lib/slimmer/skin.rb +1 -1
- data/lib/slimmer/version.rb +1 -1
- data/test/fixtures/wrapper.html.erb +0 -5
- data/test/processors/metadata_inserter_test.rb +149 -0
- metadata +5 -5
- data/lib/slimmer/processors/google_analytics_configurator.rb +0 -47
- data/test/processors/google_analytics_test.rb +0 -198
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5f23b920aad27dfc980397b64f2f9e401b96d863
|
4
|
+
data.tar.gz: 79a169c43fcc6d616172ff4dcc637857cf2d1419
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34a7a53a6e06102e2f2db641c9971bc25891a76ed726739ed5a66fcc0db731b7535238884adb97d449616a04e57c259baea0498dd4cf9df67e152bb8755dac9f
|
7
|
+
data.tar.gz: 328d89ec79ca51cfd76a4fb7ebb80d59f53461eb8832115750d6f4998b4adf9f7ac6beced889fba4f71705f980ae6c3a306d51b2ae5872450525e12eb00f9535
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
# 8.0.0
|
2
|
+
|
3
|
+
* Switch from JS custom variables to HTML meta tags
|
4
|
+
|
5
|
+
Slimmer now appends page metadata as meta tags instead of setting Google
|
6
|
+
custom variables within a script tag. The Google-specific implementation
|
7
|
+
details have been removed.
|
8
|
+
|
9
|
+
Any apps that need to report analytics events will require additional
|
10
|
+
Javascript that reads the meta tags and sends the relevant data to the
|
11
|
+
analytics platform. The current best practice for doing this is using
|
12
|
+
the GOV.UK Analytics API - you can find the [code, examples and documentation
|
13
|
+
in `govuk_frontend_toolkit`](https://github.com/alphagov/govuk_frontend_toolkit/blob/master/docs/analytics.md).
|
14
|
+
|
15
|
+
* Remove Proposition header, since this information wasn't being used
|
16
|
+
|
1
17
|
# 7.0.0
|
2
18
|
|
3
19
|
* Remove AlphaLabelInserter, BetaNoticeInserter, BetaLabelInserter. These are
|
data/lib/slimmer.rb
CHANGED
@@ -26,7 +26,7 @@ module Slimmer
|
|
26
26
|
autoload :BodyInserter, 'slimmer/processors/body_inserter'
|
27
27
|
autoload :ConditionalCommentMover, 'slimmer/processors/conditional_comment_mover'
|
28
28
|
autoload :FooterRemover, 'slimmer/processors/footer_remover'
|
29
|
-
autoload :
|
29
|
+
autoload :MetadataInserter, 'slimmer/processors/metadata_inserter'
|
30
30
|
autoload :HeaderContextInserter, 'slimmer/processors/header_context_inserter'
|
31
31
|
autoload :NavigationMover, 'slimmer/processors/navigation_mover'
|
32
32
|
autoload :MetaViewportRemover, 'slimmer/processors/meta_viewport_remover'
|
data/lib/slimmer/headers.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
module Slimmer::Processors
|
2
|
+
class MetadataInserter
|
3
|
+
def initialize(response, artefact)
|
4
|
+
@headers = response.headers
|
5
|
+
@artefact = artefact
|
6
|
+
end
|
7
|
+
|
8
|
+
def filter(src, dest)
|
9
|
+
head = dest.at_css('head')
|
10
|
+
|
11
|
+
if @artefact
|
12
|
+
add_meta_tag('section', @artefact.primary_root_section["title"].downcase, head) if @artefact.primary_root_section
|
13
|
+
add_meta_tag('need-ids', @artefact.need_ids.join(',').downcase, head) if @artefact.need_ids
|
14
|
+
end
|
15
|
+
|
16
|
+
add_meta_tag('analytics:organisations', @headers[Slimmer::Headers::ORGANISATIONS_HEADER], head)
|
17
|
+
add_meta_tag('analytics:world-locations', @headers[Slimmer::Headers::WORLD_LOCATIONS_HEADER], head)
|
18
|
+
add_meta_tag('format', @headers[Slimmer::Headers::FORMAT_HEADER], head)
|
19
|
+
add_meta_tag('search-result-count', @headers[Slimmer::Headers::RESULT_COUNT_HEADER], head)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def add_meta_tag(name, content, head)
|
25
|
+
if content
|
26
|
+
meta_node = Nokogiri::XML::Node.new('meta', head)
|
27
|
+
meta_node['name'] = "govuk:#{name}"
|
28
|
+
meta_node['content'] = content
|
29
|
+
|
30
|
+
head.add_child(meta_node)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/slimmer/skin.rb
CHANGED
@@ -117,7 +117,7 @@ module Slimmer
|
|
117
117
|
Processors::BodyClassCopier.new,
|
118
118
|
Processors::HeaderContextInserter.new(),
|
119
119
|
Processors::SectionInserter.new(artefact),
|
120
|
-
Processors::
|
120
|
+
Processors::MetadataInserter.new(response, artefact),
|
121
121
|
Processors::SearchParameterInserter.new(response),
|
122
122
|
Processors::SearchPathSetter.new(response),
|
123
123
|
Processors::RelatedItemsInserter.new(self, artefact),
|
data/lib/slimmer/version.rb
CHANGED
@@ -2,11 +2,6 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>Slimmer, yay!</title>
|
5
|
-
<script id="ga-params" type="text/javascript">
|
6
|
-
var GOVUK = GOVUK || {};
|
7
|
-
GOVUK.Analytics = GOVUK.Analytics || {};
|
8
|
-
var _gaq = _gaq || [];
|
9
|
-
</script>
|
10
5
|
</head>
|
11
6
|
<body>
|
12
7
|
<header id="global-header"><h1>I AM A TITLE</h1></header>
|
@@ -0,0 +1,149 @@
|
|
1
|
+
require_relative "../test_helper"
|
2
|
+
|
3
|
+
module MetadataInserterTest
|
4
|
+
|
5
|
+
GENERIC_DOCUMENT = <<-END
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<title>The title of the page</title>
|
9
|
+
</head>
|
10
|
+
<body class="body_class">
|
11
|
+
<div id="wrapper">The body of the page</div>
|
12
|
+
</body>
|
13
|
+
</html>
|
14
|
+
END
|
15
|
+
|
16
|
+
module MetaTagAssertions
|
17
|
+
def assert_meta_tag(name, content)
|
18
|
+
template = Nokogiri::HTML(last_response.body)
|
19
|
+
assert_in template, "head meta[name='govuk:#{name}'][content='#{content}']"
|
20
|
+
end
|
21
|
+
|
22
|
+
def refute_meta_tag(name)
|
23
|
+
template = Nokogiri::HTML(last_response.body)
|
24
|
+
assert_not_in template, "head meta[name='govuk:#{name}']"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class WithHeadersTest < SlimmerIntegrationTest
|
29
|
+
include MetaTagAssertions
|
30
|
+
|
31
|
+
def setup
|
32
|
+
super
|
33
|
+
|
34
|
+
artefact = artefact_for_slug_in_a_subsection("something", "rhubarb/in-puddings")
|
35
|
+
artefact["details"].merge!(
|
36
|
+
"need_ids" => [100001,100002],
|
37
|
+
)
|
38
|
+
headers = {
|
39
|
+
Slimmer::Headers::FORMAT_HEADER => "custard",
|
40
|
+
Slimmer::Headers::RESULT_COUNT_HEADER => "3",
|
41
|
+
Slimmer::Headers::ARTEFACT_HEADER => artefact.to_json,
|
42
|
+
Slimmer::Headers::ORGANISATIONS_HEADER => "<P1><D422>",
|
43
|
+
Slimmer::Headers::WORLD_LOCATIONS_HEADER => "<WL3>"
|
44
|
+
}
|
45
|
+
|
46
|
+
given_response 200, GENERIC_DOCUMENT, headers
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_should_include_section_meta_tag
|
50
|
+
assert_meta_tag "section", "rhubarb"
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_should_include_format_meta_tag
|
54
|
+
assert_meta_tag "format", "custard"
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_should_include_need_ids_meta_tag
|
58
|
+
assert_meta_tag "need-ids", "100001,100002"
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_should_include_organisations_meta_tag
|
62
|
+
assert_meta_tag "analytics:organisations", "<P1><D422>"
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_should_include_world_locations_meta_tag
|
66
|
+
assert_meta_tag "analytics:world-locations", "<WL3>"
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_should_include_search_result_count_meta_tag
|
70
|
+
assert_meta_tag "search-result-count", "3"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
class WithInvalidAttributes < SlimmerIntegrationTest
|
75
|
+
include MetaTagAssertions
|
76
|
+
|
77
|
+
def setup
|
78
|
+
super
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_should_skip_passing_need_ids_if_they_are_nil
|
82
|
+
artefact = artefact_for_slug_in_a_subsection("something", "rhubarb/in-puddings")
|
83
|
+
headers = {
|
84
|
+
Slimmer::Headers::ARTEFACT_HEADER => artefact.to_json,
|
85
|
+
Slimmer::Headers::FORMAT_HEADER => "custard"
|
86
|
+
}
|
87
|
+
given_response 200, GENERIC_DOCUMENT, headers
|
88
|
+
|
89
|
+
refute_meta_tag "need-ids"
|
90
|
+
# the presence of these attributes tests that the nil check worked
|
91
|
+
assert_meta_tag "section", "rhubarb"
|
92
|
+
assert_meta_tag "format", "custard"
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
class WithoutHeadersTest < SlimmerIntegrationTest
|
97
|
+
include MetaTagAssertions
|
98
|
+
|
99
|
+
given_response 200, GENERIC_DOCUMENT, {}
|
100
|
+
|
101
|
+
def test_should_omit_section
|
102
|
+
refute_meta_tag "section"
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_should_omit_internal_format_name
|
106
|
+
refute_meta_tag "format"
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_should_omit_need_ID
|
110
|
+
refute_meta_tag "need-ids"
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_should_omit_organisations
|
114
|
+
refute_meta_tag "analytics:organisations"
|
115
|
+
end
|
116
|
+
|
117
|
+
def test_should_omit_world_locations
|
118
|
+
refute_meta_tag "analytics:world-locations"
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_should_omit_result_count
|
122
|
+
refute_meta_tag "search-result-count"
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
class WithNilHeaderTest < SlimmerIntegrationTest
|
127
|
+
include MetaTagAssertions
|
128
|
+
|
129
|
+
def setup
|
130
|
+
super
|
131
|
+
|
132
|
+
artefact = artefact_for_slug_in_a_subsection("something", "rhubarb/in-puddings")
|
133
|
+
artefact["details"].merge!(
|
134
|
+
"need_ids" => [100001, 100002],
|
135
|
+
)
|
136
|
+
headers = {
|
137
|
+
Slimmer::Headers::RESULT_COUNT_HEADER => "3",
|
138
|
+
Slimmer::Headers::ARTEFACT_HEADER => artefact.to_json,
|
139
|
+
Slimmer::Headers::ORGANISATIONS_HEADER => "<P1><D422>"
|
140
|
+
}
|
141
|
+
|
142
|
+
given_response 200, GENERIC_DOCUMENT, headers
|
143
|
+
end
|
144
|
+
|
145
|
+
def test_should_include_organisation_meta_tag_without_crashing
|
146
|
+
assert_meta_tag "analytics:organisations", "<P1><D422>"
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
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:
|
4
|
+
version: 8.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Griffiths
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-03-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -266,9 +266,9 @@ files:
|
|
266
266
|
- lib/slimmer/processors/body_inserter.rb
|
267
267
|
- lib/slimmer/processors/conditional_comment_mover.rb
|
268
268
|
- lib/slimmer/processors/footer_remover.rb
|
269
|
-
- lib/slimmer/processors/google_analytics_configurator.rb
|
270
269
|
- lib/slimmer/processors/header_context_inserter.rb
|
271
270
|
- lib/slimmer/processors/meta_viewport_remover.rb
|
271
|
+
- lib/slimmer/processors/metadata_inserter.rb
|
272
272
|
- lib/slimmer/processors/navigation_mover.rb
|
273
273
|
- lib/slimmer/processors/related_items_inserter.rb
|
274
274
|
- lib/slimmer/processors/report_a_problem_inserter.rb
|
@@ -300,9 +300,9 @@ files:
|
|
300
300
|
- test/fixtures/wrapper.html.erb
|
301
301
|
- test/headers_test.rb
|
302
302
|
- test/processors/body_inserter_test.rb
|
303
|
-
- test/processors/google_analytics_test.rb
|
304
303
|
- test/processors/header_context_inserter_test.rb
|
305
304
|
- test/processors/meta_viewport_remover_test.rb
|
305
|
+
- test/processors/metadata_inserter_test.rb
|
306
306
|
- test/processors/navigation_mover_test.rb
|
307
307
|
- test/processors/related_items_inserter_test.rb
|
308
308
|
- test/processors/report_a_problem_inserter_test.rb
|
@@ -361,9 +361,9 @@ test_files:
|
|
361
361
|
- test/processors/navigation_mover_test.rb
|
362
362
|
- test/processors/related_items_inserter_test.rb
|
363
363
|
- test/processors/search_path_setter_test.rb
|
364
|
-
- test/processors/google_analytics_test.rb
|
365
364
|
- test/processors/meta_viewport_remover_test.rb
|
366
365
|
- test/processors/search_parameter_inserter_test.rb
|
367
366
|
- test/processors/section_inserter_test.rb
|
368
367
|
- test/processors/report_a_problem_inserter_test.rb
|
369
368
|
- test/processors/tag_mover_test.rb
|
369
|
+
- test/processors/metadata_inserter_test.rb
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require "json"
|
2
|
-
|
3
|
-
module Slimmer::Processors
|
4
|
-
class GoogleAnalyticsConfigurator
|
5
|
-
PAGE_LEVEL_EVENT = 3
|
6
|
-
|
7
|
-
def initialize(response, artefact)
|
8
|
-
@headers = response.headers
|
9
|
-
@artefact = artefact
|
10
|
-
end
|
11
|
-
|
12
|
-
def filter(src, dest)
|
13
|
-
custom_vars = []
|
14
|
-
if @artefact
|
15
|
-
custom_vars << set_custom_var_downcase(1, "Section", @artefact.primary_root_section["title"]) if @artefact.primary_root_section
|
16
|
-
custom_vars << set_multivalue_custom_var(3, "NeedID", @artefact.need_ids)
|
17
|
-
custom_vars << set_custom_var_downcase(4, "Proposition", (@artefact.business_proposition ? 'business' : 'citizen')) unless @artefact.business_proposition.nil?
|
18
|
-
end
|
19
|
-
custom_vars << set_custom_var(9, "Organisations", @headers[Slimmer::Headers::ORGANISATIONS_HEADER])
|
20
|
-
custom_vars << set_custom_var(10, "WorldLocations", @headers[Slimmer::Headers::WORLD_LOCATIONS_HEADER])
|
21
|
-
custom_vars << set_custom_var_downcase(2, "Format", @headers[Slimmer::Headers::FORMAT_HEADER])
|
22
|
-
custom_vars << set_custom_var_downcase(5, "ResultCount", @headers[Slimmer::Headers::RESULT_COUNT_HEADER])
|
23
|
-
|
24
|
-
if dest.at_css("#ga-params")
|
25
|
-
dest.at_css("#ga-params").content += custom_vars.compact.join("\n")
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
private
|
30
|
-
def set_custom_var_downcase(slot, name, value)
|
31
|
-
return nil unless value
|
32
|
-
set_custom_var(slot, name, value.downcase)
|
33
|
-
end
|
34
|
-
|
35
|
-
def set_multivalue_custom_var(slot, name, values)
|
36
|
-
return nil if !values.is_a?(Array) || values.empty?
|
37
|
-
set_custom_var(slot, name, values.join(',').downcase)
|
38
|
-
end
|
39
|
-
|
40
|
-
def set_custom_var(slot, name, value)
|
41
|
-
return nil unless value
|
42
|
-
response = "_gaq.push(#{JSON.dump([ "_setCustomVar", slot, name, value, PAGE_LEVEL_EVENT])});\n"
|
43
|
-
response + "GOVUK.Analytics.#{name} = \"#{value}\";"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
@@ -1,198 +0,0 @@
|
|
1
|
-
require_relative "../test_helper"
|
2
|
-
require "v8"
|
3
|
-
|
4
|
-
module GoogleAnalyticsTest
|
5
|
-
PAGE_LEVEL_EVENT = 3
|
6
|
-
|
7
|
-
GENERIC_DOCUMENT = <<-END
|
8
|
-
<html>
|
9
|
-
<head>
|
10
|
-
<title>The title of the page</title>
|
11
|
-
</head>
|
12
|
-
<body class="body_class">
|
13
|
-
<div id="wrapper">The body of the page</div>
|
14
|
-
</body>
|
15
|
-
</html>
|
16
|
-
END
|
17
|
-
|
18
|
-
module JavaScriptAssertions
|
19
|
-
def gaq
|
20
|
-
js = Nokogiri::HTML(last_response.body).at_css("#ga-params").text
|
21
|
-
context = V8::Context.new
|
22
|
-
context.eval(js)
|
23
|
-
context.eval("_gaq");
|
24
|
-
end
|
25
|
-
|
26
|
-
def govuk
|
27
|
-
js = Nokogiri::HTML(last_response.body).at_css("#ga-params").text
|
28
|
-
context = V8::Context.new
|
29
|
-
context.eval(js)
|
30
|
-
context.eval("GOVUK.Analytics");
|
31
|
-
end
|
32
|
-
|
33
|
-
def assert_custom_var(slot, name, value, page_level)
|
34
|
-
# Ruby Racer JS arrays don't accept range indexing, so we must
|
35
|
-
# use a slightly longer workaround
|
36
|
-
vars = gaq.select { |a| a[0] == "_setCustomVar" }.
|
37
|
-
map { |a| (1..4).map { |i| a[i] } }
|
38
|
-
assert_includes vars, [slot, name, value, page_level]
|
39
|
-
end
|
40
|
-
|
41
|
-
def assert_set_var(name, value, object)
|
42
|
-
assert_equal value, object.find { |each| each[0] == name }[1]
|
43
|
-
end
|
44
|
-
|
45
|
-
def refute_custom_var(name)
|
46
|
-
vars = gaq.select { |a| a[0] == "_setCustomVar" }.map { |a| a[2] }
|
47
|
-
refute_includes vars, name
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
class WithHeadersTest < SlimmerIntegrationTest
|
52
|
-
include JavaScriptAssertions
|
53
|
-
|
54
|
-
def setup
|
55
|
-
super
|
56
|
-
|
57
|
-
artefact = artefact_for_slug_in_a_subsection("something", "rhubarb/in-puddings")
|
58
|
-
artefact["details"].merge!(
|
59
|
-
"need_ids" => [100001,100002],
|
60
|
-
"business_proposition" => true,
|
61
|
-
)
|
62
|
-
headers = {
|
63
|
-
Slimmer::Headers::FORMAT_HEADER => "custard",
|
64
|
-
Slimmer::Headers::RESULT_COUNT_HEADER => "3",
|
65
|
-
Slimmer::Headers::ARTEFACT_HEADER => artefact.to_json,
|
66
|
-
Slimmer::Headers::ORGANISATIONS_HEADER => "<P1><D422>",
|
67
|
-
Slimmer::Headers::WORLD_LOCATIONS_HEADER => "<WL3>"
|
68
|
-
}
|
69
|
-
|
70
|
-
given_response 200, GENERIC_DOCUMENT, headers
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_should_pass_section_to_GA
|
74
|
-
assert_custom_var 1, "Section", "rhubarb", PAGE_LEVEL_EVENT
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_should_set_section_in_GOVUK_object
|
78
|
-
assert_set_var "Section", "rhubarb", govuk
|
79
|
-
end
|
80
|
-
|
81
|
-
def test_should_pass_internal_format_name_to_GA
|
82
|
-
assert_custom_var 2, "Format", "custard", PAGE_LEVEL_EVENT
|
83
|
-
end
|
84
|
-
|
85
|
-
def test_should_set_internal_format_name_in_GOVUK_object
|
86
|
-
assert_set_var "Format", "custard", govuk
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_should_pass_need_ids_to_GA
|
90
|
-
assert_custom_var 3, "NeedID", "100001,100002", PAGE_LEVEL_EVENT
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_should_set_need_ids_in_GOVUK_object
|
94
|
-
assert_set_var "NeedID", "100001,100002", govuk
|
95
|
-
end
|
96
|
-
|
97
|
-
def test_should_pass_proposition_to_GA
|
98
|
-
assert_custom_var 4, "Proposition", "business", PAGE_LEVEL_EVENT
|
99
|
-
end
|
100
|
-
|
101
|
-
def test_should_pass_organisation_to_GA
|
102
|
-
assert_custom_var 9, "Organisations", "<P1><D422>", PAGE_LEVEL_EVENT
|
103
|
-
end
|
104
|
-
|
105
|
-
def test_should_pass_world_location_to_GA
|
106
|
-
assert_custom_var 10, "WorldLocations", "<WL3>", PAGE_LEVEL_EVENT
|
107
|
-
end
|
108
|
-
|
109
|
-
def test_should_set_proposition_in_GOVUK_object
|
110
|
-
assert_set_var "Proposition", "business", govuk
|
111
|
-
end
|
112
|
-
|
113
|
-
def test_should_pass_result_count_to_GA
|
114
|
-
assert_custom_var 5, "ResultCount", "3", PAGE_LEVEL_EVENT
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_should_set_result_count_in_GOVUK_object
|
118
|
-
assert_set_var "ResultCount", "3", govuk
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
class WithInvalidAttributes < SlimmerIntegrationTest
|
123
|
-
include JavaScriptAssertions
|
124
|
-
|
125
|
-
def setup
|
126
|
-
super
|
127
|
-
end
|
128
|
-
|
129
|
-
def test_should_skip_passing_need_ids_if_they_are_nil
|
130
|
-
artefact = artefact_for_slug_in_a_subsection("something", "rhubarb/in-puddings")
|
131
|
-
headers = {
|
132
|
-
Slimmer::Headers::ARTEFACT_HEADER => artefact.to_json,
|
133
|
-
Slimmer::Headers::FORMAT_HEADER => "custard"
|
134
|
-
}
|
135
|
-
given_response 200, GENERIC_DOCUMENT, headers
|
136
|
-
|
137
|
-
refute_custom_var "NeedID"
|
138
|
-
# the presence of these attributes tests that the nil check worked
|
139
|
-
assert_custom_var 1, "Section", "rhubarb", PAGE_LEVEL_EVENT
|
140
|
-
assert_custom_var 2, "Format", "custard", PAGE_LEVEL_EVENT
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
class WithoutHeadersTest < SlimmerIntegrationTest
|
145
|
-
include JavaScriptAssertions
|
146
|
-
|
147
|
-
given_response 200, GENERIC_DOCUMENT, {}
|
148
|
-
|
149
|
-
def test_should_omit_section
|
150
|
-
refute_custom_var "Section"
|
151
|
-
end
|
152
|
-
|
153
|
-
def test_should_omit_internal_format_name
|
154
|
-
refute_custom_var "Format"
|
155
|
-
end
|
156
|
-
|
157
|
-
def test_should_omit_need_ID
|
158
|
-
refute_custom_var "NeedID"
|
159
|
-
end
|
160
|
-
|
161
|
-
def test_should_omit_proposition
|
162
|
-
refute_custom_var "Proposition"
|
163
|
-
end
|
164
|
-
|
165
|
-
def test_should_omit_organisations
|
166
|
-
refute_custom_var "Organisations"
|
167
|
-
end
|
168
|
-
|
169
|
-
def test_should_omit_result_count
|
170
|
-
refute_custom_var "ResultCount"
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
174
|
-
class WithNilHeaderTest < SlimmerIntegrationTest
|
175
|
-
include JavaScriptAssertions
|
176
|
-
|
177
|
-
def setup
|
178
|
-
super
|
179
|
-
|
180
|
-
artefact = artefact_for_slug_in_a_subsection("something", "rhubarb/in-puddings")
|
181
|
-
artefact["details"].merge!(
|
182
|
-
"need_ids" => [100001, 100002],
|
183
|
-
"business_proposition" => true
|
184
|
-
)
|
185
|
-
headers = {
|
186
|
-
Slimmer::Headers::RESULT_COUNT_HEADER => "3",
|
187
|
-
Slimmer::Headers::ARTEFACT_HEADER => artefact.to_json,
|
188
|
-
Slimmer::Headers::ORGANISATIONS_HEADER => "<P1><D422>"
|
189
|
-
}
|
190
|
-
|
191
|
-
given_response 200, GENERIC_DOCUMENT, headers
|
192
|
-
end
|
193
|
-
|
194
|
-
def test_should_pass_organisation_to_GA_without_crashing
|
195
|
-
assert_custom_var 9, "Organisations", "<P1><D422>", PAGE_LEVEL_EVENT
|
196
|
-
end
|
197
|
-
end
|
198
|
-
end
|