From 003234af98b19bf523e915b5bc7e1beb53bea378 Mon Sep 17 00:00:00 2001 From: Romain Deltour Date: Tue, 13 Dec 2022 23:10:41 +0100 Subject: [PATCH] feat: check stylesheets declared in SVG This enables checking of CSS declared in SVG inline `style` element, as well as stylesheets declared in `` processing instructions. Fix #1450 --- .../com/adobe/epubcheck/css/CSSHandler.java | 7 +- .../com/adobe/epubcheck/ops/OPSHandler.java | 71 ++++++++++++++---- .../files/file-url-in-svg-content-error.svg | 10 +++ .../file-url-in-xhtml-content-error.xhtml | 3 + .../EPUB/content_001.svg | 9 +++ .../EPUB/nav.xhtml | 14 ++++ .../EPUB/package.opf | 16 ++++ .../META-INF/container.xml | 6 ++ .../mimetype | 1 + .../EPUB/content_001.svg | 7 ++ .../EPUB/nav.xhtml | 14 ++++ .../EPUB/package.opf | 16 ++++ .../META-INF/container.xml | 6 ++ .../mimetype | 1 + .../epub3/03-resources/resources.feature | 22 +++++- .../EPUB/content_001.mp3 | Bin 0 -> 10363 bytes .../EPUB/content_001.smil | 9 +++ .../EPUB/content_001.svg | 14 ++++ .../EPUB/nav.xhtml | 14 ++++ .../EPUB/package.opf | 22 ++++++ .../META-INF/container.xml | 6 ++ .../mimetype | 1 + .../EPUB/content_001.mp3 | Bin 0 -> 10363 bytes .../EPUB/content_001.smil | 9 +++ .../EPUB/content_001.svg | 6 ++ .../EPUB/nav.xhtml | 14 ++++ .../EPUB/package.opf | 22 ++++++ .../META-INF/container.xml | 6 ++ .../mimetype | 1 + .../EPUB/content_001.mp3 | Bin 0 -> 10363 bytes .../EPUB/content_001.smil | 9 +++ .../EPUB/content_001.svg | 9 +++ .../EPUB/nav.xhtml | 14 ++++ .../EPUB/package.opf | 23 ++++++ .../EPUB/styles.css | 6 ++ .../META-INF/container.xml | 6 ++ .../mimetype | 1 + .../EPUB/content_001.mp3 | Bin 0 -> 10363 bytes .../EPUB/content_001.smil | 9 +++ .../EPUB/content_001.svg | 7 ++ .../EPUB/nav.xhtml | 14 ++++ .../EPUB/package.opf | 23 ++++++ .../EPUB/styles.css | 6 ++ .../META-INF/container.xml | 6 ++ .../mimetype | 1 + .../EPUB/content_001.mp3 | Bin 0 -> 10363 bytes .../EPUB/content_001.smil | 9 +++ .../EPUB/content_001.svg | 7 ++ .../EPUB/nav.xhtml | 14 ++++ .../EPUB/package.opf | 23 ++++++ .../EPUB/styles.css | 6 ++ .../META-INF/container.xml | 6 ++ .../mimetype | 1 + .../09-media-overlays/media-overlays.feature | 59 ++++++++++++--- 54 files changed, 556 insertions(+), 30 deletions(-) create mode 100644 src/test/resources/epub3/03-resources/files/file-url-in-svg-content-error.svg create mode 100644 src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/content_001.svg create mode 100644 src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/nav.xhtml create mode 100644 src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/package.opf create mode 100644 src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/META-INF/container.xml create mode 100644 src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/mimetype create mode 100644 src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/content_001.svg create mode 100644 src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/nav.xhtml create mode 100644 src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/package.opf create mode 100644 src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/META-INF/container.xml create mode 100644 src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/mimetype create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/content_001.mp3 create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/content_001.smil create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/content_001.svg create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/nav.xhtml create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/package.opf create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/META-INF/container.xml create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/mimetype create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/content_001.mp3 create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/content_001.smil create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/content_001.svg create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/nav.xhtml create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/package.opf create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/META-INF/container.xml create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/mimetype create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/content_001.mp3 create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/content_001.smil create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/content_001.svg create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/nav.xhtml create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/package.opf create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/styles.css create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/META-INF/container.xml create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/mimetype create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/content_001.mp3 create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/content_001.smil create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/content_001.svg create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/nav.xhtml create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/package.opf create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/styles.css create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/META-INF/container.xml create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/mimetype create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/content_001.mp3 create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/content_001.smil create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/content_001.svg create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/nav.xhtml create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/package.opf create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/styles.css create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/META-INF/container.xml create mode 100644 src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/mimetype diff --git a/src/main/java/com/adobe/epubcheck/css/CSSHandler.java b/src/main/java/com/adobe/epubcheck/css/CSSHandler.java index 0899ba9e9..fec6c3f16 100644 --- a/src/main/java/com/adobe/epubcheck/css/CSSHandler.java +++ b/src/main/java/com/adobe/epubcheck/css/CSSHandler.java @@ -159,7 +159,7 @@ else if (uriOrString.getType() == CssConstruct.Type.STRING) } if (uri != null) { - resolveAndRegister(uri, line, col, atRule.toCssString(), Reference.Type.GENERIC); + resolveAndRegister(uri, line, col, atRule.toCssString(), Reference.Type.STYLESHEET); } } } @@ -390,7 +390,10 @@ private void resolveAndRegister(String uriString, int line, int col, String cssC if (url != null && context.referenceRegistry.isPresent()) { context.referenceRegistry.get().registerReference(url, type, getCorrectedEPUBLocation(line, col, cssContext)); - if (context.isRemote(url)) + // register that a remote resource was found + // no need to register a remote stylesheet, as these are disallowed + // and will be reported elsewhere + if (type != Reference.Type.STYLESHEET && context.isRemote(url)) { detectedProperties.add(ITEM_PROPERTIES.REMOTE_RESOURCES); } diff --git a/src/main/java/com/adobe/epubcheck/ops/OPSHandler.java b/src/main/java/com/adobe/epubcheck/ops/OPSHandler.java index dfcf41c5b..1867e05a1 100755 --- a/src/main/java/com/adobe/epubcheck/ops/OPSHandler.java +++ b/src/main/java/com/adobe/epubcheck/ops/OPSHandler.java @@ -25,7 +25,10 @@ import java.util.Locale; import java.util.Stack; +import org.w3c.epubcheck.constants.MIMEType; import org.w3c.epubcheck.core.references.Reference; +import org.w3c.epubcheck.core.references.Reference.Type; +import org.xml.sax.SAXException; import com.adobe.epubcheck.api.EPUBLocation; import com.adobe.epubcheck.css.CSSChecker; @@ -40,6 +43,8 @@ import com.adobe.epubcheck.xml.model.XMLElement; import io.mola.galimatias.URL; +import net.sf.saxon.trans.XPathException; +import net.sf.saxon.tree.util.ProcInstParser; public class OPSHandler extends XMLHandler { @@ -190,6 +195,10 @@ public void startElement() Reference.Type resourceType = Reference.Type.GENERIC; if (ns != null) { + if (name.equals("style")) + { + textNode = new StringBuilder(); + } if (ns.equals("http://www.w3.org/2000/svg")) { if (name.equals("lineargradient") || name.equals("radialgradient") @@ -246,10 +255,6 @@ else if (name.equals("link")) { checkLink(); } - else if (name.equals("style")) - { - textNode = new StringBuilder(); - } else if (name.equals("iframe")) { checkIFrame(); @@ -341,20 +346,21 @@ public void endElement() EPUBLocation currentLocation = elementLocationStack.pop(); - if (EpubConstants.HtmlNamespaceUri.equals(ns)) + if ("style".equals(name)) { - - if ("style".equals(name)) + String style = textNode.toString(); + if (style.length() > 0) { - String style = textNode.toString(); - if (style.length() > 0) - { - this.hasCSS = true; - new CSSChecker(context, style, currentLocation.getLine(), false).check(); - } - textNode = null; + this.hasCSS = true; + new CSSChecker(context, style, currentLocation.getLine(), false).check(); } - else if ("table".equals(name)) + textNode = null; + } + + if (EpubConstants.HtmlNamespaceUri.equals(ns)) + { + + if ("table".equals(name)) { if (tableDepth > 0) { @@ -392,4 +398,39 @@ public void characters(char[] chars, int start, int length) } } + @Override + public void processingInstruction(String target, String data) + throws SAXException + { + super.processingInstruction(target, data); + + // for SVG documents, parse 'xml-stylesheet' processing instructions + if (MIMEType.SVG.is(context.mimeType) && "xml-stylesheet".equals(target)) + { + checkXMLStylesheetPI(data); + } + } + + protected void checkXMLStylesheetPI(String data) + { + assert data != null; + try + { + String type = ProcInstParser.getPseudoAttribute(data, "type"); + if (type == null || MIMEType.CSS.is(type)) + { + String href = ProcInstParser.getPseudoAttribute(data, "href"); + URL url = checkURL(href); + if (url != null) + { + hasCSS = true; + registerReference(url, Type.STYLESHEET); + } + } + } catch (XPathException e1) + { + // ignore invalid declaration, must have been reported earlier + } + } + } diff --git a/src/test/resources/epub3/03-resources/files/file-url-in-svg-content-error.svg b/src/test/resources/epub3/03-resources/files/file-url-in-svg-content-error.svg new file mode 100644 index 000000000..f16c08964 --- /dev/null +++ b/src/test/resources/epub3/03-resources/files/file-url-in-svg-content-error.svg @@ -0,0 +1,10 @@ + + + + SVG Content Document + + Rectangle + + diff --git a/src/test/resources/epub3/03-resources/files/file-url-in-xhtml-content-error.xhtml b/src/test/resources/epub3/03-resources/files/file-url-in-xhtml-content-error.xhtml index bc75bc27d..99e377845 100644 --- a/src/test/resources/epub3/03-resources/files/file-url-in-xhtml-content-error.xhtml +++ b/src/test/resources/epub3/03-resources/files/file-url-in-xhtml-content-error.xhtml @@ -3,6 +3,9 @@ Minimal EPUB +

