<?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_XSimpleRegistry" script:language="StarBasic">


'*************************************************************************
'
'  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.XSimpleRegistry
'*************************************************************************
On Error Goto ErrHndl
    Dim bOK As Boolean
    Dim cURL As String
    Dim cTempURL As String
    Dim oTempReg As Object
    Dim oRoot As Object
    Dim oKey As Object
    Dim oKey2 As Object

    cURL = utils.getTempFileURL("BASReg.rdb", true)

    Test.StartMethod("open()")
    bOK = true
    if (cObjectName &lt;&gt; "defreg.NestedRegistry") then
        oObj.open(cURL, false, true)
        bOK = bOK AND FileExists(cURL)
    end if
    Test.MethodTested("open()", bOK)

    Test.StartMethod("isValid()")
    bOK = true
    bOK = bOK AND oObj.isValid()
    Test.MethodTested("isValid()", bOK)

    Test.StartMethod("getRootKey()")
    bOK = true
    oKey = oObj.getRootKey()
    bOK = bOK AND hasUnoInterfaces(oKey, "com.sun.star.registry.XRegistryKey")
    Test.MethodTested("getRootKey()", bOK)

    Test.StartMethod("isReadOnly()")
    bOK = true
    bOK = bOK AND NOT oObj.isReadOnly()
    Test.MethodTested("isReadOnly()", bOK)

    Test.StartMethod("mergeKey()")
    bOK = true

    oKey.createKey("Key1").setStringValue("Value of Key1")

    cTempURL = utils.getTempFileURL("BASRegTemp.rdb", true)
    oTempReg = createUnoService("com.sun.star.registry.SimpleRegistry")
    oTempReg.open(cTempURL, false, true)
    oKey2 = oTempReg.getRootKey()
    oKey2.createKey("Key2").setStringValue("Value of Key2")

    oObj.mergeKey("/", cTempURL)

    oRoot = oObj.RootKey
    oKey = oRoot.openKey("Key1")
    bOK = bOK AND oKey.getStringValue = "Value of Key1"
    oKey = oRoot.openKey("Key2")
    bOK = bOK AND oKey.getStringValue = "Value of Key2"
    oTempReg.close()

    Test.MethodTested("mergeKey()", bOK)

    Test.StartMethod("getURL()")
    bOK = true
    Out.Log("Returned URL is " &amp; oObj.URL)
    bOK = bOK AND inStr(1, oObj.URL, ".rdb") &gt; 0
    Test.MethodTested("getURL()", bOK)

    Test.StartMethod("destroy()")
    bOK = true
    if (cObjectName &lt;&gt; "defreg.NestedRegistry") then
        oObj.open(cURL, false, true)
        oObj.destroy()
    end if
    Test.MethodTested("destroy()", bOK)

    Test.StartMethod("close()")
    bOK = true
    if (cObjectName &lt;&gt; "defreg.NestedRegistry") then
        oObj.open(cURL, false, true)
        oObj.close()
    end if
    Test.MethodTested("close()", bOK)

Exit Sub
ErrHndl:
    Test.Exception()
    bOK = false
    resume next
End Sub
</script:module>
