svg_conform 0.2.4 → 0.2.6

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.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +1 -0
  3. data/.github/workflows/rake.yml +3 -0
  4. data/Gemfile +7 -3
  5. data/Gemfile.lock +272 -0
  6. data/TODO.issue-100/00-overview.md +135 -0
  7. data/TODO.issue-100/01-build-lens-core-v1.md +92 -0
  8. data/TODO.issue-100/02-adopt-lens-core-in-svg.md +123 -0
  9. data/TODO.issue-100/03-ship-svg-1-1-full-static.md +138 -0
  10. data/TODO.issue-100/04-ship-svg-2-secure-static.md +131 -0
  11. data/TODO.issue-100/05-freeze-candidate-and-handoff.md +108 -0
  12. data/TODO.issue-100/90-progress.md +65 -0
  13. data/config/profiles/metanorma.yml +3 -3
  14. data/config/profiles/svg_1_1_full_static.yml +69 -0
  15. data/config/profiles/svg_2_secure_static.yml +55 -0
  16. data/config/requirements/processing_features_static.yml +29 -0
  17. data/data/svg_1_1/manifest.yml +7 -0
  18. data/data/svg_1_1/svg11-flat-20110816.dtd +5664 -0
  19. data/docs/api_reference.adoc +19 -1
  20. data/docs/cli_guide.adoc +35 -45
  21. data/docs/diagnostics.adoc +73 -0
  22. data/docs/lens_core_handoff.adoc +84 -0
  23. data/docs/profiles.adoc +94 -1
  24. data/lib/svg_conform/cli.rb +3 -3
  25. data/lib/svg_conform/commands/check.rb +11 -60
  26. data/lib/svg_conform/conformance_report.rb +79 -1
  27. data/lib/svg_conform/diagnostics/lens_core_adapter.rb +200 -0
  28. data/lib/svg_conform/document.rb +12 -1
  29. data/lib/svg_conform/node_helpers.rb +1 -1
  30. data/lib/svg_conform/profile.rb +11 -2
  31. data/lib/svg_conform/quality_metrics/complexity_calculator.rb +3 -3
  32. data/lib/svg_conform/references/base_reference.rb +153 -0
  33. data/lib/svg_conform/report_comparator.rb +4 -4
  34. data/lib/svg_conform/requirements/base_requirement.rb +6 -0
  35. data/lib/svg_conform/requirements/external_references_requirement.rb +234 -0
  36. data/lib/svg_conform/requirements/link_validation_requirement.rb +2 -0
  37. data/lib/svg_conform/requirements/processing_features_requirement.rb +175 -0
  38. data/lib/svg_conform/requirements/svg_1_1_document_requirement.rb +213 -0
  39. data/lib/svg_conform/requirements.rb +6 -0
  40. data/lib/svg_conform/sax_document.rb +8 -4
  41. data/lib/svg_conform/sax_validation_handler.rb +22 -1
  42. data/lib/svg_conform/validation/css2_core_grammar.rb +359 -0
  43. data/lib/svg_conform/validation/css_references.rb +122 -0
  44. data/lib/svg_conform/validation/error_tracker.rb +3 -1
  45. data/lib/svg_conform/validation/svg_1_1_document_conformance.rb +155 -0
  46. data/lib/svg_conform/validation_context.rb +25 -5
  47. data/lib/svg_conform/validation_result.rb +91 -16
  48. data/lib/svg_conform/version.rb +1 -1
  49. data/lib/svg_conform.rb +24 -0
  50. data/spec/fixtures/diagnostics/external-reference-info.svg +6 -0
  51. data/spec/fixtures/plantuml/README.adoc +11 -0
  52. data/spec/fixtures/plantuml/unit-type.svg +1 -0
  53. data/spec/fixtures/profiles/svg_1_1_full_static/invalid/animation.svg +4 -0
  54. data/spec/fixtures/profiles/svg_1_1_full_static/invalid/css-grammar.svg +4 -0
  55. data/spec/fixtures/profiles/svg_1_1_full_static/invalid/dtd-attribute.svg +4 -0
  56. data/spec/fixtures/profiles/svg_1_1_full_static/invalid/dtd-content-model.svg +4 -0
  57. data/spec/fixtures/profiles/svg_1_1_full_static/invalid/interaction.svg +4 -0
  58. data/spec/fixtures/profiles/svg_1_1_full_static/invalid/malformed-xml.svg +4 -0
  59. data/spec/fixtures/profiles/svg_1_1_full_static/invalid/script.svg +5 -0
  60. data/spec/fixtures/profiles/svg_1_1_full_static/invalid/wrong-namespace.svg +4 -0
  61. data/spec/fixtures/profiles/svg_1_1_full_static/invalid/wrong-version.svg +4 -0
  62. data/spec/fixtures/profiles/svg_1_1_full_static/invalid/xml-stylesheet.svg +5 -0
  63. data/spec/fixtures/profiles/svg_1_1_full_static/valid/css.svg +5 -0
  64. data/spec/fixtures/profiles/svg_1_1_full_static/valid/foreign-metadata.svg +6 -0
  65. data/spec/fixtures/profiles/svg_1_1_full_static/valid/minimal-full.svg +5 -0
  66. data/spec/fixtures/profiles/svg_1_1_full_static/valid/xml-stylesheet.svg +5 -0
  67. data/spec/fixtures/profiles/svg_2_secure_static/invalid/animation.svg +4 -0
  68. data/spec/fixtures/profiles/svg_2_secure_static/invalid/css-import.svg +4 -0
  69. data/spec/fixtures/profiles/svg_2_secure_static/invalid/css-url.svg +4 -0
  70. data/spec/fixtures/profiles/svg_2_secure_static/invalid/data-bad-png.svg +4 -0
  71. data/spec/fixtures/profiles/svg_2_secure_static/invalid/data-empty-png.svg +4 -0
  72. data/spec/fixtures/profiles/svg_2_secure_static/invalid/data-malformed-base64.svg +4 -0
  73. data/spec/fixtures/profiles/svg_2_secure_static/invalid/data-malformed-percent.svg +4 -0
  74. data/spec/fixtures/profiles/svg_2_secure_static/invalid/data-unsupported-type.svg +4 -0
  75. data/spec/fixtures/profiles/svg_2_secure_static/invalid/file-like-fragment.svg +4 -0
  76. data/spec/fixtures/profiles/svg_2_secure_static/invalid/http.svg +4 -0
  77. data/spec/fixtures/profiles/svg_2_secure_static/invalid/https.svg +4 -0
  78. data/spec/fixtures/profiles/svg_2_secure_static/invalid/interaction.svg +4 -0
  79. data/spec/fixtures/profiles/svg_2_secure_static/invalid/protocol-relative.svg +4 -0
  80. data/spec/fixtures/profiles/svg_2_secure_static/invalid/relative-file-fragment.svg +4 -0
  81. data/spec/fixtures/profiles/svg_2_secure_static/invalid/relative-file.svg +4 -0
  82. data/spec/fixtures/profiles/svg_2_secure_static/invalid/script.svg +4 -0
  83. data/spec/fixtures/profiles/svg_2_secure_static/invalid/svg-data-excessive-nesting.svg +4 -0
  84. data/spec/fixtures/profiles/svg_2_secure_static/invalid/svg-data-malformed-xml.svg +4 -0
  85. data/spec/fixtures/profiles/svg_2_secure_static/invalid/svg-data-nested-external.svg +4 -0
  86. data/spec/fixtures/profiles/svg_2_secure_static/invalid/urn.svg +4 -0
  87. data/spec/fixtures/profiles/svg_2_secure_static/invalid/xml-stylesheet.svg +5 -0
  88. data/spec/fixtures/profiles/svg_2_secure_static/valid/jpeg-base64.svg +4 -0
  89. data/spec/fixtures/profiles/svg_2_secure_static/valid/jpeg-percent.svg +4 -0
  90. data/spec/fixtures/profiles/svg_2_secure_static/valid/png-base64.svg +4 -0
  91. data/spec/fixtures/profiles/svg_2_secure_static/valid/png-percent.svg +4 -0
  92. data/spec/fixtures/profiles/svg_2_secure_static/valid/same-document-fragment.svg +4 -0
  93. data/spec/fixtures/profiles/svg_2_secure_static/valid/svg-base64.svg +4 -0
  94. data/spec/fixtures/profiles/svg_2_secure_static/valid/svg-percent.svg +4 -0
  95. data/spec/svg_conform/commands/check_command_spec.rb +22 -2
  96. data/spec/svg_conform/commands/profiles_command_spec.rb +18 -0
  97. data/spec/svg_conform/conformance_report_spec.rb +90 -0
  98. data/spec/svg_conform/diagnostics/lens_core_adapter_spec.rb +136 -0
  99. data/spec/svg_conform/gemspec_spec.rb +21 -0
  100. data/spec/svg_conform/profiles/svg_1_1_full_static_profile_spec.rb +146 -0
  101. data/spec/svg_conform/profiles/svg_2_secure_static_profile_spec.rb +150 -0
  102. data/spec/svg_conform/profiles_plantuml_spec.rb +81 -0
  103. data/spec/svg_conform/references/data_uri_reference_spec.rb +97 -0
  104. data/spec/svg_conform/references/integration_spec.rb +30 -0
  105. data/spec/svg_conform/references/reference_classifier_spec.rb +17 -0
  106. data/spec/svg_conform/requirements/external_references_requirement_spec.rb +109 -0
  107. data/spec/svg_conform/requirements/link_validation_requirement_spec.rb +16 -0
  108. data/spec/svg_conform/requirements/processing_features_requirement_spec.rb +75 -0
  109. data/spec/svg_conform/requirements/svg_1_1_document_requirement_spec.rb +141 -0
  110. data/spec/svg_conform/validation/css2_core_grammar_spec.rb +116 -0
  111. data/spec/svg_conform/validation/svg_1_1_document_conformance_spec.rb +144 -0
  112. data/spec/svg_conform/validation_context_source_plumbing_spec.rb +122 -0
  113. data/spec/svg_conform/validation_context_spec.rb +39 -0
  114. data/spec/svg_conform/validation_result_spec.rb +123 -0
  115. data/svg_conform.gemspec +3 -2
  116. metadata +102 -6
