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.
- checksums.yaml +4 -4
- data/.gitattributes +1 -0
- data/.github/workflows/rake.yml +3 -0
- data/Gemfile +7 -3
- data/Gemfile.lock +272 -0
- data/TODO.issue-100/00-overview.md +135 -0
- data/TODO.issue-100/01-build-lens-core-v1.md +92 -0
- data/TODO.issue-100/02-adopt-lens-core-in-svg.md +123 -0
- data/TODO.issue-100/03-ship-svg-1-1-full-static.md +138 -0
- data/TODO.issue-100/04-ship-svg-2-secure-static.md +131 -0
- data/TODO.issue-100/05-freeze-candidate-and-handoff.md +108 -0
- data/TODO.issue-100/90-progress.md +65 -0
- data/config/profiles/metanorma.yml +3 -3
- data/config/profiles/svg_1_1_full_static.yml +69 -0
- data/config/profiles/svg_2_secure_static.yml +55 -0
- data/config/requirements/processing_features_static.yml +29 -0
- data/data/svg_1_1/manifest.yml +7 -0
- data/data/svg_1_1/svg11-flat-20110816.dtd +5664 -0
- data/docs/api_reference.adoc +19 -1
- data/docs/cli_guide.adoc +35 -45
- data/docs/diagnostics.adoc +73 -0
- data/docs/lens_core_handoff.adoc +84 -0
- data/docs/profiles.adoc +94 -1
- data/lib/svg_conform/cli.rb +3 -3
- data/lib/svg_conform/commands/check.rb +11 -60
- data/lib/svg_conform/conformance_report.rb +79 -1
- data/lib/svg_conform/diagnostics/lens_core_adapter.rb +200 -0
- data/lib/svg_conform/document.rb +12 -1
- data/lib/svg_conform/node_helpers.rb +1 -1
- data/lib/svg_conform/profile.rb +11 -2
- data/lib/svg_conform/quality_metrics/complexity_calculator.rb +3 -3
- data/lib/svg_conform/references/base_reference.rb +153 -0
- data/lib/svg_conform/report_comparator.rb +4 -4
- data/lib/svg_conform/requirements/base_requirement.rb +6 -0
- data/lib/svg_conform/requirements/external_references_requirement.rb +234 -0
- data/lib/svg_conform/requirements/link_validation_requirement.rb +2 -0
- data/lib/svg_conform/requirements/processing_features_requirement.rb +175 -0
- data/lib/svg_conform/requirements/svg_1_1_document_requirement.rb +213 -0
- data/lib/svg_conform/requirements.rb +6 -0
- data/lib/svg_conform/sax_document.rb +8 -4
- data/lib/svg_conform/sax_validation_handler.rb +22 -1
- data/lib/svg_conform/validation/css2_core_grammar.rb +359 -0
- data/lib/svg_conform/validation/css_references.rb +122 -0
- data/lib/svg_conform/validation/error_tracker.rb +3 -1
- data/lib/svg_conform/validation/svg_1_1_document_conformance.rb +155 -0
- data/lib/svg_conform/validation_context.rb +25 -5
- data/lib/svg_conform/validation_result.rb +91 -16
- data/lib/svg_conform/version.rb +1 -1
- data/lib/svg_conform.rb +24 -0
- data/spec/fixtures/diagnostics/external-reference-info.svg +6 -0
- data/spec/fixtures/plantuml/README.adoc +11 -0
- data/spec/fixtures/plantuml/unit-type.svg +1 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/invalid/animation.svg +4 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/invalid/css-grammar.svg +4 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/invalid/dtd-attribute.svg +4 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/invalid/dtd-content-model.svg +4 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/invalid/interaction.svg +4 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/invalid/malformed-xml.svg +4 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/invalid/script.svg +5 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/invalid/wrong-namespace.svg +4 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/invalid/wrong-version.svg +4 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/invalid/xml-stylesheet.svg +5 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/valid/css.svg +5 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/valid/foreign-metadata.svg +6 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/valid/minimal-full.svg +5 -0
- data/spec/fixtures/profiles/svg_1_1_full_static/valid/xml-stylesheet.svg +5 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/animation.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/css-import.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/css-url.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/data-bad-png.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/data-empty-png.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/data-malformed-base64.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/data-malformed-percent.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/data-unsupported-type.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/file-like-fragment.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/http.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/https.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/interaction.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/protocol-relative.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/relative-file-fragment.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/relative-file.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/script.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/svg-data-excessive-nesting.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/svg-data-malformed-xml.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/svg-data-nested-external.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/urn.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/invalid/xml-stylesheet.svg +5 -0
- data/spec/fixtures/profiles/svg_2_secure_static/valid/jpeg-base64.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/valid/jpeg-percent.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/valid/png-base64.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/valid/png-percent.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/valid/same-document-fragment.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/valid/svg-base64.svg +4 -0
- data/spec/fixtures/profiles/svg_2_secure_static/valid/svg-percent.svg +4 -0
- data/spec/svg_conform/commands/check_command_spec.rb +22 -2
- data/spec/svg_conform/commands/profiles_command_spec.rb +18 -0
- data/spec/svg_conform/conformance_report_spec.rb +90 -0
- data/spec/svg_conform/diagnostics/lens_core_adapter_spec.rb +136 -0
- data/spec/svg_conform/gemspec_spec.rb +21 -0
- data/spec/svg_conform/profiles/svg_1_1_full_static_profile_spec.rb +146 -0
- data/spec/svg_conform/profiles/svg_2_secure_static_profile_spec.rb +150 -0
- data/spec/svg_conform/profiles_plantuml_spec.rb +81 -0
- data/spec/svg_conform/references/data_uri_reference_spec.rb +97 -0
- data/spec/svg_conform/references/integration_spec.rb +30 -0
- data/spec/svg_conform/references/reference_classifier_spec.rb +17 -0
- data/spec/svg_conform/requirements/external_references_requirement_spec.rb +109 -0
- data/spec/svg_conform/requirements/link_validation_requirement_spec.rb +16 -0
- data/spec/svg_conform/requirements/processing_features_requirement_spec.rb +75 -0
- data/spec/svg_conform/requirements/svg_1_1_document_requirement_spec.rb +141 -0
- data/spec/svg_conform/validation/css2_core_grammar_spec.rb +116 -0
- data/spec/svg_conform/validation/svg_1_1_document_conformance_spec.rb +144 -0
- data/spec/svg_conform/validation_context_source_plumbing_spec.rb +122 -0
- data/spec/svg_conform/validation_context_spec.rb +39 -0
- data/spec/svg_conform/validation_result_spec.rb +123 -0
- data/svg_conform.gemspec +3 -2
- 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.
|
|
33
|
-
spec.add_dependency "moxml", "~> 0.
|
|
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
|
+
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-
|
|
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.
|
|
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.
|
|
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:
|
|
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:
|
|
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
|