From 3acfc281ad2324a678367d907ce4b2b5a9e2abc0 Mon Sep 17 00:00:00 2001 From: Zdeněk Crhonek Date: Wed, 2 Aug 2017 18:24:18 +0200 Subject: VBA tests - STR and STRCOMP functions Change-Id: I09daaa8be3687bf838f569849542d47c85907d1e Reviewed-on: https://gerrit.libreoffice.org/40687 Tested-by: Jenkins Reviewed-by: Zdenek Crhonek --- basic/qa/cppunit/test_vba.cxx | 2 + basic/qa/vba_tests/str.vb | 75 +++++++++++++++++++++++++++++++++ basic/qa/vba_tests/strcomp.vb | 96 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 173 insertions(+) create mode 100644 basic/qa/vba_tests/str.vb create mode 100644 basic/qa/vba_tests/strcomp.vb (limited to 'basic') diff --git a/basic/qa/cppunit/test_vba.cxx b/basic/qa/cppunit/test_vba.cxx index cad4c176713f..e406a1dc661a 100644 --- a/basic/qa/cppunit/test_vba.cxx +++ b/basic/qa/cppunit/test_vba.cxx @@ -125,6 +125,8 @@ void VBATest::testMiscVBAFunctions() "sln.vb", "space.vb", "sqr.vb", + "str.vb", + "strcomp.vb", #ifndef WIN32 // missing 64bit Currency marshalling. "win32compat.vb", // windows compatibility hooks. #endif diff --git a/basic/qa/vba_tests/str.vb b/basic/qa/vba_tests/str.vb new file mode 100644 index 000000000000..f06775bfecda --- /dev/null +++ b/basic/qa/vba_tests/str.vb @@ -0,0 +1,75 @@ +Option VBASupport 1 +Option Explicit +Dim passCount As Integer +Dim failCount As Integer +Dim result As String + +Function doUnitTest() As String +result = verify_testSTR() +If failCount <> 0 And passCount > 0 Then + doUnitTest = result +Else + doUnitTest = "OK" +End If +End Function + + + +Function verify_testSTR() As String + + passCount = 0 + failCount = 0 + + result = "Test Results" & Chr$(10) & "============" & Chr$(10) + + Dim testName As String + Dim TestDateTime As Date + Dim TestStr As String + Dim date1, date2 + testName = "Test STR function" + On Error GoTo errorHandler + + date2 = " 459" + date1 = Str(459) + TestLog_ASSERT date1 = date2, "the return STR is: " & date1 + + date2 = "-459.65" + date1 = Str(-459.65) + TestLog_ASSERT date1 = date2, "the return STR is: " & date1 + + date2 = " 459.001" + date1 = Str(459.001) + TestLog_ASSERT date1 = date2, "the return STR is: " & date1 + + date2 = " .24" + date1 = Str(0.24) + TestLog_ASSERT date1 = date2, "the return STR is: " & date1 + + result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10) + verify_testSTR = result + + + Exit Function +errorHandler: + TestLog_ASSERT (False), testName & ": hit error handler" +End Function + +Sub TestLog_ASSERT(assertion As Boolean, Optional testId As String, Optional testComment As String) + + If assertion = True Then + passCount = passCount + 1 + Else + Dim testMsg As String + If Not IsMissing(testId) Then + testMsg = testMsg + " : " + testId + End If + If Not IsMissing(testComment) And Not (testComment = "") Then + testMsg = testMsg + " (" + testComment + ")" + End If + + result = result & Chr$(10) & " Failed: " & testMsg + failCount = failCount + 1 + End If + +End Sub + diff --git a/basic/qa/vba_tests/strcomp.vb b/basic/qa/vba_tests/strcomp.vb new file mode 100644 index 000000000000..ecf661f64d9a --- /dev/null +++ b/basic/qa/vba_tests/strcomp.vb @@ -0,0 +1,96 @@ +Option VBASupport 1 +Option Explicit +Dim passCount As Integer +Dim failCount As Integer +Dim result As String + +Function doUnitTest() As String +result = verify_testSTRcomp() +If failCount <> 0 And passCount > 0 Then + doUnitTest = result +Else + doUnitTest = "OK" +End If +End Function + + + +Function verify_testSTRcomp() As String + + passCount = 0 + failCount = 0 + + result = "Test Results" & Chr$(10) & "============" & Chr$(10) + + Dim testName As String + Dim TestDateTime As Date + Dim TestStr, TestStr1, TestStr2 As String + Dim date1, date2 + testName = "Test STRcomp function" + On Error GoTo errorHandler + TestStr1 = "ABCD" + TestStr2 = "abcd" + + date2 = 0 + date1 = StrComp(TestStr1, TestStr2, vbTextCompare) + TestLog_ASSERT date1 = date2, "the return STRcomp is: " & date1 + + date2 = -1 + date1 = StrComp(TestStr1, TestStr2, vbBinaryCompare) + TestLog_ASSERT date1 = date2, "the return STRcomp is: " & date1 + + date2 = -1 + date1 = StrComp(TestStr1, TestStr2) + TestLog_ASSERT date1 = date2, "the return STRcomp is: " & date1 + + date2 = 0 + date1 = StrComp("text", "text", vbBinaryCompare) + TestLog_ASSERT date1 = date2, "the return STRcomp is: " & date1 + + date2 = 1 + date1 = StrComp("text ", "text", vbBinaryCompare) + TestLog_ASSERT date1 = date2, "the return STRcomp is: " & date1 + + date2 = -1 + date1 = StrComp("Text", "text", vbBinaryCompare) + TestLog_ASSERT date1 = date2, "the return STRcomp is: " & date1 + + date2 = 0 + date1 = StrComp("text", "text", vbTextCompare) + TestLog_ASSERT date1 = date2, "the return STRcomp is: " & date1 + + date2 = 1 + date1 = StrComp("text ", "text", vbTextCompare) + TestLog_ASSERT date1 = date2, "the return STRcomp is: " & date1 + + date2 = 0 + date1 = StrComp("Text", "text", vbTextCompare) + TestLog_ASSERT date1 = date2, "the return STRcomp is: " & date1 + + result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10) + verify_testSTRcomp = result + + Exit Function +errorHandler: + TestLog_ASSERT (False), testName & ": hit error handler" +End Function + +Sub TestLog_ASSERT(assertion As Boolean, Optional testId As String, Optional testComment As String) + + If assertion = True Then + passCount = passCount + 1 + Else + Dim testMsg As String + If Not IsMissing(testId) Then + testMsg = testMsg + " : " + testId + End If + If Not IsMissing(testComment) And Not (testComment = "") Then + testMsg = testMsg + " (" + testComment + ")" + End If + + result = result & Chr$(10) & " Failed: " & testMsg + failCount = failCount + 1 + End If + +End Sub + -- cgit