@@ -0,0 +1,123 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+ require "json"
5
+
6
+ RSpec.describe SvgConform::ValidationResult do
7
+ let(:fixture) { File.expand_path("../fixtures/diagnostics/external-reference-info.svg", __dir__) }
8
+ let(:invalid_svg) { '<svg xmlns="http://www.w3.org/2000/svg"><rect width="5" height="5" fill="red"/></svg>' }
9
+ let(:info_result) { SvgConform::Validator.new.validate_file(fixture, profile: :svg_1_2_rfc) }
10
+ let(:invalid_result) { SvgConform::Validator.new.validate(invalid_svg, profile: :svg_1_2_rfc) }
11
+
12
+ it "exposes infos and info_count without affecting validity" do
13
+ expect(info_result.infos.size).to eq(1)
14
+ expect(info_result.info_count).to eq(1)
15
+ expect(info_result).to be_valid
16
+ end
17
+
18
+ it "counts validity errors as errors and keeps valid? tied to them" do
19
+ context = SvgConform::ValidationContext.new(nil, SvgConform::Profile.new(name: "p"))
20
+ context.add_error(node: nil, message: "v", requirement_id: "r", severity: :validity_error)
21
+ result = described_class.new(nil, SvgConform::Profile.new(name: "p"), context)
22
+
23
+ expect(result.error_count).to eq(1)
24
+ expect(result).not_to be_valid
25
+ end
26
+
27
+ context "with lens_core installed" do
28
+ before do
29
+ unless SvgConform.lens_core_available?
30
+ skip "the optional lens_core gem is not installed"
31
+ end
32
+ end
33
+
34
+ it "builds the canonical report with an optional timestamp" do
35
+ report = info_result.to_lens_core_report(timestamp: "2026-10-23T01:02:03Z")
36
+
37
+ expect(report.summary["infos"]).to eq(1)
38
+ expect(report.to_h["timestamp"]).to eq("2026-10-23T01:02:03Z")
39
+ end
40
+
41
+ it "counts validity errors in the canonical report" do
42
+ context = SvgConform::ValidationContext.new(nil, SvgConform::Profile.new(name: "p"))
43
+ context.add_error(node: nil, message: "v", requirement_id: "r", severity: :validity_error)
44
+ result = described_class.new(nil, SvgConform::Profile.new(name: "p"), context)
45
+
46
+ expect(result.to_lens_core_report.summary["errors"]).to eq(1)
47
+ end
48
+
49
+ it "projects to_json from the canonical report plus compatibility extensions" do
50
+ parsed = JSON.parse(info_result.to_json)
51
+ canonical = info_result.to_lens_core_report.to_h
52
+
53
+ expect(parsed).to include(canonical.except("file"))
54
+ expect(parsed.keys).to include("fixes_applied", "fixable", "reference_manifest")
55
+ expect(LensCore::Parsers::Json.parse(info_result.to_json).summary["infos"]).to eq(1)
56
+ expect(info_result.to_s(format: :json)).to eq(info_result.to_json)
57
+ end
58
+
59
+ it "keeps to_h callable with symbol keys" do
60
+ hash = info_result.to_h
61
+
62
+ expect(hash[:valid]).to be(true)
63
+ expect(hash[:reference_manifest]).to have_key(:available_ids)
64
+ expect(hash[:diagnostics].first[:severity]).to eq("info")
65
+ end
66
+
67
+ it "renders text from the human renderer and includes the info" do
68
+ text = info_result.to_s
69
+
70
+ expect(text).to include("VALID: 0 errors, 0 warnings, 1 info")
71
+ expect(text).to include("info link_validation")
72
+ expect(invalid_result.to_s).to include("INVALID")
73
+ end
74
+
75
+ it "renders YAML from the canonical report" do
76
+ expect(LensCore::Parsers::Yaml.parse(info_result.to_yaml).summary["infos"]).to eq(1)
77
+ end
78
+ end
79
+
80
+ context "without lens_core" do
81
+ before do
82
+ if SvgConform.lens_core_available?
83
+ skip "lens_core is installed; the plain serializers are not in effect"
84
+ end
85
+ end
86
+
87
+ it "raises a clear error from to_lens_core_report" do
88
+ expect { info_result.to_lens_core_report }
89
+ .to raise_error(SvgConform::Error, /lens_core is not installed/)
90
+ end
91
+
92
+ it "serializes the plain structural shape as JSON" do
93
+ parsed = JSON.parse(info_result.to_json)
94
+
95
+ expect(parsed).to include("file", "profile", "valid", "errors", "warnings")
96
+ expect(parsed["valid"]).to be(true)
97
+ expect(parsed["errors"]).to eq([])
98
+ end
99
+
100
+ it "keeps to_h callable with symbol keys" do
101
+ hash = info_result.to_h
102
+
103
+ expect(hash[:valid]).to be(true)
104
+ expect(hash[:reference_manifest]).to have_key(:available_ids)
105
+ expect(hash).to have_key(:errors)
106
+ end
107
+
108
+ it "renders the plain text report" do
109
+ text = info_result.to_s
110
+
111
+ expect(text).to include("SVG Conformance Report")
112
+ expect(text).to include("Status: VALID")
113
+ expect(text).to include("✓ Document is valid")
114
+ expect(invalid_result.to_s).to include("Status: INVALID")
115
+ end
116
+
117
+ it "renders YAML from the structural shape" do
118
+ parsed = YAML.safe_load(info_result.to_yaml)
119
+
120
+ expect(parsed["valid"]).to be(true)
121
+ end
122
+ end
123
+ end
data/svg_conform.gemspec CHANGED
@@ -29,8 +29,9 @@ Gem::Specification.new do |spec|
29
29
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
30
  spec.require_paths = ["lib"]
