Class SVGOnLoadExceptionTest

java.lang.Object
org.apache.batik.test.AbstractTest
org.apache.batik.test.svg.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 Details

    • RAN

      public static final String RAN
      Value for the script having successfully run.
      See Also:
    • ERROR_EXCEPTION_DID_NOT_OCCUR

      public static final String ERROR_EXCEPTION_DID_NOT_OCCUR
      Error when the expected exception did not occur
      See Also:
    • ERROR_UNEXPECTED_EXCEPTION

      public static final String ERROR_UNEXPECTED_EXCEPTION
      Error when an exception occured, but not of the expected class
      See Also:
    • ERROR_UNEXPECTED_ERROR_CODE

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

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

      public static final String ENTRY_KEY_UNEXPECTED_EXCEPTION
      Entry describing the unexpected exception
      See Also:
    • ENTRY_KEY_UNEXPECTED_ERROR_CODE

      public static final String ENTRY_KEY_UNEXPECTED_ERROR_CODE
      Entry describing the unexpected error code
      See Also:
    • ENTRY_KEY_EXPECTED_ERROR_CODE

      public static final String ENTRY_KEY_EXPECTED_ERROR_CODE
      Entry describign the expected error code
      See Also:
    • ENTRY_KEY_EXPECTED_EXCEPTION

      public static final String ENTRY_KEY_EXPECTED_EXCEPTION
      Entry describing the expected exception
      See Also:
    • ENTRY_KEY_UNEXPECTED_RESULT

      public static final String ENTRY_KEY_UNEXPECTED_RESULT
      Entry describing the unexpected exception
      See Also:
    • ERROR_CODE_NO_CHECK

      public static final String ERROR_CODE_NO_CHECK
      Value used to disable error code check on BridgeExceptions
      See Also:
    • testNS

      public static final String testNS
      Test Namespace
      See Also:
    • svgURL

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

      protected String scripts
      The allowed script types
    • expectedExceptionClass

      protected String expectedExceptionClass
      Name of the expected exception class
    • expectedErrorCode

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

      protected String scriptOrigin
      The allowed script origin
    • resourceOrigin

      protected 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 Boolean validate
      Controls whether or not the input SVG document should be validated
    • fileName

      protected 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 Details

    • SVGOnLoadExceptionTest

      public SVGOnLoadExceptionTest()
      Default constructor
  • Method Details

    • getRestricted

      public boolean getRestricted()
    • setRestricted

      public void setRestricted(boolean restricted)
    • setScripts

      public void setScripts(String scripts)
    • getScripts

      public String getScripts()
    • setScriptOrigin

      public void setScriptOrigin(String scriptOrigin)
    • getScriptOrigin

      public String getScriptOrigin()
    • setResourceOrigin

      public void setResourceOrigin(String resourceOrigin)
    • getResourceOrigin

      public String getResourceOrigin()
    • setSecure

      public void setSecure(boolean secure)
    • getSecure

      public boolean getSecure()
    • setExpectedExceptionClass

      public void setExpectedExceptionClass(String expectedExceptionClass)
    • getExpectedExceptionClass

      public String getExpectedExceptionClass()
    • setExpectedErrorCode

      public void setExpectedErrorCode(String expectedErrorCode)
    • getExpectedErrorCode

      public String getExpectedErrorCode()
    • getValidate

      public Boolean getValidate()
    • setValidate

      public void setValidate(Boolean validate)
    • setId

      public void setId(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 String resolveURL(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 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:
      Exception
    • testImpl

      protected TestReport testImpl()
      Implementation helper
    • handleException

      protected TestReport handleException(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(Class cl, String name)
      Check if the input class' name (or one of its base classes) matches the input name.
    • buildUserAgent

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