зеркало из https://github.com/mozilla/gecko-dev.git
Pluglet API tests
This commit is contained in:
Родитель
3d76294465
Коммит
c6bfef23d2
|
@ -0,0 +1,18 @@
|
|||
# The timeouts of test execution
|
||||
DELAY=60
|
||||
DELAY_OF_CYCLE=5
|
||||
DELAY_INTERNAL=40
|
||||
|
||||
# The names of files for writing log and result by test
|
||||
LOG_FILE=PlugletTest.log
|
||||
RESULT_FILE=PlugletTest.res
|
||||
|
||||
#File separator (Used to specify PLUGLET property)
|
||||
FSEP=/
|
||||
# The root directory of the this pluglet API test suite
|
||||
TEST_TOP_DIR=C:\sync
|
||||
|
||||
# The URL of directory where the htmls of tests are placed
|
||||
# The path to this directory should be pointed in set_env.bat to be used
|
||||
# during building
|
||||
HTML_ROOT=file:/c:/sync/build/htroot
|
|
@ -0,0 +1,348 @@
|
|||
#
|
||||
# SecurityTests.keys
|
||||
#
|
||||
# Configuration key values
|
||||
#
|
||||
|
||||
#
|
||||
# DeleteFileTest.java test properties
|
||||
#
|
||||
DeleteFileTest.mustPass=true
|
||||
DeleteFileTest.FileName=foo
|
||||
|
||||
#
|
||||
# GetClipboardTest.java test properties
|
||||
#
|
||||
GetClipboardTest.mustPass=true
|
||||
|
||||
#
|
||||
# GetSysPropsTest.java test properties
|
||||
#
|
||||
GetSysPropsTest.mustPass=true
|
||||
GetSysPropsTest.propertyName=path
|
||||
|
||||
#
|
||||
# OpenWinTest.java test properties
|
||||
#
|
||||
OpenWinTest.mustPass=true
|
||||
|
||||
#
|
||||
# PrintTest.java test properties
|
||||
#
|
||||
PrintTest.mustPass=true
|
||||
|
||||
#
|
||||
# ReadFileTest.java test properties
|
||||
#
|
||||
ReadFileTest.mustPass=true
|
||||
ReadFileTest.FileName=foo
|
||||
|
||||
#
|
||||
# RemoteConnectTest.java test properties
|
||||
#
|
||||
RemoteConnectTest.mustPass=true
|
||||
RemoteConnectTest.URL=http://sirius
|
||||
|
||||
#
|
||||
# RunProgramTest.java test properties
|
||||
#
|
||||
RunProgramTest.mustPass=true
|
||||
RunProgramTest.command=ls -l
|
||||
|
||||
#
|
||||
# SecTestCanRead.java test properties
|
||||
#
|
||||
SecTestCanRead.mustPass=true
|
||||
SecTestCanRead.fName=TestProperties
|
||||
#
|
||||
# SecTestCanWrite.java test properties
|
||||
#
|
||||
SecTestCanWrite.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestClipboard.java test properties
|
||||
#
|
||||
SecTestClipboard.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestDelete.java test properties
|
||||
#
|
||||
SecTestDelete.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestEnv.java test properties
|
||||
#
|
||||
SecTestEnv.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestExists.java test properties
|
||||
#
|
||||
SecTestExists.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestFileDescriptorIn.java test properties
|
||||
#
|
||||
SecTestFileDescriptorIn.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestFileDescriptorOut.java test properties
|
||||
#
|
||||
SecTestFileDescriptorOut.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestFileInputStream.java test properties
|
||||
#
|
||||
SecTestFileInputStream.mustPass=true
|
||||
SecTestFileInputStream.fName=TestProperties
|
||||
|
||||
#
|
||||
# SecTestFileOutputStream.java test properties
|
||||
#
|
||||
SecTestFileOutputStream.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestGetAbsolutePath.java test properties
|
||||
#
|
||||
SecTestGetAbsolutePath.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestGetCanonicalPath.java test properties
|
||||
#
|
||||
SecTestGetCanonicalPath.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestGetContent.java test properties
|
||||
#
|
||||
SecTestGetContent.mustPass=true
|
||||
SecTestGetContent.fName=TestProperties
|
||||
|
||||
#
|
||||
# SecTestGetParent.java test properties
|
||||
#
|
||||
SecTestGetParent.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestGetPath.java test properties
|
||||
#
|
||||
SecTestGetPath.mustPass=true
|
||||
SecTestGetPath.fName=foo
|
||||
|
||||
#
|
||||
# SecTestGetProps.java test properties
|
||||
#
|
||||
SecTestGetProps.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestGetSecMgr.java test properties
|
||||
#
|
||||
SecTestGetSecMgr.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestIsDirectory.java test properties
|
||||
#
|
||||
SecTestIsDirectory.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestIsFile.java test properties
|
||||
#
|
||||
SecTestIsFile.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestLastModified.java test properties
|
||||
#
|
||||
SecTestLastModified.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestLength.java test properties
|
||||
#
|
||||
SecTestLength.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestList.java test properties
|
||||
#
|
||||
SecTestList.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestListJSFilter.java test properties
|
||||
#
|
||||
SecTestListJSFilter.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestMkdir.java test properties
|
||||
#
|
||||
SecTestMkdir.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestMkdirs.java test properties
|
||||
#
|
||||
SecTestMkdirs.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestOpenConx.java test properties
|
||||
#
|
||||
SecTestOpenConx.mustPass=true
|
||||
SecTestOpenConx.URL=http://sirius
|
||||
#
|
||||
# SecTestPrintStream.java test properties
|
||||
#
|
||||
SecTestPrintStream.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestRandomAccess.java test properties
|
||||
#
|
||||
SecTestRandomAccess.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestRandomAccessRW.java test properties
|
||||
#
|
||||
SecTestRandomAccessRW.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestRenameTo.java test properties
|
||||
#
|
||||
SecTestRenameTo.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestRunExec.java test properties
|
||||
#
|
||||
SecTestRunExec.mustPass=true
|
||||
SecTestRunExec.fExec=ls -l
|
||||
|
||||
#
|
||||
# SecTestRunExit.java test properties
|
||||
#
|
||||
SecTestRunExit.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestRunLoad.java test properties
|
||||
#
|
||||
SecTestRunLoad.mustPass=true
|
||||
SecTestRunLoad.libName=java
|
||||
# SecTestRunLoadLib.java test properties
|
||||
#
|
||||
SecTestRunLoadLib.mustPass=true
|
||||
SecTestRunLoadLib.libName=plugletjni
|
||||
|
||||
#
|
||||
# SecTestSetSecMgr.java test properties
|
||||
#
|
||||
SecTestSetSecMgr.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestSocket.java test properties
|
||||
#
|
||||
SecTestSocket.mustPass=true
|
||||
SecTestSocket.fHost=sirius
|
||||
SecTestSocket.fPort=80
|
||||
|
||||
#
|
||||
# SecTestSysExit.java test properties
|
||||
#
|
||||
SecTestSysExit.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestURLFac.java test properties
|
||||
#
|
||||
SecTestURLFac.mustPass=true
|
||||
#
|
||||
# SecTestXAccept.java test properties
|
||||
#
|
||||
SecTestXAccept.mustPass=true
|
||||
SecTestXAccept.fHost=sirius
|
||||
SecTestXAccept.fPort=80
|
||||
|
||||
#
|
||||
# SecTestXAccess.java test properties
|
||||
#
|
||||
SecTestXAccess.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXAccessTG.java test properties
|
||||
#
|
||||
SecTestXAccessTG.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXAccessTop.java test properties
|
||||
#
|
||||
SecTestXAccessTop.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXCCL.java test properties
|
||||
#
|
||||
SecTestXCCL.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXConn.java test properties
|
||||
#
|
||||
SecTestXConn.mustPass=true
|
||||
SecTestXConn.fHost=sirius
|
||||
SecTestXConn.fPort=80
|
||||
|
||||
#
|
||||
# SecTestXDelete.java test properties
|
||||
#
|
||||
SecTestXDelete.mustPass=true
|
||||
SecTestXDelete.fName=foo
|
||||
|
||||
#
|
||||
# SecTestXExec.java test properties
|
||||
#
|
||||
SecTestXExec.mustPass=true
|
||||
SecTestXExec.fExec=ls -l
|
||||
|
||||
#
|
||||
# SecTestXExit.java test properties
|
||||
#
|
||||
SecTestXExit.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXLink.java test properties
|
||||
#
|
||||
SecTestXLink.mustPass=true
|
||||
SecTestXLink.fLink=sirius
|
||||
#
|
||||
# SecTestXListen.java test properties
|
||||
#
|
||||
SecTestXListen.mustPass=true
|
||||
SecTestXListen.fPort=80
|
||||
|
||||
#
|
||||
# SecTestXPakAcc.java test properties
|
||||
#
|
||||
SecTestXPakAcc.mustPass=true
|
||||
SecTestXPakAcc.packageName=java.awt
|
||||
|
||||
#
|
||||
# SecTestXPakDef.java test properties
|
||||
#
|
||||
SecTestXPakDef.mustPass=true
|
||||
SecTestXPakDef.packageName=java.awt
|
||||
|
||||
#
|
||||
# SecTestXPropAcc.java test properties
|
||||
#
|
||||
SecTestXPropAcc.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXRead.java test properties
|
||||
#
|
||||
SecTestXRead.mustPass=true
|
||||
SecTestXRead.fName=foo
|
||||
|
||||
#
|
||||
# SecTestXSetFac.java test properties
|
||||
#
|
||||
SecTestXSetFac.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXWrite.java test properties
|
||||
#
|
||||
SecTestXWrite.mustPass=true
|
||||
SecTestXWrite.fName=foo
|
||||
|
||||
#
|
||||
# WriteFileTest.java test properties
|
||||
#
|
||||
WriteFileTest.mustPass=true
|
||||
WriteFileTest.FileName=foo
|
||||
|
|
@ -0,0 +1,351 @@
|
|||
#
|
||||
# SecurityTests.template
|
||||
#
|
||||
# This is a template file for the security tests properties.
|
||||
#
|
||||
|
||||
#
|
||||
# DeleteFileTest.java test properties
|
||||
#
|
||||
DeleteFileTest.mustPass=true
|
||||
DeleteFileTest.FileName=foo
|
||||
|
||||
#
|
||||
# GetClipboardTest.java test properties
|
||||
#
|
||||
GetClipboardTest.mustPass=true
|
||||
|
||||
#
|
||||
# GetSysPropsTest.java test properties
|
||||
#
|
||||
GetSysPropsTest.mustPass=true
|
||||
GetSysPropsTest.propertyName=path
|
||||
|
||||
#
|
||||
# OpenWinTest.java test properties
|
||||
#
|
||||
OpenWinTest.mustPass=true
|
||||
|
||||
#
|
||||
# PrintTest.java test properties
|
||||
#
|
||||
PrintTest.mustPass=true
|
||||
|
||||
#
|
||||
# ReadFileTest.java test properties
|
||||
#
|
||||
ReadFileTest.mustPass=true
|
||||
ReadFileTest.FileName=foo
|
||||
|
||||
#
|
||||
# RemoteConnectTest.java test properties
|
||||
#
|
||||
RemoteConnectTest.mustPass=true
|
||||
RemoteConnectTest.URL=http://sirius
|
||||
|
||||
#
|
||||
# RunProgramTest.java test properties
|
||||
#
|
||||
RunProgramTest.mustPass=true
|
||||
RunProgramTest.command=ls -l
|
||||
|
||||
#
|
||||
# SecTestCanRead.java test properties
|
||||
#
|
||||
SecTestCanRead.mustPass=true
|
||||
SecTestCanRead.fName=TestProperties
|
||||
#
|
||||
# SecTestCanWrite.java test properties
|
||||
#
|
||||
SecTestCanWrite.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestClipboard.java test properties
|
||||
#
|
||||
SecTestClipboard.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestDelete.java test properties
|
||||
#
|
||||
SecTestDelete.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestEnv.java test properties
|
||||
#
|
||||
SecTestEnv.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestExists.java test properties
|
||||
#
|
||||
SecTestExists.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestFileDescriptorIn.java test properties
|
||||
#
|
||||
SecTestFileDescriptorIn.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestFileDescriptorOut.java test properties
|
||||
#
|
||||
SecTestFileDescriptorOut.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestFileInputStream.java test properties
|
||||
#
|
||||
SecTestFileInputStream.mustPass=true
|
||||
SecTestFileInputStream.fName=TestProperties
|
||||
|
||||
#
|
||||
# SecTestFileOutputStream.java test properties
|
||||
#
|
||||
SecTestFileOutputStream.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestGetAbsolutePath.java test properties
|
||||
#
|
||||
SecTestGetAbsolutePath.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestGetCanonicalPath.java test properties
|
||||
#
|
||||
SecTestGetCanonicalPath.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestGetContent.java test properties
|
||||
#
|
||||
SecTestGetContent.mustPass=true
|
||||
SecTestGetContent.fName=TestProperties
|
||||
|
||||
#
|
||||
# SecTestGetParent.java test properties
|
||||
#
|
||||
SecTestGetParent.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestGetPath.java test properties
|
||||
#
|
||||
SecTestGetPath.mustPass=true
|
||||
SecTestGetPath.fName=foo
|
||||
|
||||
#
|
||||
# SecTestGetProps.java test properties
|
||||
#
|
||||
SecTestGetProps.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestGetSecMgr.java test properties
|
||||
#
|
||||
SecTestGetSecMgr.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestIsDirectory.java test properties
|
||||
#
|
||||
SecTestIsDirectory.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestIsFile.java test properties
|
||||
#
|
||||
SecTestIsFile.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestLastModified.java test properties
|
||||
#
|
||||
SecTestLastModified.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestLength.java test properties
|
||||
#
|
||||
SecTestLength.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestList.java test properties
|
||||
#
|
||||
SecTestList.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestListJSFilter.java test properties
|
||||
#
|
||||
SecTestListJSFilter.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestMkdir.java test properties
|
||||
#
|
||||
SecTestMkdir.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestMkdirs.java test properties
|
||||
#
|
||||
SecTestMkdirs.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestOpenConx.java test properties
|
||||
#
|
||||
SecTestOpenConx.mustPass=true
|
||||
SecTestOpenConx.URL=http://sirius
|
||||
|
||||
#
|
||||
# SecTestPrintStream.java test properties
|
||||
#
|
||||
SecTestPrintStream.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestRandomAccess.java test properties
|
||||
#
|
||||
SecTestRandomAccess.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestRandomAccessRW.java test properties
|
||||
#
|
||||
SecTestRandomAccessRW.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestRenameTo.java test properties
|
||||
#
|
||||
SecTestRenameTo.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestRunExec.java test properties
|
||||
#
|
||||
SecTestRunExec.mustPass=true
|
||||
SecTestRunExec.fExec=ls -l
|
||||
|
||||
#
|
||||
# SecTestRunExit.java test properties
|
||||
#
|
||||
SecTestRunExit.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestRunLoad.java test properties
|
||||
#
|
||||
SecTestRunLoad.mustPass=true
|
||||
SecTestRunLoad.libName=java
|
||||
#
|
||||
# SecTestRunLoadLib.java test properties
|
||||
#
|
||||
SecTestRunLoadLib.mustPass=true
|
||||
SecTestRunLoadLib.libName=plugletjni
|
||||
|
||||
#
|
||||
# SecTestSetSecMgr.java test properties
|
||||
#
|
||||
SecTestSetSecMgr.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestSocket.java test properties
|
||||
#
|
||||
SecTestSocket.mustPass=true
|
||||
SecTestSocket.fHost=sirius
|
||||
SecTestSocket.fPort=80
|
||||
|
||||
#
|
||||
# SecTestSysExit.java test properties
|
||||
#
|
||||
SecTestSysExit.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestURLFac.java test properties
|
||||
#
|
||||
SecTestURLFac.mustPass=true
|
||||
#
|
||||
# SecTestXAccept.java test properties
|
||||
#
|
||||
SecTestXAccept.mustPass=true
|
||||
SecTestXAccept.fHost=sirius
|
||||
SecTestXAccept.fPort=80
|
||||
|
||||
#
|
||||
# SecTestXAccess.java test properties
|
||||
#
|
||||
SecTestXAccess.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXAccessTG.java test properties
|
||||
#
|
||||
SecTestXAccessTG.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXAccessTop.java test properties
|
||||
#
|
||||
SecTestXAccessTop.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXCCL.java test properties
|
||||
#
|
||||
SecTestXCCL.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXConn.java test properties
|
||||
#
|
||||
SecTestXConn.mustPass=true
|
||||
SecTestXConn.fHost=sirius
|
||||
SecTestXConn.fPort=80
|
||||
|
||||
#
|
||||
# SecTestXDelete.java test properties
|
||||
#
|
||||
SecTestXDelete.mustPass=true
|
||||
SecTestXDelete.fName=foo
|
||||
|
||||
#
|
||||
# SecTestXExec.java test properties
|
||||
#
|
||||
SecTestXExec.mustPass=true
|
||||
SecTestXExec.fExec=ls -l
|
||||
|
||||
#
|
||||
# SecTestXExit.java test properties
|
||||
#
|
||||
SecTestXExit.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXLink.java test properties
|
||||
#
|
||||
SecTestXLink.mustPass=true
|
||||
SecTestXLink.fLink=sirius
|
||||
|
||||
#
|
||||
# SecTestXListen.java test properties
|
||||
#
|
||||
SecTestXListen.mustPass=true
|
||||
SecTestXListen.fPort=80
|
||||
|
||||
#
|
||||
# SecTestXPakAcc.java test properties
|
||||
#
|
||||
SecTestXPakAcc.mustPass=true
|
||||
SecTestXPakAcc.packageName=java.awt
|
||||
|
||||
#
|
||||
# SecTestXPakDef.java test properties
|
||||
#
|
||||
SecTestXPakDef.mustPass=true
|
||||
SecTestXPakDef.packageName=java.awt
|
||||
|
||||
#
|
||||
# SecTestXPropAcc.java test properties
|
||||
#
|
||||
SecTestXPropAcc.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXRead.java test properties
|
||||
#
|
||||
SecTestXRead.mustPass=true
|
||||
SecTestXRead.fName=foo
|
||||
|
||||
#
|
||||
# SecTestXSetFac.java test properties
|
||||
#
|
||||
SecTestXSetFac.mustPass=true
|
||||
|
||||
#
|
||||
# SecTestXWrite.java test properties
|
||||
#
|
||||
SecTestXWrite.mustPass=true
|
||||
SecTestXWrite.fName=foo
|
||||
|
||||
#
|
||||
# WriteFileTest.java test properties
|
||||
#
|
||||
WriteFileTest.mustPass=true
|
||||
WriteFileTest.FileName=foo
|
||||
|
|
@ -0,0 +1,351 @@
|
|||
#
|
||||
# SecurityTests.template
|
||||
#
|
||||
# This is a template file for the security tests properties.
|
||||
#
|
||||
|
||||
#
|
||||
# DeleteFileTest.java test properties
|
||||
#
|
||||
DeleteFileTest.mustPass=<DeleteFileTest.mustPass>
|
||||
DeleteFileTest.FileName=<DeleteFileTest.FileName>
|
||||
|
||||
#
|
||||
# GetClipboardTest.java test properties
|
||||
#
|
||||
GetClipboardTest.mustPass=<GetClipboardTest.mustPass>
|
||||
|
||||
#
|
||||
# GetSysPropsTest.java test properties
|
||||
#
|
||||
GetSysPropsTest.mustPass=<GetSysPropsTest.mustPass>
|
||||
GetSysPropsTest.propertyName=<GetSysPropsTest.propertyName>
|
||||
|
||||
#
|
||||
# OpenWinTest.java test properties
|
||||
#
|
||||
OpenWinTest.mustPass=<OpenWinTest.mustPass>
|
||||
|
||||
#
|
||||
# PrintTest.java test properties
|
||||
#
|
||||
PrintTest.mustPass=<PrintTest.mustPass>
|
||||
|
||||
#
|
||||
# ReadFileTest.java test properties
|
||||
#
|
||||
ReadFileTest.mustPass=<ReadFileTest.mustPass>
|
||||
ReadFileTest.FileName=<ReadFileTest.FileName>
|
||||
|
||||
#
|
||||
# RemoteConnectTest.java test properties
|
||||
#
|
||||
RemoteConnectTest.mustPass=<RemoteConnectTest.mustPass>
|
||||
RemoteConnectTest.URL=<RemoteConnectTest.URL>
|
||||
|
||||
#
|
||||
# RunProgramTest.java test properties
|
||||
#
|
||||
RunProgramTest.mustPass=<RunProgramTest.mustPass>
|
||||
RunProgramTest.command=<RunProgramTest.command>
|
||||
|
||||
#
|
||||
# SecTestCanRead.java test properties
|
||||
#
|
||||
SecTestCanRead.mustPass=<SecTestCanRead.mustPass>
|
||||
SecTestCanRead.fName=<SecTestCanRead.fName>
|
||||
#
|
||||
# SecTestCanWrite.java test properties
|
||||
#
|
||||
SecTestCanWrite.mustPass=<SecTestCanWrite.mustPass>
|
||||
|
||||
#
|
||||
# SecTestClipboard.java test properties
|
||||
#
|
||||
SecTestClipboard.mustPass=<SecTestClipboard.mustPass>
|
||||
|
||||
#
|
||||
# SecTestDelete.java test properties
|
||||
#
|
||||
SecTestDelete.mustPass=<SecTestDelete.mustPass>
|
||||
|
||||
#
|
||||
# SecTestEnv.java test properties
|
||||
#
|
||||
SecTestEnv.mustPass=<SecTestEnv.mustPass>
|
||||
|
||||
#
|
||||
# SecTestExists.java test properties
|
||||
#
|
||||
SecTestExists.mustPass=<SecTestExists.mustPass>
|
||||
|
||||
#
|
||||
# SecTestFileDescriptorIn.java test properties
|
||||
#
|
||||
SecTestFileDescriptorIn.mustPass=<SecTestFileDescriptorIn.mustPass>
|
||||
|
||||
#
|
||||
# SecTestFileDescriptorOut.java test properties
|
||||
#
|
||||
SecTestFileDescriptorOut.mustPass=<SecTestFileDescriptorOut.mustPass>
|
||||
|
||||
#
|
||||
# SecTestFileInputStream.java test properties
|
||||
#
|
||||
SecTestFileInputStream.mustPass=<SecTestFileInputStream.mustPass>
|
||||
SecTestFileInputStream.fName=<SecTestFileInputStream.fName>
|
||||
|
||||
#
|
||||
# SecTestFileOutputStream.java test properties
|
||||
#
|
||||
SecTestFileOutputStream.mustPass=<SecTestFileOutputStream.mustPass>
|
||||
|
||||
#
|
||||
# SecTestGetAbsolutePath.java test properties
|
||||
#
|
||||
SecTestGetAbsolutePath.mustPass=<SecTestGetAbsolutePath.mustPass>
|
||||
|
||||
#
|
||||
# SecTestGetCanonicalPath.java test properties
|
||||
#
|
||||
SecTestGetCanonicalPath.mustPass=<SecTestGetCanonicalPath.mustPass>
|
||||
|
||||
#
|
||||
# SecTestGetContent.java test properties
|
||||
#
|
||||
SecTestGetContent.mustPass=<SecTestGetContent.mustPass>
|
||||
SecTestGetContent.fName=<SecTestGetContent.fName>
|
||||
|
||||
#
|
||||
# SecTestGetParent.java test properties
|
||||
#
|
||||
SecTestGetParent.mustPass=<SecTestGetParent.mustPass>
|
||||
|
||||
#
|
||||
# SecTestGetPath.java test properties
|
||||
#
|
||||
SecTestGetPath.mustPass=<SecTestGetPath.mustPass>
|
||||
SecTestGetPath.fName=<SecTestGetPath.fName>
|
||||
|
||||
#
|
||||
# SecTestGetProps.java test properties
|
||||
#
|
||||
SecTestGetProps.mustPass=<SecTestGetProps.mustPass>
|
||||
|
||||
#
|
||||
# SecTestGetSecMgr.java test properties
|
||||
#
|
||||
SecTestGetSecMgr.mustPass=<SecTestGetSecMgr.mustPass>
|
||||
|
||||
#
|
||||
# SecTestIsDirectory.java test properties
|
||||
#
|
||||
SecTestIsDirectory.mustPass=<SecTestIsDirectory.mustPass>
|
||||
|
||||
#
|
||||
# SecTestIsFile.java test properties
|
||||
#
|
||||
SecTestIsFile.mustPass=<SecTestIsFile.mustPass>
|
||||
|
||||
#
|
||||
# SecTestLastModified.java test properties
|
||||
#
|
||||
SecTestLastModified.mustPass=<SecTestLastModified.mustPass>
|
||||
|
||||
#
|
||||
# SecTestLength.java test properties
|
||||
#
|
||||
SecTestLength.mustPass=<SecTestLength.mustPass>
|
||||
|
||||
#
|
||||
# SecTestList.java test properties
|
||||
#
|
||||
SecTestList.mustPass=<SecTestList.mustPass>
|
||||
|
||||
#
|
||||
# SecTestListJSFilter.java test properties
|
||||
#
|
||||
SecTestListJSFilter.mustPass=<SecTestListJSFilter.mustPass>
|
||||
|
||||
#
|
||||
# SecTestMkdir.java test properties
|
||||
#
|
||||
SecTestMkdir.mustPass=<SecTestMkdir.mustPass>
|
||||
|
||||
#
|
||||
# SecTestMkdirs.java test properties
|
||||
#
|
||||
SecTestMkdirs.mustPass=<SecTestMkdir.mustPass>
|
||||
|
||||
#
|
||||
# SecTestOpenConx.java test properties
|
||||
#
|
||||
SecTestOpenConx.mustPass=<SecTestOpenConx.mustPass>
|
||||
SecTestOpenConx.URL=<SecTestOpenConx.URL>
|
||||
|
||||
#
|
||||
# SecTestPrintStream.java test properties
|
||||
#
|
||||
SecTestPrintStream.mustPass=<SecTestPrintStream.mustPass>
|
||||
|
||||
#
|
||||
# SecTestRandomAccess.java test properties
|
||||
#
|
||||
SecTestRandomAccess.mustPass=<SecTestRandomAccess.mustPass>
|
||||
|
||||
#
|
||||
# SecTestRandomAccessRW.java test properties
|
||||
#
|
||||
SecTestRandomAccessRW.mustPass=<SecTestRandomAccess.mustPass>
|
||||
|
||||
#
|
||||
# SecTestRenameTo.java test properties
|
||||
#
|
||||
SecTestRenameTo.mustPass=<SecTestRenameTo.mustPass>
|
||||
|
||||
#
|
||||
# SecTestRunExec.java test properties
|
||||
#
|
||||
SecTestRunExec.mustPass=<SecTestRunExec.mustPass>
|
||||
SecTestRunExec.fExec=<SecTestRunExec.fExec>
|
||||
|
||||
#
|
||||
# SecTestRunExit.java test properties
|
||||
#
|
||||
SecTestRunExit.mustPass=<SecTestRunExit.mustPass>
|
||||
|
||||
#
|
||||
# SecTestRunLoad.java test properties
|
||||
#
|
||||
SecTestRunLoad.mustPass=<SecTestRunLoad.mustPass>
|
||||
SecTestRunLoad.libName=<SecTestRunLoad.libName>
|
||||
#
|
||||
# SecTestRunLoadLib.java test properties
|
||||
#
|
||||
SecTestRunLoadLib.mustPass=<SecTestRunLoadLib.mustPass>
|
||||
SecTestRunLoadLib.libName=<SecTestRunLoadLib.libName>
|
||||
|
||||
#
|
||||
# SecTestSetSecMgr.java test properties
|
||||
#
|
||||
SecTestSetSecMgr.mustPass=<SecTestSetSecMgr.mustPass>
|
||||
|
||||
#
|
||||
# SecTestSocket.java test properties
|
||||
#
|
||||
SecTestSocket.mustPass=<SecTestSocket.mustPass>
|
||||
SecTestSocket.fHost=<SecTestSocket.fHost>
|
||||
SecTestSocket.fPort=<SecTestSocket.fPort>
|
||||
|
||||
#
|
||||
# SecTestSysExit.java test properties
|
||||
#
|
||||
SecTestSysExit.mustPass=<SecTestSysExit.mustPass>
|
||||
|
||||
#
|
||||
# SecTestURLFac.java test properties
|
||||
#
|
||||
SecTestURLFac.mustPass=<SecTestURLFac.mustPass>
|
||||
#
|
||||
# SecTestXAccept.java test properties
|
||||
#
|
||||
SecTestXAccept.mustPass=<SecTestXAccept.mustPass>
|
||||
SecTestXAccept.fHost=<SecTestXAccept.fHost>
|
||||
SecTestXAccept.fPort=<SecTestXAccept.fPort>
|
||||
|
||||
#
|
||||
# SecTestXAccess.java test properties
|
||||
#
|
||||
SecTestXAccess.mustPass=<SecTestXAccess.mustPass>
|
||||
|
||||
#
|
||||
# SecTestXAccessTG.java test properties
|
||||
#
|
||||
SecTestXAccessTG.mustPass=<SecTestXAccess.mustPass>
|
||||
|
||||
#
|
||||
# SecTestXAccessTop.java test properties
|
||||
#
|
||||
SecTestXAccessTop.mustPass=<SecTestXAccess.mustPass>
|
||||
|
||||
#
|
||||
# SecTestXCCL.java test properties
|
||||
#
|
||||
SecTestXCCL.mustPass=<SecTestXCCL.mustPass>
|
||||
|
||||
#
|
||||
# SecTestXConn.java test properties
|
||||
#
|
||||
SecTestXConn.mustPass=<SecTestXConn.mustPass>
|
||||
SecTestXConn.fHost=<SecTestXConn.fHost>
|
||||
SecTestXConn.fPort=<SecTestXConn.fPort>
|
||||
|
||||
#
|
||||
# SecTestXDelete.java test properties
|
||||
#
|
||||
SecTestXDelete.mustPass=<SecTestXDelete.mustPass>
|
||||
SecTestXDelete.fName=<SecTestXDelete.fName>
|
||||
|
||||
#
|
||||
# SecTestXExec.java test properties
|
||||
#
|
||||
SecTestXExec.mustPass=<SecTestXExec.mustPass>
|
||||
SecTestXExec.fExec=<SecTestXExec.fExec>
|
||||
|
||||
#
|
||||
# SecTestXExit.java test properties
|
||||
#
|
||||
SecTestXExit.mustPass=<SecTestXExit.mustPass>
|
||||
|
||||
#
|
||||
# SecTestXLink.java test properties
|
||||
#
|
||||
SecTestXLink.mustPass=<SecTestXLink.mustPass>
|
||||
SecTestXLink.fLink=<SecTestXLink.fLink>
|
||||
|
||||
#
|
||||
# SecTestXListen.java test properties
|
||||
#
|
||||
SecTestXListen.mustPass=<SecTestXListen.mustPass>
|
||||
SecTestXListen.fPort=<SecTestXListen.fPort>
|
||||
|
||||
#
|
||||
# SecTestXPakAcc.java test properties
|
||||
#
|
||||
SecTestXPakAcc.mustPass=<SecTestXPakAcc.mustPass>
|
||||
SecTestXPakAcc.packageName=<SecTestXPakAcc.packageName>
|
||||
|
||||
#
|
||||
# SecTestXPakDef.java test properties
|
||||
#
|
||||
SecTestXPakDef.mustPass=<SecTestXPakDef.mustPass>
|
||||
SecTestXPakDef.packageName=<SecTestXPakDef.packageName>
|
||||
|
||||
#
|
||||
# SecTestXPropAcc.java test properties
|
||||
#
|
||||
SecTestXPropAcc.mustPass=<SecTestXPropAcc.mustPass>
|
||||
|
||||
#
|
||||
# SecTestXRead.java test properties
|
||||
#
|
||||
SecTestXRead.mustPass=<SecTestXRead.mustPass>
|
||||
SecTestXRead.fName=<SecTestXRead.fName>
|
||||
|
||||
#
|
||||
# SecTestXSetFac.java test properties
|
||||
#
|
||||
SecTestXSetFac.mustPass=<SecTestXSetFac.mustPass>
|
||||
|
||||
#
|
||||
# SecTestXWrite.java test properties
|
||||
#
|
||||
SecTestXWrite.mustPass=<SecTestXWrite.mustPass>
|
||||
SecTestXWrite.fName=<SecTestXWrite.fName>
|
||||
|
||||
#
|
||||
# WriteFileTest.java test properties
|
||||
#
|
||||
WriteFileTest.mustPass=<WriteFileTest.mustPass>
|
||||
WriteFileTest.FileName=<WriteFileTest.FileName>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# The directory where html files of tests should be placed
|
||||
# The URL of this directory should be pointed in HTML_ROOT
|
||||
set HTML_ROOT_DIR=h:\apache\share\htdocs\pl_tests
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Pluglet API automated tests</title>
|
||||
</head>
|
||||
<body bgcolor=white>
|
||||
<center><H1>Pluglet API automated tests</H1></center>
|
||||
<H2>Table of contents.</H2>
|
||||
<pre>
|
||||
- <a href=test_draft.html>Preliminary specification</a>
|
||||
- <a href=#build>How to build</A>
|
||||
- <a href=#run>How to run</A>
|
||||
Documentation on test cases:
|
||||
- <a href=api/index.html>Browser side api tests </a>
|
||||
- <a href=scenario/scenario.html>Scenario tests </a>
|
||||
- <a href=security/index.html>Security tests </a>
|
||||
- <a href=params/params.html>Tests on passed in client side api parameters </a>
|
||||
- <a href=returns/returns.html>Tests on return values from client side api </a>
|
||||
<!-- - <a href= >Tests on calling browser side api from different threads </a>
|
||||
- <a href= > </a> -->
|
||||
|
||||
<A name=build>How to build.
|
||||
- setup environment for mozilla building and running
|
||||
- goto config directory and fill
|
||||
CommonProperties and set_env.bat files.
|
||||
(or set_env.sh in case of Unix build)
|
||||
- run the config/set_env.bat file
|
||||
(or source set_env.sh in case of Unix build)
|
||||
- goto src/org/mozilla/pluglet/test/basic/ directory
|
||||
and make with makefile in this directory
|
||||
|
||||
<A name=run>How to run.
|
||||
There is autorun.pl script to run test cases and BWTest.lst.ORIG
|
||||
with list of all test cases in src/org/mozilla/pluglet/test/basic/
|
||||
directory.
|
||||
To run all test cases in BWTest.lst.ORIG:
|
||||
|
||||
<B>perl autorun.pl</B>
|
||||
|
||||
It is possible to list required test cases in another file:
|
||||
|
||||
<B>perl autorun.pl -f <i>file_with_sub_list</i></B>
|
||||
|
||||
To run single test case:
|
||||
|
||||
<B>perl autorun.pl -t <i>test_case</i></B>
|
||||
|
||||
</pre>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,438 @@
|
|||
<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 <for_string>: null, 0 length, some arbitrary string)
|
||||
<LI>partitioning from point of view of functional sense of this parameter <BR>
|
||||
(for example <for_target>: <for_string>, "_self", "_parent", "_top", "_blank",
|
||||
non-existing and existing named target)
|
||||
</UL>
|
||||
Some commom set of parameters:
|
||||
<table border=1 bgcolor=#99E2EF>
|
||||
<tr><td><for_int></td><td> 0, (+-)MAX, some arbitrary value</td></tr>
|
||||
<tr><td><for_boolean></td><td> true, false</td></tr>
|
||||
<tr><td><for_string></td><td>null, non-null with 0 length, some arbitrary string</td></tr>
|
||||
<tr><td><for_target></td><td> <for_string>, "_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><for_target>
|
||||
</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><for_boolean>
|
||||
</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><for_int>, 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><for_boolean>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>String target
|
||||
</td>
|
||||
<td><for_target>
|
||||
</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><for_boolean>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>int postHeadersLength
|
||||
</td>
|
||||
<td><for_int>, 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><for_boolean></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><for_int>, 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><for_string>, text/html, text/plain, image/gif, application/x-java-vm, incorrectly formed</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>String target
|
||||
</td>
|
||||
<td><for_target>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td ROWSPAN=2 width=10% align=center>public void setWindowSize</td>
|
||||
<td>int width</td>
|
||||
<td><for_int></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>int height
|
||||
</td>
|
||||
<td><for_int>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td ROWSPAN=1 width=10% align=center>public void showStatus</td>
|
||||
<td>String message</td>
|
||||
<td><for_string></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: <for_int> x <for_int>, 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><for_string>, 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><for_string>, 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><for_string>, 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>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>
|
||||
Pluglets Test Plan
|
||||
</title>
|
||||
</head>
|
||||
<body bgcolor=white>
|
||||
<H1>Pluglet Tests:</H1>
|
||||
<UL>
|
||||
<LI><A href=manual.html>Manual Pluglet's tests</A>
|
||||
<LI><A href=automated.html>Automated Pluglet's tests</A>
|
||||
</UL>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,96 @@
|
|||
<html>
|
||||
<body bgcolor=white>
|
||||
<center><H1>Manual Pluglets tests</H1></center>
|
||||
At start of your Pluglet test cycle you should verify that Pluglets are permitted to run,
|
||||
correctly loaded and rendered.<BR>
|
||||
<OL>
|
||||
<LI>Follow to <A href="http://www.mozilla.org/projects/blackwood/java-plugins/">instructions</A>
|
||||
and install Java Plugins.
|
||||
<LI>Build the <A href=http://lxr.mozilla.org/mozilla/source/java/plugins/test>TestPluglet</A>
|
||||
<LI>Build the <A href="http://www.mozilla.org/projects/blackwood/java-plugins/#Demos">Pluglet demos</A>.
|
||||
<LI>Put JAR archieves with test pluglet and demos to the directory on your filesystem and point
|
||||
<B>PLUGLET</B> variable to this dir.
|
||||
<LI>Performs steps from following table for verify Pluglets behaviour.
|
||||
|
||||
<table border=1 BGCOLOR=white CELLPADDING=10>
|
||||
<tr>
|
||||
<td>
|
||||
Test Pluglet
|
||||
<OL>
|
||||
<LI>Load HTML document with <A href=http://lxr.mozilla.org/mozilla/source/java/plugins/test/test.html>TestPluglet</A>
|
||||
</OL>
|
||||
</td>
|
||||
<td width=10%>
|
||||
<UL>
|
||||
<LI>Verify that pluglet loaded and window with List rendered.
|
||||
<LI>Load any other <A href=http://www.mozilla.org>page</A>, make <B>Back</B> and verify that
|
||||
pluglet rendered against.
|
||||
</UL>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
MediaPlayer
|
||||
<OL>
|
||||
<LI>Follow to instruction from MediaPlayer <A href=http://lxr.mozilla.org/mozilla/source/java/plugins/examples/MediaPlayer/README>README</A>
|
||||
to correct media player installation.
|
||||
<LI>Load <B>play.html</B> from place, where your MediaPlayer example installed.
|
||||
</OL>
|
||||
</td>
|
||||
<td>
|
||||
<UL>
|
||||
<LI>Verify that player correctly loaded and works.
|
||||
</UL>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
PDF Viewer
|
||||
<OL>
|
||||
<LI>Follow to instruction from PDF Viewer <A href=http://lxr.mozilla.org/mozilla/source/java/plugins/examples/pdf/README>README</A>
|
||||
to correct viewer installation.
|
||||
<LI>Load <B>pdf.html</B> from place, where your PDF Viewer example installed.
|
||||
</OL>
|
||||
</td>
|
||||
<td>
|
||||
<UL>
|
||||
<LI>Verify that viewer correctly loaded and works.
|
||||
</UL>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
RTF Viewer
|
||||
<OL>
|
||||
<LI>Load HTML document with <A href=http://lxr.mozilla.org/mozilla/source/java/plugins/examples/rtf/view.html>RTF Viewer</A>
|
||||
</OL>
|
||||
</td>
|
||||
<td>
|
||||
<UL>
|
||||
<LI>Verify that example correctly displayed RTF Viewer <A href=http://lxr.mozilla.org/mozilla/source/java/plugins/examples/rtf/README>README</A>.
|
||||
</UL>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
ZIP Viewer
|
||||
<OL>
|
||||
<LI>Follow to instruction from ZIP Viewer <A href=http://lxr.mozilla.org/mozilla/source/java/plugins/examples/zip/README>README</A>
|
||||
to correct viewer installation.
|
||||
<LI>Load <B>zip.html</B> from place, where your ZIP Viewer example installed.
|
||||
</OL>
|
||||
</td>
|
||||
<td>
|
||||
<UL>
|
||||
<LI>Verify that viewer correctly loaded and works.(Contents of ZipView.jar should be shown)
|
||||
</UL>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</OL>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,44 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>
|
||||
Runtime scenario of calling of
|
||||
pluglet side API methods:
|
||||
</title>
|
||||
</head>
|
||||
<body bgcolor=white>
|
||||
<pre>
|
||||
Basic template of runtime scenario of calling of
|
||||
pluglet side API methods:
|
||||
|
||||
context:Pluglet
|
||||
|
||||
Pluglet.initialize()
|
||||
|
||||
Pluglet.createPlugletInstance()
|
||||
|
||||
new context: PlugletInstance
|
||||
|
||||
PlugletInstance.initialize()
|
||||
|
||||
PlugletInstance.start()
|
||||
|
||||
PlugletInstance.newStream()
|
||||
|
||||
new context:PlugletStreamListener
|
||||
|
||||
PlugletStreamListener.onStartBinding()
|
||||
|
||||
PlugletStreamListener.onDataAvailable()
|
||||
|
||||
PlugletStreamListener.onFileAvailable()
|
||||
|
||||
PlugletStreamListener.onStopBinding()
|
||||
|
||||
PlugletInstance.stop()
|
||||
|
||||
PlugletInstance.destroy()
|
||||
|
||||
Pluglet.shutdown()
|
||||
|
||||
</pre>
|
||||
</body>
|
|
@ -0,0 +1,108 @@
|
|||
<HTML>
|
||||
<TITLE>Draft Pluglet API test design</TITLE>
|
||||
<BODY bgcolor=white>
|
||||
|
||||
<H1>Pluglet API tests specification.</H1>
|
||||
<PRE>
|
||||
|
||||
<B>Subject:</B>
|
||||
The subject of testing is <a href=http://www.mozilla.org/projects/blackwood/java-plugins/api/> Pluglet API </a>
|
||||
<B>Goals:</B>
|
||||
Goals of testing - to detect errors in pluglet api
|
||||
implementation and in functioning of this api in mozilla.
|
||||
|
||||
This API is divided on two part:
|
||||
- called by browser (latter called <B>Pluglet side API</B>)
|
||||
- called by pluglet (latter called <B>Browser side API</B>).
|
||||
|
||||
Basic <A href=sequence.html>template</A> of runtime scenario of calling of
|
||||
<B>Pluglet side API</B> methods.
|
||||
|
||||
Scenario variations:
|
||||
- basic straight scenario - without and with calls caused
|
||||
by data to be loaded for pluglet
|
||||
- behaviour of the same pluglet instance in case of back-forward
|
||||
- re-creating pluglet instance after reload
|
||||
|
||||
The different pluglets display types:
|
||||
- embedded
|
||||
- embedded hidden
|
||||
- full page pluglets
|
||||
|
||||
Additional situations:
|
||||
- incorrect environment (for example PLUGLET)
|
||||
- absence of pluglet
|
||||
- incomplete pluglet (for example without instance class)
|
||||
<I>Comment: in these cases (1-3) we need to ensure that mozilla doesn't fall</I>
|
||||
- different pluglets having pluglet instances (or other classes)
|
||||
with equal names
|
||||
- finding and loading pluglets based on mime type of data and
|
||||
handled mime types of pluglet
|
||||
|
||||
Security issues:
|
||||
- based on fact that the pluglets are run in java environment
|
||||
the tests should check the correspondence of actual runtime
|
||||
constrains to specified constrains.
|
||||
|
||||
So, the sets of tests to develop:
|
||||
1. scenario tests for each combinations of scenario variations and pluglet display type
|
||||
The sequence of calls of pluglet side API methods should be corresponding to
|
||||
situation (in correct order, without lacks and additional non-specified calls)
|
||||
2. the tests of correctnesses of passed in values and objects in situations of
|
||||
different scenario and pluglet display type
|
||||
3. returning (for cases when non-void return value is specified) by pluglet side api different values
|
||||
from set of expected values, boundary and non-correct values (from point of
|
||||
view of functional sense of return value)
|
||||
4. the tests of <B>Browser side API</B>
|
||||
(passed in objects (for example PlugletManager) as well as
|
||||
objects by request (for example PlugletTagInfo))
|
||||
- the passing in different <a href=equiv_classes.html>sets of parameters</a>, including
|
||||
boundary and non-correct values(from point of view of functional sense of parameters)
|
||||
- checking that correct values are returned (if applicable)
|
||||
- checking that correct action are performed (if applicable)
|
||||
5. the tests for non-falled (and/or correct) behaviour for "additional" situations
|
||||
6. the more typical subset of 1,2,3 tests in cases of more than one pluglet
|
||||
instance (in parallel ( on the same page) as well as in sequence (pluglet on the next page))
|
||||
7. the more typical subset of api tests in multithreading mode - calling the browser side
|
||||
api methods simultaneously from different threads
|
||||
8. security tests
|
||||
|
||||
Test space organization:
|
||||
- The src, build, config, util, log and doc directories.
|
||||
- All necessary files should be compiled or copied into the build directory.
|
||||
- All common perl scripts should be placed in the util directory
|
||||
- Recursive organization of makefiles.
|
||||
- The top-level makefile is placed to src/org/mozilla/pluglet/test/basic
|
||||
- Top package for all test classes is org.mozilla.pluglet.tests.basic
|
||||
- The suffixes are like to
|
||||
.scenario
|
||||
.security
|
||||
.security.automated
|
||||
.returns
|
||||
.params
|
||||
.api
|
||||
- Every test is like to consist of necessary java files, html file to cause
|
||||
pluglet instantiation, test properties file - needed settings
|
||||
for test if they are different from common settings (as example $DELAY for stress
|
||||
tests or <B>$PLUGLET</B> for testing incorrect value of this one
|
||||
may differ from common settings) and test parameters file - the parameters that identify
|
||||
concrete test case in set of tests with the same structure.
|
||||
- Perl script <B>autorun.pl</B> is used to invoke automated test cases
|
||||
and to record their results
|
||||
|
||||
</PRE>
|
||||
</HTML>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
#!/bin/perl
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public
|
||||
# License Version 1.1 (the "License"); you may not use this file
|
||||
# except in compliance with the License. You may obtain a copy of
|
||||
# the License at http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS
|
||||
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
# implied. See the License for the specific language governing
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Sun Microsystems,
|
||||
# Inc. Portions created by Sun are
|
||||
# Copyright (C) 1999 Sun Microsystems, Inc. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
|
||||
###################################################################
|
||||
#
|
||||
# configurator.pl - properties configuration utility
|
||||
#
|
||||
# see configurator.readme for details
|
||||
#
|
||||
|
||||
# Global variables
|
||||
|
||||
$infile = @ARGV[0];
|
||||
$outfile = @ARGV[1];
|
||||
$template = @ARGV[2];
|
||||
|
||||
if( $#ARGV < 2) {
|
||||
printf "Usage: perl configurator.pl infile outfile template\n";
|
||||
printf "See configurator.readme for details.\n";
|
||||
exit 0;
|
||||
};
|
||||
|
||||
open( in, $infile )
|
||||
or die( join '', "Can't open", $infile, " for reading. So bye\n" );
|
||||
open( out, join '',">",$outfile )
|
||||
or die( join '', "Can't open", $outfile, " for writing. So bye\n" );
|
||||
open( temple, $template )
|
||||
or die( join '', "Can't open template file ",$template," for reading. So bye.\n" );
|
||||
|
||||
# Now we will read out all the template file lines into the array.
|
||||
@storage = <temple>;
|
||||
|
||||
while( $l = <in> ) {
|
||||
# Sign '=' was found and a line isn't a comment
|
||||
if( ($l !=~ /#/) && ($l =~ /=/) ) {
|
||||
chop $l;
|
||||
$l=~s/\r|\n//g;
|
||||
# avoid linebreaks
|
||||
@list = split '=',$l;
|
||||
# Now opening template file
|
||||
|
||||
$keyvalue = @list[1];
|
||||
$keyname = @list[0];
|
||||
|
||||
# Now search for keyname and replace it with the actual value.
|
||||
$pattern = join '', "<",$keyname,">";
|
||||
|
||||
for( $i=0; $i<= $#storage; $i++ ) {
|
||||
|
||||
$line = @storage[$i];
|
||||
if( $line =~ /$pattern/ ) {
|
||||
$line=~s/$pattern/$keyvalue/g;
|
||||
$storage[$i] = $line;
|
||||
} # if
|
||||
} # for
|
||||
} # if
|
||||
} # while
|
||||
|
||||
# end-of-search
|
||||
# preparing the output file
|
||||
|
||||
for( $i=0; $i <= $#storage; $i++ ) {
|
||||
|
||||
printf out $storage[$i];
|
||||
}
|
||||
|
||||
# job was done
|
|
@ -0,0 +1,85 @@
|
|||
|
||||
configurator.pl readme file
|
||||
|
||||
---------------------------------------------------------
|
||||
1. About
|
||||
|
||||
This utility is necessary for test building. Each
|
||||
test in suite has each own number of properties.
|
||||
It is also necessary to the end-user to configurate
|
||||
properties correct, because of different platforms
|
||||
test is running under and different situation test
|
||||
suite must be used.
|
||||
|
||||
2. Usage
|
||||
|
||||
perl conigurator.pl infile outfile templatefile
|
||||
|
||||
infile:
|
||||
|
||||
the input file with the key valies. For more
|
||||
details see "File format section"
|
||||
|
||||
outfile:
|
||||
|
||||
the output file, that generates from template
|
||||
and input file. For more details see "File
|
||||
format section"
|
||||
|
||||
template:
|
||||
|
||||
the template file, that describes the format
|
||||
of output file. For more details see "File
|
||||
format section"
|
||||
|
||||
3. File format.
|
||||
|
||||
3.1 Input file
|
||||
|
||||
The input file format seems to be very easy.
|
||||
"#" sign in the beginning means comment, empty
|
||||
lines are ignored. The key features described
|
||||
as this :
|
||||
|
||||
KeyName = KeyValue
|
||||
|
||||
generator utility searches for such a strings
|
||||
and inserts Key values into the key names fields
|
||||
as it describes in the template section.
|
||||
|
||||
3.2 Template file
|
||||
|
||||
The template file is a simple file, that uses
|
||||
signs as following to insert the key values
|
||||
into the text. Here comes the example.
|
||||
|
||||
- Example 1
|
||||
|
||||
See some text is goes and Oo-<here>-oO we will insert
|
||||
the "here" key value, that goes from the input file
|
||||
|
||||
-
|
||||
|
||||
So, generator will search the string in the input
|
||||
file like this :
|
||||
|
||||
- Example 2
|
||||
|
||||
# "Here" key
|
||||
here = my own value
|
||||
|
||||
-
|
||||
|
||||
The output will be like this :
|
||||
|
||||
- Example 3
|
||||
|
||||
See some text is goes and Oo- my own value -oO we
|
||||
will insert the "here" key value, that goes from the
|
||||
input file
|
||||
|
||||
-
|
||||
|
||||
4. FAQ
|
||||
|
||||
TBD
|
|
@ -0,0 +1,8 @@
|
|||
#
|
||||
# example.input
|
||||
#
|
||||
# This file shows, how you can use the input key values
|
||||
#
|
||||
key1= somebody@mail.1
|
||||
key2= noone@mail.2
|
||||
key3= anonymous@mail.3 (# This does not seems to be a comment)
|
|
@ -0,0 +1,12 @@
|
|||
#
|
||||
# example.template
|
||||
#
|
||||
# This file shows, how you can use the
|
||||
# template values.
|
||||
#
|
||||
|
||||
Welcome to the template. You can send a dummy mail to the
|
||||
one man : somebody@mail.1. If you does like this example you can
|
||||
send the email to noone@mail.2, anonymous@mail.3 (# This does not seems to be a comment) . Note, that all these
|
||||
email addresses are in space - there's no such a domains.
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
#
|
||||
# example.template
|
||||
#
|
||||
# This file shows, how you can use the
|
||||
# template values.
|
||||
#
|
||||
|
||||
Welcome to the template. You can send a dummy mail to the
|
||||
one man : <key1>. If you does like this example you can
|
||||
send the email to <key2>, <key3> . Note, that all these
|
||||
email addresses are in space - there's no such a domains.
|
||||
|
||||
Thank you.
|
Загрузка…
Ссылка в новой задаче