From bdee846cd2402566907b1c2f0497ee7021539772 Mon Sep 17 00:00:00 2001 From: Romain Deltour Date: Mon, 24 Jan 2022 03:31:24 +0100 Subject: [PATCH] feat: any file extension is now allowed EPUB 3.3 has no longer any requirement for file extensions. EPUBCheck only checked the extension of XHTML files, this check is now suppressed. This commit: - removes the check for `.xhtml` (supresses `HTM_014a`) - keeps the old check for EPUB 2.0.1 - add tests for various file extensions Fox #1223 --- .../epubcheck/messages/DefaultSeverities.java | 2 +- .../com/adobe/epubcheck/opf/OPFChecker30.java | 6 ------ .../epub3/content-publication.feature | 16 +++++++------- .../EPUB/content_001.img | 6 ++++++ .../EPUB/nav.xhtml | 14 ++++++++++++ .../EPUB/package.opf | 16 ++++++++++++++ .../META-INF/container.xml | 6 ++++++ .../mimetype | 1 + .../EPUB/content_001.web | 11 ++++++++++ .../EPUB/nav.xhtml | 14 ++++++++++++ .../EPUB/package.opf | 16 ++++++++++++++ .../META-INF/container.xml | 6 ++++++ .../mimetype | 1 + .../EPUB/content_001.mo | 9 ++++++++ .../EPUB/content_001.mp3 | Bin 0 -> 10363 bytes .../EPUB/content_001.xhtml | 11 ++++++++++ .../EPUB/nav.xhtml | 14 ++++++++++++ .../EPUB/package.opf | 20 ++++++++++++++++++ .../META-INF/container.xml | 6 ++++++ .../mimetype | 1 + .../EPUB/content_001.xhtml | 11 ++++++++++ .../EPUB/nav.xhtml | 14 ++++++++++++ .../EPUB/package.pkg | 16 ++++++++++++++ .../META-INF/container.xml | 6 ++++++ .../mimetype | 1 + .../epub3/mediaoverlays-publication.feature | 4 ++++ .../epub3/package-publication.feature | 6 +++++- 27 files changed, 218 insertions(+), 16 deletions(-) create mode 100644 src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/content_001.img create mode 100644 src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/nav.xhtml create mode 100644 src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/package.opf create mode 100644 src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/META-INF/container.xml create mode 100644 src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/mimetype create mode 100644 src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/content_001.web create mode 100644 src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/nav.xhtml create mode 100644 src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/package.opf create mode 100644 src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/META-INF/container.xml create mode 100644 src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/mimetype create mode 100644 src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mo create mode 100644 src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mp3 create mode 100644 src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.xhtml create mode 100644 src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/nav.xhtml create mode 100644 src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/package.opf create mode 100644 src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/META-INF/container.xml create mode 100644 src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/mimetype create mode 100644 src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/content_001.xhtml create mode 100644 src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/nav.xhtml create mode 100644 src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/package.pkg create mode 100644 src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/META-INF/container.xml create mode 100644 src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/mimetype diff --git a/src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java b/src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java index 65d71c011..249b7f3f4 100644 --- a/src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java +++ b/src/main/java/com/adobe/epubcheck/messages/DefaultSeverities.java @@ -107,7 +107,7 @@ private void initialize() severities.put(MessageId.HTM_012, Severity.USAGE); severities.put(MessageId.HTM_013, Severity.USAGE); severities.put(MessageId.HTM_014, Severity.WARNING); - severities.put(MessageId.HTM_014a, Severity.WARNING); + severities.put(MessageId.HTM_014a, Severity.SUPPRESSED); severities.put(MessageId.HTM_015, Severity.SUPPRESSED); severities.put(MessageId.HTM_016, Severity.SUPPRESSED); severities.put(MessageId.HTM_017, Severity.ERROR); diff --git a/src/main/java/com/adobe/epubcheck/opf/OPFChecker30.java b/src/main/java/com/adobe/epubcheck/opf/OPFChecker30.java index 9c8de1ae4..8835634de 100644 --- a/src/main/java/com/adobe/epubcheck/opf/OPFChecker30.java +++ b/src/main/java/com/adobe/epubcheck/opf/OPFChecker30.java @@ -113,12 +113,6 @@ protected void checkItem(OPFItem item, OPFHandler opfHandler) report.message(MessageId.OPF_091, EPUBLocation.create(path, item.getLineNumber(), item.getColumnNumber())); } - if ("application/xhtml+xml".equals(mimeType) - && !"xhtml".equals(Files.getFileExtension(PathUtil.removeFragment(item.getPath())))) - { - report.message(MessageId.HTM_014a, - EPUBLocation.create(path, item.getLineNumber(), item.getColumnNumber()), item.getPath()); - } // Note: item fallback existence is checked in schematron, i.e.: // opfHandler.getItemById(item.getFallback().get()).isPresent() == true diff --git a/src/test/resources/epub3/content-publication.feature b/src/test/resources/epub3/content-publication.feature index 7f7b89263..6432e2d82 100644 --- a/src/test/resources/epub3/content-publication.feature +++ b/src/test/resources/epub3/content-publication.feature @@ -15,6 +15,10 @@ Feature: EPUB 3 ▸ Content Documents ▸ Full Publication Checks ## 2. XHTML Content Documents + Scenario: Verify that an XHTML Content Document can have any extension + When checking EPUB 'content-xhtml-file-extension-unusual-valid' + Then no errors or warnings are reported + ### 2.2 Content Conformance Scenario: Report RelaxNG schema errors when checking a Content Document in a full publication @@ -244,14 +248,6 @@ Feature: EPUB 3 ▸ Content Documents ▸ Full Publication Checks And no other errors or warnings are reported - #### File Properties - - Scenario: Report an XHTML content document without an `.xhtml` extension - When checking EPUB 'content-xhtml-extension-warning' - Then warning HTM-014a is reported - And no other errors or warnings are reported - - ### 2.5 HTML Deviations and Constraints #### 2.5.5 Foreign Resource Restrictions @@ -306,6 +302,10 @@ Feature: EPUB 3 ▸ Content Documents ▸ Full Publication Checks Then error RSC-015 is reported And no other errors or warnings are reported + Scenario: Verify that an SVG Content Document can have any extension + When checking EPUB 'content-svg-file-extension-unusual-valid' + Then no errors or warnings are reported + ## 4. CSS Style Sheets diff --git a/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/content_001.img b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/content_001.img new file mode 100644 index 000000000..ea66534c9 --- /dev/null +++ b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/content_001.img @@ -0,0 +1,6 @@ + + + SVG Content Document + Rectangle + + diff --git a/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/nav.xhtml b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/nav.xhtml new file mode 100644 index 000000000..f7b525b57 --- /dev/null +++ b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/nav.xhtml @@ -0,0 +1,14 @@ + + + + + Minimal Nav + + + + + diff --git a/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/package.opf b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/EPUB/package.opf new file mode 100644 index 000000000..ec0b8c0be --- /dev/null +++ b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/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/files/epub/content-svg-file-extension-unusual-valid/META-INF/container.xml b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/META-INF/container.xml new file mode 100644 index 000000000..318782179 --- /dev/null +++ b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/META-INF/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/mimetype b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/mimetype new file mode 100644 index 000000000..57ef03f24 --- /dev/null +++ b/src/test/resources/epub3/files/epub/content-svg-file-extension-unusual-valid/mimetype @@ -0,0 +1 @@ +application/epub+zip \ No newline at end of file diff --git a/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/content_001.web b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/content_001.web new file mode 100644 index 000000000..ea29a1610 --- /dev/null +++ b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/content_001.web @@ -0,0 +1,11 @@ + + + + + Minimal EPUB + + +

