[Httpunit-commit] CVS: httpunit/src/com/meterware/httpunit ScriptingEngineFactory.java,NONE,1.1 Fram
Brought to you by:
russgold
From: Russell G. <rus...@us...> - 2002-08-05 18:58:47
|
Update of /cvsroot/httpunit/httpunit/src/com/meterware/httpunit In directory usw-pr-cvs1:/tmp/cvs-serv24279/src/com/meterware/httpunit Modified Files: FrameHolder.java HttpUnitOptions.java Added Files: ScriptingEngineFactory.java Log Message: Initiate JavaScript automatically ***** Error reading new file[Errno 2] No such file or directory: 'ScriptingEngineFactory.java' Index: FrameHolder.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/httpunit/FrameHolder.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- FrameHolder.java 1 Aug 2002 14:58:59 -0000 1.2 +++ FrameHolder.java 5 Aug 2002 18:58:43 -0000 1.3 @@ -72,6 +72,7 @@ createSubFrames( response.getTarget(), response.getFrameNames() ); WebRequest[] requests = response.getFrameRequests(); for (int i = 0; i < requests.length; i++) _client.getResponse( requests[ i ] ); + HttpUnitOptions.getScriptingEngine().associate( response ); } } Index: HttpUnitOptions.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/httpunit/HttpUnitOptions.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- HttpUnitOptions.java 26 Jun 2002 15:48:56 -0000 1.21 +++ HttpUnitOptions.java 5 Aug 2002 18:58:43 -0000 1.22 @@ -31,6 +31,9 @@ **/ public abstract class HttpUnitOptions { + final static public String DEFAULT_SCRIPT_ENGINE_FACTORY = "com.meterware.httpunit.javascript.JavaScriptEngineFactory"; + + /** * Resets all options to their default values. */ @@ -50,6 +53,8 @@ _postIncludesCharset = false; _acceptGzip = true; _acceptCookies = true; + setScriptEngineClassName( DEFAULT_SCRIPT_ENGINE_FACTORY ); + setScriptingEnabled( true ); } @@ -351,11 +356,69 @@ return _listeners; } + + public static String getScriptEngineClassName() { + return _scriptEngineClassName; + } + + + public static void setScriptEngineClassName( String scriptEngineClassName ) { + if (_scriptEngineClassName == null || !_scriptEngineClassName.equals( scriptEngineClassName )) { + _scriptingEngine = null; + } + _scriptEngineClassName = scriptEngineClassName; + } + + + public static ScriptingEngineFactory getScriptingEngine() { + if (_scriptingEngine == null) { + try { + Class factoryClass = Class.forName( _scriptEngineClassName ); + _scriptingEngine = (ScriptingEngineFactory) factoryClass.newInstance(); + } catch (ClassNotFoundException e) { + disableScripting( e, "Unable to find scripting engine factory class " ); + } catch (InstantiationException e) { + disableScripting( e, "Unable to instantiate scripting engine factory class " ); + } catch (IllegalAccessException e) { + disableScripting( e, "Unable to create scripting engine factory class " ); + } + } + return _scriptingEngine; + } + + + public static void setScriptingEnabled( boolean scriptingEnabled ) { + if (scriptingEnabled != _scriptingEnabled) { + _scriptingEngine = scriptingEnabled ? null : NULL_SCRIPTING_ENGINE_FACTORY; + } + _scriptingEnabled = scriptingEnabled; + } + + + public static boolean isScriptingEnabled() { + return _scriptingEnabled; + } + + + private static void disableScripting( Exception e, String errorMessage ) { + System.err.println( errorMessage + _scriptEngineClassName ); + System.err.println( "" + e ); + System.err.println( "JavaScript execution disabled"); + _scriptingEngine = NULL_SCRIPTING_ENGINE_FACTORY; + } + + //--------------------------------- private members -------------------------------------- private static final String DEFAULT_CONTENT_TYPE = "text/plain"; + private static final ScriptingEngineFactory NULL_SCRIPTING_ENGINE_FACTORY = new ScriptingEngineFactory() { + public void associate( WebResponse response ) { + } + }; + + private static boolean _acceptGzip = true; private static boolean _acceptCookies = true; @@ -388,7 +451,15 @@ private static Vector _listeners; + private static String _scriptEngineClassName; + + private static ScriptingEngineFactory _scriptingEngine; + + private static boolean _scriptingEnabled = true; + + static { _listeners = new Vector(); + reset(); } } |