indexmap 0.2.1 → 0.3.1

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.
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
4
+
5
+ class IndexmapValidatorTest < Minitest::Test
6
+ def test_validate_raises_for_missing_sitemap
7
+ Dir.mktmpdir do |directory|
8
+ path = Pathname(directory).join("missing.xml")
9
+
10
+ error = assert_raises(Indexmap::ValidationError) do
11
+ Indexmap::Validator.new(path: path).validate!
12
+ end
13
+
14
+ assert_equal "Missing sitemap file: #{path}", error.message
15
+ end
16
+ end
17
+
18
+ def test_validate_raises_for_duplicate_urls
19
+ Dir.mktmpdir do |directory|
20
+ path = Pathname(directory).join("sitemap.xml")
21
+ path.write(<<~XML)
22
+ <?xml version="1.0" encoding="UTF-8"?>
23
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
24
+ <url><loc>https://example.com/about</loc></url>
25
+ <url><loc>https://example.com/about</loc></url>
26
+ </urlset>
27
+ XML
28
+
29
+ error = assert_raises(Indexmap::ValidationError) do
30
+ Indexmap::Validator.new(path: path).validate!
31
+ end
32
+
33
+ assert_equal "Duplicate sitemap URLs detected: https://example.com/about", error.message
34
+ end
35
+ end
36
+
37
+ def test_validate_raises_for_parameterized_urls
38
+ Dir.mktmpdir do |directory|
39
+ path = Pathname(directory).join("sitemap.xml")
40
+ path.write(<<~XML)
41
+ <?xml version="1.0" encoding="UTF-8"?>
42
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
43
+ <url><loc>https://example.com/about?ref=test</loc></url>
44
+ </urlset>
45
+ XML
46
+
47
+ error = assert_raises(Indexmap::ValidationError) do
48
+ Indexmap::Validator.new(path: path).validate!
49
+ end
50
+
51
+ assert_equal "Parameterized sitemap URLs detected: https://example.com/about?ref=test", error.message
52
+ end
53
+ end
54
+
55
+ def test_validate_passes_for_valid_sitemap
56
+ Dir.mktmpdir do |directory|
57
+ path = Pathname(directory).join("sitemap.xml")
58
+ path.write(<<~XML)
59
+ <?xml version="1.0" encoding="UTF-8"?>
60
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
61
+ <url><loc>https://example.com/about</loc></url>
62
+ </urlset>
63
+ XML
64
+
65
+ assert Indexmap::Validator.new(path: path).validate!
66
+ end
67
+ end
68
+ end
data/test/test_helper.rb CHANGED
@@ -2,8 +2,16 @@
2
2
 
3
3
  $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
4
4
 
5
+ require "simplecov"
6
+
7
+ SimpleCov.start do
8
+ enable_coverage :branch
9
+ add_filter "/test/"
10
+ end
11
+
5
12
  require "minitest/autorun"
6
13
  require "tmpdir"
7
14
  require "date"
15
+ require "webmock/minitest"
8
16
 
9
17
  require "indexmap"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: indexmap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paulo Fidalgo
@@ -24,6 +24,48 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '7.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: google-apis-searchconsole_v1
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0.18'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0.18'
55
+ - !ruby/object:Gem::Dependency
56
+ name: googleauth
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '1.12'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '1.12'
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: nokogiri
29
71
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +122,20 @@ dependencies:
80
122
  - - "~>"
81
123
  - !ruby/object:Gem::Version
82
124
  version: '13.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.22'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0.22'
83
139
  - !ruby/object:Gem::Dependency
84
140
  name: standard
85
141
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +150,20 @@ dependencies:
94
150
  - - "~>"
95
151
  - !ruby/object:Gem::Version
96
152
  version: '1.0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: webmock
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '3.0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '3.0'
97
167
  description: A small Ruby gem for generating sitemap indexes and child sitemaps from
98
168
  explicit section definitions, with optional Rails rake task integration.
99
169
  email:
@@ -108,13 +178,27 @@ files:
108
178
  - lib/indexmap.rb
109
179
  - lib/indexmap/configuration.rb
110
180
  - lib/indexmap/entry.rb
181
+ - lib/indexmap/google_configuration.rb
182
+ - lib/indexmap/index_now_configuration.rb
183
+ - lib/indexmap/parser.rb
184
+ - lib/indexmap/path.rb
185
+ - lib/indexmap/pinger/base.rb
186
+ - lib/indexmap/pinger/google.rb
187
+ - lib/indexmap/pinger/index_now.rb
111
188
  - lib/indexmap/railtie.rb
112
189
  - lib/indexmap/section.rb
113
190
  - lib/indexmap/task_runner.rb
191
+ - lib/indexmap/validator.rb
114
192
  - lib/indexmap/version.rb
115
193
  - lib/indexmap/writer.rb
116
194
  - lib/tasks/indexmap_tasks.rake
117
195
  - test/indexmap/configuration_test.rb
196
+ - test/indexmap/parser_test.rb
197
+ - test/indexmap/path_test.rb
198
+ - test/indexmap/pinger/google_test.rb
199
+ - test/indexmap/pinger/index_now_test.rb
200
+ - test/indexmap/task_runner_test.rb
201
+ - test/indexmap/validator_test.rb
118
202
  - test/indexmap/writer_test.rb
119
203
  - test/test_helper.rb
120
204
  homepage: https://www.ethos-link.com/opensource/indexmap