summaryrefslogtreecommitdiff
path: root/qadevOOo/tests/basic/ifc/registry/XImplementationRegistration/registry_XImplementationRegistration.xba
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/tests/basic/ifc/registry/XImplementationRegistration/registry_XImplementationRegistration.xba')
-rw-r--r--qadevOOo/tests/basic/ifc/registry/XImplementationRegistration/registry_XImplementationRegistration.xba168
1 files changed, 168 insertions, 0 deletions
diff --git a/qadevOOo/tests/basic/ifc/registry/XImplementationRegistration/registry_XImplementationRegistration.xba b/qadevOOo/tests/basic/ifc/registry/XImplementationRegistration/registry_XImplementationRegistration.xba
new file mode 100644
index 000000000000..2915d317d47a
--- /dev/null
+++ b/qadevOOo/tests/basic/ifc/registry/XImplementationRegistration/registry_XImplementationRegistration.xba
@@ -0,0 +1,168 @@
+<?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="registry_XImplementationRegistration" script:language="StarBasic">
+
+
+'*************************************************************************
+'
+' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+'
+' Copyright 2000, 2010 Oracle and/or its affiliates.
+'
+' OpenOffice.org - a multi-platform office productivity suite
+'
+' 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
+
+
+
+Sub RunTest()
+
+'*************************************************************************
+' INTERFACE:
+' com.sun.star.registry.XImplementationRegistration
+'*************************************************************************
+On Error Goto ErrHndl
+ Dim bOK As Boolean
+ Dim aImplementationLoader As String
+ Dim aImplementations As Variant
+ Dim aMissingServices As Variant
+ Dim aLocation As String
+ Dim i As Integer
+ Dim k As Integer
+ Dim xReg As Object
+ Dim regKey As Object
+ Dim keyNames As Variant
+ Dim bNeedTest As Boolean
+
+ xReg = createUNOService("com.sun.star.registry.SimpleRegistry")
+ xReg.Open(utils.Path2URL(cTestDocsDir &amp; "XImpReg.reg"), false, true)
+ aImplementationLoader = "com.sun.star.loader.Java2"
+ aLocation = utils.Path2URL(cTestDocsDir &amp; "qadevlibs/MyPersistObjectImpl.jar")
+
+ Test.StartMethod("getImplementations()")
+ bOK = true
+ aImplementations = oObj.getImplementations(aImplementationLoader, aLocation)
+ bOK = bOK AND i &gt;= 0
+ for i = 0 to ubound(aImplementations)
+ Out.Log "" &amp; i + 1 &amp; ") " &amp; aImplementations(i)
+ next i
+ Test.MethodTested("getImplementations()", bOK)
+
+ Test.StartMethod("registerImplementation()")
+ Out.Log("Registering implementation from " &amp; aLocation)
+ bOK = true
+ oObj.registerImplementation(aImplementationLoader, aLocation, xReg)
+
+ bOK = bOK AND xReg.isValid()
+
+ regKey = xReg.getRootKey.openKey("IMPLEMENTATIONS")
+ keyNames = regKey.getKeyNames()
+ Out.Log("In registry found " &amp; ubound(keyNames) + 1 &amp; " implementations.")
+ Dim aFlags(ubound(aImplementations())) As Boolean
+ for i = 0 to ubound(aFlags())
+ aFlags(i) = false
+ next i
+
+ for i = 0 to ubound(keyNames())
+ Out.Log("Found key: " &amp; keyNames(i))
+ for k = 0 to ubound(aImplementations)
+ if (inStr(1, keyNames(i), aImplementations(k)) &gt; 0 ) then
+ aFlags(k) = true
+ end if
+ next k
+ next i
+
+ for i = 0 to ubound(aFlags())
+ if (NOT aFlags(i)) then
+ Out.Log("Can't find information about " &amp; aImplementations(i) &amp; " in regestry")
+ bOK = false
+ end if
+ next i
+
+ Test.MethodTested("registerImplementation()", bOK)
+
+ Test.StartMethod("checkInstantiation()")
+ bOK = true
+ Out.Log("Looking for missing services to create " &amp; aImplementations(0))
+ aMissingServices = oObj.checkInstantiation(aImplementations(0))
+ Out.Log("" &amp; ubound(aMissingServices) + 1 &amp; " missing services were found")
+ for i = 0 to ubound(aMissingServices)
+ Out.Log "" &amp; i &amp; ") " &amp; aMissingServices(i)
+ next i
+ Test.MethodTested("checkInstantiation()", bOK)
+
+ Test.StartMethod("revokeImplementation()")
+ bOK = true
+ bNeedTest = false
+
+ oObj.revokeImplementation(aLocation, xReg)
+
+ bOK = bOK AND xReg.isValid()
+ regKey = xReg.getRootKey
+ keyNames = regKey.getKeyNames()
+ for i = 0 to ubound(keyNames())
+ if (inStr(1, keyNames(i), "IMPLEMENTATIONS") &gt; 0) then
+ bNeedTest = true
+ end if
+ next i
+ if (NOT bNeedTest) then
+ Out.Log("No implementation was found.")
+ end if
+
+ if (bOK AND bNeedTest) then
+ regKey = xReg.getRootKey.openKey("IMPLEMENTATIONS")
+ Out.Log("In registry found " &amp; ubound(keyNames) + 1 &amp; " implementations.")
+
+ for i = 0 to ubound(aFlags())
+ aFlags(i) = false
+ next i
+
+ for i = 0 to ubound(keyNames())
+ Out.Log("Found key: " &amp; keyNames(i))
+ for k = 0 to ubound(aImplementations)
+ if (inStr(1, keyNames(i), aImplementations(k)) &gt; 0 ) then
+ aFlags(k) = true
+ end if
+ next k
+ next i
+
+ for i = 0 to ubound(aFlags())
+ if (aFlags(i)) then
+ Out.Log("Information about " &amp; aImplementations(i) &amp; " is still in regestry")
+ bOK = false
+ end if
+ next i
+ end if
+ Test.MethodTested("revokeImplementation()", bOK)
+
+ xReg.Close()
+Exit Sub
+ErrHndl:
+ Test.Exception()
+ bOK = false
+ resume next
+End Sub
+</script:module>