meta_tags-rails 1.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 +7 -0
- data/.gitignore +7 -0
- data/.rspec +3 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +21 -0
- data/CHANGELOG.md +135 -0
- data/Gemfile +13 -0
- data/MIT-LICENSE +22 -0
- data/README.md +627 -0
- data/Rakefile +28 -0
- data/lib/meta_tags-rails.rb +37 -0
- data/lib/meta_tags-rails/configuration.rb +21 -0
- data/lib/meta_tags-rails/content_tag.rb +14 -0
- data/lib/meta_tags-rails/controller_helper.rb +44 -0
- data/lib/meta_tags-rails/meta_tags_collection.rb +176 -0
- data/lib/meta_tags-rails/renderer.rb +253 -0
- data/lib/meta_tags-rails/tag.rb +25 -0
- data/lib/meta_tags-rails/text_normalizer.rb +148 -0
- data/lib/meta_tags-rails/version.rb +4 -0
- data/lib/meta_tags-rails/view_helper.rb +205 -0
- data/meta-tags.gemspec +30 -0
- data/spec/configuration_spec.rb +14 -0
- data/spec/controller_helper_spec.rb +42 -0
- data/spec/spec_helper.rb +84 -0
- data/spec/text_normalizer/normalize_title_spec.rb +43 -0
- data/spec/text_normalizer/truncate_array_spec.rb +60 -0
- data/spec/view_helper/charset_spec.rb +16 -0
- data/spec/view_helper/custom_spec.rb +67 -0
- data/spec/view_helper/description_spec.rb +61 -0
- data/spec/view_helper/icon_spec.rb +42 -0
- data/spec/view_helper/keywords_spec.rb +58 -0
- data/spec/view_helper/links_spec.rb +125 -0
- data/spec/view_helper/module_spec.rb +41 -0
- data/spec/view_helper/noindex_spec.rb +107 -0
- data/spec/view_helper/open_graph_spec.rb +86 -0
- data/spec/view_helper/open_search_spec.rb +33 -0
- data/spec/view_helper/refresh_spec.rb +32 -0
- data/spec/view_helper/title_spec.rb +155 -0
- data/spec/view_helper/twitter_spec.rb +31 -0
- data/spec/view_helper_spec.rb +57 -0
- metadata +172 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MetaTags::ViewHelper, 'module' do
|
4
|
+
subject { ActionView::Base.new }
|
5
|
+
|
6
|
+
it 'should be mixed into ActionView::Base' do
|
7
|
+
expect(ActionView::Base.included_modules).to include(MetaTags::ViewHelper)
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should respond to "title" helper' do
|
11
|
+
expect(subject).to respond_to(:title)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should respond to "description" helper' do
|
15
|
+
expect(subject).to respond_to(:description)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should respond to "keywords" helper' do
|
19
|
+
expect(subject).to respond_to(:keywords)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should respond to "noindex" helper' do
|
23
|
+
expect(subject).to respond_to(:noindex)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should respond to "nofollow" helper' do
|
27
|
+
expect(subject).to respond_to(:nofollow)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should respond to "set_meta_tags" helper' do
|
31
|
+
expect(subject).to respond_to(:set_meta_tags)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should respond to "display_meta_tags" helper' do
|
35
|
+
expect(subject).to respond_to(:display_meta_tags)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should respond to "display_title" helper' do
|
39
|
+
expect(subject).to respond_to(:display_title)
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MetaTags::ViewHelper do
|
4
|
+
subject { ActionView::Base.new }
|
5
|
+
|
6
|
+
context 'displaying noindex' do
|
7
|
+
it 'should display noindex when "noindex" used' do
|
8
|
+
subject.noindex(true)
|
9
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
10
|
+
expect(meta).to have_tag('meta', with: { content: "noindex", name: "robots" })
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should display noindex when "set_meta_tags" used' do
|
15
|
+
subject.set_meta_tags(noindex: true)
|
16
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
17
|
+
expect(meta).to have_tag('meta', with: { content: "noindex", name: "robots" })
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should use custom noindex if given' do
|
22
|
+
subject.noindex('some-noindex')
|
23
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
24
|
+
expect(meta).to have_tag('meta', with: { content: "noindex", name: "some-noindex" })
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should display nothing by default' do
|
29
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
30
|
+
expect(meta).to_not have_tag('meta', with: { content: "noindex" })
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should display nothing if given false" do
|
35
|
+
subject.set_meta_tags(noindex: false)
|
36
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
37
|
+
expect(meta).to_not have_tag('meta', with: { content: "robots" })
|
38
|
+
end
|
39
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
40
|
+
expect(meta).to_not have_tag('meta', with: { content: "noindex" })
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'displaying nofollow' do
|
46
|
+
it 'should display nofollow when "nofollow" used' do
|
47
|
+
subject.nofollow(true)
|
48
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
49
|
+
expect(meta).to have_tag('meta', with: { content: "nofollow", name: "robots" })
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should display nofollow when "set_meta_tags" used' do
|
54
|
+
subject.set_meta_tags(nofollow: true)
|
55
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
56
|
+
expect(meta).to have_tag('meta', with: { content: "nofollow", name: "robots" })
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should use custom nofollow if given' do
|
61
|
+
subject.nofollow('some-nofollow')
|
62
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
63
|
+
expect(meta).to have_tag('meta', with: { content: "nofollow", name: "some-nofollow" })
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should display nothing by default' do
|
68
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
69
|
+
expect(meta).to_not have_tag('meta', with: { content: "nofollow" })
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
context 'displaying both nofollow and noindex' do
|
75
|
+
it 'should be displayed when set using helpers' do
|
76
|
+
subject.noindex(true)
|
77
|
+
subject.nofollow(true)
|
78
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
79
|
+
expect(meta).to have_tag('meta', with: { content: "noindex, nofollow", name: "robots" })
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'should be displayed when "set_meta_tags" used' do
|
84
|
+
subject.set_meta_tags(nofollow: true, noindex: true)
|
85
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
86
|
+
expect(meta).to have_tag('meta', with: { content: "noindex, nofollow", name: "robots" })
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'should use custom name if string is used' do
|
91
|
+
subject.noindex('some-name')
|
92
|
+
subject.nofollow('some-name')
|
93
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
94
|
+
expect(meta).to have_tag('meta', with: { content: "noindex, nofollow", name: "some-name" })
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should display two meta tags when different names used' do
|
99
|
+
subject.noindex('some-noindex')
|
100
|
+
subject.nofollow('some-nofollow')
|
101
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
102
|
+
expect(meta).to have_tag('meta', with: { content: "noindex", name: "some-noindex" })
|
103
|
+
expect(meta).to have_tag('meta', with: { content: "nofollow", name: "some-nofollow" })
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MetaTags::ViewHelper, 'displaying Open Graph meta tags' do
|
4
|
+
subject { ActionView::Base.new }
|
5
|
+
|
6
|
+
it 'should display meta tags specified with :open_graph' do
|
7
|
+
subject.set_meta_tags(open_graph: {
|
8
|
+
title: 'Facebook Share Title',
|
9
|
+
description: 'Facebook Share Description'
|
10
|
+
})
|
11
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
12
|
+
expect(meta).to have_tag('meta', with: { content: "Facebook Share Title", property: "og:title" })
|
13
|
+
expect(meta).to have_tag('meta', with: { content: "Facebook Share Description", property: "og:description" })
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should display meta tags specified with :og' do
|
18
|
+
subject.set_meta_tags(og: {
|
19
|
+
title: 'Facebook Share Title',
|
20
|
+
description: 'Facebook Share Description'
|
21
|
+
})
|
22
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
23
|
+
expect(meta).to have_tag('meta', with: { content: "Facebook Share Title", property: "og:title" })
|
24
|
+
expect(meta).to have_tag('meta', with: { content: "Facebook Share Description", property: "og:description" })
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should use deep merge when displaying open graph meta tags' do
|
29
|
+
subject.set_meta_tags(og: { title: 'Facebook Share Title' })
|
30
|
+
subject.display_meta_tags(og: { description: 'Facebook Share Description' }).tap do |meta|
|
31
|
+
expect(meta).to have_tag('meta', with: { content: "Facebook Share Title", property: "og:title" })
|
32
|
+
expect(meta).to have_tag('meta', with: { content: "Facebook Share Description", property: "og:description" })
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should not display meta tags without content" do
|
37
|
+
subject.set_meta_tags(open_graph: {
|
38
|
+
title: '',
|
39
|
+
description: ''
|
40
|
+
})
|
41
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
42
|
+
expect(meta).to_not have_tag('meta', with: { content: "", property: "og:title" })
|
43
|
+
expect(meta).to_not have_tag('meta', with: { content: "", property: "og:description" })
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should display locale meta tags" do
|
48
|
+
subject.display_meta_tags(open_graph: { locale: { _: 'en_GB', alternate: ['fr_FR', 'es_ES'] } }).tap do |meta|
|
49
|
+
expect(meta).to have_tag('meta', with: { content: "en_GB", property: "og:locale" })
|
50
|
+
expect(meta).to have_tag('meta', with: { content: "fr_FR", property: "og:locale:alternate" })
|
51
|
+
expect(meta).to have_tag('meta', with: { content: "es_ES", property: "og:locale:alternate" })
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should display mirrored content" do
|
56
|
+
subject.set_meta_tags(title: 'someTitle')
|
57
|
+
subject.display_meta_tags(open_graph: { title: :title }).tap do |meta|
|
58
|
+
expect(meta).to have_tag('meta', with: { content: "someTitle", property: "og:title" })
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should display open graph meta tags with an array of images" do
|
63
|
+
subject.set_meta_tags(open_graph: {
|
64
|
+
title: 'someTitle',
|
65
|
+
image: [{
|
66
|
+
_: 'http://example.com/1.png',
|
67
|
+
width: 75,
|
68
|
+
height: 75,
|
69
|
+
},
|
70
|
+
{
|
71
|
+
_: 'http://example.com/2.png',
|
72
|
+
width: 50,
|
73
|
+
height: 50,
|
74
|
+
}]
|
75
|
+
})
|
76
|
+
subject.display_meta_tags(site: 'someTitle').tap do |meta|
|
77
|
+
expect(meta).to have_tag('meta', with: { content: "someTitle", property: "og:title" })
|
78
|
+
expect(meta).to have_tag('meta', with: { content: "http://example.com/1.png", property: "og:image" })
|
79
|
+
expect(meta).to have_tag('meta', with: { content: "75", property: "og:image:width" })
|
80
|
+
expect(meta).to have_tag('meta', with: { content: "75", property: "og:image:height" })
|
81
|
+
expect(meta).to have_tag('meta', with: { content: "http://example.com/2.png", property: "og:image" })
|
82
|
+
expect(meta).to have_tag('meta', with: { content: "50", property: "og:image:width" })
|
83
|
+
expect(meta).to have_tag('meta', with: { content: "50", property: "og:image:height" })
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MetaTags::ViewHelper, 'displaying Open Search meta tags' do
|
4
|
+
subject { ActionView::Base.new }
|
5
|
+
|
6
|
+
it 'should display meta tags specified with :open_search' do
|
7
|
+
subject.set_meta_tags(open_search: {
|
8
|
+
title: 'Open Search Title',
|
9
|
+
href: '/open_search_path.xml'
|
10
|
+
})
|
11
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
12
|
+
expect(meta).to have_tag('link', with: {
|
13
|
+
href: '/open_search_path.xml',
|
14
|
+
rel: 'search',
|
15
|
+
title: 'Open Search Title',
|
16
|
+
type: 'application/opensearchdescription+xml',
|
17
|
+
})
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should not display meta tags without content' do
|
22
|
+
subject.set_meta_tags(open_search: {
|
23
|
+
title: '',
|
24
|
+
href: '',
|
25
|
+
})
|
26
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
27
|
+
expect(meta).to_not have_tag('link', with: {
|
28
|
+
rel: 'search',
|
29
|
+
type: 'application/opensearchdescription+xml',
|
30
|
+
})
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MetaTags::ViewHelper, 'displaying refresh' do
|
4
|
+
subject { ActionView::Base.new }
|
5
|
+
|
6
|
+
it 'displays refresh when "refresh" is used' do
|
7
|
+
subject.refresh(5)
|
8
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
9
|
+
expect(meta).to have_tag('meta', with: { content: '5', 'http-equiv' => 'refresh' })
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'displays refresh when "set_meta_tags" used' do
|
14
|
+
subject.set_meta_tags(refresh: 5)
|
15
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
16
|
+
expect(meta).to have_tag('meta', with: { content: '5', 'http-equiv' => 'refresh' })
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should use custom refresh if given' do
|
21
|
+
subject.refresh("5;url=http://example.com/")
|
22
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
23
|
+
expect(meta).to have_tag('meta', with: { content: '5;url=http://example.com/', 'http-equiv' => "refresh" })
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should display nothing by default' do
|
28
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
29
|
+
expect(meta).to_not have_tag('meta', with: { 'http-equiv' => "refresh" })
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,155 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe MetaTags::ViewHelper do
|
4
|
+
subject { ActionView::Base.new }
|
5
|
+
|
6
|
+
context 'displaying title' do
|
7
|
+
it 'should not display title if blank' do
|
8
|
+
expect(subject.display_meta_tags).to eq('')
|
9
|
+
subject.title('')
|
10
|
+
expect(subject.display_meta_tags).to eq('')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should use website name if title is empty' do
|
14
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
15
|
+
expect(meta).to eq('<title>someSite</title>')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should display title when "title" used' do
|
20
|
+
subject.title('someTitle')
|
21
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
22
|
+
expect(meta).to eq('<title>someSite | someTitle</title>')
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should display title only when "site" is empty' do
|
27
|
+
subject.title('someTitle')
|
28
|
+
expect(subject.display_meta_tags).to eq('<title>someTitle</title>')
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should display title when "set_meta_tags" used' do
|
32
|
+
subject.set_meta_tags(title: 'someTitle')
|
33
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
34
|
+
expect(meta).to eq('<title>someSite | someTitle</title>')
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should display custom title if given' do
|
39
|
+
subject.title('someTitle')
|
40
|
+
subject.display_meta_tags(site: 'someSite', title: 'defaultTitle').tap do |meta|
|
41
|
+
expect(meta).to eq('<title>someSite | someTitle</title>')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should use website before page by default' do
|
46
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle').tap do |meta|
|
47
|
+
expect(meta).to eq('<title>someSite | someTitle</title>')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'should only use markup in titles in the view' do
|
52
|
+
expect(subject.title('<b>someTitle</b>')).to eq('<b>someTitle</b>')
|
53
|
+
subject.display_meta_tags(site: 'someSite').tap do |meta|
|
54
|
+
expect(meta).to eq('<title>someSite | someTitle</title>')
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'should use page before website if :reverse' do
|
59
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle', reverse: true).tap do |meta|
|
60
|
+
expect(meta).to eq('<title>someTitle | someSite</title>')
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should be lowercase if :lowercase' do
|
65
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle', lowercase: true).tap do |meta|
|
66
|
+
expect(meta).to eq('<title>someSite | sometitle</title>')
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should use custom separator if :separator' do
|
71
|
+
subject.title('someTitle')
|
72
|
+
subject.display_meta_tags(site: 'someSite', separator: '-').tap do |meta|
|
73
|
+
expect(meta).to eq('<title>someSite - someTitle</title>')
|
74
|
+
end
|
75
|
+
subject.display_meta_tags(site: 'someSite', separator: ':').tap do |meta|
|
76
|
+
expect(meta).to eq('<title>someSite : someTitle</title>')
|
77
|
+
end
|
78
|
+
subject.display_meta_tags(site: 'someSite', separator: '&').tap do |meta|
|
79
|
+
expect(meta).to eq('<title>someSite &amp;amp; someTitle</title>')
|
80
|
+
end
|
81
|
+
subject.display_meta_tags(site: 'someSite', separator: '&'.html_safe).tap do |meta|
|
82
|
+
expect(meta).to eq('<title>someSite &amp; someTitle</title>')
|
83
|
+
end
|
84
|
+
subject.display_meta_tags(site: 'someSite: ', separator: false).tap do |meta|
|
85
|
+
expect(meta).to eq('<title>someSite: someTitle</title>')
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should use custom prefix and suffix if available' do
|
90
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle', prefix: ' -', suffix: '- ').tap do |meta|
|
91
|
+
expect(meta).to eq('<title>someSite -|- someTitle</title>')
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'should collapse prefix if false' do
|
96
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle', prefix: false).tap do |meta|
|
97
|
+
expect(meta).to eq('<title>someSite| someTitle</title>')
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'should collapse suffix if false' do
|
102
|
+
subject.display_meta_tags(site: 'someSite', title: 'someTitle', suffix: false).tap do |meta|
|
103
|
+
expect(meta).to eq('<title>someSite |someTitle</title>')
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'should use all custom options if available' do
|
108
|
+
subject.display_meta_tags({
|
109
|
+
site: 'someSite',
|
110
|
+
title: 'someTitle',
|
111
|
+
prefix: ' -',
|
112
|
+
suffix: '+ ',
|
113
|
+
separator: ':',
|
114
|
+
lowercase: true,
|
115
|
+
reverse: true,
|
116
|
+
}).tap do |meta|
|
117
|
+
expect(meta).to eq('<title>sometitle -:+ someSite</title>')
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'should allow Arrays in title' do
|
122
|
+
subject.display_meta_tags(site: 'someSite', title: ['someTitle', 'anotherTitle']).tap do |meta|
|
123
|
+
expect(meta).to eq('<title>someSite | someTitle | anotherTitle</title>')
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'should allow Arrays in title with :lowercase' do
|
128
|
+
subject.display_meta_tags(site: 'someSite', title: ['someTitle', 'anotherTitle'], lowercase: true).tap do |meta|
|
129
|
+
expect(meta).to eq('<title>someSite | sometitle | anothertitle</title>')
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'should build title in reverse order if :reverse' do
|
134
|
+
subject.display_meta_tags({
|
135
|
+
site: 'someSite',
|
136
|
+
title: ['someTitle', 'anotherTitle'],
|
137
|
+
prefix: ' -',
|
138
|
+
suffix: '+ ',
|
139
|
+
separator: ':',
|
140
|
+
reverse: true,
|
141
|
+
}).tap do |meta|
|
142
|
+
expect(meta).to eq('<title>anotherTitle -:+ someTitle -:+ someSite</title>')
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
context '.display_title' do
|
148
|
+
it 'should display custom title if given' do
|
149
|
+
subject.title('someTitle')
|
150
|
+
subject.display_title(site: 'someSite', title: 'defaultTitle').tap do |meta|
|
151
|
+
expect(meta).to eq('someSite | someTitle')
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|