diff options
author | Zdeněk Crhonek <zcrhonek@gmail.com> | 2017-03-18 14:38:09 +0100 |
---|---|---|
committer | Zdenek Crhonek <zcrhonek@gmail.com> | 2017-03-18 16:26:09 +0000 |
commit | 1e02750ef22ff97d1819f96955be9bd25a0507b3 (patch) | |
tree | d49ba0b03360810327e0dd34c0b34922176ec908 /basic | |
parent | 7cf3f4d1d74d7954ea38133d6b73e047db33a6ed (diff) |
VBA tests - add CVDATE,CVERR,DATEADD test case
Change-Id: Ib6b79eb3a3daf22dd4f15427a3e8547300f8b8f9
Reviewed-on: https://gerrit.libreoffice.org/35403
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Zdenek Crhonek <zcrhonek@gmail.com>
Diffstat (limited to 'basic')
-rw-r--r-- | basic/qa/cppunit/test_vba.cxx | 3 | ||||
-rw-r--r-- | basic/qa/vba_tests/cvdate.vb | 70 | ||||
-rw-r--r-- | basic/qa/vba_tests/cverr.vb | 90 | ||||
-rw-r--r-- | basic/qa/vba_tests/dateadd.vb | 107 |
4 files changed, 270 insertions, 0 deletions
diff --git a/basic/qa/cppunit/test_vba.cxx b/basic/qa/cppunit/test_vba.cxx index a2d16613f321..81b1504e3d02 100644 --- a/basic/qa/cppunit/test_vba.cxx +++ b/basic/qa/cppunit/test_vba.cxx @@ -69,6 +69,9 @@ void VBATest::testMiscVBAFunctions() "clng.vb", "csng.vb", "cstr.vb", + "cvdate.vb", + "cverr.vb", + "dateadd.vb", #ifndef WIN32 // missing 64bit Currency marshalling. "win32compat.vb", // windows compatibility hooks. #endif diff --git a/basic/qa/vba_tests/cvdate.vb b/basic/qa/vba_tests/cvdate.vb new file mode 100644 index 000000000000..118d9e0ece21 --- /dev/null +++ b/basic/qa/vba_tests/cvdate.vb @@ -0,0 +1,70 @@ +Option VBASupport 1 +Option Explicit +Dim passCount As Integer +Dim failCount As Integer +Dim result As String + +Function doUnitTest() As String +result = verify_testCVDate() +If failCount <> 0 And passCount > 0 Then + doUnitTest = result +Else + doUnitTest = "OK" +End If +End Function + + + +Function verify_testCVDate() 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 As Date 'variables for test + testName = "Test CVDate function" + On Error GoTo errorHandler + + date2 = 25246 + date1 = CVDate("12.2.1969") '2/12/1969 + TestLog_ASSERT date1 = date2, "the return CVDate is: " & date1 + + date2 = 28313 + date1 = CVDate("07/07/1977") + TestLog_ASSERT date1 = date2, "the return CVDate is: " & date1 + + date2 = 28313 + date1 = CVDate(#7/7/1977#) + TestLog_ASSERT date1 = date2, "the return CVDate is: " & date1 + + result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10) + verify_testCVDate = 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/cverr.vb b/basic/qa/vba_tests/cverr.vb new file mode 100644 index 000000000000..28c1792e3ecd --- /dev/null +++ b/basic/qa/vba_tests/cverr.vb @@ -0,0 +1,90 @@ +Option VBASupport 1 +Option Explicit +Dim passCount As Integer +Dim failCount As Integer +Dim result As String + +Function doUnitTest() As String +result = verify_testCVErr() +If failCount <> 0 And passCount > 0 Then + doUnitTest = result +Else + doUnitTest = "OK" +End If +End Function + + + +Function verify_testCVErr() 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 CVErr function" + On Error GoTo errorHandler + + date2 = "Error 3001" + date1 = CStr(CVErr(3001)) + TestLog_ASSERT date1 = date2, "the return CVErr is: " & date1 + + date2 = "Error 2007" + date1 = CStr(CVErr(xlErrDiv0)) + TestLog_ASSERT date1 = date2, "the return CVErr is: " & date1 + + date2 = "Error 2042" + date1 = CStr(CVErr(xlErrNA)) + TestLog_ASSERT date1 = date2, "the return CVErr is: " & date1 + + date2 = "Error 2029" + date1 = CStr(CVErr(xlErrName)) + TestLog_ASSERT date1 = date2, "the return CVErr is: " & date1 + + date2 = "Error 2000" + date1 = CStr(CVErr(xlErrNull)) + TestLog_ASSERT date1 = date2, "the return CVErr is: " & date1 + + date2 = "Error 2036" + date1 = CStr(CVErr(xlErrNum)) + TestLog_ASSERT date1 = date2, "the return CVErr is: " & date1 + + date2 = "Error 2023" + date1 = CStr(CVErr(xlErrRef)) + TestLog_ASSERT date1 = date2, "the return CVErr is: " & date1 + + date2 = "Error 2015" + date1 = CStr(CVErr(xlErrValue)) + TestLog_ASSERT date1 = date2, "the return CVErr is: " & date1 + + result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10) + verify_testCVErr = 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/dateadd.vb b/basic/qa/vba_tests/dateadd.vb new file mode 100644 index 000000000000..d62664f3c247 --- /dev/null +++ b/basic/qa/vba_tests/dateadd.vb @@ -0,0 +1,107 @@ +Option VBASupport 1 +Option Explicit +Dim passCount As Integer +Dim failCount As Integer +Dim result As String + +Function doUnitTest() As String +result = verify_testDateAdd() +If failCount <> 0 And passCount > 0 Then + doUnitTest = result +Else + doUnitTest = "OK" +End If +End Function + + + +Function verify_testDateAdd() 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 As Date 'variables for test + testName = "Test DateAdd function" + On Error GoTo errorHandler + + date2 = CDate("28.02.1995") + date1 = DateAdd("m", 1, "31.1.1995") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + + date2 = CDate("28.02.1995") + date1 = DateAdd("m", 1, "31.1.1995") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + + date2 = CDate("28.02.1995") + date1 = DateAdd("m", 1, "31.1.1995") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + + date2 = CDate("31.01.1996") + date1 = DateAdd("yyyy", 1, "31.1.1995") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + + date2 = CDate("30.04.1995") + date1 = DateAdd("q", 1, "31.1.1995") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + + date2 = CDate("1.02.1995") + date1 = DateAdd("y", 1, "31.1.1995") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + + date2 = CDate("1.02.1995") + date1 = DateAdd("d", 1, "31.1.1995") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + + date2 = CDate("1.02.1995") + date1 = DateAdd("w", 1, "31.1.1995") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + + date2 = CDate("7.02.1995") + date1 = DateAdd("ww", 1, "31.1.1995") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + +Rem why this fails in excel? + date2 = CDate("1.1.1995 22:48:29") + date1 = DateAdd("h", 1, "1.1.1995 21:48:29") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + + date2 = CDate("31.1.1995 21:49:29") + date1 = DateAdd("n", 1, "31.1.1995 21:48:29") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + + date2 = CDate("31.1.1995 21:48:30") + date1 = DateAdd("s", 1, "31.1.1995 21:48:29") + TestLog_ASSERT date1 = date2, "the return DateAdd is: " & date1 + + result = result & Chr$(10) & "Tests passed: " & passCount & Chr$(10) & "Tests failed: " & failCount & Chr$(10) + verify_testDateAdd = 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 + |