31
31
 
32
- spec.add_dependency "lutaml-model", "~> 0.8.0"
33
- spec.add_dependency "moxml", "~> 0.5"
32
+ spec.add_dependency "lutaml-model", "~> 0.8.155"
33
+ spec.add_dependency "moxml", "~> 0.6.0"
34
+ spec.add_dependency "nokogiri", "~> 1.16"
34
35
  spec.add_dependency "rainbow"
35
36
  spec.add_dependency "table_tennis"
36
37
  spec.add_dependency "thor"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: svg_conform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-10-17 00:00:00.000000000 Z
11
+ date: 2026-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model
@@ -16,28 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.8.0
19
+ version: 0.8.155
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.8.0
26
+ version: 0.8.155
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: moxml
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.5'
33
+ version: 0.6.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.5'
40
+ version: 0.6.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.16'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.16'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rainbow
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -88,6 +102,7 @@ executables:
88
102
  extensions: []
89
103
  extra_rdoc_files: []
90
104
  files:
105
+ - ".gitattributes"
91
106
  - ".github/workflows/rake.yml"
92
107
  - ".github/workflows/release.yml"
93
108
  - ".github/workflows/svgcheck-compatibility.yml"
@@ -98,20 +113,35 @@ files:
98
113
  - CLAUDE.md