Loomings

+

Call me Ishmael.

+ + diff --git a/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/nav.xhtml b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/nav.xhtml new file mode 100644 index 000000000..b840c01b9 --- /dev/null +++ b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/nav.xhtml @@ -0,0 +1,14 @@ + + + + + Minimal Nav + + + + + diff --git a/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/package.opf b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/EPUB/package.opf new file mode 100644 index 000000000..924f45c77 --- /dev/null +++ b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/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/files/epub/content-xhtml-file-extension-unusual-valid/META-INF/container.xml b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/META-INF/container.xml new file mode 100644 index 000000000..318782179 --- /dev/null +++ b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/META-INF/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/mimetype b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/mimetype new file mode 100644 index 000000000..57ef03f24 --- /dev/null +++ b/src/test/resources/epub3/files/epub/content-xhtml-file-extension-unusual-valid/mimetype @@ -0,0 +1 @@ +application/epub+zip \ No newline at end of file diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mo b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mo new file mode 100644 index 000000000..11a9a791c --- /dev/null +++ b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mo @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mp3 b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/content_001.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3f140bbc4f2bba4396e38c140245d027a5aa5681 GIT binary patch literal 10363 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 LR + + + + Minimal EPUB + + +

Loomings

+

Call me Ishmael.

+ + diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/nav.xhtml b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/nav.xhtml new file mode 100644 index 000000000..240745e63 --- /dev/null +++ b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/nav.xhtml @@ -0,0 +1,14 @@ + + + + + Minimal Nav + + + + + diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/package.opf b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/package.opf new file mode 100644 index 000000000..ac200b1b0 --- /dev/null +++ b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/EPUB/package.opf @@ -0,0 +1,20 @@ + + + + Minimal EPUB 3.0 + en + NOID + 2017-06-14T00:00:01Z + 2.5s + 2.5s + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/META-INF/container.xml b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/META-INF/container.xml new file mode 100644 index 000000000..318782179 --- /dev/null +++ b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/META-INF/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/mimetype b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/mimetype new file mode 100644 index 000000000..57ef03f24 --- /dev/null +++ b/src/test/resources/epub3/files/epub/mediaoverlays-file-extension-unusual-valid/mimetype @@ -0,0 +1 @@ +application/epub+zip \ No newline at end of file diff --git a/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/content_001.xhtml b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/content_001.xhtml new file mode 100644 index 000000000..ea29a1610 --- /dev/null +++ b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/content_001.xhtml @@ -0,0 +1,11 @@ + + + + + Minimal EPUB + + +

