slimmer 9.6.0 → 10.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -1
- data/README.md +9 -9
- data/lib/slimmer.rb +1 -4
- data/lib/slimmer/cucumber.rb +2 -2
- data/lib/slimmer/{shared_templates.rb → govuk_components.rb} +3 -3
- data/lib/slimmer/headers.rb +0 -42
- data/lib/slimmer/processors/metadata_inserter.rb +1 -7
- data/lib/slimmer/rspec.rb +2 -2
- data/lib/slimmer/skin.rb +1 -15
- data/lib/slimmer/test_helpers/{shared_templates.rb → govuk_components.rb} +1 -1
- data/lib/slimmer/version.rb +1 -1
- data/test/headers_test.rb +0 -133
- data/test/processors/metadata_inserter_test.rb +0 -63
- data/test/skin_test.rb +0 -24
- data/test/test_helper.rb +0 -3
- data/test/test_helpers/{shared_templates_test.rb → govuk_components_test.rb} +7 -7
- data/test/typical_usage_test.rb +1 -53
- metadata +24 -49
- data/lib/slimmer/artefact.rb +0 -47
- data/lib/slimmer/processors/related_items_inserter.rb +0 -22
- data/lib/slimmer/processors/section_inserter.rb +0 -49
- data/test/artefact_test.rb +0 -119
- data/test/fixtures/related.raw.html.erb +0 -33
- data/test/processors/related_items_inserter_test.rb +0 -59
- data/test/processors/section_inserter_test.rb +0 -193
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7b991ffcdf6cdee0c893b13695537a444d9272a
|
4
|
+
data.tar.gz: 06bfc18db4b43fd71a9348ea4d2bf0b24113311a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9edba40f3ccaf964d893580121058a6b5aeba3d7d0112b068006c15251d941ac4960efeebeaec8347550b02364935daa82c602c1102951c47ac8e5cb7b5558dd
|
7
|
+
data.tar.gz: 46e4d0f6bab847439aca310d7e00d4b080e3b0ee2d6d44afc321b0d973550af13c7f4eedaaa3139b487810b3d10c50b812a4fee003868598d8185c7cadd68231
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
# 10.0.0
|
2
|
+
|
3
|
+
* Removes the need_id meta tag, which is no longer used.
|
4
|
+
* Removes the functionality for breadcrumbs, related links and artefact-powered
|
5
|
+
metatags.
|
6
|
+
* Drop support for old Rails & Ruby versions. This gem now supports Rails 4.2 and 5.X
|
7
|
+
on Ruby 2.1 and 2.2.
|
8
|
+
* Renames `Slimmer::SharedTemplates` to `Slimmer::GovukComponents`
|
9
|
+
|
1
10
|
# 9.6.0
|
2
11
|
|
3
12
|
* Adds an 'inside header inserter' processor which allows an application to
|
@@ -19,7 +28,7 @@
|
|
19
28
|
|
20
29
|
* Adds an RSpec helper that makes it easy for host applications to
|
21
30
|
configure Slimmer correctly under test.
|
22
|
-
|
31
|
+
|
23
32
|
Fixes `stub_shared_component_locales` helper to correctly stub HTTP
|
24
33
|
requests to fetch locale information when rendering its templates.
|
25
34
|
|
data/README.md
CHANGED
@@ -44,7 +44,7 @@ To get asset tag helpers to point to your external asset server, add
|
|
44
44
|
```rb
|
45
45
|
config.action_controller.asset_host = "http://my.alternative.host"
|
46
46
|
```
|
47
|
-
|
47
|
+
|
48
48
|
to `application.rb`.
|
49
49
|
|
50
50
|
## Specifying a template
|
@@ -101,25 +101,25 @@ YourApp::Application.configure do
|
|
101
101
|
end
|
102
102
|
```
|
103
103
|
|
104
|
-
##
|
104
|
+
## GOV.UK Components
|
105
105
|
|
106
|
-
To use shared template components you need to include the
|
106
|
+
To use [shared template components](https://govuk-component-guide.herokuapp.com/) you need to include the GOV.UK component module:
|
107
107
|
|
108
108
|
```rb
|
109
109
|
class ApplicationController < ActionController::Base
|
110
|
-
include Slimmer::
|
110
|
+
include Slimmer::GovukComponents
|
111
111
|
end
|
112
112
|
```
|
113
113
|
|
114
|
-
This will make calls out to static when you try and render a partial prefixed with `
|
114
|
+
This will make calls out to static when you try and render a partial prefixed with `govuk_component`:
|
115
115
|
|
116
116
|
```erb
|
117
|
-
<%= render partial: '
|
117
|
+
<%= render partial: 'govuk_component/example_component' %>
|
118
118
|
```
|
119
119
|
|
120
120
|
You will need a copy of static running for the templates to be loaded from.
|
121
121
|
|
122
|
-
### Testing
|
122
|
+
### Testing components
|
123
123
|
|
124
124
|
In test mode (when `Rails.env.test?` returns `true`), shared components are not
|
125
125
|
fetched from Static. Instead they are rendered as a dummy tag which contains a
|
@@ -130,8 +130,8 @@ component to assert that it was used. You can make it available in your tests
|
|
130
130
|
with:
|
131
131
|
|
132
132
|
```rb
|
133
|
-
require 'slimmer/test_helpers/
|
134
|
-
include Slimmer::TestHelpers::
|
133
|
+
require 'slimmer/test_helpers/govuk_components'
|
134
|
+
include Slimmer::TestHelpers::GovukComponents
|
135
135
|
```
|
136
136
|
|
137
137
|
And then assert that the component has been used:
|
data/lib/slimmer.rb
CHANGED
@@ -16,9 +16,8 @@ module Slimmer
|
|
16
16
|
autoload :Template, 'slimmer/template'
|
17
17
|
autoload :App, 'slimmer/app'
|
18
18
|
autoload :Headers, 'slimmer/headers'
|
19
|
-
autoload :Artefact, 'slimmer/artefact'
|
20
19
|
|
21
|
-
autoload :
|
20
|
+
autoload :GovukComponents, 'slimmer/govuk_components'
|
22
21
|
autoload :ComponentResolver, 'slimmer/component_resolver'
|
23
22
|
autoload :I18nBackend, 'slimmer/i18n_backend'
|
24
23
|
|
@@ -31,13 +30,11 @@ module Slimmer
|
|
31
30
|
autoload :HeaderContextInserter, 'slimmer/processors/header_context_inserter'
|
32
31
|
autoload :InsideHeaderInserter, 'slimmer/processors/inside_header_inserter'
|
33
32
|
autoload :NavigationMover, 'slimmer/processors/navigation_mover'
|
34
|
-
autoload :RelatedItemsInserter, 'slimmer/processors/related_items_inserter'
|
35
33
|
autoload :ReportAProblemInserter, 'slimmer/processors/report_a_problem_inserter'
|
36
34
|
autoload :SearchIndexSetter, 'slimmer/processors/search_index_setter'
|
37
35
|
autoload :SearchPathSetter, 'slimmer/processors/search_path_setter'
|
38
36
|
autoload :SearchParameterInserter, 'slimmer/processors/search_parameter_inserter'
|
39
37
|
autoload :SearchRemover, 'slimmer/processors/search_remover'
|
40
|
-
autoload :SectionInserter, 'slimmer/processors/section_inserter'
|
41
38
|
autoload :TagMover, 'slimmer/processors/tag_mover'
|
42
39
|
autoload :TitleInserter, 'slimmer/processors/title_inserter'
|
43
40
|
end
|
data/lib/slimmer/cucumber.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'cucumber'
|
2
2
|
|
3
3
|
require 'slimmer/test'
|
4
|
-
require 'slimmer/test_helpers/
|
4
|
+
require 'slimmer/test_helpers/govuk_components'
|
5
5
|
|
6
|
-
World(Slimmer::TestHelpers::
|
6
|
+
World(Slimmer::TestHelpers::GovukComponents)
|
7
7
|
|
8
8
|
Before do
|
9
9
|
stub_shared_component_locales
|
@@ -1,10 +1,10 @@
|
|
1
1
|
module Slimmer
|
2
|
-
module
|
2
|
+
module GovukComponents
|
3
3
|
def self.included into
|
4
|
-
into.before_action :
|
4
|
+
into.before_action :add_govuk_components
|
5
5
|
end
|
6
6
|
|
7
|
-
def
|
7
|
+
def add_govuk_components
|
8
8
|
append_view_path Slimmer::ComponentResolver.new
|
9
9
|
|
10
10
|
return if slimmer_backend_included?
|
data/lib/slimmer/headers.rb
CHANGED
@@ -20,7 +20,6 @@ module Slimmer
|
|
20
20
|
}
|
21
21
|
|
22
22
|
APPLICATION_NAME_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:application_name]}"
|
23
|
-
ARTEFACT_HEADER = "#{HEADER_PREFIX}-Artefact"
|
24
23
|
FORMAT_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:format]}"
|
25
24
|
ORGANISATIONS_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:organisations]}"
|
26
25
|
REPORT_A_PROBLEM_FORM = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:report_a_problem]}"
|
@@ -40,46 +39,5 @@ module Slimmer
|
|
40
39
|
headers["#{HEADER_PREFIX}-#{header_suffix}"] = value.to_s if value
|
41
40
|
end
|
42
41
|
end
|
43
|
-
|
44
|
-
def set_slimmer_artefact(artefact_input)
|
45
|
-
if artefact_input.is_a?(Hash) or artefact_input.is_a?(OpenStruct)
|
46
|
-
artefact = artefact_input.dup
|
47
|
-
elsif artefact_input.respond_to?(:to_hash)
|
48
|
-
artefact = artefact_input.to_hash
|
49
|
-
end
|
50
|
-
yield artefact if block_given?
|
51
|
-
headers[ARTEFACT_HEADER] = artefact.to_json
|
52
|
-
end
|
53
|
-
|
54
|
-
def set_slimmer_artefact_overriding_section(artefact_input, details = {})
|
55
|
-
set_slimmer_artefact(artefact_input) do |artefact|
|
56
|
-
if tag = slimmer_section_tag_for_details(details)
|
57
|
-
artefact["tags"] = [tag] + (artefact["tags"] || [])
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def set_slimmer_dummy_artefact(details = {})
|
63
|
-
set_slimmer_artefact({}) do |artefact|
|
64
|
-
artefact["title"] = details[:title] if details[:title]
|
65
|
-
if tag = slimmer_section_tag_for_details(details)
|
66
|
-
artefact["tags"] = [tag]
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
|
-
def slimmer_section_tag_for_details(details)
|
72
|
-
if details[:section_name] and details[:section_link]
|
73
|
-
tag = {
|
74
|
-
"title" => details[:section_name],
|
75
|
-
"details" => {"type" => "section"},
|
76
|
-
"content_with_tag" => {"web_url" => details[:section_link]},
|
77
|
-
}
|
78
|
-
if details[:parent]
|
79
|
-
tag["parent"] = slimmer_section_tag_for_details(details[:parent])
|
80
|
-
end
|
81
|
-
tag
|
82
|
-
end
|
83
|
-
end
|
84
42
|
end
|
85
43
|
end
|
@@ -1,19 +1,13 @@
|
|
1
1
|
module Slimmer::Processors
|
2
2
|
class MetadataInserter
|
3
|
-
def initialize(response,
|
3
|
+
def initialize(response, app_name)
|
4
4
|
@headers = response.headers
|
5
|
-
@artefact = artefact
|
6
5
|
@app_name = app_name
|
7
6
|
end
|
8
7
|
|
9
8
|
def filter(src, dest)
|
10
9
|
head = dest.at_css('head')
|
11
10
|
|
12
|
-
if @artefact
|
13
|
-
add_meta_tag('section', @artefact.primary_root_section["title"].downcase, head) if @artefact.primary_root_section
|
14
|
-
add_meta_tag('need-ids', @artefact.need_ids.join(',').downcase, head) if @artefact.need_ids
|
15
|
-
end
|
16
|
-
|
17
11
|
add_meta_tag('analytics:organisations', @headers[Slimmer::Headers::ORGANISATIONS_HEADER], head)
|
18
12
|
add_meta_tag('analytics:world-locations', @headers[Slimmer::Headers::WORLD_LOCATIONS_HEADER], head)
|
19
13
|
add_meta_tag('format', @headers[Slimmer::Headers::FORMAT_HEADER], head)
|
data/lib/slimmer/rspec.rb
CHANGED
@@ -2,10 +2,10 @@ require 'rspec/core'
|
|
2
2
|
|
3
3
|
require 'slimmer'
|
4
4
|
require 'slimmer/test'
|
5
|
-
require 'slimmer/test_helpers/
|
5
|
+
require 'slimmer/test_helpers/govuk_components'
|
6
6
|
|
7
7
|
RSpec.configure do |config|
|
8
|
-
config.include Slimmer::TestHelpers::
|
8
|
+
config.include Slimmer::TestHelpers::GovukComponents
|
9
9
|
|
10
10
|
config.before { stub_shared_component_locales }
|
11
11
|
end
|
data/lib/slimmer/skin.rb
CHANGED
@@ -104,7 +104,6 @@ module Slimmer
|
|
104
104
|
end
|
105
105
|
|
106
106
|
def success(source_request, response, body)
|
107
|
-
artefact = artefact_from_header(response)
|
108
107
|
wrapper_id = options[:wrapper_id] || 'wrapper'
|
109
108
|
processors = [
|
110
109
|
Processors::TitleInserter.new(),
|
@@ -115,11 +114,9 @@ module Slimmer
|
|
115
114
|
Processors::BodyClassCopier.new,
|
116
115
|
Processors::InsideHeaderInserter.new,
|
117
116
|
Processors::HeaderContextInserter.new(),
|
118
|
-
Processors::
|
119
|
-
Processors::MetadataInserter.new(response, artefact, options[:app_name]),
|
117
|
+
Processors::MetadataInserter.new(response, options[:app_name]),
|
120
118
|
Processors::SearchParameterInserter.new(response),
|
121
119
|
Processors::SearchPathSetter.new(response),
|
122
|
-
Processors::RelatedItemsInserter.new(self, artefact),
|
123
120
|
Processors::ReportAProblemInserter.new(self,
|
124
121
|
source_request.url,
|
125
122
|
response.headers,
|
@@ -137,16 +134,5 @@ module Slimmer
|
|
137
134
|
]
|
138
135
|
process(processors, body, template(template_name), rack_env)
|
139
136
|
end
|
140
|
-
|
141
|
-
def artefact_from_header(response)
|
142
|
-
if response.headers.include?(Headers::ARTEFACT_HEADER)
|
143
|
-
Artefact.new JSON.parse(response.headers[Headers::ARTEFACT_HEADER])
|
144
|
-
else
|
145
|
-
nil
|
146
|
-
end
|
147
|
-
rescue JSON::ParserError => e
|
148
|
-
logger.error "Slimmer: Failed while parsing artefact header: #{[ e.message, e.backtrace ].flatten.join("\n")}"
|
149
|
-
nil
|
150
|
-
end
|
151
137
|
end
|
152
138
|
end
|
data/lib/slimmer/version.rb
CHANGED
data/test/headers_test.rb
CHANGED
@@ -49,142 +49,9 @@ class HeadersTest < MiniTest::Test
|
|
49
49
|
assert_equal "rhubarb", headers["X-Slimmer-Skip"]
|
50
50
|
end
|
51
51
|
|
52
|
-
def test_should_skip_missing_headers
|
53
|
-
set_slimmer_headers section: "rhubarb"
|
54
|
-
refute_includes headers.keys, "X-Slimmer-Need-ID"
|
55
|
-
end
|
56
|
-
|
57
52
|
def test_should_raise_an_exception_if_a_header_has_a_typo
|
58
53
|
assert_raises Slimmer::Headers::InvalidHeader do
|
59
54
|
set_slimmer_headers seccion: "wrong"
|
60
55
|
end
|
61
56
|
end
|
62
57
|
end
|
63
|
-
|
64
|
-
describe Slimmer::Headers do
|
65
|
-
include Slimmer::Headers
|
66
|
-
attr_accessor :headers
|
67
|
-
|
68
|
-
before do
|
69
|
-
self.headers = {}
|
70
|
-
end
|
71
|
-
|
72
|
-
describe "setting the artefact header" do
|
73
|
-
it "should convert a hash to JSON and insert into the header" do
|
74
|
-
artefact = {"foo" => "bar"}
|
75
|
-
self.set_slimmer_artefact(artefact)
|
76
|
-
assert_equal artefact.to_json, headers[Slimmer::Headers::ARTEFACT_HEADER]
|
77
|
-
end
|
78
|
-
|
79
|
-
it "should convert an OpenStruct to JSON" do
|
80
|
-
artefact = OpenStruct.new("foo" => "bar")
|
81
|
-
self.set_slimmer_artefact(artefact)
|
82
|
-
assert_equal({"foo" => "bar"}.to_json, headers[Slimmer::Headers::ARTEFACT_HEADER])
|
83
|
-
end
|
84
|
-
|
85
|
-
it "should handle an object that responds to :to_hash" do
|
86
|
-
hash = {"foo" => "bar", "slug" => "vat-rates"}
|
87
|
-
artefact = stub("Response", :to_hash => hash)
|
88
|
-
self.set_slimmer_artefact(artefact)
|
89
|
-
assert_equal hash.to_json, headers[Slimmer::Headers::ARTEFACT_HEADER]
|
90
|
-
end
|
91
|
-
|
92
|
-
it "should not have side-effects on the passed in hash" do
|
93
|
-
artefact = {"foo" => "bar", "slug" => "vat-rates", "actions" => "some_actions"}
|
94
|
-
artefact_copy = artefact.dup
|
95
|
-
self.set_slimmer_artefact(artefact)
|
96
|
-
assert_equal artefact_copy, artefact
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
describe "setting the artefact and adding a dummy section" do
|
101
|
-
it "should setup a section tag for the given name and link" do
|
102
|
-
artefact_input = {"foo" => "bar", "slug" => "vat-rates", "actions" => "some_actions"}
|
103
|
-
self.set_slimmer_artefact_overriding_section(artefact_input, :section_name => "Foo", :section_link => "/something/foo")
|
104
|
-
|
105
|
-
artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
|
106
|
-
|
107
|
-
assert_equal "Foo", artefact["tags"][0]["title"]
|
108
|
-
assert_equal "section", artefact["tags"][0]["details"]["type"]
|
109
|
-
assert_equal "/something/foo", artefact["tags"][0]["content_with_tag"]["web_url"]
|
110
|
-
end
|
111
|
-
|
112
|
-
it "should not overwrite existing tags" do
|
113
|
-
artefact_input = {"foo" => "bar", "slug" => "vat-rates", "actions" => "some_actions", "tags" => ["foo", "bar"]}
|
114
|
-
self.set_slimmer_artefact_overriding_section(artefact_input, :section_name => "Foo", :section_link => "/something/foo")
|
115
|
-
|
116
|
-
artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
|
117
|
-
|
118
|
-
assert_equal ["foo", "bar"], artefact["tags"][1..-1]
|
119
|
-
end
|
120
|
-
|
121
|
-
it "should not have side-effects on the passed in hash" do
|
122
|
-
artefact_input = {"foo" => "bar", "slug" => "vat-rates", "actions" => "some_actions"}
|
123
|
-
artefact_copy = artefact_input.dup
|
124
|
-
self.set_slimmer_artefact_overriding_section(artefact_input, :section_name => "Foo", :section_link => "/foo")
|
125
|
-
assert_equal artefact_copy, artefact_input
|
126
|
-
end
|
127
|
-
|
128
|
-
it "should work correctly with a gds_api response object" do
|
129
|
-
input_artefact = {"foo" => "bar", "slug" => "vat-rates", "actions" => "some_actions"}
|
130
|
-
api_response = GdsApi::Response.new(stub("HTTP Response", :code => 200, :body => input_artefact.to_json))
|
131
|
-
self.set_slimmer_artefact_overriding_section(api_response, :section_name => "Foo", :section_link => "/something/foo")
|
132
|
-
|
133
|
-
artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
|
134
|
-
|
135
|
-
assert_equal "Foo", artefact["tags"][0]["title"]
|
136
|
-
assert_equal "section", artefact["tags"][0]["details"]["type"]
|
137
|
-
assert_equal "/something/foo", artefact["tags"][0]["content_with_tag"]["web_url"]
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
describe "setting a dummy artefact in the artefact header" do
|
142
|
-
it "should setup an artefact title" do
|
143
|
-
self.set_slimmer_dummy_artefact(:title => "Foo")
|
144
|
-
|
145
|
-
artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
|
146
|
-
|
147
|
-
assert_equal "Foo", artefact["title"]
|
148
|
-
end
|
149
|
-
|
150
|
-
it "should setup a section tag for the given name and link" do
|
151
|
-
self.set_slimmer_dummy_artefact(:section_name => "Foo", :section_link => "/something/foo")
|
152
|
-
|
153
|
-
artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
|
154
|
-
|
155
|
-
assert_equal "Foo", artefact["tags"][0]["title"]
|
156
|
-
assert_equal "section", artefact["tags"][0]["details"]["type"]
|
157
|
-
assert_equal "/something/foo", artefact["tags"][0]["content_with_tag"]["web_url"]
|
158
|
-
end
|
159
|
-
|
160
|
-
it "can set up a section tag with multiple levels of parents" do
|
161
|
-
self.set_slimmer_dummy_artefact(
|
162
|
-
:section_name => "Foo",
|
163
|
-
:section_link => "/something/baz/bar/foo",
|
164
|
-
:parent => {
|
165
|
-
:section_name => "Bar",
|
166
|
-
:section_link => "/something/baz/bar",
|
167
|
-
:parent => {
|
168
|
-
:section_name => "Baz",
|
169
|
-
:section_link => "/something/baz"
|
170
|
-
}
|
171
|
-
}
|
172
|
-
)
|
173
|
-
|
174
|
-
artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
|
175
|
-
|
176
|
-
assert_equal "Foo", artefact["tags"][0]["title"]
|
177
|
-
assert_equal "section", artefact["tags"][0]["details"]["type"]
|
178
|
-
assert_equal "/something/baz/bar/foo", artefact["tags"][0]["content_with_tag"]["web_url"]
|
179
|
-
|
180
|
-
assert_equal "Bar", artefact["tags"][0]["parent"]["title"]
|
181
|
-
assert_equal "section", artefact["tags"][0]["parent"]["details"]["type"]
|
182
|
-
assert_equal "/something/baz/bar", artefact["tags"][0]["parent"]["content_with_tag"]["web_url"]
|
183
|
-
|
184
|
-
assert_equal "Baz", artefact["tags"][0]["parent"]["parent"]["title"]
|
185
|
-
assert_equal "section", artefact["tags"][0]["parent"]["parent"]["details"]["type"]
|
186
|
-
assert_equal "/something/baz", artefact["tags"][0]["parent"]["parent"]["content_with_tag"]["web_url"]
|
187
|
-
|
188
|
-
end
|
189
|
-
end
|
190
|
-
end
|
@@ -31,14 +31,9 @@ module MetadataInserterTest
|
|
31
31
|
def setup
|
32
32
|
super
|
33
33
|
|
34
|
-
artefact = artefact_for_slug_in_a_subsection("something", "rhubarb/in-puddings")
|
35
|
-
artefact["details"].merge!(
|
36
|
-
"need_ids" => [100001,100002],
|
37
|
-
)
|
38
34
|
headers = {
|
39
35
|
Slimmer::Headers::FORMAT_HEADER => "custard",
|
40
36
|
Slimmer::Headers::RESULT_COUNT_HEADER => "3",
|
41
|
-
Slimmer::Headers::ARTEFACT_HEADER => artefact.to_json,
|
42
37
|
Slimmer::Headers::ORGANISATIONS_HEADER => "<P1><D422>",
|
43
38
|
Slimmer::Headers::WORLD_LOCATIONS_HEADER => "<WL3>"
|
44
39
|
}
|
@@ -46,18 +41,10 @@ module MetadataInserterTest
|
|
46
41
|
given_response 200, GENERIC_DOCUMENT, headers
|
47
42
|
end
|
48
43
|
|
49
|
-
def test_should_include_section_meta_tag
|
50
|
-
assert_meta_tag "section", "rhubarb"
|
51
|
-
end
|
52
|
-
|
53
44
|
def test_should_include_format_meta_tag
|
54
45
|
assert_meta_tag "format", "custard"
|
55
46
|
end
|
56
47
|
|
57
|
-
def test_should_include_need_ids_meta_tag
|
58
|
-
assert_meta_tag "need-ids", "100001,100002"
|
59
|
-
end
|
60
|
-
|
61
48
|
def test_should_include_organisations_meta_tag
|
62
49
|
assert_meta_tag "analytics:organisations", "<P1><D422>"
|
63
50
|
end
|
@@ -71,28 +58,6 @@ module MetadataInserterTest
|
|
71
58
|
end
|
72
59
|
end
|
73
60
|
|
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
61
|
class WithoutHeadersTest < SlimmerIntegrationTest
|
97
62
|
include MetaTagAssertions
|
98
63
|
|
@@ -106,10 +71,6 @@ module MetadataInserterTest
|
|
106
71
|
refute_meta_tag "format"
|
107
72
|
end
|
108
73
|
|
109
|
-
def test_should_omit_need_ID
|
110
|
-
refute_meta_tag "need-ids"
|
111
|
-
end
|
112
|
-
|
113
74
|
def test_should_omit_organisations
|
114
75
|
refute_meta_tag "analytics:organisations"
|
115
76
|
end
|
@@ -122,28 +83,4 @@ module MetadataInserterTest
|
|
122
83
|
refute_meta_tag "search-result-count"
|
123
84
|
end
|
124
85
|
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
86
|
end
|