simple-xspec-wrapper 0.1.0-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.ruby-version +1 -0
- data/.travis.yml +11 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +37 -0
- data/LICENSE.txt +21 -0
- data/README.md +49 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/exe/xspec +16 -0
- data/lib/xspec/version.rb +3 -0
- data/lib/xspec.rb +256 -0
- data/simple-xspec-wrapper.gemspec +28 -0
- data/spec-test.xml +1125 -0
- data/vendor/xspec-1.0.0/.gitignore +7 -0
- data/vendor/xspec-1.0.0/.travis.yml +57 -0
- data/vendor/xspec-1.0.0/LICENSE +21 -0
- data/vendor/xspec-1.0.0/README.md +26 -0
- data/vendor/xspec-1.0.0/appveyor.yml +77 -0
- data/vendor/xspec-1.0.0/bin/xspec.bat +620 -0
- data/vendor/xspec-1.0.0/bin/xspec.sh +403 -0
- data/vendor/xspec-1.0.0/build.xml +369 -0
- data/vendor/xspec-1.0.0/editors/emacs/README +31 -0
- data/vendor/xspec-1.0.0/editors/emacs/schemas.xml +6 -0
- data/vendor/xspec-1.0.0/editors/oxygen/.cvsignore +2 -0
- data/vendor/xspec-1.0.0/editors/oxygen/README +11 -0
- data/vendor/xspec-1.0.0/editors/oxygen/build.xml +38 -0
- data/vendor/xspec-1.0.0/editors/oxygen/templates/xspec.xml +17 -0
- data/vendor/xspec-1.0.0/editors/oxygen/xspec.framework +175 -0
- data/vendor/xspec-1.0.0/find-examples.xml +37 -0
- data/vendor/xspec-1.0.0/find-examples.xsl +615 -0
- data/vendor/xspec-1.0.0/graphics/3angle-down.gif +0 -0
- data/vendor/xspec-1.0.0/graphics/3angle-right.gif +0 -0
- data/vendor/xspec-1.0.0/java/com/jenitennison/xslt/tests/XSLTCoverageTraceListener.class +0 -0
- data/vendor/xspec-1.0.0/java/com/jenitennison/xslt/tests/XSLTCoverageTraceListener.java +209 -0
- data/vendor/xspec-1.0.0/src/ant/find-test-failure.xsl +17 -0
- data/vendor/xspec-1.0.0/src/ant/get-schematron-phase.xsl +17 -0
- data/vendor/xspec-1.0.0/src/ant/locate-schematron.xsl +28 -0
- data/vendor/xspec-1.0.0/src/ant/make-path.js +4 -0
- data/vendor/xspec-1.0.0/src/compiler/generate-common-tests.xsl +604 -0
- data/vendor/xspec-1.0.0/src/compiler/generate-query-helper.xsl +152 -0
- data/vendor/xspec-1.0.0/src/compiler/generate-query-tests.xsl +473 -0
- data/vendor/xspec-1.0.0/src/compiler/generate-query-utils.xql +263 -0
- data/vendor/xspec-1.0.0/src/compiler/generate-tests-helper.xsl +169 -0
- data/vendor/xspec-1.0.0/src/compiler/generate-tests-utils.xsl +479 -0
- data/vendor/xspec-1.0.0/src/compiler/generate-xspec-tests.xsl +503 -0
- data/vendor/xspec-1.0.0/src/harnesses/basex/basex-standalone-xquery-harness.xproc +135 -0
- data/vendor/xspec-1.0.0/src/harnesses/basex/basex-xquery-harness.xproc +133 -0
- data/vendor/xspec-1.0.0/src/harnesses/exist/exist-xquery-harness.xproc +161 -0
- data/vendor/xspec-1.0.0/src/harnesses/harness-lib.xpl +327 -0
- data/vendor/xspec-1.0.0/src/harnesses/marklogic/ml-xquery-harness.xproc +143 -0
- data/vendor/xspec-1.0.0/src/harnesses/saxon/saxon-xquery-harness.xproc +108 -0
- data/vendor/xspec-1.0.0/src/harnesses/saxon/saxon-xslt-harness.xproc +85 -0
- data/vendor/xspec-1.0.0/src/harnesses/zorba/zorba-xquery-harness.xproc +134 -0
- data/vendor/xspec-1.0.0/src/reporter/coverage-report.xsl +378 -0
- data/vendor/xspec-1.0.0/src/reporter/format-utils.xsl +220 -0
- data/vendor/xspec-1.0.0/src/reporter/format-xspec-report-folding.xsl +164 -0
- data/vendor/xspec-1.0.0/src/reporter/format-xspec-report.xsl +410 -0
- data/vendor/xspec-1.0.0/src/reporter/junit-report.xsl +93 -0
- data/vendor/xspec-1.0.0/src/reporter/test-report.css +469 -0
- data/vendor/xspec-1.0.0/src/schemas/find-examples.rnc +90 -0
- data/vendor/xspec-1.0.0/src/schemas/xspec.rnc +304 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/iso_abstract_expand.xsl +313 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/iso_dsdl_include.xsl +1519 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/iso_schematron_message.xsl +64 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/iso_schematron_message_xslt2.xsl +64 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/iso_schematron_skeleton_for_saxon.xsl +2306 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/iso_schematron_skeleton_for_xslt1.xsl +1851 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/iso_svrl_for_xslt1.xsl +614 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/iso_svrl_for_xslt2.xsl +692 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/readme.txt +101 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/sch-messages-cs.xhtml +56 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/sch-messages-de.xhtml +55 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/sch-messages-en.xhtml +57 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/sch-messages-fr.xhtml +54 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/sch-messages-ja.xhtml +53 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/sch-messages-nl.xhtml +58 -0
- data/vendor/xspec-1.0.0/src/schematron/iso-schematron/schematron-skeleton-api.htm +723 -0
- data/vendor/xspec-1.0.0/src/schematron/sch-location-compare.xsl +139 -0
- data/vendor/xspec-1.0.0/src/schematron/schut-to-xspec.xsl +179 -0
- data/vendor/xspec-1.0.0/test/Makefile +117 -0
- data/vendor/xspec-1.0.0/test/README +5 -0
- data/vendor/xspec-1.0.0/test/catalog/xspec-160_catalog.xml +4 -0
- data/vendor/xspec-1.0.0/test/catalog/xspec-160_schematron.xspec +6 -0
- data/vendor/xspec-1.0.0/test/catalog/xspec-160_xslt.xspec +5 -0
- data/vendor/xspec-1.0.0/test/end-to-end/README.md +42 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/.gitignore +1 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/expected/.gitignore +3 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/expected/xspec-50-result-norm.html +74 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/expected/xspec-55-result-norm.html +112 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/expected/xspec-focus-1-result-norm.html +109 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/expected/xspec-function-result-norm.html +118 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/expected/xspec-import-result-norm.html +163 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/expected/xspec-imported-result-norm.html +95 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/expected/xspec-pending-result-norm.html +123 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/expected/xspec-rule-result-norm.html +109 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/expected/xspec-three-dots-result-norm.html +1237 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-50.xsl +7 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-50.xspec +10 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-55.xsl +2 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-55.xspec +18 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-focus-1.xspec +71 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-function.xspec +50 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-import.xspec +50 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-imported.xspec +48 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-pending.xspec +89 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-rule.xspec +76 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-three-dots.xsl +49 -0
- data/vendor/xspec-1.0.0/test/end-to-end/cases/xspec-three-dots.xspec +527 -0
- data/vendor/xspec-1.0.0/test/end-to-end/generate-expected.cmd +51 -0
- data/vendor/xspec-1.0.0/test/end-to-end/generate-expected.sh +25 -0
- data/vendor/xspec-1.0.0/test/end-to-end/processor/_deserializer.xsl +53 -0
- data/vendor/xspec-1.0.0/test/end-to-end/processor/_normalizer.xsl +192 -0
- data/vendor/xspec-1.0.0/test/end-to-end/processor/_serializer.xsl +15 -0
- data/vendor/xspec-1.0.0/test/end-to-end/processor/_util.xsl +35 -0
- data/vendor/xspec-1.0.0/test/end-to-end/processor/compare.xsl +88 -0
- data/vendor/xspec-1.0.0/test/end-to-end/processor/normalize.xsl +28 -0
- data/vendor/xspec-1.0.0/test/end-to-end/run-e2e-tests.cmd +61 -0
- data/vendor/xspec-1.0.0/test/end-to-end/run-e2e-tests.sh +28 -0
- data/vendor/xspec-1.0.0/test/generate-tests-utils.xspec +636 -0
- data/vendor/xspec-1.0.0/test/generate-x-utils.xspec +173 -0
- data/vendor/xspec-1.0.0/test/generate-xspec-tests.xspec +64 -0
- data/vendor/xspec-1.0.0/test/run-xspec-tests.cmd +83 -0
- data/vendor/xspec-1.0.0/test/run-xspec-tests.sh +42 -0
- data/vendor/xspec-1.0.0/test/sch-location-compare.xspec +179 -0
- data/vendor/xspec-1.0.0/test/schematron/data/standards.xml +7 -0
- data/vendor/xspec-1.0.0/test/schematron/schematron-017.sch +9 -0
- data/vendor/xspec-1.0.0/test/schematron/schematron-018.sch +17 -0
- data/vendor/xspec-1.0.0/test/schematron/schematron-019.sch +13 -0
- data/vendor/xspec-1.0.0/test/schematron/schematron-020-01.sch +35 -0
- data/vendor/xspec-1.0.0/test/schematron/schematron-020.sch +32 -0
- data/vendor/xspec-1.0.0/test/schematron/schematron-021.sch +28 -0
- data/vendor/xspec-1.0.0/test/schematron/schematron-022.sch +18 -0
- data/vendor/xspec-1.0.0/test/schematron/schematron-xslt-compile.xsl +8 -0
- data/vendor/xspec-1.0.0/test/schematron/schematron-xslt-expand.xsl +8 -0
- data/vendor/xspec-1.0.0/test/schematron/schematron-xslt-include.xsl +8 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-001-in.xspec +5 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-001-out.xspec +7 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-002-in.xspec +5 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-002-out.xspec +7 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-002.sch +4 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-003-in.xspec +7 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-003-out.xspec +9 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-004-in.xspec +20 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-004-out.xspec +22 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-005-in.xspec +6 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-005-out.xspec +8 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-006-in.xspec +11 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-006-out.xspec +13 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-007-in.xspec +7 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-007-out.xspec +9 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-007.xml +2 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-008-in.xspec +9 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-008-out.xspec +9 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-009-import-in.xspec +5 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-009-in.xspec +6 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-009-out.xspec +10 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-010-import.xspec +5 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-010-in.xspec +6 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-010-out.xspec +8 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-011-in.xspec +6 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-011-out.xspec +8 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-012-01.xml +4 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-012-02.xml +13 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-012-out.xspec +81 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-013-in.xspec +6 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-013-out.xspec +8 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-test.sch +4 -0
- data/vendor/xspec-1.0.0/test/schematron/schut-to-xspec-test.sch.xsl +4 -0
- data/vendor/xspec-1.0.0/test/schematron-01.sch +17 -0
- data/vendor/xspec-1.0.0/test/schematron-01.xml +14 -0
- data/vendor/xspec-1.0.0/test/schematron-01.xspec +14 -0
- data/vendor/xspec-1.0.0/test/schematron-012.xspec +83 -0
- data/vendor/xspec-1.0.0/test/schematron-014-01.xml +10 -0
- data/vendor/xspec-1.0.0/test/schematron-014.sch +16 -0
- data/vendor/xspec-1.0.0/test/schematron-014.xspec +11 -0
- data/vendor/xspec-1.0.0/test/schematron-015.sch +16 -0
- data/vendor/xspec-1.0.0/test/schematron-015.xspec +11 -0
- data/vendor/xspec-1.0.0/test/schematron-016.sch +19 -0
- data/vendor/xspec-1.0.0/test/schematron-016.xspec +171 -0
- data/vendor/xspec-1.0.0/test/schematron-017.xspec +26 -0
- data/vendor/xspec-1.0.0/test/schematron-018.xspec +120 -0
- data/vendor/xspec-1.0.0/test/schematron-019.xspec +16 -0
- data/vendor/xspec-1.0.0/test/schematron-020.xspec +53 -0
- data/vendor/xspec-1.0.0/test/schematron-021.xspec +27 -0
- data/vendor/xspec-1.0.0/test/schematron-022.xspec +15 -0
- data/vendor/xspec-1.0.0/test/schematron-param-001.xspec +50 -0
- data/vendor/xspec-1.0.0/test/schut-to-xspec-012.sch +27 -0
- data/vendor/xspec-1.0.0/test/schut-to-xspec.xspec +85 -0
- data/vendor/xspec-1.0.0/test/unit-expect-xsl.xspec +28 -0
- data/vendor/xspec-1.0.0/test/xspec-26.xsl +19 -0
- data/vendor/xspec-1.0.0/test/xspec-26.xspec +17 -0
- data/vendor/xspec-1.0.0/test/xspec-30.xml +2 -0
- data/vendor/xspec-1.0.0/test/xspec-30.xsl +6 -0
- data/vendor/xspec-1.0.0/test/xspec-30.xspec +8 -0
- data/vendor/xspec-1.0.0/test/xspec-33.xsl +7 -0
- data/vendor/xspec-1.0.0/test/xspec-33.xspec +15 -0
- data/vendor/xspec-1.0.0/test/xspec-46.xsl +7 -0
- data/vendor/xspec-1.0.0/test/xspec-46.xspec +9 -0
- data/vendor/xspec-1.0.0/test/xspec-72.xsl +13 -0
- data/vendor/xspec-1.0.0/test/xspec-72.xspec +19 -0
- data/vendor/xspec-1.0.0/test/xspec-bat.cmd +757 -0
- data/vendor/xspec-1.0.0/test/xspec-focus-2.xspec +91 -0
- data/vendor/xspec-1.0.0/test/xspec-junit.xspec +78 -0
- data/vendor/xspec-1.0.0/test/xspec-result-naming-collision.xml +1003 -0
- data/vendor/xspec-1.0.0/test/xspec-result-naming-collision.xslt +10 -0
- data/vendor/xspec-1.0.0/test/xspec-result-naming-collision.xspec +13 -0
- data/vendor/xspec-1.0.0/test/xspec-tested.xql +44 -0
- data/vendor/xspec-1.0.0/test/xspec-tested.xsl +64 -0
- data/vendor/xspec-1.0.0/test/xspec-variable.xml +3 -0
- data/vendor/xspec-1.0.0/test/xspec-variable.xspec +58 -0
- data/vendor/xspec-1.0.0/test/xspec-xslt3.xsl +13 -0
- data/vendor/xspec-1.0.0/test/xspec-xslt3.xspec +12 -0
- data/vendor/xspec-1.0.0/test/xspec.bats +420 -0
- data/vendor/xspec-1.0.0/tutorial/escape-for-regex.xslt +40 -0
- data/vendor/xspec-1.0.0/tutorial/escape-for-regex.xspec +75 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-01.sch +17 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-01.xml +11 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-01.xspec +14 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-02-PhaseA.xspec +11 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-02-PhaseB.xspec +12 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-02-import1.xspec +10 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-02-import2.xspec +8 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-02-import3.xspec +10 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-02.sch +58 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-02.xml +19 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-03-doc1.xml +6 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-03-doc2.xml +7 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-03.sch +29 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-03.xspec +63 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-04.sch +20 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/demo-04.xspec +33 -0
- data/vendor/xspec-1.0.0/tutorial/schematron/quickfix.sch +81 -0
- data/vendor/xspec-1.0.0/tutorial/xquery-tutorial.xq +8 -0
- data/vendor/xspec-1.0.0/tutorial/xquery-tutorial.xspec +16 -0
- data/vendor/xspec-1.0.0/xproject/project.xml +8 -0
- data/vendor/xspec-1.0.0/xproject/release-project.xsl +41 -0
- metadata +341 -0
@@ -0,0 +1,192 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<xsl:stylesheet exclude-result-prefixes="#all" version="2.0"
|
3
|
+
xmlns:local="x-urn:xspec:test:end-to-end:processor:normalizer:local"
|
4
|
+
xmlns:normalizer="x-urn:xspec:test:end-to-end:processor:normalizer"
|
5
|
+
xmlns:util="x-urn:xspec:test:end-to-end:processor:util"
|
6
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
7
|
+
xpath-default-namespace="http://www.w3.org/1999/xhtml">
|
8
|
+
|
9
|
+
<!--
|
10
|
+
This stylesheet module provides a primitive normalizer for the XSpec report HTML.
|
11
|
+
-->
|
12
|
+
|
13
|
+
<!--
|
14
|
+
Public functions
|
15
|
+
-->
|
16
|
+
|
17
|
+
<!-- Normalizes the transient parts of the document such as @href, @id, datetime and file path -->
|
18
|
+
<xsl:function as="document-node()" name="normalizer:normalize">
|
19
|
+
<xsl:param as="document-node()" name="doc" />
|
20
|
+
|
21
|
+
<xsl:apply-templates mode="local:normalize" select="$doc" />
|
22
|
+
</xsl:function>
|
23
|
+
|
24
|
+
<!--
|
25
|
+
Private templates
|
26
|
+
-->
|
27
|
+
|
28
|
+
<!-- Identity template, in lowest priority -->
|
29
|
+
<xsl:template as="node()" match="document-node() | attribute() | node()" mode="local:normalize"
|
30
|
+
priority="-1">
|
31
|
+
<xsl:copy>
|
32
|
+
<xsl:apply-templates mode="#current" select="attribute() | node()" />
|
33
|
+
</xsl:copy>
|
34
|
+
</xsl:template>
|
35
|
+
|
36
|
+
<!--
|
37
|
+
Removes comments and processing instructions
|
38
|
+
They are often ignored by fn:deep-equal(). So remove them explicitly in the first place.
|
39
|
+
-->
|
40
|
+
<xsl:template as="empty-sequence()" match="comment() | processing-instruction()"
|
41
|
+
mode="local:normalize" />
|
42
|
+
|
43
|
+
<!--
|
44
|
+
Normalizes the title text
|
45
|
+
Example:
|
46
|
+
in: <title>Test Report for /path/to/tested.xsl (passed: 2 / pending: 0 / failed: 1 / total: 3)</title>
|
47
|
+
out: <title>Test Report for tested.xsl (passed: 2 / pending: 0 / failed: 1 / total: 3)</title>
|
48
|
+
-->
|
49
|
+
<xsl:template as="text()" match="/html/head/title/text()" mode="local:normalize">
|
50
|
+
<xsl:analyze-string regex="^(Test Report for) (.+) (\([a-z0-9/: ]+\))$" select=".">
|
51
|
+
<xsl:matching-substring>
|
52
|
+
<xsl:value-of
|
53
|
+
select="
|
54
|
+
regex-group(1),
|
55
|
+
util:filename-and-extension(regex-group(2)),
|
56
|
+
regex-group(3)"
|
57
|
+
separator=" " />
|
58
|
+
</xsl:matching-substring>
|
59
|
+
</xsl:analyze-string>
|
60
|
+
</xsl:template>
|
61
|
+
|
62
|
+
<!--
|
63
|
+
Replaces the embedded CSS with the link to its source
|
64
|
+
For brevity. The details of style are not critical anyway.
|
65
|
+
-->
|
66
|
+
<xsl:template as="element(link)" match="/html/head/style" mode="local:normalize">
|
67
|
+
<link rel="stylesheet" type="text/css" xmlns="http://www.w3.org/1999/xhtml">
|
68
|
+
<xsl:attribute name="href">
|
69
|
+
<!-- Relative path to XSPEC_HOME from XSPEC_HOME/test/end-to-end/cases/*/*.html -->
|
70
|
+
<xsl:text>../../../../</xsl:text>
|
71
|
+
|
72
|
+
<!-- and down to the CSS source -->
|
73
|
+
<xsl:text>src/reporter/test-report.css</xsl:text>
|
74
|
+
</xsl:attribute>
|
75
|
+
</link>
|
76
|
+
</xsl:template>
|
77
|
+
|
78
|
+
<!--
|
79
|
+
Normalizes the link to the tested module
|
80
|
+
Example:
|
81
|
+
in: <a href="file:/path/to/tested.xsl">/path/to/tested.xsl</a>
|
82
|
+
out: <a href="tested.xsl">tested.xsl</a>
|
83
|
+
-->
|
84
|
+
<xsl:template as="element(a)" match="/html/body/p[1]/a" mode="local:normalize">
|
85
|
+
<xsl:copy>
|
86
|
+
<xsl:apply-templates mode="#current" select="attribute()" />
|
87
|
+
<xsl:attribute name="href" select="util:filename-and-extension(@href)" />
|
88
|
+
|
89
|
+
<xsl:value-of select="util:filename-and-extension(.)" />
|
90
|
+
</xsl:copy>
|
91
|
+
</xsl:template>
|
92
|
+
|
93
|
+
<!--
|
94
|
+
Normalizes datetime
|
95
|
+
Example:
|
96
|
+
in: <p>Tested: 23 February 2017 at 11:18</p>
|
97
|
+
out: <p>Tested: ONCE-UPON-A-TIME</p>
|
98
|
+
-->
|
99
|
+
<xsl:template as="text()" match="/html/body/p[2]/text()" mode="local:normalize">
|
100
|
+
<!-- Use analyze-string() so that the transformation will fail when nothing matches -->
|
101
|
+
<xsl:analyze-string regex="^(Tested:) .+$" select=".">
|
102
|
+
<xsl:matching-substring>
|
103
|
+
<xsl:value-of select="regex-group(1), 'ONCE-UPON-A-TIME'" />
|
104
|
+
</xsl:matching-substring>
|
105
|
+
</xsl:analyze-string>
|
106
|
+
</xsl:template>
|
107
|
+
|
108
|
+
<!-- Makes @id predictable -->
|
109
|
+
<xsl:template as="attribute(id)" match="@id" mode="local:normalize"
|
110
|
+
name="normalize-id-attribute">
|
111
|
+
<xsl:attribute name="{local-name()}" namespace="{namespace-uri()}"
|
112
|
+
select="local:generate-predictable-id(parent::element())" />
|
113
|
+
</xsl:template>
|
114
|
+
|
115
|
+
<!--
|
116
|
+
Makes the in-page link follow its target element
|
117
|
+
@id of the target element is normalized by the 'normalize-id-attribute' template. So @href has to follow it.
|
118
|
+
-->
|
119
|
+
<xsl:template as="attribute(href)" match="@href[starts-with(., '#')]" mode="local:normalize">
|
120
|
+
<!-- Substring after '#' -->
|
121
|
+
<xsl:variable as="xs:string" name="original-id" select="substring(., 2)" />
|
122
|
+
|
123
|
+
<xsl:variable as="element()?" name="target-element"
|
124
|
+
select="local:element-by-id(., $original-id)" />
|
125
|
+
|
126
|
+
<xsl:variable as="xs:string" name="predictable-id">
|
127
|
+
<xsl:choose>
|
128
|
+
<xsl:when test="$target-element">
|
129
|
+
<xsl:sequence select="local:generate-predictable-id($target-element)" />
|
130
|
+
</xsl:when>
|
131
|
+
|
132
|
+
<!-- @href's target element may not exist for pending scenarios: xspec/xspec#85 -->
|
133
|
+
<xsl:when test="parent::a/parent::th/parent::tr/@class eq 'pending'">
|
134
|
+
<!-- Assume that @href is always unique when the scenario is pending -->
|
135
|
+
<xsl:if test="count(//@href[. eq current()]) eq 1">
|
136
|
+
<!-- Use the current element's ID, prefixing 'PENDING_' to it -->
|
137
|
+
<xsl:sequence
|
138
|
+
select="concat('PENDING_', local:generate-predictable-id(parent::element()))"
|
139
|
+
/>
|
140
|
+
</xsl:if>
|
141
|
+
</xsl:when>
|
142
|
+
</xsl:choose>
|
143
|
+
</xsl:variable>
|
144
|
+
|
145
|
+
<xsl:attribute name="{local-name()}" namespace="{namespace-uri()}"
|
146
|
+
select="concat('#', $predictable-id)" />
|
147
|
+
</xsl:template>
|
148
|
+
|
149
|
+
<!--
|
150
|
+
Private utility functions
|
151
|
+
-->
|
152
|
+
|
153
|
+
<!-- Gets the positional index (1~) of element -->
|
154
|
+
<xsl:function as="xs:integer" name="local:element-index">
|
155
|
+
<xsl:param as="element()" name="element" />
|
156
|
+
|
157
|
+
<xsl:sequence select="count($element/preceding::element()) + 1" />
|
158
|
+
</xsl:function>
|
159
|
+
|
160
|
+
<!--
|
161
|
+
Returns the element whose original @id is equal to the specified ID
|
162
|
+
If multiple elements satisfy the condition, returns the first element.
|
163
|
+
-->
|
164
|
+
<xsl:function as="element()?" name="local:element-by-id">
|
165
|
+
<xsl:param as="node()" name="context-node" />
|
166
|
+
<xsl:param as="xs:string" name="id" />
|
167
|
+
|
168
|
+
<xsl:variable as="document-node()" name="doc" select="root($context-node)" />
|
169
|
+
<xsl:sequence select="$doc/descendant::element()[@id eq $id][1]" />
|
170
|
+
</xsl:function>
|
171
|
+
|
172
|
+
<!--
|
173
|
+
Generates ID for element
|
174
|
+
Unlike fn:generate-id(), ID is generated solely from the element's positional index. So the ID value is predictable.
|
175
|
+
-->
|
176
|
+
<xsl:function as="xs:string" name="local:generate-predictable-id">
|
177
|
+
<xsl:param as="element()" name="element" />
|
178
|
+
|
179
|
+
<!--
|
180
|
+
Unfortunately the original @id is not always unique: xspec/xspec#78
|
181
|
+
So, for calculating the element index, you can't simply use the specified element. You have to determine which element to use.
|
182
|
+
-->
|
183
|
+
<xsl:variable as="element()" name="index-element"
|
184
|
+
select="
|
185
|
+
if ($element/@id) then
|
186
|
+
local:element-by-id($element, $element/@id)
|
187
|
+
else
|
188
|
+
$element" />
|
189
|
+
|
190
|
+
<xsl:sequence select="concat('ELEM-', local:element-index($index-element))" />
|
191
|
+
</xsl:function>
|
192
|
+
</xsl:stylesheet>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<xsl:stylesheet exclude-result-prefixes="#all" version="2.0"
|
3
|
+
xmlns:serializer="x-urn:xspec:test:end-to-end:processor:serializer"
|
4
|
+
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
5
|
+
|
6
|
+
<!--
|
7
|
+
This stylesheet module helps serialize the report HTML.
|
8
|
+
-->
|
9
|
+
|
10
|
+
<!--
|
11
|
+
Set of serialization parameters
|
12
|
+
The parameters must be in sync with XSPEC_HOME/src/reporter/format-xspec-report.xsl.
|
13
|
+
-->
|
14
|
+
<xsl:output name="serializer:output" />
|
15
|
+
</xsl:stylesheet>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<xsl:stylesheet exclude-result-prefixes="#all" version="2.0"
|
3
|
+
xmlns:util="x-urn:xspec:test:end-to-end:processor:util"
|
4
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
5
|
+
|
6
|
+
<!--
|
7
|
+
This stylesheet module is a collection of utilities.
|
8
|
+
-->
|
9
|
+
|
10
|
+
<!--
|
11
|
+
Extracts filename (with extension) from slash-delimited path
|
12
|
+
Example:
|
13
|
+
in: "file:/path/to/foo.bar.baz" or "/path/to/foo.bar.baz"
|
14
|
+
out: "foo.bar.baz"
|
15
|
+
-->
|
16
|
+
<xsl:function as="xs:string" name="util:filename-and-extension">
|
17
|
+
<xsl:param as="xs:string" name="uri" />
|
18
|
+
|
19
|
+
<xsl:sequence select="tokenize($uri, '/')[last()]" />
|
20
|
+
</xsl:function>
|
21
|
+
|
22
|
+
<!--
|
23
|
+
Extracts filename (without extension) from slash-delimited path
|
24
|
+
Example:
|
25
|
+
in: "file:/path/to/foo.bar.baz" or "/path/to/foo.bar.baz"
|
26
|
+
out: "foo.bar"
|
27
|
+
-->
|
28
|
+
<xsl:function as="xs:string" name="util:filename-without-extension">
|
29
|
+
<xsl:param as="xs:string" name="uri" />
|
30
|
+
|
31
|
+
<xsl:variable as="xs:string+" name="except-last"
|
32
|
+
select="tokenize(util:filename-and-extension($uri), '\.')[position() lt last()]" />
|
33
|
+
<xsl:sequence select="string-join($except-last, '.')" />
|
34
|
+
</xsl:function>
|
35
|
+
</xsl:stylesheet>
|
@@ -0,0 +1,88 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<xsl:stylesheet exclude-result-prefixes="#all" version="2.0"
|
3
|
+
xmlns:deserializer="x-urn:xspec:test:end-to-end:processor:deserializer"
|
4
|
+
xmlns:normalizer="x-urn:xspec:test:end-to-end:processor:normalizer"
|
5
|
+
xmlns:saxon="http://saxon.sf.net/"
|
6
|
+
xmlns:serializer="x-urn:xspec:test:end-to-end:processor:serializer"
|
7
|
+
xmlns:util="x-urn:xspec:test:end-to-end:processor:util"
|
8
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
9
|
+
|
10
|
+
<!--
|
11
|
+
This master stylesheet normalizes the input document and compares the normalized document with the expected HTML file.
|
12
|
+
Note: Comparison is performed by fn:deep-equal() which may ignore some comments and processing instructions.
|
13
|
+
-->
|
14
|
+
|
15
|
+
<xsl:include href="_deserializer.xsl" />
|
16
|
+
<xsl:include href="_normalizer.xsl" />
|
17
|
+
<xsl:include href="_serializer.xsl" />
|
18
|
+
<xsl:include href="_util.xsl" />
|
19
|
+
|
20
|
+
<xsl:output method="text" />
|
21
|
+
|
22
|
+
<!--
|
23
|
+
URI of the expected HTML file
|
24
|
+
Its content must be already normalized by the 'normalizer:normalize' template.
|
25
|
+
-->
|
26
|
+
<xsl:param as="xs:anyURI" name="EXPECTED-HTML"
|
27
|
+
select="
|
28
|
+
resolve-uri(
|
29
|
+
concat('../expected/', util:filename-without-extension(base-uri()), '-norm.html'),
|
30
|
+
base-uri())" />
|
31
|
+
|
32
|
+
<xsl:param as="xs:boolean" name="DEBUG" select="false()" />
|
33
|
+
|
34
|
+
<xsl:template as="text()+" match="document-node()">
|
35
|
+
<!-- Load the expected HTML -->
|
36
|
+
<xsl:variable as="document-node()" name="expected-doc"
|
37
|
+
select="deserializer:unindent(doc($EXPECTED-HTML))" />
|
38
|
+
|
39
|
+
<!-- Normalize the input document -->
|
40
|
+
<xsl:variable as="document-node()" name="input-doc" select="deserializer:unindent(.)" />
|
41
|
+
<xsl:variable as="document-node()" name="normalized-input-doc"
|
42
|
+
select="normalizer:normalize($input-doc)" />
|
43
|
+
|
44
|
+
<!-- Compare the normalized input document with the expected document -->
|
45
|
+
<xsl:variable as="xs:boolean" name="comparison-result"
|
46
|
+
select="deep-equal($normalized-input-doc, $expected-doc)" />
|
47
|
+
|
48
|
+
<!-- Diagnostic output -->
|
49
|
+
<xsl:if test="not($comparison-result) or $DEBUG">
|
50
|
+
<!-- Save the normalized input document -->
|
51
|
+
<xsl:variable as="xs:anyURI" name="normalized-input-html"
|
52
|
+
select="
|
53
|
+
resolve-uri(
|
54
|
+
concat(util:filename-without-extension(base-uri()), '-norm.html'),
|
55
|
+
base-uri())" />
|
56
|
+
<xsl:result-document format="serializer:output" href="{$normalized-input-html}">
|
57
|
+
<xsl:sequence select="$normalized-input-doc" />
|
58
|
+
</xsl:result-document>
|
59
|
+
<xsl:message select="'Saved the normalized input:', $normalized-input-html" />
|
60
|
+
|
61
|
+
<!-- Print the documents -->
|
62
|
+
<xsl:message select="'[NORMALIZED INPUT]', $normalized-input-doc" />
|
63
|
+
<xsl:message select="'[EXPECTED]', $expected-doc" />
|
64
|
+
|
65
|
+
<!-- Print the diff by passing '?' flag to saxon:deep-equal()-->
|
66
|
+
<xsl:if
|
67
|
+
test="
|
68
|
+
saxon:deep-equal($normalized-input-doc, $expected-doc, (), '?')
|
69
|
+
ne $comparison-result"
|
70
|
+
use-when="function-available('saxon:deep-equal') (: Requires Saxon-PE :)">
|
71
|
+
<!-- Terminate if saxon:deep-equal() contradicts the comparison result -->
|
72
|
+
<xsl:message terminate="yes" />
|
73
|
+
</xsl:if>
|
74
|
+
</xsl:if>
|
75
|
+
|
76
|
+
<!-- Output the comparison result -->
|
77
|
+
<xsl:value-of select="
|
78
|
+
if ($comparison-result) then
|
79
|
+
'OK'
|
80
|
+
else
|
81
|
+
'FAILED'" />
|
82
|
+
<xsl:text>: Compared </xsl:text>
|
83
|
+
<xsl:value-of select="base-uri()" />
|
84
|
+
<xsl:text> with </xsl:text>
|
85
|
+
<xsl:value-of select="$EXPECTED-HTML" />
|
86
|
+
<xsl:text>
</xsl:text>
|
87
|
+
</xsl:template>
|
88
|
+
</xsl:stylesheet>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<xsl:stylesheet exclude-result-prefixes="#all" version="2.0"
|
3
|
+
xmlns:deserializer="x-urn:xspec:test:end-to-end:processor:deserializer"
|
4
|
+
xmlns:normalizer="x-urn:xspec:test:end-to-end:processor:normalizer"
|
5
|
+
xmlns:serializer="x-urn:xspec:test:end-to-end:processor:serializer"
|
6
|
+
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
7
|
+
|
8
|
+
<!--
|
9
|
+
This master stylesheet normalizes the input document.
|
10
|
+
-->
|
11
|
+
|
12
|
+
<xsl:include href="_deserializer.xsl" />
|
13
|
+
<xsl:include href="_normalizer.xsl" />
|
14
|
+
<xsl:include href="_serializer.xsl" />
|
15
|
+
<xsl:include href="_util.xsl" />
|
16
|
+
|
17
|
+
<xsl:template as="empty-sequence()" match="document-node()">
|
18
|
+
<xsl:message select="'Normalizing', base-uri()" />
|
19
|
+
|
20
|
+
<xsl:variable as="document-node()" name="input-doc" select="deserializer:unindent(.)" />
|
21
|
+
|
22
|
+
<xsl:result-document format="serializer:output">
|
23
|
+
<xsl:sequence select="normalizer:normalize($input-doc)" />
|
24
|
+
</xsl:result-document>
|
25
|
+
|
26
|
+
<xsl:message select="'Normalized'" />
|
27
|
+
</xsl:template>
|
28
|
+
</xsl:stylesheet>
|
@@ -0,0 +1,61 @@
|
|
1
|
+
@echo off
|
2
|
+
|
3
|
+
rem
|
4
|
+
rem Begin localization of environment changes.
|
5
|
+
rem Also make sure the command processor extensions are enabled.
|
6
|
+
rem
|
7
|
+
verify other 2> NUL
|
8
|
+
setlocal enableextensions
|
9
|
+
if errorlevel 1 (
|
10
|
+
echo Unable to enable extensions
|
11
|
+
exit /b %ERRORLEVEL%
|
12
|
+
)
|
13
|
+
|
14
|
+
rem
|
15
|
+
rem Go to the directory where this script resides
|
16
|
+
rem
|
17
|
+
pushd "%~dp0"
|
18
|
+
|
19
|
+
rem
|
20
|
+
rem .xspec files directory
|
21
|
+
rem
|
22
|
+
set CASES_DIR=cases
|
23
|
+
|
24
|
+
rem
|
25
|
+
rem XSpec output directory (same as default)
|
26
|
+
rem
|
27
|
+
set TEST_DIR=%CASES_DIR%\xspec
|
28
|
+
|
29
|
+
rem
|
30
|
+
rem Run test cases
|
31
|
+
rem
|
32
|
+
for %%I in ("%CASES_DIR%\*.xspec") do (
|
33
|
+
if /i "%APPVEYOR%"=="True" appveyor AddTest "%%~I" -Framework custom -Filename "%~nx0" -Outcome Running
|
34
|
+
|
35
|
+
rem
|
36
|
+
rem Generate the report HTML
|
37
|
+
rem
|
38
|
+
"%COMSPEC%" /c ..\..\bin\xspec.bat "%%~I" > NUL 2>&1
|
39
|
+
|
40
|
+
rem
|
41
|
+
rem Compare with the expected HTML
|
42
|
+
rem
|
43
|
+
java -classpath "%SAXON_CP%" net.sf.saxon.Transform -s:"%TEST_DIR%\%%~nI-result.html" -xsl:processor\compare.xsl | findstr /b /l /c:"OK: Compared "
|
44
|
+
if errorlevel 1 (
|
45
|
+
echo FAILED: %%~I
|
46
|
+
if /i "%APPVEYOR%"=="True" appveyor UpdateTest "%%~I" -Framework custom -Filename "%~nx0" -Outcome Failed -Duration 0
|
47
|
+
exit /b 1
|
48
|
+
)
|
49
|
+
|
50
|
+
if /i "%APPVEYOR%"=="True" appveyor UpdateTest "%%~I" -Framework custom -Filename "%~nx0" -Outcome Passed -Duration 0
|
51
|
+
)
|
52
|
+
|
53
|
+
rem
|
54
|
+
rem Go back to the initial directory
|
55
|
+
rem
|
56
|
+
popd
|
57
|
+
|
58
|
+
rem
|
59
|
+
rem Exit as success
|
60
|
+
rem
|
61
|
+
exit /b 0
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
# This script must be run from the script's directory
|
4
|
+
|
5
|
+
# .xspec files directory
|
6
|
+
CASES_DIR=cases
|
7
|
+
|
8
|
+
# XSpec output directory (same as default)
|
9
|
+
export TEST_DIR=${CASES_DIR}/xspec
|
10
|
+
|
11
|
+
# Run test cases
|
12
|
+
for CASE_FILEPATH in ${CASES_DIR}/*.xspec
|
13
|
+
do
|
14
|
+
# Generate the report HTML
|
15
|
+
../../bin/xspec.sh ${CASE_FILEPATH} > /dev/null 2>&1
|
16
|
+
|
17
|
+
# Compare with the expected HTML
|
18
|
+
CASE_FILENAME=${CASE_FILEPATH##*/}
|
19
|
+
CASE_BASENAME=${CASE_FILENAME%.xspec}
|
20
|
+
if java -classpath ${SAXON_CP} net.sf.saxon.Transform -s:${TEST_DIR}/${CASE_BASENAME}-result.html -xsl:processor/compare.xsl | grep '^OK: Compared '
|
21
|
+
then
|
22
|
+
# OK, nothing to do
|
23
|
+
:
|
24
|
+
else
|
25
|
+
echo "FAILED: ${CASE_FILEPATH}"
|
26
|
+
exit 1
|
27
|
+
fi
|
28
|
+
done
|