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.
Files changed (335) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rake.yml +15 -0
  3. data/.github/workflows/release.yml +23 -0
  4. data/.github/workflows/svgcheck-compatibility.yml +135 -0
  5. data/.gitignore +12 -0
  6. data/.rspec +3 -0
  7. data/.rubocop.yml +13 -0
  8. data/.rubocop_todo.yml +183 -0
  9. data/CODE_OF_CONDUCT.md +132 -0
  10. data/Gemfile +14 -0
  11. data/README.adoc +1384 -0
  12. data/Rakefile +15 -0
  13. data/config/profiles/base.yml +34 -0
  14. data/config/profiles/lucid_fix.yml +37 -0
  15. data/config/profiles/metanorma.yml +212 -0
  16. data/config/profiles/no_external_css.yml +20 -0
  17. data/config/profiles/svg_1_2_rfc.yml +284 -0
  18. data/config/profiles/svg_1_2_rfc_with_rdf.yml +145 -0
  19. data/config/svgcheck_mapping.yml +180 -0
  20. data/docs/profiles.adoc +547 -0
  21. data/docs/rdf_metadata_support.adoc +212 -0
  22. data/docs/remediation.adoc +732 -0
  23. data/docs/requirements.adoc +709 -0
  24. data/examples/demo.rb +116 -0
  25. data/examples/requirements_demo.rb +240 -0
  26. data/exe/svg_conform +7 -0
  27. data/lib/svg_conform/batch_report.rb +70 -0
  28. data/lib/svg_conform/cli.rb +107 -0
  29. data/lib/svg_conform/commands/check.rb +390 -0
  30. data/lib/svg_conform/commands/profiles.rb +118 -0
  31. data/lib/svg_conform/commands/svgcheck.rb +90 -0
  32. data/lib/svg_conform/commands/svgcheck_compare.rb +92 -0
  33. data/lib/svg_conform/commands/svgcheck_compatibility.rb +43 -0
  34. data/lib/svg_conform/commands/svgcheck_generate.rb +262 -0
  35. data/lib/svg_conform/compatibility/analysis_context.rb +68 -0
  36. data/lib/svg_conform/compatibility/comparison_result.rb +147 -0
  37. data/lib/svg_conform/compatibility/compatibility_analyzer.rb +85 -0
  38. data/lib/svg_conform/compatibility/file_processor.rb +109 -0
  39. data/lib/svg_conform/compatibility/pattern_discovery.rb +319 -0
  40. data/lib/svg_conform/compatibility/report_formatter.rb +359 -0
  41. data/lib/svg_conform/compatibility/svg_analysis_engine.rb +316 -0
  42. data/lib/svg_conform/compatibility/validity_analysis.rb +252 -0
  43. data/lib/svg_conform/compatibility/xml_analysis_engine.rb +198 -0
  44. data/lib/svg_conform/compatibility_analyzer.rb +285 -0
  45. data/lib/svg_conform/conformance_report.rb +267 -0
  46. data/lib/svg_conform/constants.rb +199 -0
  47. data/lib/svg_conform/css_color.rb +262 -0
  48. data/lib/svg_conform/document.rb +203 -0
  49. data/lib/svg_conform/external_checkers/svgcheck/compatibility_engine.rb +166 -0
  50. data/lib/svg_conform/external_checkers/svgcheck/output_generator.rb +101 -0
  51. data/lib/svg_conform/external_checkers/svgcheck/parser.rb +200 -0
  52. data/lib/svg_conform/external_checkers/svgcheck/report_comparator.rb +175 -0
  53. data/lib/svg_conform/external_checkers/svgcheck/report_generator.rb +82 -0
  54. data/lib/svg_conform/external_checkers/svgcheck/validation_pipeline.rb +249 -0
  55. data/lib/svg_conform/external_checkers/svgcheck.rb +56 -0
  56. data/lib/svg_conform/external_checkers.rb +34 -0
  57. data/lib/svg_conform/fixer.rb +56 -0
  58. data/lib/svg_conform/profile.rb +164 -0
  59. data/lib/svg_conform/profiles.rb +60 -0
  60. data/lib/svg_conform/remediation_engine.rb +92 -0
  61. data/lib/svg_conform/remediation_result.rb +36 -0
  62. data/lib/svg_conform/remediation_runner.rb +225 -0
  63. data/lib/svg_conform/remediations/base_remediation.rb +165 -0
  64. data/lib/svg_conform/remediations/color_remediation.rb +226 -0
  65. data/lib/svg_conform/remediations/font_embedding_remediation.rb +145 -0
  66. data/lib/svg_conform/remediations/font_remediation.rb +122 -0
  67. data/lib/svg_conform/remediations/image_embedding_remediation.rb +154 -0
  68. data/lib/svg_conform/remediations/invalid_id_references_remediation.rb +129 -0
  69. data/lib/svg_conform/remediations/namespace_attribute_remediation.rb +244 -0
  70. data/lib/svg_conform/remediations/namespace_remediation.rb +151 -0
  71. data/lib/svg_conform/remediations/no_external_css_remediation.rb +192 -0
  72. data/lib/svg_conform/remediations/style_promotion_remediation.rb +93 -0
  73. data/lib/svg_conform/remediations/viewbox_remediation.rb +127 -0
  74. data/lib/svg_conform/remediations.rb +40 -0
  75. data/lib/svg_conform/report_comparator.rb +772 -0
  76. data/lib/svg_conform/requirements/allowed_elements_requirement.rb +367 -0
  77. data/lib/svg_conform/requirements/base_requirement.rb +98 -0
  78. data/lib/svg_conform/requirements/color_restrictions_requirement.rb +126 -0
  79. data/lib/svg_conform/requirements/element_requirement_config.rb +75 -0
  80. data/lib/svg_conform/requirements/font_family_requirement.rb +133 -0
  81. data/lib/svg_conform/requirements/forbidden_content_requirement.rb +60 -0
  82. data/lib/svg_conform/requirements/id_reference_requirement.rb +133 -0
  83. data/lib/svg_conform/requirements/invalid_id_references_requirement.rb +132 -0
  84. data/lib/svg_conform/requirements/link_validation_requirement.rb +55 -0
  85. data/lib/svg_conform/requirements/namespace_attributes_requirement.rb +211 -0
  86. data/lib/svg_conform/requirements/namespace_requirement.rb +294 -0
  87. data/lib/svg_conform/requirements/no_external_css_requirement.rb +132 -0
  88. data/lib/svg_conform/requirements/no_external_fonts_requirement.rb +121 -0
  89. data/lib/svg_conform/requirements/no_external_images_requirement.rb +91 -0
  90. data/lib/svg_conform/requirements/style_promotion_requirement.rb +72 -0
  91. data/lib/svg_conform/requirements/style_requirement.rb +226 -0
  92. data/lib/svg_conform/requirements/viewbox_required_requirement.rb +96 -0
  93. data/lib/svg_conform/requirements.rb +49 -0
  94. data/lib/svg_conform/semantic_comparator.rb +829 -0
  95. data/lib/svg_conform/validation_context.rb +408 -0
  96. data/lib/svg_conform/validation_result.rb +146 -0
  97. data/lib/svg_conform/validator.rb +91 -0
  98. data/lib/svg_conform/version.rb +5 -0
  99. data/lib/svg_conform.rb +68 -0
  100. data/lib/tasks/fixtures.rake +321 -0
  101. data/lib/tasks/svgcheck.rake +111 -0
  102. data/reference-docs/SVG-1.2-RFC.rnc.txt +1676 -0
  103. data/reference-docs/Scalable Vector Graphics (SVG) 1.1 (Second Edition).html +40764 -0
  104. data/reference-docs/Scalable Vector Graphics (SVG) Tiny 1.2 Specification.html +44591 -0
  105. data/reference-docs/rfc7996.txt +2971 -0
  106. data/sig/svg_conform.rbs +4 -0
  107. data/spec/fixtures/allowed_elements/inputs/basic_violations.svg +21 -0
  108. data/spec/fixtures/allowed_elements/repair/basic_violations.svg +18 -0
  109. data/spec/fixtures/color_restrictions/inputs/basic_violations.svg +23 -0
  110. data/spec/fixtures/color_restrictions/repair/basic_violations.svg +23 -0
  111. data/spec/fixtures/comprehensive/inputs/multiple_violations.svg +21 -0
  112. data/spec/fixtures/comprehensive/repair/multiple_violations.svg +16 -0
  113. data/spec/fixtures/font_family/inputs/basic_violations.svg +17 -0
  114. data/spec/fixtures/font_family/repair/basic_violations.svg +17 -0
  115. data/spec/fixtures/forbidden_content/inputs/basic_violations.svg +27 -0
  116. data/spec/fixtures/forbidden_content/repair/basic_violations.svg +19 -0
  117. data/spec/fixtures/id_reference/inputs/basic_violations.svg +17 -0
  118. data/spec/fixtures/id_reference/repair/basic_violations.svg +15 -0
  119. data/spec/fixtures/link_validation/inputs/basic_violations.svg +20 -0
  120. data/spec/fixtures/link_validation/repair/basic_violations.svg +16 -0
  121. data/spec/fixtures/lucid/inputs/simple.svg +67 -0
  122. data/spec/fixtures/lucid/repair/simple.svg +63 -0
  123. data/spec/fixtures/namespace/inputs/basic_violations.svg +20 -0
  124. data/spec/fixtures/namespace/repair/basic_violations.svg +17 -0
  125. data/spec/fixtures/namespace_attributes/inputs/basic_violations.svg +16 -0
  126. data/spec/fixtures/namespace_attributes/repair/basic_violations.svg +15 -0
  127. data/spec/fixtures/no_external_css/inputs/basic_violations.svg +20 -0
  128. data/spec/fixtures/no_external_css/repair/basic_violations.svg +18 -0
  129. data/spec/fixtures/style/inputs/basic_violations.svg +22 -0
  130. data/spec/fixtures/style/repair/basic_violations.svg +22 -0
  131. data/spec/fixtures/style_promotion/inputs/basic_test.svg +15 -0
  132. data/spec/fixtures/style_promotion/repair/basic_test.svg +15 -0
  133. data/spec/fixtures/svg_1_2_rfc/inputs/allowed_elements_violations.svg +18 -0
  134. data/spec/fixtures/svg_1_2_rfc/inputs/color_restrictions_violations.svg +23 -0
  135. data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.code +1 -0
  136. data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.err +0 -0
  137. data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.out +23 -0
  138. data/spec/fixtures/svgcheck/check/IETF-test.svg.code +1 -0
  139. data/spec/fixtures/svgcheck/check/IETF-test.svg.err +0 -0
  140. data/spec/fixtures/svgcheck/check/IETF-test.svg.out +20 -0
  141. data/spec/fixtures/svgcheck/check/circle.svg.code +1 -0
  142. data/spec/fixtures/svgcheck/check/circle.svg.err +0 -0
  143. data/spec/fixtures/svgcheck/check/circle.svg.out +2 -0
  144. data/spec/fixtures/svgcheck/check/colors.svg.code +1 -0
  145. data/spec/fixtures/svgcheck/check/colors.svg.err +0 -0
  146. data/spec/fixtures/svgcheck/check/colors.svg.out +13 -0
  147. data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.code +1 -0
  148. data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.err +0 -0
  149. data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.out +76 -0
  150. data/spec/fixtures/svgcheck/check/example-dot.svg.code +1 -0
  151. data/spec/fixtures/svgcheck/check/example-dot.svg.err +0 -0
  152. data/spec/fixtures/svgcheck/check/example-dot.svg.out +11 -0
  153. data/spec/fixtures/svgcheck/check/full-tiny.svg.code +1 -0
  154. data/spec/fixtures/svgcheck/check/full-tiny.svg.err +0 -0
  155. data/spec/fixtures/svgcheck/check/full-tiny.svg.out +5835 -0
  156. data/spec/fixtures/svgcheck/check/good.svg.code +1 -0
  157. data/spec/fixtures/svgcheck/check/good.svg.err +0 -0
  158. data/spec/fixtures/svgcheck/check/good.svg.out +1 -0
  159. data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.code +1 -0
  160. data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.err +0 -0
  161. data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.out +5 -0
  162. data/spec/fixtures/svgcheck/check/malformed.svg.code +1 -0
  163. data/spec/fixtures/svgcheck/check/malformed.svg.err +0 -0
  164. data/spec/fixtures/svgcheck/check/malformed.svg.out +8 -0
  165. data/spec/fixtures/svgcheck/check/rfc-svg.svg.code +1 -0
  166. data/spec/fixtures/svgcheck/check/rfc-svg.svg.err +0 -0
  167. data/spec/fixtures/svgcheck/check/rfc-svg.svg.out +1 -0
  168. data/spec/fixtures/svgcheck/check/rfc.xml.code +1 -0
  169. data/spec/fixtures/svgcheck/check/rfc.xml.err +0 -0
  170. data/spec/fixtures/svgcheck/check/rfc.xml.out +2 -0
  171. data/spec/fixtures/svgcheck/check/rgb.svg.code +1 -0
  172. data/spec/fixtures/svgcheck/check/rgb.svg.err +0 -0
  173. data/spec/fixtures/svgcheck/check/rgb.svg.out +9 -0
  174. data/spec/fixtures/svgcheck/check/svg-wordle.svg.code +1 -0
  175. data/spec/fixtures/svgcheck/check/svg-wordle.svg.err +0 -0
  176. data/spec/fixtures/svgcheck/check/svg-wordle.svg.out +508 -0
  177. data/spec/fixtures/svgcheck/check/threshold.svg.code +1 -0
  178. data/spec/fixtures/svgcheck/check/threshold.svg.err +0 -0
  179. data/spec/fixtures/svgcheck/check/threshold.svg.out +20 -0
  180. data/spec/fixtures/svgcheck/check/utf8.svg.code +1 -0
  181. data/spec/fixtures/svgcheck/check/utf8.svg.err +0 -0
  182. data/spec/fixtures/svgcheck/check/utf8.svg.out +162 -0
  183. data/spec/fixtures/svgcheck/check/viewBox-both.svg.code +1 -0
  184. data/spec/fixtures/svgcheck/check/viewBox-both.svg.err +0 -0
  185. data/spec/fixtures/svgcheck/check/viewBox-both.svg.out +4 -0
  186. data/spec/fixtures/svgcheck/check/viewBox-height.svg.code +1 -0
  187. data/spec/fixtures/svgcheck/check/viewBox-height.svg.err +0 -0
  188. data/spec/fixtures/svgcheck/check/viewBox-height.svg.out +3 -0
  189. data/spec/fixtures/svgcheck/check/viewBox-none.svg.code +1 -0
  190. data/spec/fixtures/svgcheck/check/viewBox-none.svg.err +0 -0
  191. data/spec/fixtures/svgcheck/check/viewBox-none.svg.out +3 -0
  192. data/spec/fixtures/svgcheck/check/viewBox-width.svg.code +1 -0
  193. data/spec/fixtures/svgcheck/check/viewBox-width.svg.err +0 -0
  194. data/spec/fixtures/svgcheck/check/viewBox-width.svg.out +3 -0
  195. data/spec/fixtures/svgcheck/inputs/DrawBerry-sample-2.svg +28 -0
  196. data/spec/fixtures/svgcheck/inputs/IETF-test.svg +28 -0
  197. data/spec/fixtures/svgcheck/inputs/circle.svg +3 -0
  198. data/spec/fixtures/svgcheck/inputs/colors.svg +18 -0
  199. data/spec/fixtures/svgcheck/inputs/dia-sample-svg.svg +47 -0
  200. data/spec/fixtures/svgcheck/inputs/example-dot.svg +75 -0
  201. data/spec/fixtures/svgcheck/inputs/full-tiny.svg +16194 -0
  202. data/spec/fixtures/svgcheck/inputs/good.svg +19 -0
  203. data/spec/fixtures/svgcheck/inputs/httpbis-proxy20-fig6.svg +2 -0
  204. data/spec/fixtures/svgcheck/inputs/malformed.svg +11 -0
  205. data/spec/fixtures/svgcheck/inputs/rfc-svg.svg +1028 -0
  206. data/spec/fixtures/svgcheck/inputs/rfc.xml +37 -0
  207. data/spec/fixtures/svgcheck/inputs/rgb.svg +9 -0
  208. data/spec/fixtures/svgcheck/inputs/svg-wordle.svg +330 -0
  209. data/spec/fixtures/svgcheck/inputs/threshold.svg +26 -0
  210. data/spec/fixtures/svgcheck/inputs/utf8.svg +448 -0
  211. data/spec/fixtures/svgcheck/inputs/viewBox-both.svg +3 -0
  212. data/spec/fixtures/svgcheck/inputs/viewBox-height.svg +3 -0
  213. data/spec/fixtures/svgcheck/inputs/viewBox-none.svg +3 -0
  214. data/spec/fixtures/svgcheck/inputs/viewBox-width.svg +3 -0
  215. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.code +1 -0
  216. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.err +0 -0
  217. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.file +0 -0
  218. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.out +23 -0
  219. data/spec/fixtures/svgcheck/repair/IETF-test.svg.code +1 -0
  220. data/spec/fixtures/svgcheck/repair/IETF-test.svg.err +0 -0
  221. data/spec/fixtures/svgcheck/repair/IETF-test.svg.file +29 -0
  222. data/spec/fixtures/svgcheck/repair/IETF-test.svg.out +20 -0
  223. data/spec/fixtures/svgcheck/repair/circle.svg.code +1 -0
  224. data/spec/fixtures/svgcheck/repair/circle.svg.err +0 -0
  225. data/spec/fixtures/svgcheck/repair/circle.svg.file +4 -0
  226. data/spec/fixtures/svgcheck/repair/circle.svg.out +2 -0
  227. data/spec/fixtures/svgcheck/repair/colors.svg.code +1 -0
  228. data/spec/fixtures/svgcheck/repair/colors.svg.err +0 -0
  229. data/spec/fixtures/svgcheck/repair/colors.svg.file +19 -0
  230. data/spec/fixtures/svgcheck/repair/colors.svg.out +13 -0
  231. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.code +1 -0
  232. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.err +0 -0
  233. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.file +47 -0
  234. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.out +76 -0
  235. data/spec/fixtures/svgcheck/repair/example-dot.svg.code +1 -0
  236. data/spec/fixtures/svgcheck/repair/example-dot.svg.err +0 -0
  237. data/spec/fixtures/svgcheck/repair/example-dot.svg.file +69 -0
  238. data/spec/fixtures/svgcheck/repair/example-dot.svg.out +11 -0
  239. data/spec/fixtures/svgcheck/repair/good.svg.code +1 -0
  240. data/spec/fixtures/svgcheck/repair/good.svg.err +0 -0
  241. data/spec/fixtures/svgcheck/repair/good.svg.file +0 -0
  242. data/spec/fixtures/svgcheck/repair/good.svg.out +1 -0
  243. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.code +1 -0
  244. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.err +0 -0
  245. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.file +73 -0
  246. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.out +5 -0
  247. data/spec/fixtures/svgcheck/repair/malformed.svg.code +1 -0
  248. data/spec/fixtures/svgcheck/repair/malformed.svg.err +0 -0
  249. data/spec/fixtures/svgcheck/repair/malformed.svg.file +9 -0
  250. data/spec/fixtures/svgcheck/repair/malformed.svg.out +8 -0
  251. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.code +1 -0
  252. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.err +0 -0
  253. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.file +0 -0
  254. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.out +1 -0
  255. data/spec/fixtures/svgcheck/repair/rfc.xml.code +1 -0
  256. data/spec/fixtures/svgcheck/repair/rfc.xml.err +0 -0
  257. data/spec/fixtures/svgcheck/repair/rfc.xml.file +37 -0
  258. data/spec/fixtures/svgcheck/repair/rfc.xml.out +2 -0
  259. data/spec/fixtures/svgcheck/repair/rgb.svg.code +1 -0
  260. data/spec/fixtures/svgcheck/repair/rgb.svg.err +0 -0
  261. data/spec/fixtures/svgcheck/repair/rgb.svg.file +10 -0
  262. data/spec/fixtures/svgcheck/repair/rgb.svg.out +9 -0
  263. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.code +1 -0
  264. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.err +0 -0
  265. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.file +112 -0
  266. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.out +508 -0
  267. data/spec/fixtures/svgcheck/repair/threshold.svg.code +1 -0
  268. data/spec/fixtures/svgcheck/repair/threshold.svg.err +0 -0
  269. data/spec/fixtures/svgcheck/repair/threshold.svg.file +27 -0
  270. data/spec/fixtures/svgcheck/repair/threshold.svg.out +20 -0
  271. data/spec/fixtures/svgcheck/repair/utf8.svg.code +1 -0
  272. data/spec/fixtures/svgcheck/repair/utf8.svg.err +0 -0
  273. data/spec/fixtures/svgcheck/repair/utf8.svg.file +381 -0
  274. data/spec/fixtures/svgcheck/repair/utf8.svg.out +162 -0
  275. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.code +1 -0
  276. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.err +0 -0
  277. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.file +4 -0
  278. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.out +4 -0
  279. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.code +1 -0
  280. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.err +0 -0
  281. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.file +4 -0
  282. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.out +3 -0
  283. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.code +1 -0
  284. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.err +0 -0
  285. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.file +4 -0
  286. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.out +3 -0
  287. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.code +1 -0
  288. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.err +0 -0
  289. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.file +4 -0
  290. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.out +3 -0
  291. data/spec/fixtures/viewbox_required/inputs/missing_viewbox.svg +10 -0
  292. data/spec/fixtures/viewbox_required/repair/missing_viewbox.svg +10 -0
  293. data/spec/spec_helper.rb +16 -0
  294. data/spec/svg_conform/batch_report_spec.rb +99 -0
  295. data/spec/svg_conform/commands/check_command_spec.rb +90 -0
  296. data/spec/svg_conform/commands/profiles_command_spec.rb +20 -0
  297. data/spec/svg_conform/commands/svgcheck_compare_command_spec.rb +13 -0
  298. data/spec/svg_conform/commands/svgcheck_compatibility_command_spec.rb +13 -0
  299. data/spec/svg_conform/commands/svgcheck_generate_command_spec.rb +14 -0
  300. data/spec/svg_conform/profiles/base_profile_spec.rb +42 -0
  301. data/spec/svg_conform/profiles/lucid_fix_profile_spec.rb +46 -0
  302. data/spec/svg_conform/profiles/lucid_profile_spec.rb +84 -0
  303. data/spec/svg_conform/profiles/metanorma_profile_spec.rb +62 -0
  304. data/spec/svg_conform/profiles/no_external_css_profile_spec.rb +66 -0
  305. data/spec/svg_conform/profiles/svg_1_2_rfc_profile_spec.rb +200 -0
  306. data/spec/svg_conform/profiles/svg_1_2_rfc_with_rdf_profile_spec.rb +81 -0
  307. data/spec/svg_conform/remediations/color_remediation_spec.rb +95 -0
  308. data/spec/svg_conform/remediations/font_embedding_remediation_spec.rb +20 -0
  309. data/spec/svg_conform/remediations/font_remediation_spec.rb +95 -0
  310. data/spec/svg_conform/remediations/image_embedding_remediation_spec.rb +20 -0
  311. data/spec/svg_conform/remediations/invalid_id_references_remediation_spec.rb +97 -0
  312. data/spec/svg_conform/remediations/namespace_attribute_remediation_spec.rb +97 -0
  313. data/spec/svg_conform/remediations/namespace_remediation_spec.rb +95 -0
  314. data/spec/svg_conform/remediations/no_external_css_remediation_spec.rb +97 -0
  315. data/spec/svg_conform/remediations/style_promotion_remediation_spec.rb +97 -0
  316. data/spec/svg_conform/remediations/viewbox_remediation_spec.rb +95 -0
  317. data/spec/svg_conform/requirements/allowed_elements_requirement_spec.rb +118 -0
  318. data/spec/svg_conform/requirements/color_restrictions_requirement_spec.rb +168 -0
  319. data/spec/svg_conform/requirements/font_family_requirement_spec.rb +188 -0
  320. data/spec/svg_conform/requirements/forbidden_content_requirement_spec.rb +195 -0
  321. data/spec/svg_conform/requirements/id_reference_requirement_spec.rb +78 -0
  322. data/spec/svg_conform/requirements/invalid_id_references_requirement_spec.rb +78 -0
  323. data/spec/svg_conform/requirements/link_validation_requirement_spec.rb +78 -0
  324. data/spec/svg_conform/requirements/namespace_attributes_requirement_spec.rb +86 -0
  325. data/spec/svg_conform/requirements/namespace_requirement_spec.rb +184 -0
  326. data/spec/svg_conform/requirements/no_external_css_requirement_spec.rb +78 -0
  327. data/spec/svg_conform/requirements/no_external_fonts_requirement_spec.rb +20 -0
  328. data/spec/svg_conform/requirements/no_external_images_requirement_spec.rb +20 -0
  329. data/spec/svg_conform/requirements/style_promotion_requirement_spec.rb +78 -0
  330. data/spec/svg_conform/requirements/style_requirement_spec.rb +76 -0
  331. data/spec/svg_conform/requirements/viewbox_required_requirement_spec.rb +165 -0
  332. data/spec/svg_conform_spec.rb +32 -0
  333. data/spec/svgcheck_compatibility_spec.rb +355 -0
  334. data/svg_conform.gemspec +35 -0
  335. metadata +436 -0
