I have changed the usage contract of the DocumentLoadListener slightly.
Prior to this checkin, calling getEventData() on the DocumentLoadEvent
passed in to your eventDispatched() method returned the URI to which the
event applies.
Now the getEventData() returns a Map. You must look up the "URI" key to
find the URI to which the event applies. If your listener is an
instance of PageInfoListener, and your event mask is
END_URL_LOAD_EVENT_MASK, your Map will have an additional entry under
the key "headers". This entry is another Map representing the response
headers.
DocumentLoadListener:
* <p>The <code>eventDispatched()</code> method is passed a {@link
* DocumentLoadEvent} instance. The <code>type</code> property of the
* event will be one of the types defined as a <code>public static final
* int</code> in <code>DocumentLoadEvent</code>.</p>
*
* <p>The <code>eventData</code> property of the
* <code>DocumentLoadEvent</code> instance will be a
* <code>java.util.Map</code>. For all <code>EVENT_MASK</code> types in
* <code>DocumentLoadEvent</code> the map will contain an entry under
* the key "<code>URI</code>" without the quotes. This will be the
* fully qualified URI for the event.</p>
*
* <p>For the <code>PROGRESS_URL_LOAD_EVENT_MASK</code> there will be an
* entry in the map for the key "<code>message</code>". This will be
* the progress message from the browser.</p>
PageInfoListener:
* <p>This {@link DocumentLoadListener} subclass adds the ability to get
* detailed information on each event. </p>
*
* <p>The <code>eventDispatched()</code> method is passed the same thing
* as in the {@link DocumentLoadListener}.</p>
*
* <p>The <code>eventData</code> property of the
* <code>DocumentLoadEvent</code> instance will be a
* <code>java.util.Map</code>. For the
* <code>END_URL_LOAD_EVENT_MASK</code> type in
* <code>DocumentLoadEvent</code> the map will contain an entry under
* the key "<code>URI</code>" without the quotes. This will be the
* fully qualified URI for the event. The map will also contain an
* entry under the key "<code>headers</code>". This entry will be a
* <code>Map</code> of all the response headers.</p>
The next step will be to allow the same procedure to work to discover
the request headers.
Ed
A classes_spec/org/mozilla/webclient/PageInfoListener.java
- marker class for listenening for high fidelity page information.
A src_moz/EventRegistrationImpl.cpp
- add boolean property, capturePageInfo to turn on or off high fidelity
page information collection.
M build-tests.xml
- add new test, DocumentLoadListenerTest
M build.xml
- added new JNI class, EventRegistrationImpl
M classes_spec/org/mozilla/webclient/CurrentPage2.java
M classes_spec/org/mozilla/webclient/impl/wrapper_native/CurrentPageImpl.java
- rollback previous API for headers discovery
M classes_spec/org/mozilla/webclient/impl/wrapper_native/EventRegistrationImpl.java
- pass thru the capturePageInfo property
- add URIToStringMap, currently not working.
M classes_spec/org/mozilla/webclient/test/EMWindow.java
- call toString() on the eventData, don't cast it to a String.
M src_moz/EmbedProgress.cpp
M src_moz/EmbedProgress.h
- leverage the nsIHttpHeaderVisitor interface to discover the response
headers.
- add boolean property capturePageInfo
A src_moz/HttpHeaderVisitorImpl.cpp
A src_moz/HttpHeaderVisitorImpl.h
- copy the headers to a Properties object.
M src_moz/Makefile.in
- compile two new files:
+ EventRegistrationImpl.cpp \
+ HttpHeaderVisitorImpl.cpp \
M src_moz/NativeBrowserControl.cpp
M src_moz/NativeBrowserControl.h
- pass the NativeWrapperFactory to our Init() method
- add wrapperFactory getter.
M src_moz/WrapperFactoryImpl.cpp
- pass the nativeWrapperFactory to the NativeBrowserControl's Init method.
M src_share/jni_util.cpp
M src_share/jni_util.h
- new constants: URI, headers
R test/automated/src/classes/org/mozilla/webclient/CurrentPageTest.java
- not yet time for this one
A test/automated/src/classes/org/mozilla/webclient/DocumentLoadListenerTest.java
- exercise bare minimum functionality of PageInfoListener
M test/manual/src/classes/org/mozilla/webclient/test/TestBrowser.java
- print out headers.
git-svn-id: svn://10.0.0.236/trunk@162011 18797224-902f-48f8-a5cc-f745e15eee43
193 lines
6.5 KiB
XML
193 lines
6.5 KiB
XML
<!--
|
|
Copyright 2002 Sun Microsystems, Inc. All rights reserved.
|
|
SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
|
-->
|
|
|
|
<project name="Webclient Unit Tests" default="run.test" basedir=".">
|
|
|
|
<!--
|
|
This is a generic build.xml file for Ant that is used to run the
|
|
Webclient unit tests. This build file *must* be called from the
|
|
build.xml file in order to inherit most of it's needed properties
|
|
(See below for the list of these properties).
|
|
-->
|
|
|
|
<!-- ========== Prerequisite Properties =================================== -->
|
|
|
|
|
|
<!--
|
|
These properties MUST be set on the "ant" command line, the "antrc"
|
|
properties file in your home directory, or from settings in a superior
|
|
build.xml script.
|
|
|
|
build.home Base directory into which we are building
|
|
the Struts components.
|
|
|
|
servlet.jar The servlet jar (either 2.2 or 2.3)
|
|
|
|
cactus.jar The Cactus jar (either for Servlet API
|
|
2.2 or 2.3)
|
|
|
|
cactus.ant.jar The Cactus custom Ant tasks jar
|
|
|
|
httpclient.jar The Cactus httpclient jar
|
|
|
|
junit.jar The JUnit jar
|
|
|
|
tomcat.home The home directory of where Tomcat 4.0
|
|
is installed
|
|
|
|
compile.debug The debug mode for compilation
|
|
|
|
compile.deprecation The deprecation mode for compilation
|
|
|
|
compile.optimize The optimization mode for compilation
|
|
|
|
src.dir The location of the source directory
|
|
|
|
app.name The name of the Struts jar (without the
|
|
'.jar' suffix
|
|
|
|
-->
|
|
|
|
<!-- ========== Initialization Properties ================================= -->
|
|
|
|
<!-- ========== Derived Properties ======================================== -->
|
|
|
|
<!--
|
|
These property values are derived from values defined above, and
|
|
generally should NOT be overridden by command line settings
|
|
-->
|
|
|
|
<!-- Default value for debugging arguments is no. Override in
|
|
build.properties -->
|
|
<property name="debug.jvm.args" value=""/>
|
|
|
|
<!-- Source directory for tests -->
|
|
<property name="src.test.dir" value="${basedir}/test/automated/src/classes"/>
|
|
<property name="src.manual.test.dir" value="${basedir}/test/manual/src/classes"/>
|
|
|
|
<!-- Output directory for tests -->
|
|
<property name="out.test.dir" value="${build.home}/test"/>
|
|
|
|
<!-- Output directory for test data files -->
|
|
<property name="build.test" value="${basedir}/build.test"/>
|
|
|
|
<property name="native.waitForDebugger" value=""/>
|
|
|
|
<path id="test.classpath">
|
|
<pathelement location="${junit.jar}"/>
|
|
<pathelement location="${build.home}"/>
|
|
<pathelement location="${out.test.dir}/classes"/>
|
|
</path>
|
|
|
|
|
|
<!-- ========== Executable Targets ======================================== -->
|
|
|
|
<!--
|
|
Compile unit tests
|
|
-->
|
|
<target name="compile.test" depends="copy-test-data-files">
|
|
|
|
<echo message="${build.home}"/>
|
|
|
|
<mkdir dir="${out.test.dir}/classes"/>
|
|
|
|
<javac destdir="${out.test.dir}/classes"
|
|
debug="${compile.debug}"
|
|
optimize="${compile.optimize}"
|
|
deprecation="${compile.deprecation}">
|
|
|
|
<classpath refid="test.classpath"/>
|
|
|
|
<src path="${src.test.dir}"/>
|
|
<src path="${src.manual.test.dir}"/>
|
|
<patternset>
|
|
<exclude name="**/*Win32*.java" if="build.unix.classes"/>
|
|
</patternset>
|
|
|
|
<patternset>
|
|
<exclude name="**/*Gtk*.java" if="build.win32.classes"/>
|
|
</patternset>
|
|
|
|
</javac>
|
|
|
|
</target>
|
|
|
|
<target name="copy-test-data-files">
|
|
<!-- Copy Unit test static files. -->
|
|
|
|
<mkdir dir="${build.test}"/>
|
|
|
|
<copy todir="${build.test}">
|
|
<fileset dir="${basedir}/test/automated/src/test"/>
|
|
</copy>
|
|
|
|
<copy todir="${out.test.dir}/classes">
|
|
<fileset dir="${src.manual.test.dir}">
|
|
<include name="**/*.gif" />
|
|
<include name="**/*.png" />
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
|
|
|
|
<target name="clean">
|
|
|
|
<delete dir="${out.test.dir}/classes"/>
|
|
<delete dir="${build.test}"/>
|
|
|
|
</target>
|
|
|
|
<target name="run.test" depends="compile.test">
|
|
|
|
<junit printsummary="yes" haltonfailure="yes" haltonerror="yes" fork="yes">
|
|
<jvmarg value="-Djava.library.path=${myenv.MOZILLA_FIVE_HOME}${PATH_SEP}${myenv.MOZILLA_FIVE_HOME}/components"/>
|
|
<jvmarg value="-DNSPR_LOG_MODULES=${myenv.NSPR_LOG_MODULES}"/>
|
|
<jvmarg value="-DNSPR_LOG_FILE=${myenv.NSPR_LOG_FILE}"/>
|
|
<jvmarg value="-DBROWSER_BIN_DIR=${myenv.MOZILLA_FIVE_HOME}"/>
|
|
<sysproperty key="native.waitForDebugger"
|
|
value="${native.waitForDebugger}"/>
|
|
<jvmarg line="${debug.jvm.args}"/>
|
|
|
|
<classpath refid="test.classpath"/>
|
|
|
|
<formatter type="plain" usefile="false"/>
|
|
<test name="org.mozilla.webclient.BrowserControlFactoryTest"/>
|
|
<test name="org.mozilla.webclient.ProfileManagerTest"/>
|
|
<test name="org.mozilla.webclient.BookmarksTest"/>
|
|
<test name="org.mozilla.webclient.PreferencesTest"/>
|
|
<test name="org.mozilla.webclient.impl.wrapper_native.WrapperFactoryImplTest"/>
|
|
<test name="org.mozilla.webclient.impl.WebclientFactoryImplTest"/>
|
|
<test name="org.mozilla.webclient.NavigationTest"/>
|
|
<test name="org.mozilla.webclient.HistoryTest"/>
|
|
<test name="org.mozilla.webclient.DocumentLoadListenerTest"/>
|
|
<!-- non running
|
|
<test name="org.mozilla.webclient.wrapper_native.gtk.TestGtkBrowserControlCanvas"/>
|
|
-->
|
|
|
|
</junit>
|
|
|
|
</target>
|
|
|
|
<target name="run.test.browser" depends="compile.test">
|
|
|
|
<java classname="org.mozilla.webclient.test.TestBrowser" fork="true">
|
|
<jvmarg value="-Djava.library.path=${myenv.MOZILLA_FIVE_HOME}${PATH_SEP}${myenv.MOZILLA_FIVE_HOME}/components"/>
|
|
<jvmarg value="-DNSPR_LOG_MODULES=${myenv.NSPR_LOG_MODULES}"/>
|
|
<jvmarg value="-DNSPR_LOG_FILE=${myenv.NSPR_LOG_FILE}"/>
|
|
<jvmarg value="-DBROWSER_BIN_DIR=${myenv.MOZILLA_FIVE_HOME}"/>
|
|
<sysproperty key="native.waitForDebugger"
|
|
value="${native.waitForDebugger}"/>
|
|
<jvmarg line="${debug.jvm.args}"/>
|
|
|
|
<classpath refid="test.classpath"/>
|
|
</java>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
</project>
|
|
|