gecko-dev/java/plugins/test/doc/equiv_classes.html

439 строки
10 KiB
HTML

<html>
<head>
<title>
Browser side pluglet API arguments partitioning.
</title>
</head>
<body bgcolor=white>
<B>Table of contents</B>
<OL>
<LI><A href=#intro>Introduction</A>
<LI><A href=#PM>PlugletManager interface</A>
<LI><A href=#PP>PlugletPeer interface</A>
<LI><A href=#PSI>PlugletStreamInfo interface</A>
<LI><A href=#PTI>PlugletTagInfo</A>
<LI><A href=#PTI2>PlugletTagInfo2</A>
</OL>
<A name=intro>
Below the description of equivalence class partitioning of the browser side pluglet API.<br>
This partitioning is based on:
<UL>
<LI> common partitioning for parameter of given type <BR>
(for example &lt;for_string&gt;: null, 0 length, some arbitrary string)
<LI>partitioning from point of view of functional sense of this parameter <BR>
(for example &lt;for_target&gt;: &lt;for_string&gt;, "_self", "_parent", "_top", "_blank",
non-existing and existing named target)
</UL>
Some commom set of parameters:
<table border=1 bgcolor=#99E2EF>
<tr><td>&lt;for_int&gt;</td><td> 0, (+-)MAX, some arbitrary value</td></tr>
<tr><td>&lt;for_boolean&gt;</td><td> true, false</td></tr>
<tr><td>&lt;for_string&gt;</td><td>null, non-null with 0 length, some arbitrary string</td></tr>
<tr><td>&lt;for_target&gt;</td><td> &lt;for_string&gt;, "_self", "_parent", "_top", "_blank", non-existing and
existing named target</td></tr>
</table>
<pre>
Comment: <I>
- for PlugletManager.getURL and especially for PlugletManager.postURL the number of
possible combinations of parameters is very big, so the combinations with more than
2 for getURL and 1 for postURL "incorrect" parameters will not be tested.
- for methods with non-void return values should be modelled situations such that expected
return values cover all significant classes from specified set of return values (
for example for PlugletInstancePeer.getMode specified set of return values consist of
only two values indicated embedded pluglet or full-page ( not of whole set of int values))
- values of arguments for each test you can find in the ParamCombinations file in test dir
</I>
</pre>
<a name=PM>
<table BORDER=1 COLS=3 WIDTH=100% bgcolor=#99E2EF><!--#66FFFF-->
<tr><td COLSPAN=3 align=center bgcolor=#58B5EF>Interface PlugletManager</td></tr>
<tr>
<td width=10% align=center>
Method
</td>
<td width=20% align=center>
Arguments
</td>
<td align=center>
Values
</td>
</tr>
<tr>
<td ROWSPAN=7 width=10% align=center>public void getURL<!--(<BR>PlugletInstance plugletInst,<BR>
URL url,<BR> String target,<BR>
PlugletStreamListener streamListener,<BR>
String altHost,<BR> URL referrer,<BR>
boolean forceJSEnabled);</td>-->
<td width=20%>PlugletInstance plugletInst</td>
<td>null, this and other instance (when method is called inside the pluglet instance)</td>
</tr>
<tr>
<td>URL url</td>
<td>null, http, javascript, ftp, file(win32 & unix), gopher, news
</td>
</tr>
<tr>
<td>String target
</td>
<td>&lt;for_target&gt;
</td>
</tr>
<tr>
<td>PlugletStreamListener streamListener
</td>
<td>null, new listener and used
</td>
</tr>
<tr>
<td>String altHost
</td>
<td>null, the same as in url, other than in url, bad string(not ip address)
</td>
</tr>
<tr>
<td>URL refferer
</td>
<td>null, the url of this page - cases of http, javascript, ftp, file(although in
last 3 cases there is not refferer)
</td>
</tr>
<tr>
<td>boolean forceJSEnabled
</td>
<td>&lt;for_boolean&gt;
</td>
</tr>
<tr>
<td ROWSPAN=12 width=10% align=center>public void postURL<!--(<BR>
PlugletInstance plugletInst,<BR>
URL url,<BR>
int postDataLen, <BR>
byte[] postData,<BR>
boolean isFile,<BR>
String target,<BR>
PlugletStreamListener streamListener,<BR>
String altHost, <BR>
URL referrer,<BR>
boolean forceJSEnabled,<BR>
int postHeadersLength, <BR>
byte[] postHeaders);</td><BR>-->
<td>PlugletInstance plugletInst</td>
<td>null, this and other instance (when method is called inside the pluglet instance)</td>
</tr>
<tr>
<td>URL url
</td>
<td>null, http, javascript, ftp, file(win32 & unix), news, mailto
</td>
</tr>
<tr>
<td>int postDataLen
</td>
<td>&lt;for_int&gt;, equal to actual length, less and great
</td>
</tr>
<tr>
<td>byte[] postData
</td>
<td>null, 0 byte array, random array fulfiled and not, syntactically
correct path + name of existing file and non-existent, also syntactically incorrect path
</td>
</tr>
<tr>
<td>boolean isFile
</td>
<td>&lt;for_boolean&gt;
</td>
</tr>
<tr>
<td>String target
</td>
<td>&lt;for_target&gt;
</td>
</tr>
<tr>
<td>PlugletStreamListener streamListener
</td>
<td>null, new listener and used
</td>
</tr>
<tr>
<td>String altHost
</td>
<td>null, the same as in url, other than in url, bad string(not ip address)
</td>
</tr>
<tr>
<td>URL referrer
</td>
<td>null, the url of this page - cases of http, javascript, ftp, file(although in
last 3 cases there is not refferer)
</td>
</tr>
<tr>
<td>boolean forceJSEnabled
</td>
<td>&lt;for_boolean&gt;
</td>
</tr>
<tr>
<td>int postHeadersLength
</td>
<td>&lt;for_int&gt;, equal to actual length, less and great
</td>
</tr>
<tr>
<td>byte[] postHeaders
</td>
<td>postHeaders
null, 0 byte array, correctly formed headers (fulfiled array and not) and not
</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public void reloadPluglets
</td>
<td>boolean reloadPages</td>
<td>&lt;for_boolean&gt;</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String userAgent</td>
<td>none</td>
<td>none</td>
</tr>
</table>
<A name=PP>
<table BORDER=1 COLS=3 WIDTH=100% bgcolor=#99E2EF>
<tr><td COLSPAN=3 align=center bgcolor=#58B5EF>Interface PlugletPeer</td></tr>
<tr>
<td width=10% align=center>
Method
</td>
<td width=20% align=center>
Arguments
</td>
<td align=center>
Values
</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getMIMEType</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public int getMode</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public PlugletTagInfo getTagInfo</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getValue</td>
<td>int variable</td>
<td>&lt;for_int&gt;, PlugletInstancePeer.NETSCAPE_WINDOW, PlugletManager.APPCONTEXT,
PlugletManager.DISPLAY</td>
</tr>
<tr>
<td ROWSPAN=2 width=10% align=center>public OutputStream newStream</td>
<td>String type</td>
<td>&lt;for_string&gt;, text/html, text/plain, image/gif, application/x-java-vm, incorrectly formed</td>
</tr>
<tr>
<td>String target
</td>
<td>&lt;for_target&gt;
</td>
</tr>
<tr>
<td ROWSPAN=2 width=10% align=center>public void setWindowSize</td>
<td>int width</td>
<td>&lt;for_int&gt;</td>
</tr>
<tr>
<td>int height
</td>
<td>&lt;for_int&gt;
</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public void showStatus</td>
<td>String message</td>
<td>&lt;for_string&gt;</td>
</tr>
</table>
<A name=PSI>
<table BORDER=1 COLS=3 WIDTH=100% bgcolor=#99E2EF>
<tr><td COLSPAN=3 align=center bgcolor=#58B5EF>Interface PlugletStreamInfo</td></tr>
<tr>
<td width=10% align=center>
Method
</td>
<td width=20% align=center>
Arguments
</td>
<td align=center>
Values
</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getContentType</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public int getLastModified</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public int getLength</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getURL</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public boolean isSeekable</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public void requestRead</td>
<td>ByteRanges ranges</td>
<td>null, non-null object with 0 ranges, with 1 range for each combination: &lt;for_int&gt; x &lt;for_int&gt;, with more than 1 range</td>
</tr>
</table>
<A name=PTI>
<table BORDER=1 COLS=3 WIDTH=100% bgcolor=#99E2EF>
<tr><td COLSPAN=3 align=center bgcolor=#58B5EF>Interface PlugletTagInfo</td></tr>
<tr>
<td width=10% align=center>
Method
</td>
<td width=20% align=center>
Arguments
</td>
<td align=center>
Values
</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getAttribute</td>
<td>String name</td>
<td>&lt;for_string&gt;, existing attribute name</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public Properties getAttributes</td>
<td>none</td>
<td>none</td>
</tr>
</table>
<A name=PTI2>
<table BORDER=1 COLS=3 WIDTH=100% bgcolor=#99E2EF>
<tr><td COLSPAN=3 align=center bgcolor=#58B5EF>Interface PlugletTagInfo2</td></tr>
<tr>
<td width=10% align=center>
Method
</td>
<td width=20% align=center>
Arguments
</td>
<td align=center>
Values
</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getAlignment</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getAttribute</td>
<td>String name</td>
<td>&lt;for_string&gt;, existing attribute name</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public Properties getAttributes</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public int getBorderHorizSpace</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public int getBorderVertSpace</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getDocumentBase</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getDocumentEncoding</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public int getHeight</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getParameter</td>
<td>String name</td>
<td>&lt;for_string&gt;, existing parameter name</td></td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public Properties getParameters</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getTagText</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public String getTagType</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public int getUniqueID</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td ROWSPAN=1 width=10% align=center>public int getWidth</td>
<td>none</td>
<td>none</td>
</tr>
</table>
</body>
</html>