99
114
  - CODE_OF_CONDUCT.md
100
115
  - Gemfile
116
+ - Gemfile.lock
101
117
  - README.adoc
102
118
  - Rakefile
119
+ - TODO.issue-100/00-overview.md
120
+ - TODO.issue-100/01-build-lens-core-v1.md
121
+ - TODO.issue-100/02-adopt-lens-core-in-svg.md
122
+ - TODO.issue-100/03-ship-svg-1-1-full-static.md
123
+ - TODO.issue-100/04-ship-svg-2-secure-static.md
124
+ - TODO.issue-100/05-freeze-candidate-and-handoff.md
125
+ - TODO.issue-100/90-progress.md
103
126
  - benchmark/performance_comparison.rb
104
127
  - config/profiles/base.yml
105
128
  - config/profiles/lucid_fix.yml
106
129
  - config/profiles/metanorma.yml
107
130
  - config/profiles/no_external_css.yml
131
+ - config/profiles/svg_1_1_full_static.yml
108
132
  - config/profiles/svg_1_2_rfc.yml
109
133
  - config/profiles/svg_1_2_rfc_with_rdf.yml
134
+ - config/profiles/svg_2_secure_static.yml
110
135
  - config/quality_metrics.yml
136
+ - config/requirements/processing_features_static.yml
111
137
  - config/svgcheck_mapping.yml
