1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3<script:module xmlns:script="http://openoffice.org/2000/script" script:name="text_XRelativeTextContentInsert" script:language="StarBasic">
4
5
6'*************************************************************************
7'
8'  Licensed to the Apache Software Foundation (ASF) under one
9'  or more contributor license agreements.  See the NOTICE file
10'  distributed with this work for additional information
11'  regarding copyright ownership.  The ASF licenses this file
12'  to you under the Apache License, Version 2.0 (the
13'  "License"); you may not use this file except in compliance
14'  with the License.  You may obtain a copy of the License at
15'
16'    http://www.apache.org/licenses/LICENSE-2.0
17'
18'  Unless required by applicable law or agreed to in writing,
19'  software distributed under the License is distributed on an
20'  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21'  KIND, either express or implied.  See the License for the
22'  specific language governing permissions and limitations
23'  under the License.
24'
25'*************************************************************************
26
27
28
29
30
31
32
33Sub RunTest()
34
35'*************************************************************************
36' INTERFACE:
37' com.sun.star.text.XRelativeTextContentInsert
38'*************************************************************************
39On Error Goto ErrHndl
40    Dim bOK As Boolean
41    Dim oEnum As Object
42    Dim oCursor As Object
43    Dim oContent1 As Object
44    Dim oContent2 As Object
45    Dim bFound As Boolean
46    Dim oEl As Object
47
48    Test.StartMethod("insertTextContentBefore()")
49    bOK = true
50    oCursor = oObj.createTextCursor()
51    if (isNULL(oCursor)) then Out.Log("Can't create text cursor!")
52
53    Out.Log("First, mark all existent entries with 0")
54
55    oEnum = oObj.createEnumeration()
56    while (oEnum.hasMoreElements())
57        oEl = oEnum.NextElement()
58        if (oEl.supportsService("com.sun.star.text.Paragraph")) then
59            oEl.String = "0"
60        end if
61    wend
62
63    Out.Log("Inserting TextSection...")
64    oContent1 = oDoc.createInstance("com.sun.star.text.TextSection")
65    oObj.insertTextContent(oCursor, oContent1, false)
66
67    oEnum = oObj.createEnumeration()
68    while (oEnum.hasMoreElements())
69        oEl = oEnum.NextElement()
70        if (oEl.supportsService("com.sun.star.text.Paragraph")) then
71            if (oEl.String = "") then oEl.String = "1"
72        end if
73    wend
74
75    Out.Log("Mark new entry with 1")
76
77    oContent2 = oDoc.createInstance("com.sun.star.text.Paragraph")
78    oObj.insertTextContentBefore(oContent2, oContent1)
79
80    oEnum = oObj.createEnumeration()
81    while (oEnum.hasMoreElements())
82        oEl = oEnum.NextElement()
83        if (oEl.supportsService("com.sun.star.text.Paragraph")) then
84            if (oEl.String = "") then oEl.String = "2"
85        end if
86    wend
87
88    Out.Log("Mark new entry with 2")
89
90    Out.Log("Testing that content was inserted BEFORE. I.e. Label 2 before label 1")
91
92    oEnum = oObj.createEnumeration()
93    bFound = false
94    while (oEnum.hasMoreElements() AND NOT bFound)
95        oEl = oEnum.NextElement()
96        if (oEl.supportsService("com.sun.star.text.Paragraph")) then
97            bFound = oEl.String = "2"
98        end if
99    wend
100
101    oEl = oEnum.NextElement()
102    bOK = bOK AND oEl.String = "1"
103
104    Test.MethodTested("insertTextContentBefore()", bOK)
105
106
107    Test.StartMethod("insertTextContentAfter()")
108    bOK = true
109
110    Out.Log("Inserting TextSection...")
111    oContent1 = oDoc.createInstance("com.sun.star.text.TextSection")
112    oObj.insertTextContent(oCursor, oContent1, false)
113
114    oEnum = oObj.createEnumeration()
115    while (oEnum.hasMoreElements())
116        oEl = oEnum.NextElement()
117        if (oEl.supportsService("com.sun.star.text.Paragraph")) then
118            if (oEl.String = "") then oEl.String = "3"
119        end if
120    wend
121
122    Out.Log("Mark new entry with 3")
123
124    oContent2 = oDoc.createInstance("com.sun.star.text.Paragraph")
125    oObj.insertTextContentAfter(oContent2, oContent1)
126
127    oEnum = oObj.createEnumeration()
128    while (oEnum.hasMoreElements())
129        oEl = oEnum.NextElement()
130        if (oEl.supportsService("com.sun.star.text.Paragraph")) then
131            if (oEl.String = "") then oEl.String = "4"
132        end if
133    wend
134
135    Out.Log("Mark new entry with 4")
136
137    Out.Log("Testing that content was inserted AFTRER. I.e. Label 4 after label 3")
138
139    oEnum = oObj.createEnumeration()
140    bFound = false
141    while (oEnum.hasMoreElements() AND NOT bFound)
142        oEl = oEnum.NextElement()
143        if (oEl.supportsService("com.sun.star.text.Paragraph")) then
144            bFound = oEl.String = "3"
145        end if
146    wend
147
148    oEl = oEnum.NextElement()
149    bOK = bOK AND oEl.String = "4"
150
151    Test.MethodTested("insertTextContentAfter()", bOK)
152
153Exit Sub
154ErrHndl:
155    Test.Exception()
156    bOK = false
157    resume next
158End Sub
159</script:module>
160