1cdf0e10cSrcweir<?xml version="1.0" encoding="UTF-8"?>
2cdf0e10cSrcweir<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3cdf0e10cSrcweir<script:module xmlns:script="http://openoffice.org/2000/script" script:name="text_XText" script:language="StarBasic">
4cdf0e10cSrcweir
5cdf0e10cSrcweir
6cdf0e10cSrcweir'*************************************************************************
7cdf0e10cSrcweir'
8*f94e042dSAndrew Rist'  Licensed to the Apache Software Foundation (ASF) under one
9*f94e042dSAndrew Rist'  or more contributor license agreements.  See the NOTICE file
10*f94e042dSAndrew Rist'  distributed with this work for additional information
11*f94e042dSAndrew Rist'  regarding copyright ownership.  The ASF licenses this file
12*f94e042dSAndrew Rist'  to you under the Apache License, Version 2.0 (the
13*f94e042dSAndrew Rist'  "License"); you may not use this file except in compliance
14*f94e042dSAndrew Rist'  with the License.  You may obtain a copy of the License at
15*f94e042dSAndrew Rist'
16*f94e042dSAndrew Rist'    http://www.apache.org/licenses/LICENSE-2.0
17*f94e042dSAndrew Rist'
18*f94e042dSAndrew Rist'  Unless required by applicable law or agreed to in writing,
19*f94e042dSAndrew Rist'  software distributed under the License is distributed on an
20*f94e042dSAndrew Rist'  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21*f94e042dSAndrew Rist'  KIND, either express or implied.  See the License for the
22*f94e042dSAndrew Rist'  specific language governing permissions and limitations
23*f94e042dSAndrew Rist'  under the License.
24cdf0e10cSrcweir'
25cdf0e10cSrcweir'*************************************************************************
26cdf0e10cSrcweir
27cdf0e10cSrcweir
28cdf0e10cSrcweir
29*f94e042dSAndrew Rist
30*f94e042dSAndrew Rist
31cdf0e10cSrcweir' Be sure that all variables are dimensioned:
32cdf0e10cSrcweiroption explicit
33cdf0e10cSrcweir
34cdf0e10cSrcweir'*************************************************************************
35cdf0e10cSrcweir' This Interface/Service test depends on the following GLOBAL variables,
36cdf0e10cSrcweir' which must be specified in the object creation:
37cdf0e10cSrcweir
38cdf0e10cSrcweir'     - Global oCollection As Object [optional]
39cdf0e10cSrcweir'       if this relation exists then the method "count" is called for check insert/remove
40cdf0e10cSrcweir'     - Global oInstance As Object
41cdf0e10cSrcweir'       Global aAddons() As Variant [optional]
42cdf0e10cSrcweir'       if this relation exists, then additional methods are called before and after insert/removeTextContent() methods
43cdf0e10cSrcweir
44cdf0e10cSrcweir'*************************************************************************
45cdf0e10cSrcweir
46cdf0e10cSrcweir
47cdf0e10cSrcweir
48cdf0e10cSrcweir
49cdf0e10cSrcweir
50cdf0e10cSrcweir
51cdf0e10cSrcweirSub RunTest()
52cdf0e10cSrcweir
53cdf0e10cSrcweir'*************************************************************************
54cdf0e10cSrcweir' INTERFACE:
55cdf0e10cSrcweir' com.sun.star.text.XText
56cdf0e10cSrcweir'*************************************************************************
57cdf0e10cSrcweirOn Error Goto ErrHndl
58cdf0e10cSrcweir    Dim bOK As Boolean
59cdf0e10cSrcweir    Dim cText As String
60cdf0e10cSrcweir    Dim oCursor As Object
61cdf0e10cSrcweir    Dim i1 As Integer
62cdf0e10cSrcweir    Dim i2 As Integer
63cdf0e10cSrcweir
64cdf0e10cSrcweir    Test.StartMethod("insertTextContent()")
65cdf0e10cSrcweir    bOK = true
66cdf0e10cSrcweir    cText = ". Zeile : test_XText"
67cdf0e10cSrcweir
68cdf0e10cSrcweir    If IsObject(oCollection) and IsObject(oInstance) Then
69cdf0e10cSrcweir        oCursor = oObj.createTextCursor()
70cdf0e10cSrcweir        oCursor.gotoEnd(false)
71cdf0e10cSrcweir        i1 = count(oCollection)
72cdf0e10cSrcweir        Out.Log("Before inserting we have " + i1 + " elements.")
73cdf0e10cSrcweir
74cdf0e10cSrcweir'        if isArray(aAddons) then
75cdf0e10cSrcweir'            Out.Log("Calling beforeInsertTextContent() ...")
76cdf0e10cSrcweir'            beforeInsertTextContent()
77cdf0e10cSrcweir'        endif
78cdf0e10cSrcweir
79cdf0e10cSrcweir        oObj.insertTextContent(oCursor, oInstance, false)
80cdf0e10cSrcweir
81cdf0e10cSrcweir'        if isArray(aAddons) then
82cdf0e10cSrcweir'            Out.Log("Calling afterInsertTextContent() ...")
83cdf0e10cSrcweir'            afterInsertTextContent()
84cdf0e10cSrcweir'        endif
85cdf0e10cSrcweir
86cdf0e10cSrcweir        i2 = count(oCollection)
87cdf0e10cSrcweir        Out.Log("After inserting we have " + i2 + " elements.")
88cdf0e10cSrcweir        bOK = bOK AND i1 = i2 - 1
89cdf0e10cSrcweir        Test.MethodTested("insertTextContent()", bOK)
90cdf0e10cSrcweir
91cdf0e10cSrcweir        Test.StartMethod("removeTextContent()")
92cdf0e10cSrcweir        bOK = true
93cdf0e10cSrcweir        i1 = count(oCollection)
94cdf0e10cSrcweir        Out.Log("Before removing we have " + i1 + " elements.")
95cdf0e10cSrcweir
96cdf0e10cSrcweir'        if (isArray(aAddons)) then
97cdf0e10cSrcweir'           Out.Log("Calling beforeRemoveTextContent() ...")
98cdf0e10cSrcweir'            beforeRemoveTextContent()
99cdf0e10cSrcweir'        endif
100cdf0e10cSrcweir
101cdf0e10cSrcweir        oObj.removeTextContent(oInstance)
102cdf0e10cSrcweir
103cdf0e10cSrcweir'        if (isArray(aAddons)) then
104cdf0e10cSrcweir'            Out.Log("Calling afterRemoveTextContent() ...")
105cdf0e10cSrcweir'            afterRemoveTextContent()
106cdf0e10cSrcweir'        endif
107cdf0e10cSrcweir
108cdf0e10cSrcweir        i2 = count(oCollection)
109cdf0e10cSrcweir        Out.Log("After removing we have " + i2 + " elements.")
110cdf0e10cSrcweir        bOK = bOK AND i1 = i2 + 1
111cdf0e10cSrcweir        Test.MethodTested("removeTextContent()", bOK)
112cdf0e10cSrcweir    Else
113cdf0e10cSrcweir        oCursor = oObj.createTextCursor()
114cdf0e10cSrcweir        oCursor.gotoEnd(false)
115cdf0e10cSrcweir        oObj.insertTextContent(oCursor, oInstance, false)
116cdf0e10cSrcweir        Test.MethodTested("insertTextContent()", True)
117cdf0e10cSrcweir        Test.StartMethod("removeTextContent()")
118cdf0e10cSrcweir        oObj.removeTextContent(oInstance)
119cdf0e10cSrcweir        Test.MethodTested("removeTextContent()", True)
120cdf0e10cSrcweir    End If
121cdf0e10cSrcweir
122cdf0e10cSrcweirExit Sub
123cdf0e10cSrcweirErrHndl:
124cdf0e10cSrcweir    Test.Exception()
125cdf0e10cSrcweir    bOK = false
126cdf0e10cSrcweir    resume next
127cdf0e10cSrcweirEnd Sub
128cdf0e10cSrcweir
129cdf0e10cSrcweirFunction count(container As Variant) As Integer
130cdf0e10cSrcweir    Dim iAmount As Integer
131cdf0e10cSrcweir    Dim oEnumeration As Object
132cdf0e10cSrcweir
133cdf0e10cSrcweir    if hasUnoInterfaces(container, "com.sun.star.container.XIndexAccess") then
134cdf0e10cSrcweir        iAmount = container.getCount()
135cdf0e10cSrcweir    elseif hasUnoInterfaces(container, "com.sun.star.container.XNameAccess") then
136cdf0e10cSrcweir        iAmount = ubound(container.getElementNames()) + 1
137cdf0e10cSrcweir    elseif hasUnoInterfaces(container, "com.sun.star.container.XEnumerationAccess") then
138cdf0e10cSrcweir        oEnumeration = container.createEnumeration()
139cdf0e10cSrcweir        iAmount = 0
140cdf0e10cSrcweir        while oEnumeration.hasMoreElements()
141cdf0e10cSrcweir            iAmount = iAmount + 1
142cdf0e10cSrcweir            oEnumeration.nextElement()
143cdf0e10cSrcweir        wend
144cdf0e10cSrcweir    end if
145cdf0e10cSrcweir
146cdf0e10cSrcweir    count() = iAmount
147cdf0e10cSrcweirEnd Function
148cdf0e10cSrcweir</script:module>
149