summaryrefslogtreecommitdiff
path: root/qadevOOo/tests/basic/ifc/io/XPersistObject/io_XPersistObject.xba
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/tests/basic/ifc/io/XPersistObject/io_XPersistObject.xba')
-rw-r--r--qadevOOo/tests/basic/ifc/io/XPersistObject/io_XPersistObject.xba134
1 files changed, 134 insertions, 0 deletions
diff --git a/qadevOOo/tests/basic/ifc/io/XPersistObject/io_XPersistObject.xba b/qadevOOo/tests/basic/ifc/io/XPersistObject/io_XPersistObject.xba
new file mode 100644
index 000000000000..9898d7579251
--- /dev/null
+++ b/qadevOOo/tests/basic/ifc/io/XPersistObject/io_XPersistObject.xba
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="io_XPersistObject" script:language="StarBasic">
+
+
+'*************************************************************************
+'
+' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+'
+' Copyright 2008 by Sun Microsystems, Inc.
+'
+' OpenOffice.org - a multi-platform office productivity suite
+'
+' $RCSfile: io_XPersistObject.xba,v $
+'
+' $Revision: 1.3 $
+'
+' This file is part of OpenOffice.org.
+'
+' OpenOffice.org is free software: you can redistribute it and/or modify
+' it under the terms of the GNU Lesser General Public License version 3
+' only, as published by the Free Software Foundation.
+'
+' OpenOffice.org is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY; without even the implied warranty of
+' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+' GNU Lesser General Public License version 3 for more details
+' (a copy is included in the LICENSE file that accompanied this code).
+'
+' You should have received a copy of the GNU Lesser General Public License
+' version 3 along with OpenOffice.org. If not, see
+' <http://www.openoffice.org/license.html>
+' for a copy of the LGPLv3 License.
+'
+'*************************************************************************
+'*************************************************************************
+
+
+
+' Be sure that all variables are dimensioned:
+option explicit
+
+'*************************************************************************
+' This Interface/Service test depends on the following GLOBAL variables,
+' which must be specified in the object creation:
+
+' - Global oPersistInstance As Object
+
+'*************************************************************************
+
+
+
+
+
+Sub RunTest()
+
+'*************************************************************************
+' INTERFACE:
+' com.sun.star.io.XPersistObject
+'*************************************************************************
+On Error Goto ErrHndl
+ Dim bOK As Boolean
+ Dim oMarkIn, oMarkOut, oOutStrm, oInStrm As Object
+ Dim oDummy, oCopy, oPipe As Object
+ Dim uuidString As String
+ Dim UUID(), UUIDnew() As Variant
+ Dim i As Integer
+
+ if isNull(oPersistInstance) Then
+ Out.Log("oPersistInstance is Empty! No oPersistInstance in main created?")
+ Exit Sub
+ end if
+
+ Test.StartMethod("getServiceName()")
+ bOK = true
+ bOK = bOK AND (VarType(oObj.getServiceName()) = 8)
+ Test.MethodTested("getServiceName()", bOK)
+
+ if (hasUnoInterfaces(oObj,"com.sun.star.lang.XTypeProvider")) then
+ 'get ImplementationID
+ Out.Log("Before writing object, rememeber it's implementation ID.")
+ uuidString = ""
+ UUID = oObj.getImplementationId()
+ for i = 0 to ubound(UUID())
+ uuidString = uuidString &amp; UUID(i) &amp; "; "
+ next i
+ Out.Log("ImplementationID: " &amp; uuidString)
+ endif
+
+ oDummy = oPersistInstance
+ oPipe = createUNOService("com.sun.star.io.Pipe")
+ oMarkOut = createUNOService("com.sun.star.io.MarkableOutputStream")
+ oMarkIn = createUNOService("com.sun.star.io.MarkableInputStream")
+ oOutStrm = createUNOService("com.sun.star.io.ObjectOutputStream")
+ oInStrm = createUNOService("com.sun.star.io.ObjectInputStream")
+
+ 'made chain
+ oOutStrm.setOutputStream(oMarkOut)
+ oMarkOut.setOutputStream(oPipe)
+ oMarkIn.setInputStream(oPipe)
+ oInStrm.setInputStream(oMarkIn)
+
+ Test.StartMethod("write()")
+ Test.StartMethod("read()")
+ bOK = true
+ 'write dummy
+ oOutStrm.writeObject(oDummy)
+ oObj.write(oOutStrm)
+ 'read copy
+ oCopy = oInStrm.readObject()
+ oObj.read(oInStrm)
+
+ if (hasUnoInterfaces(oObj,"com.sun.star.lang.XTypeProvider")) then
+ Out.Log("After reading object, get it's implementation ID.")
+ uuidString = ""
+ UUIDnew = oObj.getImplementationId()
+ for i = 0 to ubound(UUID())
+ bOK = bOK AND (UUID(i) = UUIDnew(i))
+ uuidString = uuidString &amp; UUIDnew(i) &amp; "; "
+ next i
+ Out.Log("ImplementationID: " &amp; uuidString)
+ endif
+
+ Test.MethodTested("write()", bOK)
+ Test.MethodTested("read()", bOK)
+
+ ReCreateObj()
+Exit Sub
+ErrHndl:
+ Test.Exception()
+ bOK = false
+ resume next
+End Sub
+</script:module>