CppunitTest_sc_vba_macro_test: split single test into different ones
so every document is loaded in different tests Removing the IsDefaultDPI() for now. it should be added only to those test failing but since I don't have hi-dpi I don't know which are those Change-Id: I64393d10e093f5a1b034cfcc0d964a38ea136ed7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198741 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
This commit is contained in:
@@ -23,12 +23,6 @@
|
||||
#include <com/sun/star/uno/Any.h>
|
||||
#include <utility>
|
||||
|
||||
struct TestMacroInfo
|
||||
{
|
||||
OUString sFileBaseName;
|
||||
OUString sMacroUrl;
|
||||
};
|
||||
|
||||
class BasicDLL;
|
||||
class SvStream;
|
||||
|
||||
|
||||
+224
-102
@@ -45,8 +45,48 @@ public:
|
||||
: UnoApiTest(u"/sc/qa/extras/testdocuments"_ustr)
|
||||
{
|
||||
}
|
||||
|
||||
void testMacro(std::u16string_view aFileName, const OUString& rScriptURL);
|
||||
};
|
||||
|
||||
void VBAMacroTest::testMacro(std::u16string_view aFileName, const OUString& rScriptURL)
|
||||
{
|
||||
loadFromFile(aFileName);
|
||||
OUString sTempDir;
|
||||
OUString sTempDirURL;
|
||||
osl::FileBase::getTempDirURL(sTempDirURL);
|
||||
osl::FileBase::getSystemPathFromFileURL(sTempDirURL, sTempDir);
|
||||
sTempDir += OUStringChar(SAL_PATHDELIMITER);
|
||||
OUString sTestFileName(u"My Test WorkBook.xls"_ustr);
|
||||
uno::Sequence<uno::Any> aParams;
|
||||
|
||||
// process all events such as OnLoad events etc. otherwise they tend
|
||||
// to arrive later at a random time - while processing other StarBasic
|
||||
// methods.
|
||||
Scheduler::ProcessEventsToIdle();
|
||||
|
||||
bool bWorkbooksHandling = aFileName == u"Workbooks.xls" && !sTempDir.isEmpty();
|
||||
|
||||
if (bWorkbooksHandling)
|
||||
{
|
||||
aParams = { uno::Any(sTempDir), uno::Any(sTestFileName) };
|
||||
}
|
||||
|
||||
uno::Any aRet = executeMacro(rScriptURL, aParams);
|
||||
OUString aStringRes;
|
||||
CPPUNIT_ASSERT(aRet >>= aStringRes);
|
||||
CPPUNIT_ASSERT_EQUAL(u"OK"_ustr, aStringRes);
|
||||
|
||||
if (bWorkbooksHandling)
|
||||
{
|
||||
OUString sFileUrl;
|
||||
OUString sFilePath = sTempDir + sTestFileName;
|
||||
osl::FileBase::getFileURLFromSystemPath(sFilePath, sFileUrl);
|
||||
if (!sFileUrl.isEmpty())
|
||||
osl::File::remove(sFileUrl);
|
||||
}
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testSimpleCopyAndPaste)
|
||||
{
|
||||
// Copy-paste values in the same sheet
|
||||
@@ -321,33 +361,69 @@ CPPUNIT_TEST_FIXTURE(VBAMacroTest, testMacroKeyBinding)
|
||||
xAccelerator->getCommandByKeyEvent(aCtrlT));
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testAdress)
|
||||
{
|
||||
testMacro(
|
||||
u"TestAddress.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testVba)
|
||||
{
|
||||
// FIXME: the DPI check should be removed when either (1) the test is fixed to work with
|
||||
// non-default DPI; or (2) unit tests on Windows are made to use svp VCL plugin.
|
||||
if (!IsDefaultDPI())
|
||||
return;
|
||||
TestMacroInfo testInfo[] = {
|
||||
{ u"TestAddress.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{
|
||||
u"vba.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.Modul1.Modul1?language=Basic&location=document"_ustr,
|
||||
},
|
||||
{ u"MiscRangeTests.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"bytearraystring.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacro.test?language=Basic&location=document"_ustr },
|
||||
{ u"AutoFilter.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"CalcFont.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"TestIntersection.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"TestUnion.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"range-4.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
testMacro(
|
||||
u"vba.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.Modul1.Modul1?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testMiscRangeTests)
|
||||
{
|
||||
testMacro(
|
||||
u"MiscRangeTests.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testByteArrayString)
|
||||
{
|
||||
testMacro(
|
||||
u"bytearraystring.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacro.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testAutoFilter)
|
||||
{
|
||||
testMacro(
|
||||
u"AutoFilter.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testFont)
|
||||
{
|
||||
testMacro(
|
||||
u"CalcFont.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testIntersection)
|
||||
{
|
||||
testMacro(
|
||||
u"TestIntersection.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testUnion)
|
||||
{
|
||||
testMacro(
|
||||
u"TestUnion.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testRanges4)
|
||||
{
|
||||
testMacro(
|
||||
u"range-4.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
// FIXME: sometimes it fails on Windows with
|
||||
// Failed: : Test change event for Range.Clear set:
|
||||
// Failed: : Test change event for Range.ClearContents set:
|
||||
@@ -356,91 +432,137 @@ CPPUNIT_TEST_FIXTURE(VBAMacroTest, testVba)
|
||||
// Tests passed: 4
|
||||
// Tests failed: 4
|
||||
#if !defined(_WIN32)
|
||||
{ u"Ranges-3.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testRanges3)
|
||||
{
|
||||
testMacro(
|
||||
u"Ranges-3.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
#endif
|
||||
{ u"TestCalc_Rangetest.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"TestCalc_Rangetest2.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"Ranges-2.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"pagesetup.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"Window.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"window2.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"PageBreaks.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"Shapes.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"Ranges.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"CheckOptionToggleValue.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"GeneratedEventTest.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"MiscControlTests.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"Workbooks.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"Names.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"NamesSheetLocal.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"vba_endFunction.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"vba_findFunction.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr },
|
||||
{ u"BGR-RGBTest.xls"_ustr,
|
||||
u"vnd.sun.Star.script:VBAProject.Module1.test?language=Basic&location=document"_ustr }
|
||||
};
|
||||
OUString sTempDir;
|
||||
OUString sTempDirURL;
|
||||
osl::FileBase::getTempDirURL(sTempDirURL);
|
||||
osl::FileBase::getSystemPathFromFileURL(sTempDirURL, sTempDir);
|
||||
sTempDir += OUStringChar(SAL_PATHDELIMITER);
|
||||
OUString sTestFileName(u"My Test WorkBook.xls"_ustr);
|
||||
uno::Sequence<uno::Any> aParams;
|
||||
for (const auto& rTestInfo : testInfo)
|
||||
{
|
||||
OUString aFileName = loadFromFile(rTestInfo.sFileBaseName);
|
||||
|
||||
// process all events such as OnLoad events etc. otherwise they tend
|
||||
// to arrive later at a random time - while processing other StarBasic
|
||||
// methods.
|
||||
Scheduler::ProcessEventsToIdle();
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testRanges6)
|
||||
{
|
||||
testMacro(
|
||||
u"TestCalc_Rangetest.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
bool bWorkbooksHandling = rTestInfo.sFileBaseName == "Workbooks.xls" && !sTempDir.isEmpty();
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testRanges5)
|
||||
{
|
||||
testMacro(
|
||||
u"TestCalc_Rangetest2.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
if (bWorkbooksHandling)
|
||||
{
|
||||
aParams = { uno::Any(sTempDir), uno::Any(sTestFileName) };
|
||||
}
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testRanges2)
|
||||
{
|
||||
testMacro(
|
||||
u"Ranges-2.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
SAL_INFO("sc.qa", "about to invoke vba test in " << aFileName << " with url "
|
||||
<< rTestInfo.sMacroUrl);
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testPageSetup)
|
||||
{
|
||||
testMacro(
|
||||
u"pagesetup.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
uno::Any aRet = executeMacro(rTestInfo.sMacroUrl, aParams);
|
||||
OUString aStringRes;
|
||||
aRet >>= aStringRes;
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testWindows)
|
||||
{
|
||||
testMacro(
|
||||
u"Window.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE(
|
||||
OUString("script reported failure in file " + rTestInfo.sFileBaseName)
|
||||
.toUtf8()
|
||||
.getStr(),
|
||||
u"OK"_ustr, aStringRes);
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testWindows2)
|
||||
{
|
||||
testMacro(
|
||||
u"window2.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
if (bWorkbooksHandling)
|
||||
{
|
||||
OUString sFileUrl;
|
||||
OUString sFilePath = sTempDir + sTestFileName;
|
||||
osl::FileBase::getFileURLFromSystemPath(sFilePath, sFileUrl);
|
||||
if (!sFileUrl.isEmpty())
|
||||
osl::File::remove(sFileUrl);
|
||||
}
|
||||
}
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testPageBreaks)
|
||||
{
|
||||
testMacro(
|
||||
u"PageBreaks.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testShapes)
|
||||
{
|
||||
testMacro(
|
||||
u"Shapes.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testRanges)
|
||||
{
|
||||
testMacro(
|
||||
u"Ranges.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testCheckOptionToggleValue)
|
||||
{
|
||||
testMacro(
|
||||
u"CheckOptionToggleValue.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testGeneratedEventTest)
|
||||
{
|
||||
testMacro(
|
||||
u"GeneratedEventTest.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testMiscControlTests)
|
||||
{
|
||||
testMacro(
|
||||
u"MiscControlTests.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testWorkbooks)
|
||||
{
|
||||
testMacro(
|
||||
u"Workbooks.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testNames)
|
||||
{
|
||||
testMacro(
|
||||
u"Names.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testNamesSheetLocal)
|
||||
{
|
||||
testMacro(
|
||||
u"NamesSheetLocal.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testendFunction)
|
||||
{
|
||||
testMacro(
|
||||
u"vba_endFunction.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testfindFunction)
|
||||
{
|
||||
testMacro(
|
||||
u"vba_findFunction.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testBGR_RGB)
|
||||
{
|
||||
testMacro(u"BGR-RGBTest.xls",
|
||||
u"vnd.sun.Star.script:VBAProject.Module1.test?language=Basic&location=document"_ustr);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_FIXTURE(VBAMacroTest, testTdf149579)
|
||||
|
||||
Reference in New Issue
Block a user