slimmer 1.2.2 → 1.2.3
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.
- data/lib/slimmer/section_inserter.rb +1 -4
- data/lib/slimmer/version.rb +1 -1
- data/test/processors/section_inserter_test.rb +105 -0
- metadata +6 -4
@@ -5,9 +5,6 @@ module Slimmer
|
|
5
5
|
meta_link = dest.at_css('meta[name="x-section-link"]')
|
6
6
|
list = dest.at_css('nav[role=navigation] ol')
|
7
7
|
|
8
|
-
# FIXME: Presumably this is meant to stop us adding a 'current section'
|
9
|
-
# link if we're missing navigation, or x-section-* meta tags.
|
10
|
-
# It doesn't work: #at_css will return a truthy object in any case.
|
11
8
|
if meta_name && meta_link && list
|
12
9
|
link_node = Nokogiri::XML::Node.new('a', dest)
|
13
10
|
link_node['href'] = meta_link['content']
|
@@ -16,7 +13,7 @@ module Slimmer
|
|
16
13
|
list_item = Nokogiri::XML::Node.new('li', dest)
|
17
14
|
list_item.add_child(link_node)
|
18
15
|
|
19
|
-
list.
|
16
|
+
list.add_child(list_item)
|
20
17
|
end
|
21
18
|
end
|
22
19
|
end
|
data/lib/slimmer/version.rb
CHANGED
@@ -0,0 +1,105 @@
|
|
1
|
+
require_relative "../test_helper"
|
2
|
+
|
3
|
+
class SectionInserterTest < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
# Note: the SectionInserter processor runs after the TagMover processor, so the meta
|
6
|
+
# tags have already been moved into the destination template
|
7
|
+
|
8
|
+
def test_should_add_section_link_to_breadcrumb
|
9
|
+
template = as_nokogiri %{
|
10
|
+
<html>
|
11
|
+
<head>
|
12
|
+
<meta content="Business" name="x-section-name">
|
13
|
+
<meta content="/browse/business" name="x-section-link">
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<nav role="navigation">
|
17
|
+
<ol><li><a href="/">Home</a></li></ol>
|
18
|
+
</nav>
|
19
|
+
</body>
|
20
|
+
</html>
|
21
|
+
}
|
22
|
+
|
23
|
+
Slimmer::SectionInserter.new.filter(:any_source, template)
|
24
|
+
assert_in template, "nav[role=navigation] ol li:nth-child(1)", %{<a href="/">Home</a>}
|
25
|
+
assert_in template, "nav[role=navigation] ol li:nth-child(2)", %{<a href="/browse/business">Business</a>}
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_should_add_section_link_after_last_item_in_breadcrumb
|
29
|
+
template = as_nokogiri %{
|
30
|
+
<html>
|
31
|
+
<head>
|
32
|
+
<meta content="Business" name="x-section-name">
|
33
|
+
<meta content="/browse/business" name="x-section-link">
|
34
|
+
</head>
|
35
|
+
<body>
|
36
|
+
<nav role="navigation">
|
37
|
+
<ol>
|
38
|
+
<li><a href="/">Home</a></li>
|
39
|
+
<li><a href="/browse">All Sections</a></li>
|
40
|
+
</ol>
|
41
|
+
</nav>
|
42
|
+
</body>
|
43
|
+
</html>
|
44
|
+
}
|
45
|
+
|
46
|
+
Slimmer::SectionInserter.new.filter(:any_source, template)
|
47
|
+
assert_in template, "nav[role=navigation] ol li:nth-child(1)", %{<a href="/">Home</a>}
|
48
|
+
assert_in template, "nav[role=navigation] ol li:nth-child(2)", %{<a href="/browse">All Sections</a>}
|
49
|
+
assert_in template, "nav[role=navigation] ol li:nth-child(3)", %{<a href="/browse/business">Business</a>}
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_should_not_add_section_link_if_no_section_name_tag
|
53
|
+
template = as_nokogiri %{
|
54
|
+
<html>
|
55
|
+
<head>
|
56
|
+
<meta content="/browse/business" name="x-section-link">
|
57
|
+
</head>
|
58
|
+
<body>
|
59
|
+
<nav role="navigation">
|
60
|
+
<ol><li><a href="/">Home</a></li></ol>
|
61
|
+
</nav>
|
62
|
+
</body>
|
63
|
+
</html>
|
64
|
+
}
|
65
|
+
|
66
|
+
Slimmer::SectionInserter.new.filter(:any_source, template)
|
67
|
+
assert_in template, "nav[role=navigation] ol li:nth-child(1)", %{<a href="/">Home</a>}
|
68
|
+
assert_not_in template, "nav[role=navigation] ol li:nth-child(2)"
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_should_not_add_section_link_if_no_section_link_tag
|
72
|
+
template = as_nokogiri %{
|
73
|
+
<html>
|
74
|
+
<head>
|
75
|
+
<meta content="Business" name="x-section-name">
|
76
|
+
</head>
|
77
|
+
<body>
|
78
|
+
<nav role="navigation">
|
79
|
+
<ol><li><a href="/">Home</a></li></ol>
|
80
|
+
</nav>
|
81
|
+
</body>
|
82
|
+
</html>
|
83
|
+
}
|
84
|
+
|
85
|
+
Slimmer::SectionInserter.new.filter(:any_source, template)
|
86
|
+
assert_in template, "nav[role=navigation] ol li:nth-child(1)", %{<a href="/">Home</a>}
|
87
|
+
assert_not_in template, "nav[role=navigation] ol li:nth-child(2)"
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_should_do_nothing_if_navigation_not_in_template
|
91
|
+
template = as_nokogiri %{
|
92
|
+
<html>
|
93
|
+
<head>
|
94
|
+
<meta content="Business" name="x-section-name">
|
95
|
+
<meta content="/browse/business" name="x-section-link">
|
96
|
+
</head>
|
97
|
+
<body>
|
98
|
+
</body>
|
99
|
+
</html>
|
100
|
+
}
|
101
|
+
|
102
|
+
Slimmer::SectionInserter.new.filter(:any_source, template)
|
103
|
+
assert_not_in template, "nav[role=navigation]"
|
104
|
+
end
|
105
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: slimmer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.2.
|
5
|
+
version: 1.2.3
|
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: 2012-08-
|
14
|
+
date: 2012-08-15 00:00:00 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: nokogiri
|
@@ -185,6 +185,7 @@ files:
|
|
185
185
|
- lib/slimmer/test_template.rb
|
186
186
|
- lib/slimmer.rb
|
187
187
|
- Rakefile
|
188
|
+
- test/processors/section_inserter_test.rb
|
188
189
|
- test/processors/header_context_inserter_test.rb
|
189
190
|
- test/processors/body_inserter_test.rb
|
190
191
|
- test/skin_test.rb
|
@@ -212,7 +213,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
212
213
|
requirements:
|
213
214
|
- - ">="
|
214
215
|
- !ruby/object:Gem::Version
|
215
|
-
hash: -
|
216
|
+
hash: -3770509032206210026
|
216
217
|
segments:
|
217
218
|
- 0
|
218
219
|
version: "0"
|
@@ -221,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
221
222
|
requirements:
|
222
223
|
- - ">="
|
223
224
|
- !ruby/object:Gem::Version
|
224
|
-
hash: -
|
225
|
+
hash: -3770509032206210026
|
225
226
|
segments:
|
226
227
|
- 0
|
227
228
|
version: "0"
|
@@ -233,6 +234,7 @@ signing_key:
|
|
233
234
|
specification_version: 3
|
234
235
|
summary: Thinner than the skinner
|
235
236
|
test_files:
|
237
|
+
- test/processors/section_inserter_test.rb
|
236
238
|
- test/processors/header_context_inserter_test.rb
|
237
239
|
- test/processors/body_inserter_test.rb
|
238
240
|
- test/skin_test.rb
|