138
+ - data/svg_1_1/manifest.yml
139
+ - data/svg_1_1/svg11-flat-20110816.dtd
112
140
  - docs/api_reference.adoc
113
141
  - docs/cli_guide.adoc
142
+ - docs/diagnostics.adoc
114
143
  - docs/image_quality.adoc
144
+ - docs/lens_core_handoff.adoc
115
145
  - docs/performance.adoc
116
146
  - docs/profiles.adoc
117
147
  - docs/rdf_metadata_support.adoc
@@ -148,6 +178,7 @@ files:
148
178
  - lib/svg_conform/conformance_report.rb
149
179
  - lib/svg_conform/constants.rb
150
180
  - lib/svg_conform/css_color.rb
181
+ - lib/svg_conform/diagnostics/lens_core_adapter.rb
151
182
  - lib/svg_conform/document.rb
152
183
  - lib/svg_conform/document_analyzer.rb
153
184
  - lib/svg_conform/element_proxy.rb
@@ -208,6 +239,7 @@ files:
208
239
  - lib/svg_conform/requirements/base_requirement.rb
209
240
  - lib/svg_conform/requirements/color_restrictions_requirement.rb
210
241
  - lib/svg_conform/requirements/element_requirement_config.rb
242
+ - lib/svg_conform/requirements/external_references_requirement.rb
211
243
  - lib/svg_conform/requirements/font_family_requirement.rb
212
244
  - lib/svg_conform/requirements/forbidden_content_requirement.rb
213
245
  - lib/svg_conform/requirements/id_collection_requirement.rb
@@ -219,16 +251,21 @@ files:
219
251
  - lib/svg_conform/requirements/no_external_css_requirement.rb
220
252
  - lib/svg_conform/requirements/no_external_fonts_requirement.rb
221
253
  - lib/svg_conform/requirements/no_external_images_requirement.rb
254
+ - lib/svg_conform/requirements/processing_features_requirement.rb
222
255
  - lib/svg_conform/requirements/style_promotion_requirement.rb
223
256
  - lib/svg_conform/requirements/style_requirement.rb
257
+ - lib/svg_conform/requirements/svg_1_1_document_requirement.rb
224
258
  - lib/svg_conform/requirements/text_as_path_requirement.rb
225
259
  - lib/svg_conform/requirements/viewbox_required_requirement.rb
226
260
  - lib/svg_conform/sax_document.rb
227
261
  - lib/svg_conform/sax_validation_handler.rb
228
262
  - lib/svg_conform/semantic_comparator.rb
