'************************************************************************* ' ' Licensed to the Apache Software Foundation (ASF) under one ' or more contributor license agreements. See the NOTICE file ' distributed with this work for additional information ' regarding copyright ownership. The ASF licenses this file ' to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 ' ' Unless required by applicable law or agreed to in writing, ' software distributed under the License is distributed on an ' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ' KIND, either express or implied. See the License for the ' specific language governing permissions and limitations ' under the 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 & "XImpReg.reg"), false, true) aImplementationLoader = "com.sun.star.loader.Java2" aLocation = utils.Path2URL(cTestDocsDir & "qadevlibs/MyPersistObjectImpl.jar") Test.StartMethod("getImplementations()") bOK = true aImplementations = oObj.getImplementations(aImplementationLoader, aLocation) bOK = bOK AND i >= 0 for i = 0 to ubound(aImplementations) Out.Log "" & i + 1 & ") " & aImplementations(i) next i Test.MethodTested("getImplementations()", bOK) Test.StartMethod("registerImplementation()") Out.Log("Registering implementation from " & 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 " & ubound(keyNames) + 1 & " 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: " & keyNames(i)) for k = 0 to ubound(aImplementations) if (inStr(1, keyNames(i), aImplementations(k)) > 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 " & aImplementations(i) & " 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 " & aImplementations(0)) aMissingServices = oObj.checkInstantiation(aImplementations(0)) Out.Log("" & ubound(aMissingServices) + 1 & " missing services were found") for i = 0 to ubound(aMissingServices) Out.Log "" & i & ") " & 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") > 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 " & ubound(keyNames) + 1 & " implementations.") for i = 0 to ubound(aFlags()) aFlags(i) = false next i for i = 0 to ubound(keyNames()) Out.Log("Found key: " & keyNames(i)) for k = 0 to ubound(aImplementations) if (inStr(1, keyNames(i), aImplementations(k)) > 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 " & aImplementations(i) & " 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