Class SelfContainedSVGOnLoadTest

  • All Implemented Interfaces:
    Test

    public class SelfContainedSVGOnLoadTest
    extends AbstractTest
    This test takes an SVG file as an input. It processes the input SVG (meaning it turns it into a GVT tree) and then dispatches the 'onload' event. The SVG input file should contain script that will position the result of the test in the DOM using the following namespace:
    xmlns:test="http://xml.apache.org/batik/test"
    The result should be set in the result attribute of the <testResult> element by the script embeded in the input SVG test file.
    Sample input SVG file:
    <svg ... onload="runTest(evt)" xmlns:test="http://xml.apache.org/batik/test" > <script type="text/ecmascript"> function runTest(evt) { ...; // do some test var rootSvg = document.getDocumentElement(); var result = document.createElementNS("http://xml.apache.org/batik/test", "testResult"); result.setAttributeNS(null, "result", "failed"); result.setAttributeNS(null, "errorCode", "org.apache.batik.css.dom.wrong.computed.value"); rootSvg.appendChild(result); } </script> </svg>
    Version:
    $Id: SelfContainedSVGOnLoadTest.java 1806580 2017-08-29 12:06:44Z ssteiner $
    • Field Detail

      • ERROR_CANNOT_LOAD_SVG_DOCUMENT

        public static final java.lang.String ERROR_CANNOT_LOAD_SVG_DOCUMENT
        Error when the input file cannot be loaded into a Document object {0} = IOException message
        See Also:
        Constant Field Values
      • ERROR_WHILE_PROCESSING_SVG_DOCUMENT

        public static final java.lang.String ERROR_WHILE_PROCESSING_SVG_DOCUMENT
        Error while building the GVT tree or dispatching the 'onload' event.
        See Also:
        Constant Field Values
      • ERROR_UNEXPECTED_NUMBER_OF_TEST_RESULT_ELEMENTS

        public static final java.lang.String ERROR_UNEXPECTED_NUMBER_OF_TEST_RESULT_ELEMENTS
        There is either 0 or more than one <testResult> elements in the document after dispatching the onload event.
        See Also:
        Constant Field Values
      • ERROR_UNEXPECTED_RESULT_VALUE

        public static final java.lang.String ERROR_UNEXPECTED_RESULT_VALUE
        The 'result' attribute value is neither 'passed' nor 'failed'
        See Also:
        Constant Field Values
      • ERROR_MISSING_OR_EMPTY_ERROR_CODE_ON_FAILED_TEST

        public static final java.lang.String ERROR_MISSING_OR_EMPTY_ERROR_CODE_ON_FAILED_TEST
        The result was 'failed' but there was no 'errorCode' attribute or it was the empty string
        See Also:
        Constant Field Values
      • ENTRY_KEY_ERROR_DESCRIPTION

        public static final java.lang.String ENTRY_KEY_ERROR_DESCRIPTION
        Entry describing the error
        See Also:
        Constant Field Values
      • ENTRY_KEY_NUMBER_OF_TEST_RESULT_ELEMENTS

        public static final java.lang.String ENTRY_KEY_NUMBER_OF_TEST_RESULT_ELEMENTS
        Entry describing the number of testResult elements found in the document after dispatching onload.
        See Also:
        Constant Field Values
      • ENTRY_KEY_RESULT_VALUE

        public static final java.lang.String ENTRY_KEY_RESULT_VALUE
        Entry describing the result value (different from 'passed' or 'failed' found in the 'result' attribute.
        See Also:
        Constant Field Values
      • TAG_TEST_RESULT

        public static final java.lang.String TAG_TEST_RESULT
        Test Constants
        See Also:
        Constant Field Values
      • TAG_ERROR_DESCRIPTION_ENTRY

        public static final java.lang.String TAG_ERROR_DESCRIPTION_ENTRY
        See Also:
        Constant Field Values
      • ATTRIBUTE_RESULT

        public static final java.lang.String ATTRIBUTE_RESULT
        See Also:
        Constant Field Values
      • TEST_RESULT_PASSED

        public static final java.lang.String TEST_RESULT_PASSED
        See Also:
        Constant Field Values
      • TEST_RESULT_FAILED

        public static final java.lang.String TEST_RESULT_FAILED
        See Also:
        Constant Field Values
      • svgURL

        protected java.lang.String svgURL
        The URL for the input SVG document to be tested
    • Constructor Detail

      • SelfContainedSVGOnLoadTest

        public SelfContainedSVGOnLoadTest​(java.lang.String svgURL)
        Parameters:
        svgURL - the URL string for the SVG document being tested
      • SelfContainedSVGOnLoadTest

        protected SelfContainedSVGOnLoadTest()
        Default constructor
    • Method Detail

      • resolveURL

        protected java.lang.String resolveURL​(java.lang.String url)
        Resolves the input string as follows. + First, the string is interpreted as a file description. If the file exists, then the file name is turned into a URL. + Otherwise, the string is supposed to be a URL. If it is an invalid URL, an IllegalArgumentException is thrown.
      • runImpl

        public TestReport runImpl()
                           throws java.lang.Exception
        Run this test and produce a report. The test goes through the following steps:
        • load the input SVG into a Document
        • build the GVT tree corresponding to the Document and dispatch the 'onload' event
        • looks for one and only one <testResult> element in the Document. This is used to build the returned TestReport
        Overrides:
        runImpl in class AbstractTest
        Throws:
        java.lang.Exception
      • buildUserAgent

        protected UserAgent buildUserAgent()
        Give subclasses a chance to build their own UserAgent