summaryrefslogtreecommitdiffstats
path: root/basic/qa/vba_tests/split.vb
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 09:06:44 +0000
commited5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch)
tree7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /basic/qa/vba_tests/split.vb
parentInitial commit. (diff)
downloadlibreoffice-upstream.tar.xz
libreoffice-upstream.zip
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'basic/qa/vba_tests/split.vb')
-rw-r--r--basic/qa/vba_tests/split.vb57
1 files changed, 57 insertions, 0 deletions
diff --git a/basic/qa/vba_tests/split.vb b/basic/qa/vba_tests/split.vb
new file mode 100644
index 000000000..56d452218
--- /dev/null
+++ b/basic/qa/vba_tests/split.vb
@@ -0,0 +1,57 @@
+'
+' This file is part of the LibreOffice project.
+'
+' This Source Code Form is subject to the terms of the Mozilla Public
+' License, v. 2.0. If a copy of the MPL was not distributed with this
+' file, You can obtain one at http://mozilla.org/MPL/2.0/.
+'
+
+Option VBASupport 1
+Option Explicit
+
+Function doUnitTest() As String
+ TestUtil.TestInit
+ verify_testSplit
+ doUnitTest = TestUtil.GetResult()
+End Function
+
+Sub verify_testSplit
+ On Error GoTo errorHandler
+
+ ' SPLIT
+ TestUtil.AssertEqual(Split( "Hello world" )(1), "world", "Split( ""Hello world"" )(1)")
+
+ ' tdf#123025 - split function sets the datatype of the array to empty,
+ ' preventing any subsequent assignments of values to the array and to the elements itself.
+ Dim arr(1) As String
+ arr = Split("a/b", "/")
+ TestUtil.AssertEqual(arr(0), "a", "Split(""a/b"", ""/"")(0)")
+ TestUtil.AssertEqual(arr(1), "b", "Split(""a/b"", ""/"")(1)")
+ ReDim Preserve arr(1)
+ TestUtil.AssertEqual(arr(0), "a", "ReDim Preserve arr(1)(0)")
+ TestUtil.AssertEqual(arr(1), "b", "ReDim Preserve arr(1)(1)")
+ ReDim arr(1)
+ TestUtil.AssertEqual(arr(0), "", "ReDim arr(1)(0)")
+ TestUtil.AssertEqual(arr(1), "", "ReDim arr(1)(1)")
+
+ arr(0) = "a"
+ arr(1) = "b"
+ TestUtil.AssertEqual(arr(0), "a", "arr(0)")
+ TestUtil.AssertEqual(arr(1), "b", "arr(1)")
+ ReDim Preserve arr(1)
+ TestUtil.AssertEqual(arr(0), "a", "ReDim Preserve arr(1)(0) after assignment")
+ TestUtil.AssertEqual(arr(1), "b", "ReDim Preserve arr(1)(1) after assignment")
+
+ ' tdf#144924 - using VBASupport 1, the split function returns an array of substrings, hence no
+ ' assignment of different data types to the individual elements is possible
+ Dim splitArr
+ splitArr = Split("a/b&&c/d", "&&")
+ ' Without the fix in place, this test would have failed with:
+ ' - Expected: 8 (8 for String)
+ ' - Actual : 8200 (8192 for Array and 8 for String)
+ TestUtil.AssertEqual(VarType(splitArr(0)), 8, "VarType(splitArr(0))")
+
+ Exit Sub
+errorHandler:
+ TestUtil.ReportErrorHandler("verify_testSplit", Err, Error$, Erl)
+End Sub