fd19bc83cf
Basic function argument names can be used either by position either by name, keyword arguments ae called 'named arguments' in VBA - VBA doc: https://learn.microsoft.com/en-us/office/vba/language/concepts/getting-started/understanding-named-arguments-and-optional-arguments - libO Basic function signatures: https://help.libreoffice.org/latest/en-US/text/sbasic/shared/03090401.html?DbPAR=BASIC#bm_id3154422 This patch attempts to correct - all in one - malformed keyword names in BASIC function signatures. It reflects keyword arguments usage inside QA BASIC unit tests. In the end Online help pages may incorporate such practice. Change-Id: Iab0c92b2c152d2564662e51e68f1f736b8deefd0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145720 Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
63 lines
2.5 KiB
VB.net
63 lines
2.5 KiB
VB.net
'
|
|
' 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))")
|
|
|
|
' 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
|