<?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="ucb_XContentProviderManager" 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.
'
'*************************************************************************







Sub RunTest()

'*************************************************************************
' INTERFACE: 
' com.sun.star.ucb.XContentProviderManager
'*************************************************************************
On Error Goto ErrHndl
    Dim bOK As Boolean

    Dim Provider As Object
    Dim Scheme As String
    Dim ReplaceExisting As Boolean
    Dim ContentProvider As Object
    Dim queryInfo As Variant
    Dim bFound As Boolean

    Test.StartMethod("queryContentProviders()")
    bOK = true
    queryInfo = oObj.queryContentProviders()
    Out.Log("queryContentProviders() returned " &amp; ubound(queryInfo) &amp; " elements.")
    for i = 0 to ubound(queryInfo)
        Out.Log(queryInfo(i).Scheme)
    next i
    Test.MethodTested("queryContentProviders()", bOK)

    Test.StartMethod("registerContentProvider()")
    bOK = true
    ReplaceExisting = true
    Scheme = "XContentProviderManager"
    Provider = createUNOService("com.sun.star.ucb.FileContentProvider")
    Out.Log("Registering Scheme = '" &amp; Scheme &amp; "'")
    ContentProvider = oObj.registerContentProvider(Provider, Scheme, ReplaceExisting)
    bOK = bOK AND hasUnoInterfaces(ContentProvider, "com.sun.star.ucb.XContentProvider")
    Out.Log("ContentProvider is XContentProvider - " &amp; bOK)
    if bOK then
        bFound = false
        queryInfo = oObj.queryContentProviders()
        for i = 0 to ubound(queryInfo)
            bFound = bFound OR queryInfo(i).Scheme = Scheme
        next i
        if NOT bFound then
            Out.Log("Can't find registered ContentProvider in query!")
            bOK = false
        end if
    end if
    Test.MethodTested("registerContentProvider()", bOK)

    Test.StartMethod("deregisterContentProvider()")
    if bOK then
        oObj.deregisterContentProvider(ContentProvider, Scheme)
        bFound = false
        queryInfo = oObj.queryContentProviders()
        for i = 0 to ubound(queryInfo)
            bFound = bFound OR queryInfo(i).Scheme = Scheme
        next i
        if bFound then
            Out.Log("ContentProvider was found in query! It was not DeRegistered!")
            bOK = false
        end if
    else
        Out.Log("Can't deregister ContentProvider without registering!")
    end if

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

    Test.StartMethod("queryContentProvider()")
    bOK = true
    ContentProvider = oObj.queryContentProvider(queryInfo(0).Scheme)
    bOK = bOK AND hasUnoInterfaces(ContentProvider, "com.sun.star.ucb.XContentProvider")
    Test.MethodTested("queryContentProvider()", bOK)

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