@@ -0,0 +1,20 @@
1
+ Tests/threshold.svg:2: The attribute 'fill' does not allow the value 'red', replaced with 'black'
2
+ Tests/threshold.svg:3: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
3
+ Tests/threshold.svg:4: The attribute 'fill' does not allow the value 'rgb(126,126,126)', replaced with 'black'
4
+ Tests/threshold.svg:5: The attribute 'fill' does not allow the value 'rgb(128,128,128)', replaced with 'black'
5
+ Tests/threshold.svg:6: The attribute 'fill' does not allow the value 'rgb(128,128,182)', replaced with 'black'
6
+ Tests/threshold.svg:7: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
7
+ Tests/threshold.svg:8: The attribute 'fill' does not allow the value 'rgb(400,255,255)', replaced with 'white'
8
+ Tests/threshold.svg:9: The attribute 'fill' does not allow the value '#fff', replaced with 'white'
9
+ Tests/threshold.svg:10: The attribute 'fill' does not allow the value '#aaa', replaced with 'black'
10
+ Tests/threshold.svg:11: The attribute 'fill' does not allow the value '#000', replaced with 'black'
11
+ Tests/threshold.svg:14: The attribute 'fill' does not allow the value '#0a0a0a', replaced with 'black'
12
+ Tests/threshold.svg:15: The attribute 'fill' does not allow the value 'rgb(0%,0%,0%)', replaced with 'black'
13
+ Tests/threshold.svg:16: The attribute 'fill' does not allow the value 'rgb(49%,50%,50%)', replaced with 'black'
14
+ Tests/threshold.svg:17: The attribute 'fill' does not allow the value 'rgb(51%,50%,50%)', replaced with 'black'
15
+ Tests/threshold.svg:18: The attribute 'fill' does not allow the value 'rgb(75%,75%,75%)', replaced with 'black'
16
+ Tests/threshold.svg:19: The attribute 'fill' does not allow the value 'rgb(100%,255,255)', replaced with 'white'
17
+ Tests/threshold.svg:21: The attribute 'fill' does not allow the value 'grey', replaced with 'black'
18
+ Tests/threshold.svg:22: The attribute 'fill' does not allow the value 'gray', replaced with 'black'
19
+ Tests/threshold.svg:25: The attribute 'fill' does not allow the value 'unknown', replaced with 'black'
20
+ ERROR: File does not conform to SVG requirements
File without changes
@@ -0,0 +1,162 @@
1
+ Tests/utf8.svg:5: The element 'clipPath' is not allowed as a child of 'defs'
2
+ Tests/utf8.svg:8: The element 'clipPath' is not allowed as a child of 'defs'
3
+ Tests/utf8.svg:13: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
4
+ Tests/utf8.svg:13: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
5
+ Tests/utf8.svg:14: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
6
+ Tests/utf8.svg:14: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
7
+ Tests/utf8.svg:14: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
8
+ Tests/utf8.svg:14: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
9
+ Tests/utf8.svg:14: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
10
+ Tests/utf8.svg:15: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
11
+ Tests/utf8.svg:15: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
12
+ Tests/utf8.svg:15: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
13
+ Tests/utf8.svg:15: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
14
+ Tests/utf8.svg:15: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
15
+ Tests/utf8.svg:20: The element 'font' is not allowed as a child of 'defs'
16
+ Tests/utf8.svg:72: The element 'font' is not allowed as a child of 'defs'
17
+ Tests/utf8.svg:79: The element 'font' is not allowed as a child of 'defs'
18
+ Tests/utf8.svg:86: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
19
+ Tests/utf8.svg:86: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
20
+ Tests/utf8.svg:122: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
21
+ Tests/utf8.svg:126: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
22
+ Tests/utf8.svg:128: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
23
+ Tests/utf8.svg:131: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
24
+ Tests/utf8.svg:134: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
25
+ Tests/utf8.svg:134: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
26
+ Tests/utf8.svg:142: The element 'g' does not allow the attribute 'clip-path', attribute to be removed.
27
+ Tests/utf8.svg:143: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
28
+ Tests/utf8.svg:150: The element 'g' does not allow the attribute 'clip-path', attribute to be removed.
29
+ Tests/utf8.svg:151: Element 'g' does not allow attributes with namespace 'http://xml.openoffice.org/svg/export'
30
+ Tests/utf8.svg:155: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
31
+ Tests/utf8.svg:161: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
32
+ Tests/utf8.svg:167: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
33
+ Tests/utf8.svg:173: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
34
+ Tests/utf8.svg:179: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
35
+ Tests/utf8.svg:185: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
36
+ Tests/utf8.svg:191: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
37
+ Tests/utf8.svg:197: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
38
+ Tests/utf8.svg:203: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
39
+ Tests/utf8.svg:209: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
40
+ Tests/utf8.svg:215: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
41
+ Tests/utf8.svg:221: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
42
+ Tests/utf8.svg:227: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
43
+ Tests/utf8.svg:233: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
44
+ Tests/utf8.svg:233: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
45
+ Tests/utf8.svg:239: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
46
+ Tests/utf8.svg:240: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
47
+ Tests/utf8.svg:241: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
48
+ Tests/utf8.svg:242: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
49
+ Tests/utf8.svg:243: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
50
+ Tests/utf8.svg:244: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
51
+ Tests/utf8.svg:245: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
52
+ Tests/utf8.svg:246: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
53
+ Tests/utf8.svg:247: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
54
+ Tests/utf8.svg:248: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
55
+ Tests/utf8.svg:249: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
56
+ Tests/utf8.svg:250: The attribute 'stroke' does not allow the value 'rgb(128,128,128)', replaced with 'black'
57
+ Tests/utf8.svg:251: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
58
+ Tests/utf8.svg:252: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
59
+ Tests/utf8.svg:253: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
60
+ Tests/utf8.svg:254: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
61
+ Tests/utf8.svg:255: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
62
+ Tests/utf8.svg:256: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
63
+ Tests/utf8.svg:257: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
64
+ Tests/utf8.svg:258: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
65
+ Tests/utf8.svg:259: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
66
+ Tests/utf8.svg:260: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
67
+ Tests/utf8.svg:261: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
68
+ Tests/utf8.svg:262: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
69
+ Tests/utf8.svg:268: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
70
+ Tests/utf8.svg:268: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
71
+ Tests/utf8.svg:274: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
72
+ Tests/utf8.svg:275: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
73
+ Tests/utf8.svg:276: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
74
+ Tests/utf8.svg:276: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
75
+ Tests/utf8.svg:276: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
76
+ Tests/utf8.svg:282: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
77
+ Tests/utf8.svg:283: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
78
+ Tests/utf8.svg:284: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
79
+ Tests/utf8.svg:284: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
80
+ Tests/utf8.svg:290: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
81
+ Tests/utf8.svg:291: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
82
+ Tests/utf8.svg:292: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
83
+ Tests/utf8.svg:292: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
84
+ Tests/utf8.svg:298: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
85
+ Tests/utf8.svg:299: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
86
+ Tests/utf8.svg:300: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
87
+ Tests/utf8.svg:300: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
88
+ Tests/utf8.svg:306: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
89
+ Tests/utf8.svg:307: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
90
+ Tests/utf8.svg:308: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
91
+ Tests/utf8.svg:308: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
92
+ Tests/utf8.svg:314: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
93
+ Tests/utf8.svg:315: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
94
+ Tests/utf8.svg:316: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
95
+ Tests/utf8.svg:316: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
96
+ Tests/utf8.svg:322: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
97
+ Tests/utf8.svg:323: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
98
+ Tests/utf8.svg:324: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
99
+ Tests/utf8.svg:324: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
100
+ Tests/utf8.svg:330: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
101
+ Tests/utf8.svg:331: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
102
+ Tests/utf8.svg:332: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
103
+ Tests/utf8.svg:332: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
104
+ Tests/utf8.svg:338: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
105
+ Tests/utf8.svg:339: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
106
+ Tests/utf8.svg:340: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
107
+ Tests/utf8.svg:340: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
108
+ Tests/utf8.svg:340: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
109
+ Tests/utf8.svg:346: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
110
+ Tests/utf8.svg:347: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
111
+ Tests/utf8.svg:348: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
112
+ Tests/utf8.svg:348: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
113
+ Tests/utf8.svg:348: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
114
+ Tests/utf8.svg:354: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
115
+ Tests/utf8.svg:355: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
116
+ Tests/utf8.svg:356: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
117
+ Tests/utf8.svg:356: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
118
+ Tests/utf8.svg:356: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
119
+ Tests/utf8.svg:362: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
120
+ Tests/utf8.svg:363: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
121
+ Tests/utf8.svg:364: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
122
+ Tests/utf8.svg:364: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
123
+ Tests/utf8.svg:364: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
124
+ Tests/utf8.svg:370: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
125
+ Tests/utf8.svg:376: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
126
+ Tests/utf8.svg:382: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
127
+ Tests/utf8.svg:388: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
128
+ Tests/utf8.svg:394: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
129
+ Tests/utf8.svg:394: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
130
+ Tests/utf8.svg:394: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
131
+ Tests/utf8.svg:400: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
132
+ Tests/utf8.svg:400: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
133
+ Tests/utf8.svg:400: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
134
+ Tests/utf8.svg:400: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
135
+ Tests/utf8.svg:406: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
136
+ Tests/utf8.svg:406: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
137
+ Tests/utf8.svg:406: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
138
+ Tests/utf8.svg:406: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
139
+ Tests/utf8.svg:412: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
140
+ Tests/utf8.svg:412: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
141
+ Tests/utf8.svg:412: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
142
+ Tests/utf8.svg:412: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
143
+ Tests/utf8.svg:418: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
144
+ Tests/utf8.svg:418: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
145
+ Tests/utf8.svg:418: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
146
+ Tests/utf8.svg:418: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
147
+ Tests/utf8.svg:424: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
148
+ Tests/utf8.svg:425: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
149
+ Tests/utf8.svg:426: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
150
+ Tests/utf8.svg:426: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
151
+ Tests/utf8.svg:432: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
152
+ Tests/utf8.svg:433: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
153
+ Tests/utf8.svg:433: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
154
+ Tests/utf8.svg:433: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
155
+ Tests/utf8.svg:433: The attribute 'fill' does not allow the value 'rgb(255,255,255)', replaced with 'white'
156
+ Tests/utf8.svg:438: The attribute 'stroke' does not allow the value 'no—ne', replaced with 'black'
157
+ Tests/utf8.svg:439: The attribute 'stroke' does not allow the value 'rgb(0,0,0)', replaced with 'black'
158
+ Tests/utf8.svg:440: The attribute 'font-family' does not allow the value 'Arial, sans-serif', replaced with 'sans-serif'
159
+ Tests/utf8.svg:440: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
160
+ Tests/utf8.svg:440: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
161
+ Tests/utf8.svg:440: The attribute 'fill' does not allow the value 'rgb(0,0,0)', replaced with 'black'
162
+ ERROR: File does not conform to SVG requirements
File without changes
@@ -0,0 +1,4 @@
1
+ Tests/viewBox-both.svg:1: The attribute viewBox is required on the root svg element
2
+ Tests/viewBox-both.svg:1: Trying to put in the attribute with value '0 0 100.0 100.0'
3
+ Tests/viewBox-both.svg:2: The attribute 'fill' does not allow the value 'red', replaced with 'black'
4
+ ERROR: File does not conform to SVG requirements
@@ -0,0 +1,3 @@
1
+ Tests/viewBox-height.svg:1: The attribute viewBox is required on the root svg element
2
+ Tests/viewBox-height.svg:2: The attribute 'fill' does not allow the value 'red', replaced with 'black'
3
+ ERROR: File does not conform to SVG requirements
File without changes
@@ -0,0 +1,3 @@
1
+ Tests/viewBox-none.svg:1: The attribute viewBox is required on the root svg element
2
+ Tests/viewBox-none.svg:2: The attribute 'fill' does not allow the value 'red', replaced with 'black'
3
+ ERROR: File does not conform to SVG requirements
@@ -0,0 +1,3 @@
1
+ Tests/viewBox-width.svg:1: The attribute viewBox is required on the root svg element
2
+ Tests/viewBox-width.svg:2: The attribute 'fill' does not allow the value 'red', replaced with 'black'
3
+ ERROR: File does not conform to SVG requirements
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with DrawBerry (http://raphaelbost.free.fr/) -->
3
+ <svg
4
+ width = "595.000000"
5
+ height = "841.000000" viewBox="0 0 595.0 841.0"
6
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
7
+ xmlns:cc="http://web.resource.org/cc/"
8
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
9
+ xmlns:svg="http://www.w3.org/2000/svg"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
12
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13
+ >
14
+ <g inkscape:label="Background" inkscape:groupmode="layer" id="Background">
15
+ <path style="fill:none;stroke:#000000;stroke-width:1.000000px;stroke-opacity:1.000000;stroke-linecap:butt;stroke-linejoin:miter;"
16
+ d="M 74.000000,73.000000 L 215.000000,72.000000 " />
17
+ <path style="fill:none;stroke:#000000;stroke-width:1.000000px;stroke-opacity:1.000000;stroke-linecap:butt;stroke-linejoin:miter;"
18
+ d="M 267.493164,156.498215 C 302.835632,175.829163 302.835632,207.170837 267.493164,226.501785 C 232.150711,245.832733 174.849289,245.832733 139.506836,226.501785 C 104.164383,207.170837 104.164383,175.829163 139.506836,156.498215 C 174.849289,137.167267 232.150711,137.167267 267.493164,156.498215 z" />
19
+ <path style="fill:none;stroke:none;"
20
+ d="M 238.000000,100.000000 L 238.000000,100.000000 L 238.000000,100.000000 L 238.000000,100.000000 L 238.000000,100.000000 z" />
21
+ <path style="fill:none;stroke:none;"
22
+ d="M nan,nan C nan,nan nan,nan nan,nan C nan,nan nan,nan nan,nan C nan,nan nan,nan nan,nan C nan,nan nan,nan nan,nan C nan,nan nan,nan nan,nan C nan,nan nan,nan nan,nan C nan,nan nan,nan nan,nan C nan,nan nan,nan nan,nan zM nan,nan " />
23
+ <path style="fill:none;stroke:none;"
24
+ d="M 96.000000,298.000000 L 96.000000,298.000000 L 96.000000,298.000000 L 96.000000,298.000000 L 96.000000,298.000000 z" />
25
+ <path style="fill:none;stroke:none;"
26
+ d="M 65.000000,295.000000 L 211.000000,295.000000 L 211.000000,368.000000 L 65.000000,368.000000 L 65.000000,295.000000 z" />
27
+ </g>
28
+ </svg>
@@ -0,0 +1,28 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" preserveAspectRatio="xMidYMid" version="1.1" viewBox="0 0 28000 21000">
2
+ <g class="Drawing" id="Straight_Connector_42">
3
+ <g>
4
+ <g style="stroke:rgb(0,0,0);stroke-width:88;fill:none">
5
+ <path d="M 4264,13886 L 4264,17273" style="fill:none" />
6
+ </g></g></g>
7
+ <g class="Drawing" id="Straight_Connector_33">
8
+ <g>
9
+ <g style="stroke:rgb(0,0,0);stroke-width:88;fill:none">
10
+ <path d="M 20355,10711 L 20351,13886" style="fill:none" />
11
+ </g></g></g>
12
+ <g class="Drawing">
13
+ <g>
14
+ <g style="stroke:none;fill:none">
15
+ <rect height="3490" width="25184" x="1512" y="340" />
16
+ </g>
17
+ <g style="font-family:Arial embedded;font-size:1552px;font-weight:400">
18
+ <g style="stroke:none;fill:rgb(0,0,0)">
19
+ <text>
20
+ <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">
21
+ Updated Scenario Diagram
22
+ </tspan>
23
+ </text>
24
+ </g>
25
+ </g>
26
+ </g>
27
+ </g>
28
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg height="100" width="100" datatype="foobar" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.0 100.0">
2
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red"/>
3
+ </svg>
@@ -0,0 +1,18 @@
1
+ <svg height="100" width="100" datatype="foobar" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.0 100.0">
2
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red"/>
3
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(0,0,0)"/>
4
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(255,255,255)"/>
5
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(128,128,182)"/>
6
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#fff"/>
7
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#aaa"/>
8
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#000"/>
9
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#ffffff"/>
10
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#000000"/>
11
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#0a0a0a"/>
12
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="grey"/>
13
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="gray"/>
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="white"/>
16
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="unknown"/>
17
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(100%,100%,100%)"/>
18
+ </svg>
@@ -0,0 +1,47 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="14cm" height="16cm" viewBox="4 7 273 316" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <text font-size="12.7998" style="fill: #00FF00;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="100" y="320">
4
+ <tspan x="100" y="320"></tspan>
5
+ </text>
6
+ <g>
7
+ <ellipse style="fill: #ffffff" cx="89.0883" cy="35.766" rx="82" ry="27"/>
8
+ <ellipse style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" cx="89.0883" cy="35.766" rx="82" ry="27"/>
9
+ </g>
10
+ <g>
11
+ <ellipse style="fill: #ff00ff" cx="87.8883" cy="170.688" rx="82" ry="27"/>
12
+ <ellipse style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" cx="87.8883" cy="170.688" rx="82" ry="27"/>
13
+ </g>
14
+ <g>
15
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 67.0438,62.6046 A 86.9421,86.9421 0 0 0 66.5601,136.198"/>
16
+ <polygon style="fill: #FF0000" points="69.9349,142.85 60.4932,136.863 66.0662,136.425 69.0601,131.704 "/>
17
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="69.9349,142.85 60.4932,136.863 66.0662,136.425 69.0601,131.704 "/>
18
+ </g>
19
+ <g>
20
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 108.485,142.121 A 62.5199,62.5199 0 0 0 114.068,69.9912"/>
21
+ <polygon style="fill: #000000" points="109.916,63.8398 120.157,68.3263 114.714,69.6039 112.471,74.7243 "/>
22
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="109.916,63.8398 120.157,68.3263 114.714,69.6039 112.471,74.7243 "/>
23
+ </g>
24
+ <text font-size="12.7998" style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="89.0883" y="246.059">
25
+ <tspan x="89.0883" y="246.059"></tspan>
26
+ </text>
27
+ <text font-size="18.0622" style="fill: #000000;text-anchor:start;font-family:serif;font-style:normal;font-weight:normal" x="57.0883" y="40.0589">
28
+ <tspan x="57.0883" y="40.0589">original</tspan>
29
+ </text>
30
+ <text font-size="18.0622" style="fill: #000000;text-anchor:start;font-family:serif;font-style:normal;font-weight:normal" x="49.3934" y="176.464">
31
+ <tspan x="49.3934" y="176.464">canonical</tspan>
32
+ </text>
33
+ <g>
34
+ <path style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" d="M 159.088 155.438 C 199.088,143.938 199.088,193.938 168.612,187.461"/>
35
+ <polygon style="fill: #000000" points="161.276,185.902 172.096,183.09 168.612,187.461 170.018,192.872 "/>
36
+ <polygon style="fill: none; fill-opacity:0; stroke-width: 2; stroke: #000000" points="161.276,185.902 172.096,183.09 168.612,187.461 170.018,192.872 "/>
37
+ </g>
38
+ <text font-size="15.8044" style="fill: #000000;text-anchor:start;font-family:serif;font-style:normal;font-weight:normal" x="29.7954" y="104.544">
39
+ <tspan x="29.7954" y="104.544">nit</tspan>
40
+ </text>
41
+ <text font-size="15.8044" style="fill: #000000;text-anchor:start;font-family:serif;font-style:normal;font-weight:normal" x="132.017" y="105.352">
42
+ <tspan x="132.017" y="105.352">edit</tspan>
43
+ </text>
44
+ <text font-size="15.8044" style="fill: #000000;text-anchor:start;font-family:serif;font-style:normal;font-weight:normal" x="194.139" y="177.473">
45
+ <tspan x="194.139" y="177.473">nit (no-op)</tspan>
46
+ </text>
47
+ </svg>
@@ -0,0 +1,75 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -->
4
+ <!-- Generated by graphviz version 2.36.0 (20140111.2315)
5
+ -->
6
+ <!-- Title: %3 Pages: 1 -->
7
+ <svg width="134pt" height="332pt"
8
+ viewBox="0.00 0.00 134.00 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+ <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
10
+ <title>%3</title>
11
+ <polygon fill="white" stroke="none" points="-4,4 -4,-328 130,-328 130,4 -4,4"/>
12
+ <!-- a -->
13
+ <g id="node1" class="node"><title>a</title>
14
+ <ellipse fill="none" stroke="black" cx="71" cy="-306" rx="27" ry="18"/>
15
+ <text text-anchor="middle" x="71" y="-302.3" font-family="Times,serif" font-size="14.00">a</text>
16
+ </g>
17
+ <!-- b -->
18
+ <g id="node2" class="node"><title>b</title>
19
+ <ellipse fill="none" stroke="black" cx="99" cy="-234" rx="27" ry="18"/>
20
+ <text text-anchor="middle" x="99" y="-230.3" font-family="Times,serif" font-size="14.00">b</text>
21
+ </g>
22
+ <!-- a&#45;&#45;b -->
23
+ <g id="edge1" class="edge"><title>a&#45;&#45;b</title>
24
+ <path fill="none" stroke="red" stroke-width="3" d="M77.6356,-288.411C82.099,-277.252 87.9586,-262.604 92.412,-251.47"/>
25
+ </g>
26
+ <!-- d -->
27
+ <g id="node3" class="node"><title>d</title>
28
+ <ellipse fill="none" stroke="black" cx="44" cy="-162" rx="27" ry="18"/>
29
+ <text text-anchor="middle" x="44" y="-158.3" font-family="Times,serif" font-size="14.00">d</text>
30
+ </g>
31
+ <!-- a&#45;&#45;d -->
32
+ <g id="edge8" class="edge"><title>a&#45;&#45;d</title>
33
+ <path fill="none" stroke="black" d="M67.7432,-287.871C62.5536,-260.578 52.4652,-207.52 47.2684,-180.189"/>
34
+ </g>
35
+ <!-- b&#45;&#45;d -->
36
+ <g id="edge2" class="edge"><title>b&#45;&#45;d</title>
37
+ <path fill="none" stroke="red" stroke-width="3" d="M87.0658,-217.811C77.8405,-206.07 65.1304,-189.893 55.9109,-178.159"/>
38
+ </g>
39
+ <!-- c -->
40
+ <g id="node4" class="node"><title>c</title>
41
+ <ellipse fill="none" stroke="black" cx="99" cy="-90" rx="27" ry="18"/>
42
+ <text text-anchor="middle" x="99" y="-86.3" font-family="Times,serif" font-size="14.00">c</text>
43
+ </g>
44
+ <!-- b&#45;&#45;c -->
45
+ <g id="edge5" class="edge"><title>b&#45;&#45;c</title>
46
+ <path fill="none" stroke="black" d="M99,-215.871C99,-188.578 99,-135.52 99,-108.189"/>
47
+ </g>
48
+ <!-- d&#45;&#45;c -->
49
+ <g id="edge3" class="edge"><title>d&#45;&#45;c</title>
50
+ <path fill="none" stroke="red" stroke-width="3" d="M55.9342,-145.811C65.1595,-134.07 77.8696,-117.893 87.0891,-106.159"/>
51
+ </g>
52
+ <!-- e -->
53
+ <g id="node6" class="node"><title>e</title>
54
+ <ellipse fill="none" stroke="black" cx="27" cy="-90" rx="27" ry="18"/>
55
+ <text text-anchor="middle" x="27" y="-86.3" font-family="Times,serif" font-size="14.00">e</text>
56
+ </g>
57
+ <!-- d&#45;&#45;e -->
58
+ <g id="edge6" class="edge"><title>d&#45;&#45;e</title>
59
+ <path fill="none" stroke="black" d="M39.8848,-144.055C37.2513,-133.211 33.8444,-119.183 31.1954,-108.275"/>
60
+ </g>
61
+ <!-- f -->
62
+ <g id="node5" class="node"><title>f</title>
63
+ <ellipse fill="none" stroke="black" cx="63" cy="-18" rx="27" ry="18"/>
64
+ <text text-anchor="middle" x="63" y="-14.3" font-family="Times,serif" font-size="14.00">f</text>
65
+ </g>
66
+ <!-- c&#45;&#45;f -->
67
+ <g id="edge4" class="edge"><title>c&#45;&#45;f</title>
68
+ <path fill="none" stroke="red" stroke-width="3" d="M90.6504,-72.7646C84.8345,-61.456 77.1103,-46.4367 71.3043,-35.1473"/>
69
+ </g>
70
+ <!-- e&#45;&#45;f -->
71
+ <g id="edge7" class="edge"><title>e&#45;&#45;f</title>
72
+ <path fill="none" stroke="black" d="M35.3496,-72.7646C41.1655,-61.456 48.8897,-46.4367 54.6957,-35.1473"/>
73
+ </g>
74
+ </g>
75
+ </svg>