Loomings

diff --git a/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/content_001.svg b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/content_001.svg new file mode 100644 index 000000000..beee238e5 --- /dev/null +++ b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/content_001.svg @@ -0,0 +1,9 @@ + + + SVG Content Document + Rectangle + + + diff --git a/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/nav.xhtml b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/nav.xhtml new file mode 100644 index 000000000..b75e4403d --- /dev/null +++ b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/nav.xhtml @@ -0,0 +1,14 @@ + + + + + Minimal Nav + + + + + diff --git a/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/package.opf b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/package.opf new file mode 100644 index 000000000..97e2cf422 --- /dev/null +++ b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/EPUB/package.opf @@ -0,0 +1,16 @@ + + + + Minimal EPUB 3.0 + en + NOID + 2017-06-14T00:00:01Z + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/META-INF/container.xml b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/META-INF/container.xml new file mode 100644 index 000000000..318782179 --- /dev/null +++ b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/META-INF/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/mimetype b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/mimetype new file mode 100644 index 000000000..57ef03f24 --- /dev/null +++ b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-import-error/mimetype @@ -0,0 +1 @@ +application/epub+zip \ No newline at end of file diff --git a/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/content_001.svg b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/content_001.svg new file mode 100644 index 000000000..0746bd644 --- /dev/null +++ b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/content_001.svg @@ -0,0 +1,7 @@ + + + + SVG Content Document + Rectangle + + diff --git a/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/nav.xhtml b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/nav.xhtml new file mode 100644 index 000000000..b75e4403d --- /dev/null +++ b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/nav.xhtml @@ -0,0 +1,14 @@ + + + + + Minimal Nav + + + + + diff --git a/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/package.opf b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/package.opf new file mode 100644 index 000000000..97e2cf422 --- /dev/null +++ b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/EPUB/package.opf @@ -0,0 +1,16 @@ + + + + Minimal EPUB 3.0 + en + NOID + 2017-06-14T00:00:01Z + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/META-INF/container.xml b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/META-INF/container.xml new file mode 100644 index 000000000..318782179 --- /dev/null +++ b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/META-INF/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/mimetype b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/mimetype new file mode 100644 index 000000000..57ef03f24 --- /dev/null +++ b/src/test/resources/epub3/03-resources/files/resources-remote-stylesheet-svg-xmlpi-error/mimetype @@ -0,0 +1 @@ +application/epub+zip \ No newline at end of file diff --git a/src/test/resources/epub3/03-resources/resources.feature b/src/test/resources/epub3/03-resources/resources.feature index 2bb733b62..c9e49aa70 100644 --- a/src/test/resources/epub3/03-resources/resources.feature +++ b/src/test/resources/epub3/03-resources/resources.feature @@ -472,6 +472,18 @@ Then error RSC-006 is reported And no other errors or warnings are reported + @spec @xref:sec-resource-locations + Scenario: Report a remote stylesheet declared in SVG XML processing instruction + When checking EPUB 'resources-remote-stylesheet-svg-xmlpi-error' + Then error RSC-006 is reported + And no other errors or warnings are reported + + @spec @xref:sec-resource-locations + Scenario: Report a remote stylesheet declared in SVG inline style import + When checking EPUB 'resources-remote-stylesheet-svg-import-error' + Then error RSC-006 is reported + And no other errors or warnings are reported + @spec @xref:sec-resource-locations Scenario: Warn about a remote resource with a non `https` URL When checking EPUB 'resources-remote-not-https-warning' @@ -544,9 +556,15 @@ And no other errors or warnings are reported @spec @xref:sec-file-urls - Scenario: Report a file URL used in a content document + Scenario: Report a file URL used in an XHTML content document When checking document 'file-url-in-xhtml-content-error.xhtml' - Then error RSC-030 is reported + Then error RSC-030 is reported 2 times + And no other errors or warnings are reported + + @spec @xref:sec-file-urls + Scenario: Report a file URL used in an SVG content document + When checking document 'file-url-in-svg-content-error.svg' + Then error RSC-030 is reported 2 times And no other errors or warnings are reported @spec @xref:sec-file-urls diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/content_001.mp3 b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/content_001.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3f140bbc4f2bba4396e38c140245d027a5aa5681 GIT binary patch literal 10363 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 LR + + + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/content_001.svg b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/content_001.svg new file mode 100644 index 000000000..036ce299b --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/content_001.svg @@ -0,0 +1,14 @@ + + + SVG Content Document + Rectangle + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/nav.xhtml b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/nav.xhtml new file mode 100644 index 000000000..b75e4403d --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/nav.xhtml @@ -0,0 +1,14 @@ + + + + + Minimal Nav + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/package.opf b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/package.opf new file mode 100644 index 000000000..cc19a573a --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/EPUB/package.opf @@ -0,0 +1,22 @@ + + + + Minimal EPUB 3.0 + en + NOID + 2017-06-14T00:00:01Z + 2.5s + 2.5s + -epub-media-overlay-active + -epub-media-overlay-playing + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/META-INF/container.xml b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/META-INF/container.xml new file mode 100644 index 000000000..318782179 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/META-INF/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/mimetype b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/mimetype new file mode 100644 index 000000000..57ef03f24 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-inline-style-valid/mimetype @@ -0,0 +1 @@ +application/epub+zip \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/content_001.mp3 b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/content_001.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3f140bbc4f2bba4396e38c140245d027a5aa5681 GIT binary patch literal 10363 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 LR + + + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/content_001.svg b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/content_001.svg new file mode 100644 index 000000000..cb4d2de6e --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/content_001.svg @@ -0,0 +1,6 @@ + + + SVG Content Document + Rectangle + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/nav.xhtml b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/nav.xhtml new file mode 100644 index 000000000..b75e4403d --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/nav.xhtml @@ -0,0 +1,14 @@ + + + + + Minimal Nav + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/package.opf b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/package.opf new file mode 100644 index 000000000..cc19a573a --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/EPUB/package.opf @@ -0,0 +1,22 @@ + + + + Minimal EPUB 3.0 + en + NOID + 2017-06-14T00:00:01Z + 2.5s + 2.5s + -epub-media-overlay-active + -epub-media-overlay-playing + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/META-INF/container.xml b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/META-INF/container.xml new file mode 100644 index 000000000..318782179 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/META-INF/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/mimetype b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/mimetype new file mode 100644 index 000000000..57ef03f24 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-style-not-found-error/mimetype @@ -0,0 +1 @@ +application/epub+zip \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/content_001.mp3 b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/content_001.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3f140bbc4f2bba4396e38c140245d027a5aa5681 GIT binary patch literal 10363 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 LR + + + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/content_001.svg b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/content_001.svg new file mode 100644 index 000000000..f19fbaee2 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/content_001.svg @@ -0,0 +1,9 @@ + + + SVG Content Document + Rectangle + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/nav.xhtml b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/nav.xhtml new file mode 100644 index 000000000..b75e4403d --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/nav.xhtml @@ -0,0 +1,14 @@ + + + + + Minimal Nav + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/package.opf b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/package.opf new file mode 100644 index 000000000..05c947ddb --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/package.opf @@ -0,0 +1,23 @@ + + + + Minimal EPUB 3.0 + en + NOID + 2017-06-14T00:00:01Z + 2.5s + 2.5s + -epub-media-overlay-active + -epub-media-overlay-playing + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/styles.css b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/styles.css new file mode 100644 index 000000000..2062937c2 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/EPUB/styles.css @@ -0,0 +1,6 @@ +.-epub-media-overlay-active { + background-color: yellow; +} +.-epub-media-overlay-playing { + color: gray; +} \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/META-INF/container.xml b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/META-INF/container.xml new file mode 100644 index 000000000..318782179 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/META-INF/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/mimetype b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/mimetype new file mode 100644 index 000000000..57ef03f24 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-import-valid/mimetype @@ -0,0 +1 @@ +application/epub+zip \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/content_001.mp3 b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/content_001.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3f140bbc4f2bba4396e38c140245d027a5aa5681 GIT binary patch literal 10363 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 LR + + + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/content_001.svg b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/content_001.svg new file mode 100644 index 000000000..7bee699b7 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/content_001.svg @@ -0,0 +1,7 @@ + + + SVG Content Document + Rectangle + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/nav.xhtml b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/nav.xhtml new file mode 100644 index 000000000..b75e4403d --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/nav.xhtml @@ -0,0 +1,14 @@ + + + + + Minimal Nav + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/package.opf b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/package.opf new file mode 100644 index 000000000..05c947ddb --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/package.opf @@ -0,0 +1,23 @@ + + + + Minimal EPUB 3.0 + en + NOID + 2017-06-14T00:00:01Z + 2.5s + 2.5s + -epub-media-overlay-active + -epub-media-overlay-playing + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/styles.css b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/styles.css new file mode 100644 index 000000000..2062937c2 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/EPUB/styles.css @@ -0,0 +1,6 @@ +.-epub-media-overlay-active { + background-color: yellow; +} +.-epub-media-overlay-playing { + color: gray; +} \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/META-INF/container.xml b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/META-INF/container.xml new file mode 100644 index 000000000..318782179 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/META-INF/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/mimetype b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/mimetype new file mode 100644 index 000000000..57ef03f24 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-link-valid/mimetype @@ -0,0 +1 @@ +application/epub+zip \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/content_001.mp3 b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/content_001.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3f140bbc4f2bba4396e38c140245d027a5aa5681 GIT binary patch literal 10363 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 LR + + + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/content_001.svg b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/content_001.svg new file mode 100644 index 000000000..29d2ddff8 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/content_001.svg @@ -0,0 +1,7 @@ + + + + SVG Content Document + Rectangle + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/nav.xhtml b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/nav.xhtml new file mode 100644 index 000000000..b75e4403d --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/nav.xhtml @@ -0,0 +1,14 @@ + + + + + Minimal Nav + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/package.opf b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/package.opf new file mode 100644 index 000000000..05c947ddb --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/package.opf @@ -0,0 +1,23 @@ + + + + Minimal EPUB 3.0 + en + NOID + 2017-06-14T00:00:01Z + 2.5s + 2.5s + -epub-media-overlay-active + -epub-media-overlay-playing + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/styles.css b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/styles.css new file mode 100644 index 000000000..2062937c2 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/EPUB/styles.css @@ -0,0 +1,6 @@ +.-epub-media-overlay-active { + background-color: yellow; +} +.-epub-media-overlay-playing { + color: gray; +} \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/META-INF/container.xml b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/META-INF/container.xml new file mode 100644 index 000000000..318782179 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/META-INF/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/mimetype b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/mimetype new file mode 100644 index 000000000..57ef03f24 --- /dev/null +++ b/src/test/resources/epub3/09-media-overlays/files/mediaoverlays-active-class-svg-stylesheet-xml-pi-valid/mimetype @@ -0,0 +1 @@ +application/epub+zip \ No newline at end of file diff --git a/src/test/resources/epub3/09-media-overlays/media-overlays.feature b/src/test/resources/epub3/09-media-overlays/media-overlays.feature index 472730378..9d63ea91f 100644 --- a/src/test/resources/epub3/09-media-overlays/media-overlays.feature +++ b/src/test/resources/epub3/09-media-overlays/media-overlays.feature @@ -202,44 +202,81 @@ Feature: EPUB 3 — Media Overlays ### 9.3.4 Associating style information - + @spec @xref:sec-docs-assoc-style Scenario: Verify 'media:active-class' and 'media:playback-active-class' properties referring to classes defined in a stylesheet Given the reporting level is set to USAGE When checking EPUB 'mediaoverlays-active-class-stylesheet-valid' - Then usage CSS-029 is reported 0 times - And no errors or warnings are reported - + Then no errors or warnings are reported + And no usages are reported + @spec @xref:sec-docs-assoc-style Scenario: Verify 'media:active-class' and 'media:playback-active-class' properties referring to classes defined inline + Given the reporting level is set to USAGE When checking EPUB 'mediaoverlays-active-class-inline-valid' Then no errors or warnings are reported - + And no usages are reported + + @spec @xref:sec-docs-assoc-style + Scenario: Verify 'media:active-class' and 'media:playback-active-class' properties referring to classes defined inline in SVG + Given the reporting level is set to USAGE + When checking EPUB 'mediaoverlays-active-class-svg-inline-style-valid' + Then no errors or warnings are reported + And no usages are reported + + @spec @xref:sec-docs-assoc-style + Scenario: Verify 'media:active-class' and 'media:playback-active-class' properties referring to classes defined in stylesheet linked from SVG + Given the reporting level is set to USAGE + When checking EPUB 'mediaoverlays-active-class-svg-stylesheet-link-valid' + Then no errors or warnings are reported + And no usages are reported + + @spec @xref:sec-docs-assoc-style + Scenario: Verify 'media:active-class' and 'media:playback-active-class' properties referring to classes defined in stylesheet imported from SVG + Given the reporting level is set to USAGE + When checking EPUB 'mediaoverlays-active-class-svg-stylesheet-import-valid' + Then no errors or warnings are reported + And no usages are reported + + @spec @xref:sec-docs-assoc-style + Scenario: Verify 'media:active-class' and 'media:playback-active-class' properties referring to classes defined in stylesheet linked as processing instruction from SVG + Given the reporting level is set to USAGE + When checking EPUB 'mediaoverlays-active-class-svg-stylesheet-xml-pi-valid' + Then no errors or warnings are reported + And no usages are reported + Scenario: Report when well-known class names are found in CSS but not declared in the package document Given the reporting level is set to USAGE When checking EPUB 'mediaoverlays-active-class-stylesheet-undeclared-valid' Then usage CSS-029 is reported 2 times - But no errors or warnings are reported - + But no other usages are reported + And no errors or warnings are reported + @spec @xref:sec-docs-assoc-style - Scenario: Report when 'media:active-class' is defined but no CSS was found in the content document + Scenario: Report when 'media:active-class' is defined but no CSS was found in the XHTML content document When checking EPUB 'mediaoverlays-active-class-style-not-found-error' Then error CSS-030 is reported And no other errors or warnings are reported @spec @xref:sec-docs-assoc-style - Scenario: Report when 'media:playback-active-class' is defined but no CSS was found in the content document + Scenario: Report when 'media:playback-active-class' is defined but no CSS was found in the XHTML content document When checking EPUB 'mediaoverlays-playback-active-class-style-not-found-error' Then error CSS-030 is reported And no other errors or warnings are reported + @spec @xref:sec-docs-assoc-style + Scenario: Report when 'media:active-class' is defined but no CSS was found in the SVG content document + When checking EPUB 'mediaoverlays-active-class-svg-style-not-found-error' + Then error CSS-030 is reported + And no other errors or warnings are reported + @spec @xref:sec-docs-assoc-style Scenario: Report a 'media:active-class' property with a refines attribute When checking file 'mediaoverlays-active-class-refines-error.opf' Then error RSC-005 is reported And the message contains "must not be used with the media:active-class property" And no other errors or warnings are reported - + @spec @xref:sec-docs-assoc-style Scenario: Report a 'media:playback-active-class' property with a refines attribute When checking file 'mediaoverlays-playback-active-class-refines-error.opf' @@ -260,7 +297,7 @@ Feature: EPUB 3 — Media Overlays Then error RSC-005 is reported And the message contains "must define a single class name" And no other errors or warnings are reported - + #Scenario: Detect when media overlays class are declared in the publication but no CSS is found ### 9.3.5 Media overlays packaging