Loomings

+

Call me Ishmael.

+ + diff --git a/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/nav.xhtml b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/nav.xhtml new file mode 100644 index 000000000..240745e63 --- /dev/null +++ b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/nav.xhtml @@ -0,0 +1,14 @@ + + + + + Minimal Nav + + + + + diff --git a/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/package.pkg b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/package.pkg new file mode 100644 index 000000000..0d1eec6e9 --- /dev/null +++ b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/EPUB/package.pkg @@ -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/files/epub/package-file-extension-unusual-valid/META-INF/container.xml b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/META-INF/container.xml new file mode 100644 index 000000000..336e1a50e --- /dev/null +++ b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/META-INF/container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/mimetype b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/mimetype new file mode 100644 index 000000000..57ef03f24 --- /dev/null +++ b/src/test/resources/epub3/files/epub/package-file-extension-unusual-valid/mimetype @@ -0,0 +1 @@ +application/epub+zip \ No newline at end of file diff --git a/src/test/resources/epub3/mediaoverlays-publication.feature b/src/test/resources/epub3/mediaoverlays-publication.feature index 781daaf09..1f533931f 100644 --- a/src/test/resources/epub3/mediaoverlays-publication.feature +++ b/src/test/resources/epub3/mediaoverlays-publication.feature @@ -18,6 +18,10 @@ Feature: EPUB 3 ▸ Media Overlays ▸ Full Publication Checks When checking EPUB 'mediaoverlays-minimal-valid' Then no errors or warnings are reported + Scenario: Verify that a Media Overlays Document can have any extension + When checking EPUB 'mediaoverlays-file-extension-unusual-valid' + Then no errors or warnings are reported + ## 2. Media Overlay Document Definition diff --git a/src/test/resources/epub3/package-publication.feature b/src/test/resources/epub3/package-publication.feature index d025bd252..1a69146ff 100644 --- a/src/test/resources/epub3/package-publication.feature +++ b/src/test/resources/epub3/package-publication.feature @@ -15,10 +15,14 @@ Feature: EPUB 3 ▸ Packages ▸ Full Publication Checks Scenario: Verify a minimal EPUB When checking EPUB 'minimal' - Then no errors or warnings are reported + Then no errors or warnings are reported ## 3. Package Document + Scenario: Verify that the Package Document can have any extension + When checking EPUB 'package-file-extension-unusual-valid' + Then no errors or warnings are reported + ### 3.4.1 The package Element # FIXME the current API doesn’t allow the version to be explicitly set