Class SVGOnLoadExceptionTest

  • All Implemented Interfaces:
    Test

    public class SVGOnLoadExceptionTest
    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. In that process, the test checks for the occurence of a specific exception type and, for BridgeExceptions, for a given error code. If an exception of the given type (and, optionally, code) happens, then the test passes. If an exception of an unexpected type (or code, for BridgeExceptions) happens, or if no exception happens, the test fails. The following properties control the test's operation: - Scripts: list of allowed script types (e.g., "application/java-archive") - ScriptOrigin: "ANY", "DOCUMENT", "EMBEDED", "NONE" - ResourceOrigin: "ANY", "DOCUMENT", "EMBEDED", "NONE" - ExpectedExceptionClass (e.g., "java.lang.SecurityException") - ExpectedErrorCode (e.g., "err.uri.unsecure") - Validate (e.g., "true")
    Version:
    $Id: SVGOnLoadExceptionTest.java 1831626 2018-05-15 11:10:36Z ssteiner $
    • Field Detail

      • RAN

        public static final java.lang.String RAN
        Value for the script having successfully run.
        See Also:
        Constant Field Values
      • ERROR_EXCEPTION_DID_NOT_OCCUR

        public static final java.lang.String ERROR_EXCEPTION_DID_NOT_OCCUR
        Error when the expected exception did not occur
        See Also:
        Constant Field Values
      • ERROR_UNEXPECTED_EXCEPTION

        public static final java.lang.String ERROR_UNEXPECTED_EXCEPTION
        Error when an exception occured, but not of the expected class
        See Also:
        Constant Field Values
      • ERROR_UNEXPECTED_ERROR_CODE

        public static final java.lang.String ERROR_UNEXPECTED_ERROR_CODE
        Error when a BridgeException occured, as expected, but with an unexpected error code
        See Also:
        Constant Field Values
      • ERROR_SCRIPT_DID_NOT_RUN

        public static final java.lang.String ERROR_SCRIPT_DID_NOT_RUN
        Error when the script does not run as expected.
        See Also:
        Constant Field Values
      • ENTRY_KEY_UNEXPECTED_EXCEPTION

        public static final java.lang.String ENTRY_KEY_UNEXPECTED_EXCEPTION
        Entry describing the unexpected exception
        See Also:
        Constant Field Values
      • ENTRY_KEY_UNEXPECTED_ERROR_CODE

        public static final java.lang.String ENTRY_KEY_UNEXPECTED_ERROR_CODE
        Entry describing the unexpected error code
        See Also:
        Constant Field Values
      • ENTRY_KEY_EXPECTED_ERROR_CODE

        public static final java.lang.String ENTRY_KEY_EXPECTED_ERROR_CODE
        Entry describign the expected error code
        See Also:
        Constant Field Values
      • ENTRY_KEY_EXPECTED_EXCEPTION

        public static final java.lang.String ENTRY_KEY_EXPECTED_EXCEPTION
        Entry describing the expected exception
        See Also:
        Constant Field Values
      • ENTRY_KEY_UNEXPECTED_RESULT

        public static final java.lang.String ENTRY_KEY_UNEXPECTED_RESULT
        Entry describing the unexpected exception
        See Also:
        Constant Field Values
      • ERROR_CODE_NO_CHECK

        public static final java.lang.String ERROR_CODE_NO_CHECK
        Value used to disable error code check on BridgeExceptions
        See Also:
        Constant Field Values
      • svgURL

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

        protected java.lang.String scripts
        The allowed script types
      • expectedExceptionClass

        protected java.lang.String expectedExceptionClass
        Name of the expected exception class
      • expectedErrorCode

        protected java.lang.String expectedErrorCode
        Expected error code (for BridgeExceptions)
      • scriptOrigin

        protected java.lang.String scriptOrigin
        The allowed script origin
      • resourceOrigin

        protected java.lang.String resourceOrigin
        The allowed external resource origin
      • secure

        protected boolean secure
        True if the scripts are run securely (i.e., with a security manager)
      • validate

        protected java.lang.Boolean validate
        Controls whether or not the input SVG document should be validated
      • fileName

        protected java.lang.String fileName
        The name of the test file
      • restricted

        protected boolean restricted
        Controls whether on not the document should be processed from a 'restricted' context, one with no createClassLoader permission.
    • Constructor Detail

      • SVGOnLoadExceptionTest

        public SVGOnLoadExceptionTest()
        Default constructor
    • Method Detail

      • getRestricted

        public boolean getRestricted()
      • setRestricted

        public void setRestricted​(boolean restricted)
      • setScripts

        public void setScripts​(java.lang.String scripts)
      • getScripts

        public java.lang.String getScripts()
      • setScriptOrigin

        public void setScriptOrigin​(java.lang.String scriptOrigin)
      • getScriptOrigin

        public java.lang.String getScriptOrigin()
      • setResourceOrigin

        public void setResourceOrigin​(java.lang.String resourceOrigin)
      • getResourceOrigin

        public java.lang.String getResourceOrigin()
      • setSecure

        public void setSecure​(boolean secure)
      • getSecure

        public boolean getSecure()
      • setExpectedExceptionClass

        public void setExpectedExceptionClass​(java.lang.String expectedExceptionClass)
      • getExpectedExceptionClass

        public java.lang.String getExpectedExceptionClass()
      • setExpectedErrorCode

        public void setExpectedErrorCode​(java.lang.String expectedErrorCode)
      • getExpectedErrorCode

        public java.lang.String getExpectedErrorCode()
      • getValidate

        public java.lang.Boolean getValidate()
      • setValidate

        public void setValidate​(java.lang.Boolean validate)
      • setId

        public void setId​(java.lang.String id)
        Description copied from class: AbstractTest
        Set this Test's id. Null is not allowed.
        Specified by:
        setId in interface Test
        Overrides:
        setId in class AbstractTest
      • 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
        Overrides:
        runImpl in class AbstractTest
        Throws:
        java.lang.Exception
      • testImpl

        protected TestReport testImpl()
        Implementation helper
      • handleException

        protected TestReport handleException​(java.lang.Exception e)
        Compares the input exception with the expected exception If they match, then the test passes. Otherwise, the test fails
      • isMatch

        protected boolean isMatch​(java.lang.Class cl,
                                  java.lang.String name)
        Check if the input class' name (or one of its base classes) matches the input name.