263
+ - lib/svg_conform/validation/css2_core_grammar.rb
264
+ - lib/svg_conform/validation/css_references.rb
229
265
  - lib/svg_conform/validation/error_tracker.rb
230
266
  - lib/svg_conform/validation/node_id_manager.rb
231
267
  - lib/svg_conform/validation/structural_invalidity_tracker.rb
268
+ - lib/svg_conform/validation/svg_1_1_document_conformance.rb
232
269
  - lib/svg_conform/validation/tracker_factory.rb
233
270
  - lib/svg_conform/validation_context.rb
234
271
  - lib/svg_conform/validation_issue.rb
@@ -248,6 +285,7 @@ files:
248
285
  - spec/fixtures/color_restrictions/repair/basic_violations.svg
249
286
  - spec/fixtures/comprehensive/inputs/multiple_violations.svg
250
287
  - spec/fixtures/comprehensive/repair/multiple_violations.svg
288
+ - spec/fixtures/diagnostics/external-reference-info.svg
251
289
  - spec/fixtures/font_family/inputs/basic_violations.svg
252
290
  - spec/fixtures/font_family/repair/basic_violations.svg
253
291
  - spec/fixtures/forbidden_content/inputs/basic_violations.svg
@@ -264,6 +302,50 @@ files:
264
302
  - spec/fixtures/namespace_attributes/repair/basic_violations.svg
265
303
  - spec/fixtures/no_external_css/inputs/basic_violations.svg
266
304
  - spec/fixtures/no_external_css/repair/basic_violations.svg
305
+ - spec/fixtures/plantuml/README.adoc
306
+ - spec/fixtures/plantuml/unit-type.svg
307
+ - spec/fixtures/profiles/svg_1_1_full_static/invalid/animation.svg
308
+ - spec/fixtures/profiles/svg_1_1_full_static/invalid/css-grammar.svg
309
+ - spec/fixtures/profiles/svg_1_1_full_static/invalid/dtd-attribute.svg
310
+ - spec/fixtures/profiles/svg_1_1_full_static/invalid/dtd-content-model.svg
311
+ - spec/fixtures/profiles/svg_1_1_full_static/invalid/interaction.svg
312
+ - spec/fixtures/profiles/svg_1_1_full_static/invalid/malformed-xml.svg
313
+ - spec/fixtures/profiles/svg_1_1_full_static/invalid/script.svg
314
+ - spec/fixtures/profiles/svg_1_1_full_static/invalid/wrong-namespace.svg
315
+ - spec/fixtures/profiles/svg_1_1_full_static/invalid/wrong-version.svg
316
+ - spec/fixtures/profiles/svg_1_1_full_static/invalid/xml-stylesheet.svg
317
+ - spec/fixtures/profiles/svg_1_1_full_static/valid/css.svg
318
+ - spec/fixtures/profiles/svg_1_1_full_static/valid/foreign-metadata.svg
319
+ - spec/fixtures/profiles/svg_1_1_full_static/valid/minimal-full.svg
320
+ - spec/fixtures/profiles/svg_1_1_full_static/valid/xml-stylesheet.svg
321
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/animation.svg
322
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/css-import.svg
323
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/css-url.svg
324
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/data-bad-png.svg
325
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/data-empty-png.svg
326
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/data-malformed-base64.svg
327
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/data-malformed-percent.svg
328
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/data-unsupported-type.svg
329
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/file-like-fragment.svg
330
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/http.svg
331
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/https.svg
332
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/interaction.svg
333
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/protocol-relative.svg
334
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/relative-file-fragment.svg
335
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/relative-file.svg
336
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/script.svg
337
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/svg-data-excessive-nesting.svg
338
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/svg-data-malformed-xml.svg
339
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/svg-data-nested-external.svg
340
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/urn.svg
341
+ - spec/fixtures/profiles/svg_2_secure_static/invalid/xml-stylesheet.svg
342
+ - spec/fixtures/profiles/svg_2_secure_static/valid/jpeg-base64.svg
343
+ - spec/fixtures/profiles/svg_2_secure_static/valid/jpeg-percent.svg
344
+ - spec/fixtures/profiles/svg_2_secure_static/valid/png-base64.svg
345
+ - spec/fixtures/profiles/svg_2_secure_static/valid/png-percent.svg
346
+ - spec/fixtures/profiles/svg_2_secure_static/valid/same-document-fragment.svg
347
+ - spec/fixtures/profiles/svg_2_secure_static/valid/svg-base64.svg
348
+ - spec/fixtures/profiles/svg_2_secure_static/valid/svg-percent.svg
267
349
  - spec/fixtures/style/inputs/basic_violations.svg
