sitemap_generator 4.0.alpha → 4.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.
- data/Gemfile +2 -2
- data/Gemfile.lock +1 -3
- data/README.md +197 -111
- data/VERSION +1 -1
- data/lib/sitemap_generator/builder/sitemap_file.rb +12 -12
- data/lib/sitemap_generator/builder/sitemap_index_file.rb +22 -8
- data/lib/sitemap_generator/builder/sitemap_url.rb +4 -2
- data/lib/sitemap_generator/link_set.rb +139 -67
- data/lib/sitemap_generator/sitemap_location.rb +5 -5
- data/lib/sitemap_generator/sitemap_namer.rb +14 -5
- data/spec/files/sitemap.deprecated.rb +2 -0
- data/spec/files/sitemap.groups.rb +14 -2
- data/spec/sitemap_generator/alternate_sitemap_spec.rb +25 -0
- data/spec/sitemap_generator/builder/sitemap_file_spec.rb +78 -25
- data/spec/sitemap_generator/builder/sitemap_index_file_spec.rb +75 -12
- data/spec/sitemap_generator/builder/sitemap_index_url_spec.rb +17 -5
- data/spec/sitemap_generator/link_set_spec.rb +56 -13
- data/spec/sitemap_generator/sitemap_generator_spec.rb +222 -75
- data/spec/sitemap_generator/sitemap_groups_spec.rb +52 -41
- data/spec/sitemap_generator/sitemap_location_spec.rb +46 -44
- data/spec/sitemap_generator/sitemap_namer_spec.rb +14 -0
- data/spec/spec_helper.rb +3 -0
- metadata +17 -14
@@ -26,7 +26,7 @@ describe SitemapGenerator::LinkSet do
|
|
26
26
|
:default_host => nil,
|
27
27
|
:include_index => false,
|
28
28
|
:include_root => true,
|
29
|
-
:create_index =>
|
29
|
+
:create_index => :auto
|
30
30
|
}
|
31
31
|
|
32
32
|
default_options.each do |option, value|
|
@@ -95,15 +95,15 @@ describe SitemapGenerator::LinkSet do
|
|
95
95
|
it "should change when the sitemaps_path is changed" do
|
96
96
|
ls.default_host = 'http://one.com'
|
97
97
|
ls.sitemaps_path = 'sitemaps/'
|
98
|
-
ls.sitemap.location.url.should == 'http://one.com/sitemaps/
|
99
|
-
ls.sitemap_index.location.url.should == 'http://one.com/sitemaps/
|
98
|
+
ls.sitemap.location.url.should == 'http://one.com/sitemaps/sitemap.xml.gz'
|
99
|
+
ls.sitemap_index.location.url.should == 'http://one.com/sitemaps/sitemap.xml.gz'
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
103
|
describe "sitemap_index_url" do
|
104
104
|
it "should return the url to the index file" do
|
105
105
|
ls.default_host = default_host
|
106
|
-
ls.sitemap_index.location.url.should == "#{default_host}/
|
106
|
+
ls.sitemap_index.location.url.should == "#{default_host}/sitemap.xml.gz"
|
107
107
|
ls.sitemap_index_url.should == ls.sitemap_index.location.url
|
108
108
|
end
|
109
109
|
end
|
@@ -187,7 +187,7 @@ describe SitemapGenerator::LinkSet do
|
|
187
187
|
end
|
188
188
|
|
189
189
|
describe "when finalizing" do
|
190
|
-
let(:ls) { SitemapGenerator::LinkSet.new(:default_host => default_host, :verbose => true) }
|
190
|
+
let(:ls) { SitemapGenerator::LinkSet.new(:default_host => default_host, :verbose => true, :create_index => true) }
|
191
191
|
|
192
192
|
it "should output summary lines" do
|
193
193
|
ls.sitemap.expects(:summary)
|
@@ -230,7 +230,7 @@ describe SitemapGenerator::LinkSet do
|
|
230
230
|
it "should not modify the index" do
|
231
231
|
@ls.filename = :newname
|
232
232
|
@ls.sitemap.location.filename.should =~ /newname/
|
233
|
-
@ls.sitemap_index.location.filename =~ /
|
233
|
+
@ls.sitemap_index.location.filename =~ /sitemap/
|
234
234
|
end
|
235
235
|
|
236
236
|
it "should not modify the index" do
|
@@ -520,7 +520,7 @@ describe SitemapGenerator::LinkSet do
|
|
520
520
|
ls.sitemaps_namer.should == namer
|
521
521
|
ls.sitemap.location.namer.should == namer
|
522
522
|
ls.sitemap.location.filename.should =~ /sitemap1_1/
|
523
|
-
ls.sitemap_index.location.filename.should =~ /
|
523
|
+
ls.sitemap_index.location.filename.should =~ /^sitemap1/
|
524
524
|
end
|
525
525
|
|
526
526
|
it "should support both sitemaps_namer and filename options no matter the order" do
|
@@ -530,7 +530,7 @@ describe SitemapGenerator::LinkSet do
|
|
530
530
|
options[:filename] = "sitemap1"
|
531
531
|
ls.create(options)
|
532
532
|
ls.sitemap.location.filename.should =~ /sitemap1_1/
|
533
|
-
ls.sitemap_index.location.filename.should =~ /
|
533
|
+
ls.sitemap_index.location.filename.should =~ /^sitemap1/
|
534
534
|
end
|
535
535
|
|
536
536
|
it "should not modify the options hash" do
|
@@ -547,7 +547,7 @@ describe SitemapGenerator::LinkSet do
|
|
547
547
|
|
548
548
|
describe "reset!" do
|
549
549
|
it "should reset the sitemap namer" do
|
550
|
-
SitemapGenerator::Sitemap.
|
550
|
+
SitemapGenerator::Sitemap.namer.expects(:reset)
|
551
551
|
SitemapGenerator::Sitemap.create(:default_host => 'http://cnn.com')
|
552
552
|
end
|
553
553
|
|
@@ -556,6 +556,13 @@ describe SitemapGenerator::LinkSet do
|
|
556
556
|
SitemapGenerator::Sitemap.create(:default_host => 'http://cnn.com')
|
557
557
|
SitemapGenerator::Sitemap.instance_variable_set(:@added_default_links, false)
|
558
558
|
end
|
559
|
+
|
560
|
+
it "should reset the deprecated sitemaps_namer, if set" do
|
561
|
+
ls.sitemaps_namer = stub(:reset => nil)
|
562
|
+
ls.sitemaps_namer.expects(:reset)
|
563
|
+
ls.send(:reset!)
|
564
|
+
end
|
565
|
+
|
559
566
|
end
|
560
567
|
|
561
568
|
describe "include_root?" do
|
@@ -720,6 +727,9 @@ describe SitemapGenerator::LinkSet do
|
|
720
727
|
end
|
721
728
|
|
722
729
|
describe "create_index" do
|
730
|
+
let(:location) { SitemapGenerator::SitemapLocation.new(:namer => SitemapGenerator::SitemapNamer.new(:sitemap), :public_path => 'tmp/', :sitemaps_path => 'test/', :host => 'http://example.com/') }
|
731
|
+
let(:sitemap) { SitemapGenerator::Builder::SitemapFile.new(location) }
|
732
|
+
|
723
733
|
describe "when false" do
|
724
734
|
let(:ls) { SitemapGenerator::LinkSet.new(:default_host => default_host, :create_index => false) }
|
725
735
|
|
@@ -762,19 +772,52 @@ describe SitemapGenerator::LinkSet do
|
|
762
772
|
ls.send(:finalize_sitemap!)
|
763
773
|
end
|
764
774
|
|
765
|
-
it "should
|
766
|
-
ls.sitemap_index.add '/test'
|
775
|
+
it "should write the index when a link is added manually" do
|
776
|
+
ls.sitemap_index.add '/test'
|
777
|
+
ls.sitemap_index.empty?.should be_false
|
778
|
+
ls.send(:finalize_sitemap_index!)
|
779
|
+
ls.sitemap_index.written?.should be_true
|
780
|
+
end
|
781
|
+
|
782
|
+
it "should not write the index when only one sitemap is added (considered internal usage)" do
|
783
|
+
ls.sitemap_index.add sitemap
|
767
784
|
ls.sitemap_index.empty?.should be_false
|
768
785
|
ls.send(:finalize_sitemap_index!)
|
769
786
|
ls.sitemap_index.written?.should be_false
|
770
787
|
end
|
771
788
|
|
789
|
+
it "should write the index when more than one sitemap is added (considered internal usage)" do
|
790
|
+
ls.sitemap_index.add sitemap
|
791
|
+
ls.sitemap_index.add sitemap.new
|
792
|
+
ls.send(:finalize_sitemap_index!)
|
793
|
+
ls.sitemap_index.written?.should be_true
|
794
|
+
end
|
795
|
+
|
772
796
|
it "should write the index when it has more than one link" do
|
773
|
-
ls.sitemap_index.add '/test1'
|
774
|
-
ls.sitemap_index.add '/test2'
|
797
|
+
ls.sitemap_index.add '/test1'
|
798
|
+
ls.sitemap_index.add '/test2'
|
775
799
|
ls.send(:finalize_sitemap_index!)
|
776
800
|
ls.sitemap_index.written?.should be_true
|
777
801
|
end
|
778
802
|
end
|
779
803
|
end
|
804
|
+
|
805
|
+
describe "when sitemap empty" do
|
806
|
+
before :each do
|
807
|
+
ls.include_root = false
|
808
|
+
end
|
809
|
+
|
810
|
+
it "should not be written" do
|
811
|
+
ls.sitemap.empty?.should be_true
|
812
|
+
ls.expects(:add_to_index).never
|
813
|
+
ls.send(:finalize_sitemap!)
|
814
|
+
end
|
815
|
+
|
816
|
+
it "should be written" do
|
817
|
+
ls.sitemap.add '/test'
|
818
|
+
ls.sitemap.empty?.should be_false
|
819
|
+
ls.expects(:add_to_index).with(ls.sitemap)
|
820
|
+
ls.send(:finalize_sitemap!)
|
821
|
+
end
|
822
|
+
end
|
780
823
|
end
|
@@ -40,42 +40,77 @@ describe "SitemapGenerator" do
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
43
|
+
describe "generate sitemap with deprecated config" do
|
44
|
+
before :all do
|
45
|
+
SitemapGenerator::Sitemap.reset!
|
46
|
+
clean_sitemap_files_from_rails_app
|
47
|
+
copy_sitemap_file_to_rails_app(:deprecated)
|
48
|
+
with_max_links(10) { execute_sitemap_config }
|
49
|
+
end
|
51
50
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
51
|
+
it "should create sitemaps" do
|
52
|
+
file_should_exist(rails_path('public/sitemap_index.xml.gz'))
|
53
|
+
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
54
|
+
file_should_exist(rails_path('public/sitemap2.xml.gz'))
|
55
|
+
file_should_not_exist(rails_path('public/sitemap3.xml.gz'))
|
56
|
+
end
|
58
57
|
|
59
|
-
|
60
|
-
|
61
|
-
|
58
|
+
it "should have 13 links" do
|
59
|
+
SitemapGenerator::Sitemap.link_count.should == 13
|
60
|
+
end
|
62
61
|
|
63
|
-
|
64
|
-
|
65
|
-
|
62
|
+
it "index XML should validate" do
|
63
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap_index.xml.gz'), 'siteindex'
|
64
|
+
end
|
66
65
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
66
|
+
it "sitemap XML should validate" do
|
67
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap1.xml.gz'), 'sitemap'
|
68
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap2.xml.gz'), 'sitemap'
|
69
|
+
end
|
71
70
|
|
72
|
-
|
73
|
-
|
74
|
-
|
71
|
+
it "index XML should not have excess whitespace" do
|
72
|
+
gzipped_xml_file_should_have_minimal_whitespace rails_path('public/sitemap_index.xml.gz')
|
73
|
+
end
|
75
74
|
|
76
|
-
|
77
|
-
|
78
|
-
|
75
|
+
it "sitemap XML should not have excess whitespace" do
|
76
|
+
gzipped_xml_file_should_have_minimal_whitespace rails_path('public/sitemap1.xml.gz')
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe "generate sitemap with normal config" do
|
81
|
+
before :all do
|
82
|
+
SitemapGenerator::Sitemap.reset!
|
83
|
+
clean_sitemap_files_from_rails_app
|
84
|
+
copy_sitemap_file_to_rails_app(:create)
|
85
|
+
with_max_links(10) { execute_sitemap_config }
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should create sitemaps" do
|
89
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
90
|
+
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
91
|
+
file_should_exist(rails_path('public/sitemap2.xml.gz'))
|
92
|
+
file_should_not_exist(rails_path('public/sitemap3.xml.gz'))
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should have 13 links" do
|
96
|
+
SitemapGenerator::Sitemap.link_count.should == 13
|
97
|
+
end
|
98
|
+
|
99
|
+
it "index XML should validate" do
|
100
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'siteindex'
|
101
|
+
end
|
102
|
+
|
103
|
+
it "sitemap XML should validate" do
|
104
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap1.xml.gz'), 'sitemap'
|
105
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap2.xml.gz'), 'sitemap'
|
106
|
+
end
|
107
|
+
|
108
|
+
it "index XML should not have excess whitespace" do
|
109
|
+
gzipped_xml_file_should_have_minimal_whitespace rails_path('public/sitemap.xml.gz')
|
110
|
+
end
|
111
|
+
|
112
|
+
it "sitemap XML should not have excess whitespace" do
|
113
|
+
gzipped_xml_file_should_have_minimal_whitespace rails_path('public/sitemap1.xml.gz')
|
79
114
|
end
|
80
115
|
end
|
81
116
|
|
@@ -86,34 +121,35 @@ describe "SitemapGenerator" do
|
|
86
121
|
copy_sitemap_file_to_rails_app(:groups)
|
87
122
|
with_max_links(2) { execute_sitemap_config }
|
88
123
|
@expected = %w[
|
89
|
-
public/en/
|
124
|
+
public/en/xxx.xml.gz
|
90
125
|
public/fr/abc3.xml.gz
|
91
126
|
public/fr/abc4.xml.gz
|
92
|
-
public/fr/
|
127
|
+
public/fr/def.xml.gz
|
128
|
+
public/fr/new_sitemaps.xml.gz
|
93
129
|
public/fr/new_sitemaps1.xml.gz
|
94
130
|
public/fr/new_sitemaps2.xml.gz
|
95
131
|
public/fr/new_sitemaps3.xml.gz
|
96
132
|
public/fr/new_sitemaps4.xml.gz]
|
97
|
-
@sitemaps = (@expected - %w[public/fr/
|
133
|
+
@sitemaps = (@expected - %w[public/fr/new_sitemaps.xml.gz])
|
98
134
|
end
|
99
135
|
|
100
136
|
it "should create sitemaps" do
|
101
137
|
@expected.each { |file| file_should_exist(rails_path(file)) }
|
102
138
|
file_should_not_exist(rails_path('public/fr/new_sitemaps5.xml.gz'))
|
103
|
-
file_should_not_exist(rails_path('public/en/
|
139
|
+
file_should_not_exist(rails_path('public/en/xxx1.xml.gz'))
|
104
140
|
file_should_not_exist(rails_path('public/fr/abc5.xml.gz'))
|
105
141
|
end
|
106
142
|
|
107
|
-
it "should have
|
108
|
-
SitemapGenerator::Sitemap.link_count.should ==
|
143
|
+
it "should have 16 links" do
|
144
|
+
SitemapGenerator::Sitemap.link_count.should == 16
|
109
145
|
end
|
110
146
|
|
111
147
|
it "index XML should validate" do
|
112
|
-
gzipped_xml_file_should_validate_against_schema rails_path('public/fr/
|
148
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/fr/new_sitemaps.xml.gz'), 'siteindex'
|
113
149
|
end
|
114
150
|
|
115
151
|
it "index XML should not have excess whitespace" do
|
116
|
-
gzipped_xml_file_should_have_minimal_whitespace rails_path('public/fr/
|
152
|
+
gzipped_xml_file_should_have_minimal_whitespace rails_path('public/fr/new_sitemaps.xml.gz')
|
117
153
|
end
|
118
154
|
|
119
155
|
it "sitemaps XML should validate" do
|
@@ -125,12 +161,119 @@ describe "SitemapGenerator" do
|
|
125
161
|
end
|
126
162
|
end
|
127
163
|
|
164
|
+
describe "should handle links added manually" do
|
165
|
+
before :each do
|
166
|
+
clean_sitemap_files_from_rails_app
|
167
|
+
::SitemapGenerator::Sitemap.reset!
|
168
|
+
::SitemapGenerator::Sitemap.default_host = "http://www.example.com"
|
169
|
+
::SitemapGenerator::Sitemap.namer = ::SitemapGenerator::SimpleNamer.new(:sitemap, :start => 4)
|
170
|
+
::SitemapGenerator::Sitemap.create do
|
171
|
+
3.times do |i|
|
172
|
+
add_to_index "sitemap#{i}.xml.gz"
|
173
|
+
end
|
174
|
+
add '/home'
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
it "should create the index and start the sitemap numbering from 4" do
|
179
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
180
|
+
file_should_exist(rails_path('public/sitemap4.xml.gz'))
|
181
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'siteindex'
|
182
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap4.xml.gz'), 'sitemap'
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
describe "should handle links added manually" do
|
187
|
+
before :each do
|
188
|
+
clean_sitemap_files_from_rails_app
|
189
|
+
::SitemapGenerator::Sitemap.reset!
|
190
|
+
::SitemapGenerator::Sitemap.default_host = "http://www.example.com"
|
191
|
+
::SitemapGenerator::Sitemap.include_root = false
|
192
|
+
end
|
193
|
+
|
194
|
+
it "should create the index" do
|
195
|
+
with_max_links(1) {
|
196
|
+
::SitemapGenerator::Sitemap.create do
|
197
|
+
add_to_index "customsitemap.xml.gz"
|
198
|
+
add '/one'
|
199
|
+
add '/two'
|
200
|
+
end
|
201
|
+
}
|
202
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
203
|
+
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
204
|
+
file_should_exist(rails_path('public/sitemap2.xml.gz'))
|
205
|
+
file_should_not_exist(rails_path('public/sitemap3.xml.gz'))
|
206
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'siteindex'
|
207
|
+
end
|
208
|
+
|
209
|
+
it "should create the index" do
|
210
|
+
with_max_links(1) {
|
211
|
+
::SitemapGenerator::Sitemap.create do
|
212
|
+
add '/one'
|
213
|
+
add_to_index "customsitemap.xml.gz"
|
214
|
+
add '/two'
|
215
|
+
end
|
216
|
+
}
|
217
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
218
|
+
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
219
|
+
file_should_exist(rails_path('public/sitemap2.xml.gz'))
|
220
|
+
file_should_not_exist(rails_path('public/sitemap3.xml.gz'))
|
221
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'siteindex'
|
222
|
+
end
|
223
|
+
|
224
|
+
it "should create an index when only manually added links" do
|
225
|
+
with_max_links(1) {
|
226
|
+
::SitemapGenerator::Sitemap.create(:create_index => :auto) do
|
227
|
+
add_to_index "customsitemap1.xml.gz"
|
228
|
+
end
|
229
|
+
}
|
230
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
231
|
+
file_should_not_exist(rails_path('public/sitemap1.xml.gz'))
|
232
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'siteindex'
|
233
|
+
end
|
234
|
+
|
235
|
+
it "should create an index when only manually added links" do
|
236
|
+
with_max_links(1) {
|
237
|
+
::SitemapGenerator::Sitemap.create(:create_index => :auto) do
|
238
|
+
add_to_index "customsitemap1.xml.gz"
|
239
|
+
add_to_index "customsitemap2.xml.gz"
|
240
|
+
add_to_index "customsitemap3.xml.gz"
|
241
|
+
end
|
242
|
+
}
|
243
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
244
|
+
file_should_not_exist(rails_path('public/sitemap1.xml.gz'))
|
245
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'siteindex'
|
246
|
+
end
|
247
|
+
|
248
|
+
it "should not create an index" do
|
249
|
+
# Create index is explicity turned off and no links added to sitemap,
|
250
|
+
# respect the setting and don't create the index. There is no sitemap file either.
|
251
|
+
::SitemapGenerator::Sitemap.create(:create_index => false) do
|
252
|
+
add_to_index "customsitemap1.xml.gz"
|
253
|
+
add_to_index "customsitemap2.xml.gz"
|
254
|
+
add_to_index "customsitemap3.xml.gz"
|
255
|
+
end
|
256
|
+
file_should_not_exist(rails_path('public/sitemap.xml.gz'))
|
257
|
+
file_should_not_exist(rails_path('public/sitemap1.xml.gz'))
|
258
|
+
end
|
259
|
+
|
260
|
+
it "should not create an index" do
|
261
|
+
::SitemapGenerator::Sitemap.create(:create_index => false) do
|
262
|
+
add '/one'
|
263
|
+
end
|
264
|
+
file_should_exist(rails_path('public/sitemap.xml.gz')) # the sitemap, not an index
|
265
|
+
file_should_not_exist(rails_path('public/sitemap1.xml.gz'))
|
266
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'sitemap'
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
128
270
|
describe "sitemap path" do
|
129
271
|
before :each do
|
130
272
|
clean_sitemap_files_from_rails_app
|
131
273
|
::SitemapGenerator::Sitemap.reset!
|
132
274
|
::SitemapGenerator::Sitemap.default_host = 'http://test.local'
|
133
275
|
::SitemapGenerator::Sitemap.filename = 'sitemap'
|
276
|
+
::SitemapGenerator::Sitemap.create_index = true
|
134
277
|
end
|
135
278
|
|
136
279
|
it "should allow changing of the filename" do
|
@@ -138,7 +281,7 @@ describe "SitemapGenerator" do
|
|
138
281
|
add '/goerss', :geo => { :format => 'georss' }
|
139
282
|
add '/kml', :geo => { :format => 'kml' }
|
140
283
|
end
|
141
|
-
file_should_exist(rails_path('public/
|
284
|
+
file_should_exist(rails_path('public/geo_sitemap.xml.gz'))
|
142
285
|
file_should_exist(rails_path('public/geo_sitemap1.xml.gz'))
|
143
286
|
end
|
144
287
|
|
@@ -152,7 +295,7 @@ describe "SitemapGenerator" do
|
|
152
295
|
add '/another'
|
153
296
|
end
|
154
297
|
|
155
|
-
file_should_exist(rails_path('public/sitemaps/
|
298
|
+
file_should_exist(rails_path('public/sitemaps/sitemap.xml.gz'))
|
156
299
|
file_should_exist(rails_path('public/sitemaps/sitemap1.xml.gz'))
|
157
300
|
end
|
158
301
|
|
@@ -167,7 +310,7 @@ describe "SitemapGenerator" do
|
|
167
310
|
add '/yet-another'
|
168
311
|
end
|
169
312
|
|
170
|
-
file_should_exist(rails_path('public/sitemaps/deep/directory/
|
313
|
+
file_should_exist(rails_path('public/sitemaps/deep/directory/sitemap.xml.gz'))
|
171
314
|
file_should_exist(rails_path('public/sitemaps/deep/directory/sitemap1.xml.gz'))
|
172
315
|
end
|
173
316
|
end
|
@@ -203,7 +346,6 @@ describe "SitemapGenerator" do
|
|
203
346
|
end
|
204
347
|
|
205
348
|
describe "create_index" do
|
206
|
-
|
207
349
|
before :each do
|
208
350
|
clean_sitemap_files_from_rails_app
|
209
351
|
end
|
@@ -211,87 +353,92 @@ describe "SitemapGenerator" do
|
|
211
353
|
describe "when true" do
|
212
354
|
let(:ls) { SitemapGenerator::LinkSet.new(:include_root => false, :default_host => 'http://example.com', :create_index => true) }
|
213
355
|
|
214
|
-
it "should always create index" do
|
215
|
-
ls.create { }
|
216
|
-
file_should_exist(rails_path('public/sitemap_index.xml.gz'))
|
217
|
-
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
218
|
-
file_should_not_exist(rails_path('public/sitemap2.xml.gz'))
|
219
|
-
end
|
220
|
-
|
221
356
|
it "should always create index" do
|
222
357
|
with_max_links(1) do
|
223
358
|
ls.create { add('/one') }
|
224
359
|
end
|
225
|
-
file_should_exist(rails_path('public/
|
360
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
226
361
|
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
227
362
|
file_should_not_exist(rails_path('public/sitemap2.xml.gz'))
|
363
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'siteindex'
|
364
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap1.xml.gz'), 'sitemap'
|
228
365
|
end
|
229
366
|
|
230
367
|
it "should always create index" do
|
231
368
|
with_max_links(1) do
|
232
369
|
ls.create { add('/one'); add('/two') }
|
233
370
|
end
|
234
|
-
file_should_exist(rails_path('public/
|
371
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
235
372
|
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
236
373
|
file_should_exist(rails_path('public/sitemap2.xml.gz'))
|
374
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'siteindex'
|
375
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap1.xml.gz'), 'sitemap'
|
376
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap2.xml.gz'), 'sitemap'
|
237
377
|
end
|
238
378
|
end
|
239
379
|
|
240
380
|
describe "when false" do
|
241
381
|
let(:ls) { SitemapGenerator::LinkSet.new(:include_root => false, :default_host => 'http://example.com', :create_index => false) }
|
242
382
|
|
243
|
-
it "should never create index" do
|
244
|
-
ls.create { }
|
245
|
-
file_should_not_exist(rails_path('public/sitemap_index.xml.gz'))
|
246
|
-
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
247
|
-
file_should_not_exist(rails_path('public/sitemap2.xml.gz'))
|
248
|
-
end
|
249
|
-
|
250
383
|
it "should never create index" do
|
251
384
|
with_max_links(1) do
|
252
385
|
ls.create { add('/one') }
|
253
386
|
end
|
254
|
-
|
255
|
-
|
256
|
-
|
387
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
388
|
+
file_should_not_exist(rails_path('public/sitemap1.xml.gz'))
|
389
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'sitemap'
|
257
390
|
end
|
258
391
|
|
259
392
|
it "should never create index" do
|
260
393
|
with_max_links(1) do
|
261
394
|
ls.create { add('/one'); add('/two') }
|
262
395
|
end
|
263
|
-
|
396
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
264
397
|
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
265
|
-
|
398
|
+
file_should_not_exist(rails_path('public/sitemap2.xml.gz'))
|
399
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'sitemap'
|
400
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap1.xml.gz'), 'sitemap'
|
266
401
|
end
|
267
402
|
end
|
268
403
|
|
269
404
|
describe "when :auto" do
|
270
405
|
let(:ls) { SitemapGenerator::LinkSet.new(:include_root => false, :default_host => 'http://example.com', :create_index => :auto) }
|
271
406
|
|
272
|
-
it "should not create index if one sitemap file" do
|
273
|
-
ls.create { }
|
274
|
-
file_should_not_exist(rails_path('public/sitemap_index.xml.gz'))
|
275
|
-
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
276
|
-
file_should_not_exist(rails_path('public/sitemap2.xml.gz'))
|
277
|
-
end
|
278
|
-
|
279
|
-
it "should not create index if one sitemap file" do
|
407
|
+
it "should not create index if only one sitemap file" do
|
280
408
|
with_max_links(1) do
|
281
409
|
ls.create { add('/one') }
|
282
410
|
end
|
283
|
-
|
284
|
-
|
285
|
-
|
411
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
412
|
+
file_should_not_exist(rails_path('public/sitemap1.xml.gz'))
|
413
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'sitemap'
|
286
414
|
end
|
287
415
|
|
288
416
|
it "should create index if more than one sitemap file" do
|
289
417
|
with_max_links(1) do
|
290
418
|
ls.create { add('/one'); add('/two') }
|
291
419
|
end
|
292
|
-
file_should_exist(rails_path('public/
|
420
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
293
421
|
file_should_exist(rails_path('public/sitemap1.xml.gz'))
|
294
422
|
file_should_exist(rails_path('public/sitemap2.xml.gz'))
|
423
|
+
file_should_not_exist(rails_path('public/sitemap3.xml.gz'))
|
424
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'siteindex'
|
425
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap1.xml.gz'), 'sitemap'
|
426
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap2.xml.gz'), 'sitemap'
|
427
|
+
end
|
428
|
+
|
429
|
+
it "should create index if more than one group" do
|
430
|
+
with_max_links(1) do
|
431
|
+
ls.create do
|
432
|
+
group(:filename => :group1) { add('/one') };
|
433
|
+
group(:filename => :group2) { add('/two') };
|
434
|
+
end
|
435
|
+
end
|
436
|
+
file_should_exist(rails_path('public/sitemap.xml.gz'))
|
437
|
+
file_should_exist(rails_path('public/group1.xml.gz'))
|
438
|
+
file_should_exist(rails_path('public/group2.xml.gz'))
|
439
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/sitemap.xml.gz'), 'siteindex'
|
440
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/group1.xml.gz'), 'sitemap'
|
441
|
+
gzipped_xml_file_should_validate_against_schema rails_path('public/group2.xml.gz'), 'sitemap'
|
295
442
|
end
|
296
443
|
end
|
297
444
|
end
|