[librsvg/librsvg-2.40] Oops, sort the list of supported SVG features so <switch> works
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg/librsvg-2.40] Oops, sort the list of supported SVG features so <switch> works
- Date: Tue, 29 Aug 2017 20:22:01 +0000 (UTC)
commit f87ea57e124d5ae0d271117707b3617831b4d084
Author: Federico Mena Quintero <federico gnome org>
Date: Tue Aug 29 15:15:01 2017 -0500
Oops, sort the list of supported SVG features so <switch> works
We use the list of supported features with bsearch(), and the list
was not sorted.
Added struct-cond-03-t.svg from the SVG test suite to this effect.
The reference PNG is different from the official test suite's original
one, because we do NOT support the SVG DOM feature. Still, the test
file lets us test for <switch> working based on supported feature names.
rsvg-cond.c | 7 +-
.../reftests/svg1.1/struct-cond-03-t-ref.png | Bin 0 -> 4433 bytes
.../fixtures/reftests/svg1.1/struct-cond-03-t.svg | 83 ++++++++++++++++++++
3 files changed, 87 insertions(+), 3 deletions(-)
---
diff --git a/rsvg-cond.c b/rsvg-cond.c
index b5c02a4..35a73b3 100644
--- a/rsvg-cond.c
+++ b/rsvg-cond.c
@@ -34,12 +34,13 @@
#include <stdlib.h>
#include <locale.h>
+/* Keep these sorted alphabetically! These are used with bsearch() */
static const char *implemented_features[] = {
- "http://www.w3.org/TR/SVG11/feature#BasicText",
"http://www.w3.org/TR/SVG11/feature#BasicFilter",
"http://www.w3.org/TR/SVG11/feature#BasicGraphicsAttribute",
"http://www.w3.org/TR/SVG11/feature#BasicPaintAttribute",
"http://www.w3.org/TR/SVG11/feature#BasicStructure",
+ "http://www.w3.org/TR/SVG11/feature#BasicText",
"http://www.w3.org/TR/SVG11/feature#ConditionalProcessing",
"http://www.w3.org/TR/SVG11/feature#ContainerAttribute",
"http://www.w3.org/TR/SVG11/feature#Filter",
@@ -49,11 +50,11 @@ static const char *implemented_features[] = {
"http://www.w3.org/TR/SVG11/feature#Mask",
"http://www.w3.org/TR/SVG11/feature#OpacityAttribute",
"http://www.w3.org/TR/SVG11/feature#Pattern",
+ "http://www.w3.org/TR/SVG11/feature#SVG",
+ "http://www.w3.org/TR/SVG11/feature#SVG-static",
"http://www.w3.org/TR/SVG11/feature#Shape",
"http://www.w3.org/TR/SVG11/feature#Structure",
"http://www.w3.org/TR/SVG11/feature#Style",
- "http://www.w3.org/TR/SVG11/feature#SVG",
- "http://www.w3.org/TR/SVG11/feature#SVG-static",
"http://www.w3.org/TR/SVG11/feature#View",
"org.w3c.svg.static" /* deprecated SVG 1.0 feature string */
};
diff --git a/tests/fixtures/reftests/svg1.1/struct-cond-03-t-ref.png
b/tests/fixtures/reftests/svg1.1/struct-cond-03-t-ref.png
new file mode 100644
index 0000000..9a6a131
Binary files /dev/null and b/tests/fixtures/reftests/svg1.1/struct-cond-03-t-ref.png differ
diff --git a/tests/fixtures/reftests/svg1.1/struct-cond-03-t.svg
b/tests/fixtures/reftests/svg1.1/struct-cond-03-t.svg
new file mode 100644
index 0000000..93d5490
--- /dev/null
+++ b/tests/fixtures/reftests/svg1.1/struct-cond-03-t.svg
@@ -0,0 +1,83 @@
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+ <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
+ template-version="1.4" reviewer="CN" author="VH" status="accepted"
+ version="$Revision: 1.7 $" testname="$RCSfile: struct-cond-03-t.svg,v $">
+ <d:testDescription xmlns="http://www.w3.org/1999/xhtml"
href="http://www.w3.org/TR/SVG11/struct.html#ConditionalProcessing">
+ <p>
+ Tests the <switch> element with requiredFeatures.
+ </p>
+ </d:testDescription>
+ <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ Run the test. No interaction required.
+ </p>
+ </d:operatorScript>
+ <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ On the bottom half of the test, there is a first switch.
+ Because SVG Tiny does not support DOM, an SVG Tiny implementation
+ which does not support other SVG Profiles should show a green
+ rectangle. If the application supports the DOM, meaning that
+ it does more than just SVG Tiny, it should show a turquoise rectangle.
+ </p>
+ <p>
+ On the bottom half of the test, there is another switch.
+ The first child has a requiredFeatures set to
+ http://www.w3.org/TR/SVG11/feature#BasicText which all
+ SVG Tiny implementations should support. If the application
+ does, another green rectangle is displayed. Otherwise,
+ a red rectangle shows.
+ </p>
+ </d:passCriteria>
+ </d:SVGTestCase>
+ <title id="test-title">$RCSfile: struct-cond-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <switch>
+ <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#SVGDOM">
+ <rect x="30" y="20" width="420" height="130" fill="rgb(32, 178, 170)"/>
+ <text x="240" y="100" font-size="20" text-anchor="middle">This viewer does more than SVG Tiny</text>
+ </g>
+ <g>
+ <rect x="30" y="20" width="420" height="130" fill="#0F0"/>
+ </g>
+ </switch>
+
+ <switch transform="translate(0, 140)">
+ <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#BasicText">
+ <rect x="30" y="20" width="420" height="130" fill="#0F0"/>
+ </g>
+ <g>
+ <rect x="30" y="20" width="420" height="130" fill="#F00"/>
+ <text x="240" y="100" font-size="20" text-anchor="middle">This is not an SVG Tiny Viewer</text>
+ </g>
+ </switch>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]