svg_conform 0.1.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/.github/workflows/rake.yml +15 -0
- data/.github/workflows/release.yml +23 -0
- data/.github/workflows/svgcheck-compatibility.yml +135 -0
- data/.gitignore +12 -0
- data/.rspec +3 -0
- data/.rubocop.yml +13 -0
- data/.rubocop_todo.yml +183 -0
- data/CODE_OF_CONDUCT.md +132 -0
- data/Gemfile +14 -0
- data/README.adoc +1384 -0
- data/Rakefile +15 -0
- data/config/profiles/base.yml +34 -0
- data/config/profiles/lucid_fix.yml +37 -0
- data/config/profiles/metanorma.yml +212 -0
- data/config/profiles/no_external_css.yml +20 -0
- data/config/profiles/svg_1_2_rfc.yml +284 -0
- data/config/profiles/svg_1_2_rfc_with_rdf.yml +145 -0
- data/config/svgcheck_mapping.yml +180 -0
- data/docs/profiles.adoc +547 -0
- data/docs/rdf_metadata_support.adoc +212 -0
- data/docs/remediation.adoc +732 -0
- data/docs/requirements.adoc +709 -0
- data/examples/demo.rb +116 -0
- data/examples/requirements_demo.rb +240 -0
- data/exe/svg_conform +7 -0
- data/lib/svg_conform/batch_report.rb +70 -0
- data/lib/svg_conform/cli.rb +107 -0
- data/lib/svg_conform/commands/check.rb +390 -0
- data/lib/svg_conform/commands/profiles.rb +118 -0
- data/lib/svg_conform/commands/svgcheck.rb +90 -0
- data/lib/svg_conform/commands/svgcheck_compare.rb +92 -0
- data/lib/svg_conform/commands/svgcheck_compatibility.rb +43 -0
- data/lib/svg_conform/commands/svgcheck_generate.rb +262 -0
- data/lib/svg_conform/compatibility/analysis_context.rb +68 -0
- data/lib/svg_conform/compatibility/comparison_result.rb +147 -0
- data/lib/svg_conform/compatibility/compatibility_analyzer.rb +85 -0
- data/lib/svg_conform/compatibility/file_processor.rb +109 -0
- data/lib/svg_conform/compatibility/pattern_discovery.rb +319 -0
- data/lib/svg_conform/compatibility/report_formatter.rb +359 -0
- data/lib/svg_conform/compatibility/svg_analysis_engine.rb +316 -0
- data/lib/svg_conform/compatibility/validity_analysis.rb +252 -0
- data/lib/svg_conform/compatibility/xml_analysis_engine.rb +198 -0
- data/lib/svg_conform/compatibility_analyzer.rb +285 -0
- data/lib/svg_conform/conformance_report.rb +267 -0
- data/lib/svg_conform/constants.rb +199 -0
- data/lib/svg_conform/css_color.rb +262 -0
- data/lib/svg_conform/document.rb +203 -0
- data/lib/svg_conform/external_checkers/svgcheck/compatibility_engine.rb +166 -0
- data/lib/svg_conform/external_checkers/svgcheck/output_generator.rb +101 -0
- data/lib/svg_conform/external_checkers/svgcheck/parser.rb +200 -0
- data/lib/svg_conform/external_checkers/svgcheck/report_comparator.rb +175 -0
- data/lib/svg_conform/external_checkers/svgcheck/report_generator.rb +82 -0
- data/lib/svg_conform/external_checkers/svgcheck/validation_pipeline.rb +249 -0
- data/lib/svg_conform/external_checkers/svgcheck.rb +56 -0
- data/lib/svg_conform/external_checkers.rb +34 -0
- data/lib/svg_conform/fixer.rb +56 -0
- data/lib/svg_conform/profile.rb +164 -0
- data/lib/svg_conform/profiles.rb +60 -0
- data/lib/svg_conform/remediation_engine.rb +92 -0
- data/lib/svg_conform/remediation_result.rb +36 -0
- data/lib/svg_conform/remediation_runner.rb +225 -0
- data/lib/svg_conform/remediations/base_remediation.rb +165 -0
- data/lib/svg_conform/remediations/color_remediation.rb +226 -0
- data/lib/svg_conform/remediations/font_embedding_remediation.rb +145 -0
- data/lib/svg_conform/remediations/font_remediation.rb +122 -0
- data/lib/svg_conform/remediations/image_embedding_remediation.rb +154 -0
- data/lib/svg_conform/remediations/invalid_id_references_remediation.rb +129 -0
- data/lib/svg_conform/remediations/namespace_attribute_remediation.rb +244 -0
- data/lib/svg_conform/remediations/namespace_remediation.rb +151 -0
- data/lib/svg_conform/remediations/no_external_css_remediation.rb +192 -0
- data/lib/svg_conform/remediations/style_promotion_remediation.rb +93 -0
- data/lib/svg_conform/remediations/viewbox_remediation.rb +127 -0
- data/lib/svg_conform/remediations.rb +40 -0
- data/lib/svg_conform/report_comparator.rb +772 -0
- data/lib/svg_conform/requirements/allowed_elements_requirement.rb +367 -0
- data/lib/svg_conform/requirements/base_requirement.rb +98 -0
- data/lib/svg_conform/requirements/color_restrictions_requirement.rb +126 -0
- data/lib/svg_conform/requirements/element_requirement_config.rb +75 -0
- data/lib/svg_conform/requirements/font_family_requirement.rb +133 -0
- data/lib/svg_conform/requirements/forbidden_content_requirement.rb +60 -0
- data/lib/svg_conform/requirements/id_reference_requirement.rb +133 -0
- data/lib/svg_conform/requirements/invalid_id_references_requirement.rb +132 -0
- data/lib/svg_conform/requirements/link_validation_requirement.rb +55 -0
- data/lib/svg_conform/requirements/namespace_attributes_requirement.rb +211 -0
- data/lib/svg_conform/requirements/namespace_requirement.rb +294 -0
- data/lib/svg_conform/requirements/no_external_css_requirement.rb +132 -0
- data/lib/svg_conform/requirements/no_external_fonts_requirement.rb +121 -0
- data/lib/svg_conform/requirements/no_external_images_requirement.rb +91 -0
- data/lib/svg_conform/requirements/style_promotion_requirement.rb +72 -0
- data/lib/svg_conform/requirements/style_requirement.rb +226 -0
- data/lib/svg_conform/requirements/viewbox_required_requirement.rb +96 -0
- data/lib/svg_conform/requirements.rb +49 -0
- data/lib/svg_conform/semantic_comparator.rb +829 -0
- data/lib/svg_conform/validation_context.rb +408 -0
- data/lib/svg_conform/validation_result.rb +146 -0
- data/lib/svg_conform/validator.rb +91 -0
- data/lib/svg_conform/version.rb +5 -0
- data/lib/svg_conform.rb +68 -0
- data/lib/tasks/fixtures.rake +321 -0
- data/lib/tasks/svgcheck.rake +111 -0
- data/reference-docs/SVG-1.2-RFC.rnc.txt +1676 -0
- data/reference-docs/Scalable Vector Graphics (SVG) 1.1 (Second Edition).html +40764 -0
- data/reference-docs/Scalable Vector Graphics (SVG) Tiny 1.2 Specification.html +44591 -0
- data/reference-docs/rfc7996.txt +2971 -0
- data/sig/svg_conform.rbs +4 -0
- data/spec/fixtures/allowed_elements/inputs/basic_violations.svg +21 -0
- data/spec/fixtures/allowed_elements/repair/basic_violations.svg +18 -0
- data/spec/fixtures/color_restrictions/inputs/basic_violations.svg +23 -0
- data/spec/fixtures/color_restrictions/repair/basic_violations.svg +23 -0
- data/spec/fixtures/comprehensive/inputs/multiple_violations.svg +21 -0
- data/spec/fixtures/comprehensive/repair/multiple_violations.svg +16 -0
- data/spec/fixtures/font_family/inputs/basic_violations.svg +17 -0
- data/spec/fixtures/font_family/repair/basic_violations.svg +17 -0
- data/spec/fixtures/forbidden_content/inputs/basic_violations.svg +27 -0
- data/spec/fixtures/forbidden_content/repair/basic_violations.svg +19 -0
- data/spec/fixtures/id_reference/inputs/basic_violations.svg +17 -0
- data/spec/fixtures/id_reference/repair/basic_violations.svg +15 -0
- data/spec/fixtures/link_validation/inputs/basic_violations.svg +20 -0
- data/spec/fixtures/link_validation/repair/basic_violations.svg +16 -0
- data/spec/fixtures/lucid/inputs/simple.svg +67 -0
- data/spec/fixtures/lucid/repair/simple.svg +63 -0
- data/spec/fixtures/namespace/inputs/basic_violations.svg +20 -0
- data/spec/fixtures/namespace/repair/basic_violations.svg +17 -0
- data/spec/fixtures/namespace_attributes/inputs/basic_violations.svg +16 -0
- data/spec/fixtures/namespace_attributes/repair/basic_violations.svg +15 -0
- data/spec/fixtures/no_external_css/inputs/basic_violations.svg +20 -0
- data/spec/fixtures/no_external_css/repair/basic_violations.svg +18 -0
- data/spec/fixtures/style/inputs/basic_violations.svg +22 -0
- data/spec/fixtures/style/repair/basic_violations.svg +22 -0
- data/spec/fixtures/style_promotion/inputs/basic_test.svg +15 -0
- data/spec/fixtures/style_promotion/repair/basic_test.svg +15 -0
- data/spec/fixtures/svg_1_2_rfc/inputs/allowed_elements_violations.svg +18 -0
- data/spec/fixtures/svg_1_2_rfc/inputs/color_restrictions_violations.svg +23 -0
- data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.out +23 -0
- data/spec/fixtures/svgcheck/check/IETF-test.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/IETF-test.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/IETF-test.svg.out +20 -0
- data/spec/fixtures/svgcheck/check/circle.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/circle.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/circle.svg.out +2 -0
- data/spec/fixtures/svgcheck/check/colors.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/colors.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/colors.svg.out +13 -0
- data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.out +76 -0
- data/spec/fixtures/svgcheck/check/example-dot.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/example-dot.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/example-dot.svg.out +11 -0
- data/spec/fixtures/svgcheck/check/full-tiny.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/full-tiny.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/full-tiny.svg.out +5835 -0
- data/spec/fixtures/svgcheck/check/good.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/good.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/good.svg.out +1 -0
- data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.out +5 -0
- data/spec/fixtures/svgcheck/check/malformed.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/malformed.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/malformed.svg.out +8 -0
- data/spec/fixtures/svgcheck/check/rfc-svg.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/rfc-svg.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/rfc-svg.svg.out +1 -0
- data/spec/fixtures/svgcheck/check/rfc.xml.code +1 -0
- data/spec/fixtures/svgcheck/check/rfc.xml.err +0 -0
- data/spec/fixtures/svgcheck/check/rfc.xml.out +2 -0
- data/spec/fixtures/svgcheck/check/rgb.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/rgb.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/rgb.svg.out +9 -0
- data/spec/fixtures/svgcheck/check/svg-wordle.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/svg-wordle.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/svg-wordle.svg.out +508 -0
- data/spec/fixtures/svgcheck/check/threshold.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/threshold.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/threshold.svg.out +20 -0
- data/spec/fixtures/svgcheck/check/utf8.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/utf8.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/utf8.svg.out +162 -0
- data/spec/fixtures/svgcheck/check/viewBox-both.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/viewBox-both.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/viewBox-both.svg.out +4 -0
- data/spec/fixtures/svgcheck/check/viewBox-height.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/viewBox-height.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/viewBox-height.svg.out +3 -0
- data/spec/fixtures/svgcheck/check/viewBox-none.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/viewBox-none.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/viewBox-none.svg.out +3 -0
- data/spec/fixtures/svgcheck/check/viewBox-width.svg.code +1 -0
- data/spec/fixtures/svgcheck/check/viewBox-width.svg.err +0 -0
- data/spec/fixtures/svgcheck/check/viewBox-width.svg.out +3 -0
- data/spec/fixtures/svgcheck/inputs/DrawBerry-sample-2.svg +28 -0
- data/spec/fixtures/svgcheck/inputs/IETF-test.svg +28 -0
- data/spec/fixtures/svgcheck/inputs/circle.svg +3 -0
- data/spec/fixtures/svgcheck/inputs/colors.svg +18 -0
- data/spec/fixtures/svgcheck/inputs/dia-sample-svg.svg +47 -0
- data/spec/fixtures/svgcheck/inputs/example-dot.svg +75 -0
- data/spec/fixtures/svgcheck/inputs/full-tiny.svg +16194 -0
- data/spec/fixtures/svgcheck/inputs/good.svg +19 -0
- data/spec/fixtures/svgcheck/inputs/httpbis-proxy20-fig6.svg +2 -0
- data/spec/fixtures/svgcheck/inputs/malformed.svg +11 -0
- data/spec/fixtures/svgcheck/inputs/rfc-svg.svg +1028 -0
- data/spec/fixtures/svgcheck/inputs/rfc.xml +37 -0
- data/spec/fixtures/svgcheck/inputs/rgb.svg +9 -0
- data/spec/fixtures/svgcheck/inputs/svg-wordle.svg +330 -0
- data/spec/fixtures/svgcheck/inputs/threshold.svg +26 -0
- data/spec/fixtures/svgcheck/inputs/utf8.svg +448 -0
- data/spec/fixtures/svgcheck/inputs/viewBox-both.svg +3 -0
- data/spec/fixtures/svgcheck/inputs/viewBox-height.svg +3 -0
- data/spec/fixtures/svgcheck/inputs/viewBox-none.svg +3 -0
- data/spec/fixtures/svgcheck/inputs/viewBox-width.svg +3 -0
- data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.file +0 -0
- data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.out +23 -0
- data/spec/fixtures/svgcheck/repair/IETF-test.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/IETF-test.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/IETF-test.svg.file +29 -0
- data/spec/fixtures/svgcheck/repair/IETF-test.svg.out +20 -0
- data/spec/fixtures/svgcheck/repair/circle.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/circle.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/circle.svg.file +4 -0
- data/spec/fixtures/svgcheck/repair/circle.svg.out +2 -0
- data/spec/fixtures/svgcheck/repair/colors.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/colors.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/colors.svg.file +19 -0
- data/spec/fixtures/svgcheck/repair/colors.svg.out +13 -0
- data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.file +47 -0
- data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.out +76 -0
- data/spec/fixtures/svgcheck/repair/example-dot.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/example-dot.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/example-dot.svg.file +69 -0
- data/spec/fixtures/svgcheck/repair/example-dot.svg.out +11 -0
- data/spec/fixtures/svgcheck/repair/good.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/good.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/good.svg.file +0 -0
- data/spec/fixtures/svgcheck/repair/good.svg.out +1 -0
- data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.file +73 -0
- data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.out +5 -0
- data/spec/fixtures/svgcheck/repair/malformed.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/malformed.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/malformed.svg.file +9 -0
- data/spec/fixtures/svgcheck/repair/malformed.svg.out +8 -0
- data/spec/fixtures/svgcheck/repair/rfc-svg.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/rfc-svg.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/rfc-svg.svg.file +0 -0
- data/spec/fixtures/svgcheck/repair/rfc-svg.svg.out +1 -0
- data/spec/fixtures/svgcheck/repair/rfc.xml.code +1 -0
- data/spec/fixtures/svgcheck/repair/rfc.xml.err +0 -0
- data/spec/fixtures/svgcheck/repair/rfc.xml.file +37 -0
- data/spec/fixtures/svgcheck/repair/rfc.xml.out +2 -0
- data/spec/fixtures/svgcheck/repair/rgb.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/rgb.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/rgb.svg.file +10 -0
- data/spec/fixtures/svgcheck/repair/rgb.svg.out +9 -0
- data/spec/fixtures/svgcheck/repair/svg-wordle.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/svg-wordle.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/svg-wordle.svg.file +112 -0
- data/spec/fixtures/svgcheck/repair/svg-wordle.svg.out +508 -0
- data/spec/fixtures/svgcheck/repair/threshold.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/threshold.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/threshold.svg.file +27 -0
- data/spec/fixtures/svgcheck/repair/threshold.svg.out +20 -0
- data/spec/fixtures/svgcheck/repair/utf8.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/utf8.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/utf8.svg.file +381 -0
- data/spec/fixtures/svgcheck/repair/utf8.svg.out +162 -0
- data/spec/fixtures/svgcheck/repair/viewBox-both.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/viewBox-both.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/viewBox-both.svg.file +4 -0
- data/spec/fixtures/svgcheck/repair/viewBox-both.svg.out +4 -0
- data/spec/fixtures/svgcheck/repair/viewBox-height.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/viewBox-height.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/viewBox-height.svg.file +4 -0
- data/spec/fixtures/svgcheck/repair/viewBox-height.svg.out +3 -0
- data/spec/fixtures/svgcheck/repair/viewBox-none.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/viewBox-none.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/viewBox-none.svg.file +4 -0
- data/spec/fixtures/svgcheck/repair/viewBox-none.svg.out +3 -0
- data/spec/fixtures/svgcheck/repair/viewBox-width.svg.code +1 -0
- data/spec/fixtures/svgcheck/repair/viewBox-width.svg.err +0 -0
- data/spec/fixtures/svgcheck/repair/viewBox-width.svg.file +4 -0
- data/spec/fixtures/svgcheck/repair/viewBox-width.svg.out +3 -0
- data/spec/fixtures/viewbox_required/inputs/missing_viewbox.svg +10 -0
- data/spec/fixtures/viewbox_required/repair/missing_viewbox.svg +10 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/svg_conform/batch_report_spec.rb +99 -0
- data/spec/svg_conform/commands/check_command_spec.rb +90 -0
- data/spec/svg_conform/commands/profiles_command_spec.rb +20 -0
- data/spec/svg_conform/commands/svgcheck_compare_command_spec.rb +13 -0
- data/spec/svg_conform/commands/svgcheck_compatibility_command_spec.rb +13 -0
- data/spec/svg_conform/commands/svgcheck_generate_command_spec.rb +14 -0
- data/spec/svg_conform/profiles/base_profile_spec.rb +42 -0
- data/spec/svg_conform/profiles/lucid_fix_profile_spec.rb +46 -0
- data/spec/svg_conform/profiles/lucid_profile_spec.rb +84 -0
- data/spec/svg_conform/profiles/metanorma_profile_spec.rb +62 -0
- data/spec/svg_conform/profiles/no_external_css_profile_spec.rb +66 -0
- data/spec/svg_conform/profiles/svg_1_2_rfc_profile_spec.rb +200 -0
- data/spec/svg_conform/profiles/svg_1_2_rfc_with_rdf_profile_spec.rb +81 -0
- data/spec/svg_conform/remediations/color_remediation_spec.rb +95 -0
- data/spec/svg_conform/remediations/font_embedding_remediation_spec.rb +20 -0
- data/spec/svg_conform/remediations/font_remediation_spec.rb +95 -0
- data/spec/svg_conform/remediations/image_embedding_remediation_spec.rb +20 -0
- data/spec/svg_conform/remediations/invalid_id_references_remediation_spec.rb +97 -0
- data/spec/svg_conform/remediations/namespace_attribute_remediation_spec.rb +97 -0
- data/spec/svg_conform/remediations/namespace_remediation_spec.rb +95 -0
- data/spec/svg_conform/remediations/no_external_css_remediation_spec.rb +97 -0
- data/spec/svg_conform/remediations/style_promotion_remediation_spec.rb +97 -0
- data/spec/svg_conform/remediations/viewbox_remediation_spec.rb +95 -0
- data/spec/svg_conform/requirements/allowed_elements_requirement_spec.rb +118 -0
- data/spec/svg_conform/requirements/color_restrictions_requirement_spec.rb +168 -0
- data/spec/svg_conform/requirements/font_family_requirement_spec.rb +188 -0
- data/spec/svg_conform/requirements/forbidden_content_requirement_spec.rb +195 -0
- data/spec/svg_conform/requirements/id_reference_requirement_spec.rb +78 -0
- data/spec/svg_conform/requirements/invalid_id_references_requirement_spec.rb +78 -0
- data/spec/svg_conform/requirements/link_validation_requirement_spec.rb +78 -0
- data/spec/svg_conform/requirements/namespace_attributes_requirement_spec.rb +86 -0
- data/spec/svg_conform/requirements/namespace_requirement_spec.rb +184 -0
- data/spec/svg_conform/requirements/no_external_css_requirement_spec.rb +78 -0
- data/spec/svg_conform/requirements/no_external_fonts_requirement_spec.rb +20 -0
- data/spec/svg_conform/requirements/no_external_images_requirement_spec.rb +20 -0
- data/spec/svg_conform/requirements/style_promotion_requirement_spec.rb +78 -0
- data/spec/svg_conform/requirements/style_requirement_spec.rb +76 -0
- data/spec/svg_conform/requirements/viewbox_required_requirement_spec.rb +165 -0
- data/spec/svg_conform_spec.rb +32 -0
- data/spec/svgcheck_compatibility_spec.rb +355 -0
- data/svg_conform.gemspec +35 -0
- metadata +436 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<?xml version='1.0' encoding='utf-8'?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" preserveAspectRatio="xMidYMid" version="1.1" viewBox="0 0 28000 21000">
|
|
3
|
+
<g class="Drawing" id="Straight_Connector_42">
|
|
4
|
+
<g>
|
|
5
|
+
<g stroke="black" stroke-width="88" fill="none">
|
|
6
|
+
<path d="M 4264,13886 L 4264,17273" fill="none"/>
|
|
7
|
+
</g></g></g>
|
|
8
|
+
<g class="Drawing" id="Straight_Connector_33">
|
|
9
|
+
<g>
|
|
10
|
+
<g stroke="black" stroke-width="88" fill="none">
|
|
11
|
+
<path d="M 20355,10711 L 20351,13886" fill="none"/>
|
|
12
|
+
</g></g></g>
|
|
13
|
+
<g class="Drawing">
|
|
14
|
+
<g>
|
|
15
|
+
<g stroke="none" fill="none">
|
|
16
|
+
<rect height="3490" width="25184" x="1512" y="340"/>
|
|
17
|
+
</g>
|
|
18
|
+
<g font-family="sans-serif" font-size="1552px" font-weight="400">
|
|
19
|
+
<g stroke="none" fill="black">
|
|
20
|
+
<text>
|
|
21
|
+
<tspan x="4733 5855 6718 7582 8446 8877 9741 10605 11036 12074 12853 13716 14580 15443 15960 16307 17171 17602 18724 19071 19935 20799 21315 22179 " y="2482">
|
|
22
|
+
Updated Scenario Diagram
|
|
23
|
+
</tspan>
|
|
24
|
+
</text>
|
|
25
|
+
</g>
|
|
26
|
+
</g>
|
|
27
|
+
</g>
|
|
28
|
+
</g>
|
|
29
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Tests/IETF-test.svg:4: Style property 'stroke' promoted to attribute
|
|
2
|
+
Tests/IETF-test.svg:4: Style property 'stroke-width' promoted to attribute
|
|
3
|
+
Tests/IETF-test.svg:4: Style property 'fill' promoted to attribute
|
|
4
|
+
Tests/IETF-test.svg:4: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
|
|
5
|
+
Tests/IETF-test.svg:5: Style property 'fill' promoted to attribute
|
|
6
|
+
Tests/IETF-test.svg:9: Style property 'stroke' promoted to attribute
|
|
7
|
+
Tests/IETF-test.svg:9: Style property 'stroke-width' promoted to attribute
|
|
8
|
+
Tests/IETF-test.svg:9: Style property 'fill' promoted to attribute
|
|
9
|
+
Tests/IETF-test.svg:9: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
|
|
10
|
+
Tests/IETF-test.svg:10: Style property 'fill' promoted to attribute
|
|
11
|
+
Tests/IETF-test.svg:14: Style property 'stroke' promoted to attribute
|
|
12
|
+
Tests/IETF-test.svg:14: Style property 'fill' promoted to attribute
|
|
13
|
+
Tests/IETF-test.svg:17: Style property 'font-family' promoted to attribute
|
|
14
|
+
Tests/IETF-test.svg:17: Style property 'font-size' promoted to attribute
|
|
15
|
+
Tests/IETF-test.svg:17: Style property 'font-weight' promoted to attribute
|
|
16
|
+
Tests/IETF-test.svg:17: The attribute 'font-family' does not allow the value 'Arial embedded', replaced with 'sans-serif'
|
|
17
|
+
Tests/IETF-test.svg:18: Style property 'stroke' promoted to attribute
|
|
18
|
+
Tests/IETF-test.svg:18: Style property 'fill' promoted to attribute
|
|
19
|
+
Tests/IETF-test.svg:18: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
|
|
20
|
+
ERROR: File does not conform to SVG requirements
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version='1.0' encoding='utf-8'?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100" datatype="foobar" viewBox="0 0 100.0 100.0">
|
|
3
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
4
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
5
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="white"/>
|
|
6
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
7
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="white"/>
|
|
8
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
9
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
10
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#ffffff"/>
|
|
11
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#000000"/>
|
|
12
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
13
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
14
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
15
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
16
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="white"/>
|
|
17
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
18
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="white"/>
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Tests/colors.svg:2: The attribute 'fill' does not allow the value 'red', replaced with 'black'
|
|
2
|
+
Tests/colors.svg:3: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
|
|
3
|
+
Tests/colors.svg:4: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
|
|
4
|
+
Tests/colors.svg:5: The attribute 'fill' does not allow the value 'rgb(128,128,182)', replaced with 'black'
|
|
5
|
+
Tests/colors.svg:6: The attribute 'fill' does not allow the value '#fff', replaced with 'white'
|
|
6
|
+
Tests/colors.svg:7: The attribute 'fill' does not allow the value '#aaa', replaced with 'black'
|
|
7
|
+
Tests/colors.svg:8: The attribute 'fill' does not allow the value '#000', replaced with 'black'
|
|
8
|
+
Tests/colors.svg:11: The attribute 'fill' does not allow the value '#0a0a0a', replaced with 'black'
|
|
9
|
+
Tests/colors.svg:12: The attribute 'fill' does not allow the value 'grey', replaced with 'black'
|
|
10
|
+
Tests/colors.svg:13: The attribute 'fill' does not allow the value 'gray', replaced with 'black'
|
|
11
|
+
Tests/colors.svg:16: The attribute 'fill' does not allow the value 'unknown', replaced with 'black'
|
|
12
|
+
Tests/colors.svg:17: The attribute 'fill' does not allow the value 'rgb(100%,100%,100%)', replaced with 'white'
|
|
13
|
+
ERROR: File does not conform to SVG requirements
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1
|
|
File without changes
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<?xml version='1.0' encoding='utf-8'?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14cm" height="16cm" viewBox="4 7 273 316">
|
|
3
|
+
<text font-size="12.7998" x="100" y="320" fill="black" text-anchor="start" font-family="sans-serif" font-style="normal" font-weight="normal">
|
|
4
|
+
<tspan x="100" y="320"/>
|
|
5
|
+
</text>
|
|
6
|
+
<g>
|
|
7
|
+
<ellipse cx="89.0883" cy="35.766" rx="82" ry="27" fill="#ffffff"/>
|
|
8
|
+
<ellipse cx="89.0883" cy="35.766" rx="82" ry="27" fill="none" fill-opacity="0" stroke-width="2" stroke="#000000"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g>
|
|
11
|
+
<ellipse cx="87.8883" cy="170.688" rx="82" ry="27" fill="black"/>
|
|
12
|
+
<ellipse cx="87.8883" cy="170.688" rx="82" ry="27" fill="none" fill-opacity="0" stroke-width="2" stroke="#000000"/>
|
|
13
|
+
</g>
|
|
14
|
+
<g>
|
|
15
|
+
<path d="M 67.0438,62.6046 A 86.9421,86.9421 0 0 0 66.5601,136.198" fill="none" fill-opacity="0" stroke-width="2" stroke="#000000"/>
|
|
16
|
+
<polygon points="69.9349,142.85 60.4932,136.863 66.0662,136.425 69.0601,131.704 " fill="black"/>
|
|
17
|
+
<polygon points="69.9349,142.85 60.4932,136.863 66.0662,136.425 69.0601,131.704 " fill="none" fill-opacity="0" stroke-width="2" stroke="#000000"/>
|
|
18
|
+
</g>
|
|
19
|
+
<g>
|
|
20
|
+
<path d="M 108.485,142.121 A 62.5199,62.5199 0 0 0 114.068,69.9912" fill="none" fill-opacity="0" stroke-width="2" stroke="#000000"/>
|
|
21
|
+
<polygon points="109.916,63.8398 120.157,68.3263 114.714,69.6039 112.471,74.7243 " fill="#000000"/>
|
|
22
|
+
<polygon points="109.916,63.8398 120.157,68.3263 114.714,69.6039 112.471,74.7243 " fill="none" fill-opacity="0" stroke-width="2" stroke="#000000"/>
|
|
23
|
+
</g>
|
|
24
|
+
<text font-size="12.7998" x="89.0883" y="246.059" fill="#000000" text-anchor="start" font-family="sans-serif" font-style="normal" font-weight="normal">
|
|
25
|
+
<tspan x="89.0883" y="246.059"/>
|
|
26
|
+
</text>
|
|
27
|
+
<text font-size="18.0622" x="57.0883" y="40.0589" fill="#000000" text-anchor="start" font-family="serif" font-style="normal" font-weight="normal">
|
|
28
|
+
<tspan x="57.0883" y="40.0589">original</tspan>
|
|
29
|
+
</text>
|
|
30
|
+
<text font-size="18.0622" x="49.3934" y="176.464" fill="#000000" text-anchor="start" font-family="serif" font-style="normal" font-weight="normal">
|
|
31
|
+
<tspan x="49.3934" y="176.464">canonical</tspan>
|
|
32
|
+
</text>
|
|
33
|
+
<g>
|
|
34
|
+
<path d="M 159.088 155.438 C 199.088,143.938 199.088,193.938 168.612,187.461" fill="none" fill-opacity="0" stroke-width="2" stroke="#000000"/>
|
|
35
|
+
<polygon points="161.276,185.902 172.096,183.09 168.612,187.461 170.018,192.872 " fill="#000000"/>
|
|
36
|
+
<polygon points="161.276,185.902 172.096,183.09 168.612,187.461 170.018,192.872 " fill="none" fill-opacity="0" stroke-width="2" stroke="#000000"/>
|
|
37
|
+
</g>
|
|
38
|
+
<text font-size="15.8044" x="29.7954" y="104.544" fill="#000000" text-anchor="start" font-family="serif" font-style="normal" font-weight="normal">
|
|
39
|
+
<tspan x="29.7954" y="104.544">nit</tspan>
|
|
40
|
+
</text>
|
|
41
|
+
<text font-size="15.8044" x="132.017" y="105.352" fill="#000000" text-anchor="start" font-family="serif" font-style="normal" font-weight="normal">
|
|
42
|
+
<tspan x="132.017" y="105.352">edit</tspan>
|
|
43
|
+
</text>
|
|
44
|
+
<text font-size="15.8044" x="194.139" y="177.473" fill="#000000" text-anchor="start" font-family="serif" font-style="normal" font-weight="normal">
|
|
45
|
+
<tspan x="194.139" y="177.473">nit (no-op)</tspan>
|
|
46
|
+
</text>
|
|
47
|
+
</svg>
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
Tests/dia-sample-svg.svg:3: Style property 'fill' promoted to attribute
|
|
2
|
+
Tests/dia-sample-svg.svg:3: Style property 'text-anchor' promoted to attribute
|
|
3
|
+
Tests/dia-sample-svg.svg:3: Style property 'font-family' promoted to attribute
|
|
4
|
+
Tests/dia-sample-svg.svg:3: Style property 'font-style' promoted to attribute
|
|
5
|
+
Tests/dia-sample-svg.svg:3: Style property 'font-weight' promoted to attribute
|
|
6
|
+
Tests/dia-sample-svg.svg:3: The attribute 'fill' does not allow the value '#00FF00', replaced with 'black'
|
|
7
|
+
Tests/dia-sample-svg.svg:7: Style property 'fill' promoted to attribute
|
|
8
|
+
Tests/dia-sample-svg.svg:8: Style property 'fill' promoted to attribute
|
|
9
|
+
Tests/dia-sample-svg.svg:8: Style property 'fill-opacity' promoted to attribute
|
|
10
|
+
Tests/dia-sample-svg.svg:8: Style property 'stroke-width' promoted to attribute
|
|
11
|
+
Tests/dia-sample-svg.svg:8: Style property 'stroke' promoted to attribute
|
|
12
|
+
Tests/dia-sample-svg.svg:11: Style property 'fill' promoted to attribute
|
|
13
|
+
Tests/dia-sample-svg.svg:11: The attribute 'fill' does not allow the value '#ff00ff', replaced with 'black'
|
|
14
|
+
Tests/dia-sample-svg.svg:12: Style property 'fill' promoted to attribute
|
|
15
|
+
Tests/dia-sample-svg.svg:12: Style property 'fill-opacity' promoted to attribute
|
|
16
|
+
Tests/dia-sample-svg.svg:12: Style property 'stroke-width' promoted to attribute
|
|
17
|
+
Tests/dia-sample-svg.svg:12: Style property 'stroke' promoted to attribute
|
|
18
|
+
Tests/dia-sample-svg.svg:15: Style property 'fill' promoted to attribute
|
|
19
|
+
Tests/dia-sample-svg.svg:15: Style property 'fill-opacity' promoted to attribute
|
|
20
|
+
Tests/dia-sample-svg.svg:15: Style property 'stroke-width' promoted to attribute
|
|
21
|
+
Tests/dia-sample-svg.svg:15: Style property 'stroke' promoted to attribute
|
|
22
|
+
Tests/dia-sample-svg.svg:16: Style property 'fill' promoted to attribute
|
|
23
|
+
Tests/dia-sample-svg.svg:16: The attribute 'fill' does not allow the value '#FF0000', replaced with 'black'
|
|
24
|
+
Tests/dia-sample-svg.svg:17: Style property 'fill' promoted to attribute
|
|
25
|
+
Tests/dia-sample-svg.svg:17: Style property 'fill-opacity' promoted to attribute
|
|
26
|
+
Tests/dia-sample-svg.svg:17: Style property 'stroke-width' promoted to attribute
|
|
27
|
+
Tests/dia-sample-svg.svg:17: Style property 'stroke' promoted to attribute
|
|
28
|
+
Tests/dia-sample-svg.svg:20: Style property 'fill' promoted to attribute
|
|
29
|
+
Tests/dia-sample-svg.svg:20: Style property 'fill-opacity' promoted to attribute
|
|
30
|
+
Tests/dia-sample-svg.svg:20: Style property 'stroke-width' promoted to attribute
|
|
31
|
+
Tests/dia-sample-svg.svg:20: Style property 'stroke' promoted to attribute
|
|
32
|
+
Tests/dia-sample-svg.svg:21: Style property 'fill' promoted to attribute
|
|
33
|
+
Tests/dia-sample-svg.svg:22: Style property 'fill' promoted to attribute
|
|
34
|
+
Tests/dia-sample-svg.svg:22: Style property 'fill-opacity' promoted to attribute
|
|
35
|
+
Tests/dia-sample-svg.svg:22: Style property 'stroke-width' promoted to attribute
|
|
36
|
+
Tests/dia-sample-svg.svg:22: Style property 'stroke' promoted to attribute
|
|
37
|
+
Tests/dia-sample-svg.svg:24: Style property 'fill' promoted to attribute
|
|
38
|
+
Tests/dia-sample-svg.svg:24: Style property 'text-anchor' promoted to attribute
|
|
39
|
+
Tests/dia-sample-svg.svg:24: Style property 'font-family' promoted to attribute
|
|
40
|
+
Tests/dia-sample-svg.svg:24: Style property 'font-style' promoted to attribute
|
|
41
|
+
Tests/dia-sample-svg.svg:24: Style property 'font-weight' promoted to attribute
|
|
42
|
+
Tests/dia-sample-svg.svg:27: Style property 'fill' promoted to attribute
|
|
43
|
+
Tests/dia-sample-svg.svg:27: Style property 'text-anchor' promoted to attribute
|
|
44
|
+
Tests/dia-sample-svg.svg:27: Style property 'font-family' promoted to attribute
|
|
45
|
+
Tests/dia-sample-svg.svg:27: Style property 'font-style' promoted to attribute
|
|
46
|
+
Tests/dia-sample-svg.svg:27: Style property 'font-weight' promoted to attribute
|
|
47
|
+
Tests/dia-sample-svg.svg:30: Style property 'fill' promoted to attribute
|
|
48
|
+
Tests/dia-sample-svg.svg:30: Style property 'text-anchor' promoted to attribute
|
|
49
|
+
Tests/dia-sample-svg.svg:30: Style property 'font-family' promoted to attribute
|
|
50
|
+
Tests/dia-sample-svg.svg:30: Style property 'font-style' promoted to attribute
|
|
51
|
+
Tests/dia-sample-svg.svg:30: Style property 'font-weight' promoted to attribute
|
|
52
|
+
Tests/dia-sample-svg.svg:34: Style property 'fill' promoted to attribute
|
|
53
|
+
Tests/dia-sample-svg.svg:34: Style property 'fill-opacity' promoted to attribute
|
|
54
|
+
Tests/dia-sample-svg.svg:34: Style property 'stroke-width' promoted to attribute
|
|
55
|
+
Tests/dia-sample-svg.svg:34: Style property 'stroke' promoted to attribute
|
|
56
|
+
Tests/dia-sample-svg.svg:35: Style property 'fill' promoted to attribute
|
|
57
|
+
Tests/dia-sample-svg.svg:36: Style property 'fill' promoted to attribute
|
|
58
|
+
Tests/dia-sample-svg.svg:36: Style property 'fill-opacity' promoted to attribute
|
|
59
|
+
Tests/dia-sample-svg.svg:36: Style property 'stroke-width' promoted to attribute
|
|
60
|
+
Tests/dia-sample-svg.svg:36: Style property 'stroke' promoted to attribute
|
|
61
|
+
Tests/dia-sample-svg.svg:38: Style property 'fill' promoted to attribute
|
|
62
|
+
Tests/dia-sample-svg.svg:38: Style property 'text-anchor' promoted to attribute
|
|
63
|
+
Tests/dia-sample-svg.svg:38: Style property 'font-family' promoted to attribute
|
|
64
|
+
Tests/dia-sample-svg.svg:38: Style property 'font-style' promoted to attribute
|
|
65
|
+
Tests/dia-sample-svg.svg:38: Style property 'font-weight' promoted to attribute
|
|
66
|
+
Tests/dia-sample-svg.svg:41: Style property 'fill' promoted to attribute
|
|
67
|
+
Tests/dia-sample-svg.svg:41: Style property 'text-anchor' promoted to attribute
|
|
68
|
+
Tests/dia-sample-svg.svg:41: Style property 'font-family' promoted to attribute
|
|
69
|
+
Tests/dia-sample-svg.svg:41: Style property 'font-style' promoted to attribute
|
|
70
|
+
Tests/dia-sample-svg.svg:41: Style property 'font-weight' promoted to attribute
|
|
71
|
+
Tests/dia-sample-svg.svg:44: Style property 'fill' promoted to attribute
|
|
72
|
+
Tests/dia-sample-svg.svg:44: Style property 'text-anchor' promoted to attribute
|
|
73
|
+
Tests/dia-sample-svg.svg:44: Style property 'font-family' promoted to attribute
|
|
74
|
+
Tests/dia-sample-svg.svg:44: Style property 'font-style' promoted to attribute
|
|
75
|
+
Tests/dia-sample-svg.svg:44: Style property 'font-weight' promoted to attribute
|
|
76
|
+
ERROR: File does not conform to SVG requirements
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1
|
|
File without changes
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<?xml version='1.0' encoding='utf-8'?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="134pt" height="332pt" viewBox="0.00 0.00 134.00 332.00">
|
|
3
|
+
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
|
|
4
|
+
<title>%3</title>
|
|
5
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-328 130,-328 130,4 -4,4"/>
|
|
6
|
+
<!-- a -->
|
|
7
|
+
<g id="node1" class="node"><title>a</title>
|
|
8
|
+
<ellipse fill="none" stroke="black" cx="71" cy="-306" rx="27" ry="18"/>
|
|
9
|
+
<text text-anchor="middle" x="71" y="-302.3" font-family="serif" font-size="14.00">a</text>
|
|
10
|
+
</g>
|
|
11
|
+
<!-- b -->
|
|
12
|
+
<g id="node2" class="node"><title>b</title>
|
|
13
|
+
<ellipse fill="none" stroke="black" cx="99" cy="-234" rx="27" ry="18"/>
|
|
14
|
+
<text text-anchor="middle" x="99" y="-230.3" font-family="serif" font-size="14.00">b</text>
|
|
15
|
+
</g>
|
|
16
|
+
<!-- a--b -->
|
|
17
|
+
<g id="edge1" class="edge"><title>a--b</title>
|
|
18
|
+
<path fill="none" stroke="black" stroke-width="3" d="M77.6356,-288.411C82.099,-277.252 87.9586,-262.604 92.412,-251.47"/>
|
|
19
|
+
</g>
|
|
20
|
+
<!-- d -->
|
|
21
|
+
<g id="node3" class="node"><title>d</title>
|
|
22
|
+
<ellipse fill="none" stroke="black" cx="44" cy="-162" rx="27" ry="18"/>
|
|
23
|
+
<text text-anchor="middle" x="44" y="-158.3" font-family="serif" font-size="14.00">d</text>
|
|
24
|
+
</g>
|
|
25
|
+
<!-- a--d -->
|
|
26
|
+
<g id="edge8" class="edge"><title>a--d</title>
|
|
27
|
+
<path fill="none" stroke="black" d="M67.7432,-287.871C62.5536,-260.578 52.4652,-207.52 47.2684,-180.189"/>
|
|
28
|
+
</g>
|
|
29
|
+
<!-- b--d -->
|
|
30
|
+
<g id="edge2" class="edge"><title>b--d</title>
|
|
31
|
+
<path fill="none" stroke="black" stroke-width="3" d="M87.0658,-217.811C77.8405,-206.07 65.1304,-189.893 55.9109,-178.159"/>
|
|
32
|
+
</g>
|
|
33
|
+
<!-- c -->
|
|
34
|
+
<g id="node4" class="node"><title>c</title>
|
|
35
|
+
<ellipse fill="none" stroke="black" cx="99" cy="-90" rx="27" ry="18"/>
|
|
36
|
+
<text text-anchor="middle" x="99" y="-86.3" font-family="serif" font-size="14.00">c</text>
|
|
37
|
+
</g>
|
|
38
|
+
<!-- b--c -->
|
|
39
|
+
<g id="edge5" class="edge"><title>b--c</title>
|
|
40
|
+
<path fill="none" stroke="black" d="M99,-215.871C99,-188.578 99,-135.52 99,-108.189"/>
|
|
41
|
+
</g>
|
|
42
|
+
<!-- d--c -->
|
|
43
|
+
<g id="edge3" class="edge"><title>d--c</title>
|
|
44
|
+
<path fill="none" stroke="black" stroke-width="3" d="M55.9342,-145.811C65.1595,-134.07 77.8696,-117.893 87.0891,-106.159"/>
|
|
45
|
+
</g>
|
|
46
|
+
<!-- e -->
|
|
47
|
+
<g id="node6" class="node"><title>e</title>
|
|
48
|
+
<ellipse fill="none" stroke="black" cx="27" cy="-90" rx="27" ry="18"/>
|
|
49
|
+
<text text-anchor="middle" x="27" y="-86.3" font-family="serif" font-size="14.00">e</text>
|
|
50
|
+
</g>
|
|
51
|
+
<!-- d--e -->
|
|
52
|
+
<g id="edge6" class="edge"><title>d--e</title>
|
|
53
|
+
<path fill="none" stroke="black" d="M39.8848,-144.055C37.2513,-133.211 33.8444,-119.183 31.1954,-108.275"/>
|
|
54
|
+
</g>
|
|
55
|
+
<!-- f -->
|
|
56
|
+
<g id="node5" class="node"><title>f</title>
|
|
57
|
+
<ellipse fill="none" stroke="black" cx="63" cy="-18" rx="27" ry="18"/>
|
|
58
|
+
<text text-anchor="middle" x="63" y="-14.3" font-family="serif" font-size="14.00">f</text>
|
|
59
|
+
</g>
|
|
60
|
+
<!-- c--f -->
|
|
61
|
+
<g id="edge4" class="edge"><title>c--f</title>
|
|
62
|
+
<path fill="none" stroke="black" stroke-width="3" d="M90.6504,-72.7646C84.8345,-61.456 77.1103,-46.4367 71.3043,-35.1473"/>
|
|
63
|
+
</g>
|
|
64
|
+
<!-- e--f -->
|
|
65
|
+
<g id="edge7" class="edge"><title>e--f</title>
|
|
66
|
+
<path fill="none" stroke="black" d="M35.3496,-72.7646C41.1655,-61.456 48.8897,-46.4367 54.6957,-35.1473"/>
|
|
67
|
+
</g>
|
|
68
|
+
</g>
|
|
69
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Tests/example-dot.svg:15: The attribute 'font-family' does not allow the value 'Times,serif', replaced with 'serif'
|
|
2
|
+
Tests/example-dot.svg:20: The attribute 'font-family' does not allow the value 'Times,serif', replaced with 'serif'
|
|
3
|
+
Tests/example-dot.svg:24: The attribute 'stroke' does not allow the value 'red', replaced with 'black'
|
|
4
|
+
Tests/example-dot.svg:29: The attribute 'font-family' does not allow the value 'Times,serif', replaced with 'serif'
|
|
5
|
+
Tests/example-dot.svg:37: The attribute 'stroke' does not allow the value 'red', replaced with 'black'
|
|
6
|
+
Tests/example-dot.svg:42: The attribute 'font-family' does not allow the value 'Times,serif', replaced with 'serif'
|
|
7
|
+
Tests/example-dot.svg:50: The attribute 'stroke' does not allow the value 'red', replaced with 'black'
|
|
8
|
+
Tests/example-dot.svg:55: The attribute 'font-family' does not allow the value 'Times,serif', replaced with 'serif'
|
|
9
|
+
Tests/example-dot.svg:64: The attribute 'font-family' does not allow the value 'Times,serif', replaced with 'serif'
|
|
10
|
+
Tests/example-dot.svg:68: The attribute 'stroke' does not allow the value 'red', replaced with 'black'
|
|
11
|
+
ERROR: File does not conform to SVG requirements
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
INFO: File conforms to SVG requirements.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1
|
|
File without changes
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
<?xml version='1.0' encoding='utf-8'?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" baseProfile="tiny" height="100%" preserveAspectRatio="xMidYMid meet" version="1.2" viewBox="(0, 0, 599.4, 647.8)" width="100%">
|
|
3
|
+
<defs>
|
|
4
|
+
<g id="simple-arrow">
|
|
5
|
+
<polyline fill="none" points="-10,4 0,0 -10,-4" stroke="black" stroke-width="1"/>
|
|
6
|
+
</g>
|
|
7
|
+
<g id="whole-drawing">
|
|
8
|
+
<text font-family="sans-serif" font-size="20" text-anchor="middle" x="64.4" y="32.1">user-agent</text>
|
|
9
|
+
<line stroke="black" stroke-width="1" x1="64.4" x2="64.4" y1="44.2" y2="645.8"/>
|
|
10
|
+
<text font-family="sans-serif" font-size="20" text-anchor="middle" x="314.4" y="32.1">Proxy</text>
|
|
11
|
+
<line stroke="black" stroke-width="1" x1="314.4" x2="314.4" y1="44.2" y2="645.8"/>
|
|
12
|
+
<text font-family="sans-serif" font-size="20" text-anchor="middle" x="564.4" y="32.1">Server</text>
|
|
13
|
+
<line stroke="black" stroke-width="1" x1="564.4" x2="564.4" y1="44.2" y2="645.8"/>
|
|
14
|
+
<use transform="rotate(0.0,314.4,76.36)" x="314.4" xlink:href="#simple-arrow" y="76.36"/>
|
|
15
|
+
<line stroke="black" stroke-width="1" x1="314.4" x2="64.4" y1="76.36" y2="76.36"/>
|
|
16
|
+
<rect fill="white" height="16.31" stroke="white" width="154.0" x="112.4" y="56.2"/>
|
|
17
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="189.4" y="70.2">(1) TLS ClientHello</text>
|
|
18
|
+
<rect fill="white" height="16.31" stroke="white" width="200.2" x="89.3" y="78.67"/>
|
|
19
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="189.4" y="92.67">(ALPN ProtocolName: http)</text>
|
|
20
|
+
<use transform="rotate(180.0,64.4,127.14)" x="64.4" xlink:href="#simple-arrow" y="127.14"/>
|
|
21
|
+
<line stroke="black" stroke-width="1" x1="314.4" x2="64.4" y1="127.14" y2="127.14"/>
|
|
22
|
+
<rect fill="white" height="16.31" stroke="white" width="107.8" x="135.5" y="106.98"/>
|
|
23
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="189.4" y="120.98">(2) TLS Error</text>
|
|
24
|
+
<rect fill="white" height="16.31" stroke="white" width="100.1" x="139.35" y="129.45"/>
|
|
25
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="189.4" y="143.45">(Proxy Cert)</text>
|
|
26
|
+
<use transform="rotate(180.0,64.4,206.76)" x="64.4" xlink:href="#simple-arrow" y="206.76"/>
|
|
27
|
+
<line stroke="black" stroke-width="1" x1="139.4" x2="64.4" y1="157.76" y2="157.76"/>
|
|
28
|
+
<line stroke="black" stroke-width="1" x1="139.4" x2="139.4" y1="206.76" y2="157.76"/>
|
|
29
|
+
<rect fill="white" height="16.31" stroke="white" width="254.1" x="12.35" y="174.42"/>
|
|
30
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="139.4" y="188.42">(inform user of the SecureProxy)</text>
|
|
31
|
+
<line stroke="black" stroke-width="1" x1="64.4" x2="139.4" y1="206.76" y2="206.76"/>
|
|
32
|
+
<use transform="rotate(0.0,314.4,238.92)" x="314.4" xlink:href="#simple-arrow" y="238.92"/>
|
|
33
|
+
<line stroke="black" stroke-width="1" x1="314.4" x2="64.4" y1="238.92" y2="238.92"/>
|
|
34
|
+
<rect fill="white" height="16.31" stroke="white" width="154.0" x="112.4" y="218.76"/>
|
|
35
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="189.4" y="232.76">(3) TLS ClientHello</text>
|
|
36
|
+
<use transform="rotate(180.0,64.4,271.08)" x="64.4" xlink:href="#simple-arrow" y="271.08"/>
|
|
37
|
+
<line stroke="black" stroke-width="1" x1="314.4" x2="64.4" y1="271.08" y2="271.08"/>
|
|
38
|
+
<rect fill="white" height="16.31" stroke="white" width="123.2" x="127.8" y="250.92"/>
|
|
39
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="189.4" y="264.92">(4) ServerHello</text>
|
|
40
|
+
<rect fill="white" height="21.0" stroke="white" width="252.0" x="63.4" y="283.08"/>
|
|
41
|
+
<text fill="black" font-family="sans-serif" font-size="14" text-anchor="middle" x="189.4" y="330.08">HTTP2.0</text>
|
|
42
|
+
<rect fill="none" height="294.36" stroke="black" width="244.0" x="67.4" y="336.24"/>
|
|
43
|
+
<use transform="rotate(0.0,314.4,358.39)" x="314.4" xlink:href="#simple-arrow" y="358.39"/>
|
|
44
|
+
<line stroke="black" stroke-width="1" x1="314.4" x2="64.4" y1="358.39" y2="358.39"/>
|
|
45
|
+
<rect fill="white" height="16.31" stroke="white" width="138.6" x="120.1" y="350.55"/>
|
|
46
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="189.4" y="364.55">(5) stream(X) GET</text>
|
|
47
|
+
<use transform="rotate(0.0,564.4,407.42)" x="564.4" xlink:href="#simple-arrow" y="407.42"/>
|
|
48
|
+
<line stroke="black" stroke-width="1" x1="564.4" x2="314.4" y1="407.42" y2="407.42"/>
|
|
49
|
+
<rect fill="white" height="16.31" stroke="white" width="154.0" x="362.4" y="387.26"/>
|
|
50
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="439.4" y="401.26">(6) TLS ClientHello</text>
|
|
51
|
+
<use transform="rotate(180.0,314.4,439.58)" x="314.4" xlink:href="#simple-arrow" y="439.58"/>
|
|
52
|
+
<line stroke="black" stroke-width="1" x1="564.4" x2="314.4" y1="439.58" y2="439.58"/>
|
|
53
|
+
<rect fill="white" height="16.31" stroke="white" width="123.2" x="377.8" y="419.42"/>
|
|
54
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="439.4" y="433.42">TLS ServerHello</text>
|
|
55
|
+
<rect fill="white" height="21.0" stroke="white" width="252.0" x="313.4" y="451.58"/>
|
|
56
|
+
<text fill="black" font-family="sans-serif" font-size="14" text-anchor="middle" x="439.4" y="498.58">HTTP2.0</text>
|
|
57
|
+
<rect fill="none" height="125.86" stroke="black" width="244.0" x="317.4" y="504.74"/>
|
|
58
|
+
<use transform="rotate(0.0,564.4,526.89)" x="564.4" xlink:href="#simple-arrow" y="526.89"/>
|
|
59
|
+
<line stroke="black" stroke-width="1" x1="564.4" x2="314.4" y1="526.89" y2="526.89"/>
|
|
60
|
+
<rect fill="white" height="16.31" stroke="white" width="138.6" x="370.1" y="519.05"/>
|
|
61
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="439.4" y="533.05">(7) stream(Z) GET</text>
|
|
62
|
+
<use transform="rotate(180.0,314.4,565.91)" x="314.4" xlink:href="#simple-arrow" y="565.91"/>
|
|
63
|
+
<line stroke="black" stroke-width="1" x1="564.4" x2="314.4" y1="565.91" y2="565.91"/>
|
|
64
|
+
<rect fill="white" height="16.31" stroke="white" width="161.7" x="358.55" y="558.07"/>
|
|
65
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="439.4" y="572.07">(8) stream(Z) 200 OK</text>
|
|
66
|
+
<use transform="rotate(180.0,64.4,604.93)" x="64.4" xlink:href="#simple-arrow" y="604.93"/>
|
|
67
|
+
<line stroke="black" stroke-width="1" x1="314.4" x2="64.4" y1="604.93" y2="604.93"/>
|
|
68
|
+
<rect fill="white" height="16.31" stroke="white" width="161.7" x="108.55" y="597.09"/>
|
|
69
|
+
<text font-family="sans-serif" font-size="14" text-anchor="middle" x="189.4" y="611.09">(9) stream(X) 200 OK</text>
|
|
70
|
+
</g>
|
|
71
|
+
</defs>
|
|
72
|
+
<use transform="scale(0.9,0.9)" x="0" xlink:href="#whole-drawing" y="0"/>
|
|
73
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
Tests/httpbis-proxy20-fig6.svg:2: The attribute 'fill' does not allow the value 'grey', replaced with 'black'
|
|
2
|
+
Tests/httpbis-proxy20-fig6.svg:2: The attribute 'stroke' does not allow the value 'grey', replaced with 'black'
|
|
3
|
+
Tests/httpbis-proxy20-fig6.svg:2: The attribute 'fill' does not allow the value 'grey', replaced with 'black'
|
|
4
|
+
Tests/httpbis-proxy20-fig6.svg:2: The attribute 'stroke' does not allow the value 'grey', replaced with 'black'
|
|
5
|
+
ERROR: File does not conform to SVG requirements
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1
|
|
File without changes
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version='1.0' encoding='utf-8'?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100" datatype="foobar" viewBox="0 0 100.0 100.0">
|
|
3
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
4
|
+
<desc>This tries to cover all of the edge cases</desc>
|
|
5
|
+
<desc>This tries to cover all of the edge cases</desc>
|
|
6
|
+
<desc>
|
|
7
|
+
This tries to cover all of the edge cases
|
|
8
|
+
</desc>
|
|
9
|
+
</svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Tests/malformed.svg:2: The attribute 'fill' does not allow the value 'red', replaced with 'black'
|
|
2
|
+
Tests/malformed.svg:3: Malformed field '['malformed']' in style attribute found. Field removed.
|
|
3
|
+
Tests/malformed.svg:4: Style property 'foobar' removed
|
|
4
|
+
Tests/malformed.svg:5: Style property 'foobar' removed
|
|
5
|
+
Tests/malformed.svg:7: The element 'circle' is not allowed as a child of 'desc'
|
|
6
|
+
Tests/malformed.svg:9: The namespace http://ietf.org/namespaces/foobar is not permitted for svg elements.
|
|
7
|
+
Tests/malformed.svg:10: The element 'notreal' is not allowed as a child of 'svg'
|
|
8
|
+
ERROR: File does not conform to SVG requirements
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
INFO: File conforms to SVG requirements.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1
|
|
File without changes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<?xml version='1.0' encoding='utf-8'?>
|
|
2
|
+
<rfc>
|
|
3
|
+
<front>
|
|
4
|
+
<title>Example w/ SVG files</title>
|
|
5
|
+
<author fullname="Jim Schaad" initials="J." surname="Schaad">
|
|
6
|
+
<address>
|
|
7
|
+
<email>ietf@augustcellars.com</email>
|
|
8
|
+
</address>
|
|
9
|
+
</author>
|
|
10
|
+
<date/>
|
|
11
|
+
<abstract>
|
|
12
|
+
<t>
|
|
13
|
+
abstract
|
|
14
|
+
</t>
|
|
15
|
+
</abstract>
|
|
16
|
+
</front>
|
|
17
|
+
<middle>
|
|
18
|
+
<section>
|
|
19
|
+
<name>Introduction</name>
|
|
20
|
+
<t>
|
|
21
|
+
Put in some text followed by a picture.
|
|
22
|
+
</t>
|
|
23
|
+
<artwork type="svg">
|
|
24
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100" datatype="foobar" viewBox="0 0 100.0 100.0">
|
|
25
|
+
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
|
|
26
|
+
</svg>
|
|
27
|
+
</artwork>
|
|
28
|
+
<t>
|
|
29
|
+
And pull in the same picture in a different way.
|
|
30
|
+
</t>
|
|
31
|
+
<artwork type="svg">
|
|
32
|
+
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="circle.svg"/>
|
|
33
|
+
</artwork>
|
|
34
|
+
</section>
|
|
35
|
+
</middle>
|
|
36
|
+
<back/>
|
|
37
|
+
</rfc>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1
|
|
File without changes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version='1.0' encoding='utf-8'?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.0 100.0">
|
|
3
|
+
<circle cx="50" cy="50" r="40" stroke="#000000" fill="#ffffff"/>
|
|
4
|
+
<circle cx="60" cy="50" r="40" stroke="#FFFFFF" fill="#ffffff"/>
|
|
5
|
+
<circle cx="70" cy="50" r="40" stroke="black" fill="white"/>
|
|
6
|
+
<circle cx="80" cy="50" r="40" stroke="black" fill="black"/>
|
|
7
|
+
<circle cx="90" cy="50" r="40" stroke="black" fill="white"/>
|
|
8
|
+
<circle cx="100" cy="50" r="40" stroke="black" fill="white"/>
|
|
9
|
+
<circle cx="110" cy="50" r="40" stroke="black" fill="black"/>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
Tests/rgb.svg:5: The attribute 'stroke' does not allow the value 'BLACK', replaced with 'black'
|
|
2
|
+
Tests/rgb.svg:5: The attribute 'fill' does not allow the value 'WHITE', replaced with 'black'
|
|
3
|
+
Tests/rgb.svg:6: The attribute 'stroke' does not allow the value '#000', replaced with 'black'
|
|
4
|
+
Tests/rgb.svg:6: The attribute 'fill' does not allow the value '#fff', replaced with 'white'
|
|
5
|
+
Tests/rgb.svg:7: The attribute 'stroke' does not allow the value '#000', replaced with 'black'
|
|
6
|
+
Tests/rgb.svg:7: The attribute 'fill' does not allow the value '#fff', replaced with 'white'
|
|
7
|
+
Tests/rgb.svg:8: The attribute 'stroke' does not allow the value 'rgb(0, 0, 0)', replaced with 'black'
|
|
8
|
+
Tests/rgb.svg:8: The attribute 'fill' does not allow the value 'rgb(20%, 20%, 20%)', replaced with 'black'
|
|
9
|
+
ERROR: File does not conform to SVG requirements
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1
|
|
File without changes
|