268
350
  - spec/fixtures/style/repair/basic_violations.svg
269
351
  - spec/fixtures/style_promotion/inputs/basic_test.svg
@@ -438,13 +520,20 @@ files:
438
520
  - spec/svg_conform/commands/svgcheck_compare_command_spec.rb
439
521
  - spec/svg_conform/commands/svgcheck_compatibility_command_spec.rb
440
522
  - spec/svg_conform/commands/svgcheck_generate_command_spec.rb
523
+ - spec/svg_conform/conformance_report_spec.rb
524
+ - spec/svg_conform/diagnostics/lens_core_adapter_spec.rb
525
+ - spec/svg_conform/gemspec_spec.rb
441
526
  - spec/svg_conform/profiles/base_profile_spec.rb
442
527
  - spec/svg_conform/profiles/lucid_fix_profile_spec.rb
443
528
  - spec/svg_conform/profiles/lucid_profile_spec.rb
444
529
  - spec/svg_conform/profiles/metanorma_profile_spec.rb
445
530
  - spec/svg_conform/profiles/no_external_css_profile_spec.rb
531
+ - spec/svg_conform/profiles/svg_1_1_full_static_profile_spec.rb
446
532
  - spec/svg_conform/profiles/svg_1_2_rfc_profile_spec.rb
447
533
  - spec/svg_conform/profiles/svg_1_2_rfc_with_rdf_profile_spec.rb
534
+ - spec/svg_conform/profiles/svg_2_secure_static_profile_spec.rb
535
+ - spec/svg_conform/profiles_plantuml_spec.rb
536
+ - spec/svg_conform/references/data_uri_reference_spec.rb
448
537
  - spec/svg_conform/references/integration_spec.rb
449
538
  - spec/svg_conform/references/reference_classifier_spec.rb
450
539
  - spec/svg_conform/references/reference_manifest_spec.rb
@@ -460,6 +549,7 @@ files:
460
549
  - spec/svg_conform/remediations/viewbox_remediation_spec.rb
461
550
  - spec/svg_conform/requirements/allowed_elements_requirement_spec.rb
462
551
  - spec/svg_conform/requirements/color_restrictions_requirement_spec.rb
552
+ - spec/svg_conform/requirements/external_references_requirement_spec.rb
463
553
  - spec/svg_conform/requirements/font_family_requirement_spec.rb
464
554
  - spec/svg_conform/requirements/forbidden_content_requirement_spec.rb
465
555
  - spec/svg_conform/requirements/id_reference_requirement_spec.rb
@@ -471,11 +561,17 @@ files:
471
561
  - spec/svg_conform/requirements/no_external_css_requirement_spec.rb
472
562
  - spec/svg_conform/requirements/no_external_fonts_requirement_spec.rb
473
563
  - spec/svg_conform/requirements/no_external_images_requirement_spec.rb
564
+ - spec/svg_conform/requirements/processing_features_requirement_spec.rb
474
565
  - spec/svg_conform/requirements/style_promotion_requirement_spec.rb
475
566
  - spec/svg_conform/requirements/style_requirement_spec.rb
567
+ - spec/svg_conform/requirements/svg_1_1_document_requirement_spec.rb
476
568
  - spec/svg_conform/requirements/text_as_path_requirement_spec.rb
477
569
  - spec/svg_conform/requirements/viewbox_required_requirement_spec.rb
570
+ - spec/svg_conform/validation/css2_core_grammar_spec.rb
571
+ - spec/svg_conform/validation/svg_1_1_document_conformance_spec.rb
572
+ - spec/svg_conform/validation_context_source_plumbing_spec.rb
478
573
  - spec/svg_conform/validation_context_spec.rb
574
+ - spec/svg_conform/validation_result_spec.rb
479
575
  - spec/svg_conform/validator_input_types_spec.rb
480
576
  - spec/svg_conform_spec.rb
481
577
  - spec/svgcheck_compatibility_spec.rb