diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
commit | 267c6f2ac71f92999e969232431ba04678e7437e (patch) | |
tree | 358c9467650e1d0a1d7227a21dac2e3d08b622b2 /basic/qa/basic_coverage/test_split_method.bas | |
parent | Initial commit. (diff) | |
download | libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.tar.xz libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.zip |
Adding upstream version 4:24.2.0.upstream/4%24.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'basic/qa/basic_coverage/test_split_method.bas')
-rw-r--r-- | basic/qa/basic_coverage/test_split_method.bas | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/basic/qa/basic_coverage/test_split_method.bas b/basic/qa/basic_coverage/test_split_method.bas new file mode 100644 index 0000000000..e53dfd9705 --- /dev/null +++ b/basic/qa/basic_coverage/test_split_method.bas @@ -0,0 +1,65 @@ +' 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 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 - allow the assignment of different data types to the individual elements + Dim splitArr + splitArr = Split("a/b&&c/d", "&&") + Dim i As Integer + For i = 0 To UBound(splitArr) + ' Without the fix in place, this assignment would have failed + splitArr(i) = Split(splitArr(i), "/") + ' Without the fix in place, this test would have failed with: + ' - Expected: 8200 (8192 for Array and 8 for String) + ' - Actual : 8 (8 for String) + TestUtil.AssertEqual(VarType(splitArr(i)), 8200, "VarType(splitArr(i))") + Next + + ' tdf#141474 keyword names need to match that of VBA + TestUtil.AssertEqual(Split(expression:="LibreOffice StarOffice")(1), "StarOffice", "Split with 1 keyword name" ) + Dim txt As String : txt = "Libre_Office_Star_Office" + TestUtil.AssertEqual(Split(delimiter:="_", expression:=txt)(2), "Star", "Split with 2 keyword names" ) + TestUtil.AssertEqual(Split(limit:=3, delimiter:="_", expression:=txt)(2), "Star_Office", "Split with 3 keyword names" ) + + Exit Sub +errorHandler: + TestUtil.ReportErrorHandler("verify_testSplit", Err, Error$, Erl) +End Sub |