summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2022-11-16 12:32:15 +0100
committerXisco Fauli <xiscofauli@libreoffice.org>2022-11-16 15:12:43 +0100
commit2bf461c88da82b82377afd8effb0aa9c40a03cbf (patch)
tree855be005d5ca5665c3dac11eaa5b7e581315de60 /sc
parent0667b629559031cfe0b415d56b160d238514c9af (diff)
sc: move export tests where they belong
Change-Id: I76d56a3e565ad448ca8690bbcb2966ec4e3fbd7a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142764 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'sc')
-rw-r--r--sc/qa/unit/filters-test.cxx133
-rw-r--r--sc/qa/unit/subsequent_export_test.cxx136
2 files changed, 136 insertions, 133 deletions
diff --git a/sc/qa/unit/filters-test.cxx b/sc/qa/unit/filters-test.cxx
index 862768af8390..88fec15dab14 100644
--- a/sc/qa/unit/filters-test.cxx
+++ b/sc/qa/unit/filters-test.cxx
@@ -74,10 +74,8 @@ public:
void testSharedFormulaXLSX();
void testSharedFormulaRefUpdateXLSX();
void testSheetNamesXLSX();
- void testTdf79998();
void testTdf150599();
void testCommentSize();
- void testLegacyCellAnchoredRotatedShape();
void testEnhancedProtectionXLS();
void testEnhancedProtectionXLSX();
void testSortWithSharedFormulasODS();
@@ -105,10 +103,8 @@ public:
CPPUNIT_TEST(testSharedFormulaXLSX);
CPPUNIT_TEST(testSharedFormulaRefUpdateXLSX);
CPPUNIT_TEST(testSheetNamesXLSX);
- CPPUNIT_TEST(testTdf79998);
CPPUNIT_TEST(testTdf150599);
CPPUNIT_TEST(testCommentSize);
- CPPUNIT_TEST(testLegacyCellAnchoredRotatedShape);
CPPUNIT_TEST(testEnhancedProtectionXLS);
CPPUNIT_TEST(testEnhancedProtectionXLSX);
CPPUNIT_TEST(testSortWithSharedFormulasODS);
@@ -475,23 +471,6 @@ void ScFiltersTest::testSheetNamesXLSX()
xDocSh->DoClose();
}
-// FILESAVE: XLSX export with long sheet names (length > 31 characters)
-void ScFiltersTest::testTdf79998()
-{
- // check: original document has tab name > 31 characters
- ScDocShellRef xDocSh = loadDoc(u"tdf79998.", FORMAT_ODS);
- ScDocument& rDoc1 = xDocSh->GetDocument();
- const std::vector<OUString> aTabNames1 = rDoc1.GetAllTableNames();
- CPPUNIT_ASSERT_EQUAL(OUString("Utilities (FX Kurse, Kreditkarten etc)"), aTabNames1[1]);
-
- // check: saved XLSX document has truncated tab name
- xDocSh = saveAndReload( *xDocSh, FORMAT_XLSX);
- ScDocument& rDoc2 = xDocSh->GetDocument();
- const std::vector<OUString> aTabNames2 = rDoc2.GetAllTableNames();
- CPPUNIT_ASSERT_EQUAL(OUString("Utilities (FX Kurse, Kreditkart"), aTabNames2[1]);
-
- xDocSh->DoClose();
-}
void ScFiltersTest::testTdf150599()
{
@@ -540,118 +519,6 @@ void ScFiltersTest::testCommentSize()
xDocSh->DoClose();
}
-static void impl_testLegacyCellAnchoredRotatedShape( ScDocument& rDoc, const tools::Rectangle& aRect, const ScDrawObjData& aAnchor, tools::Long TOLERANCE = 30 /* 30 hmm */ )
-{
- ScDrawLayer* pDrawLayer = rDoc.GetDrawLayer();
- CPPUNIT_ASSERT_MESSAGE("No drawing layer.", pDrawLayer);
- SdrPage* pPage = pDrawLayer->GetPage(0);
- CPPUNIT_ASSERT_MESSAGE("No page instance for the 1st sheet.", pPage);
- CPPUNIT_ASSERT_EQUAL( static_cast<size_t>(1), pPage->GetObjCount() );
-
- SdrObject* pObj = pPage->GetObj(0);
- const tools::Rectangle& aSnap = pObj->GetSnapRect();
- printf("expected height %" SAL_PRIdINT64 " actual %" SAL_PRIdINT64 "\n", sal_Int64(aRect.GetHeight()), sal_Int64(aSnap.GetHeight()) );
- CPPUNIT_ASSERT_EQUAL( true, testEqualsWithTolerance( aRect.GetHeight(), aSnap.GetHeight(), TOLERANCE ) );
- printf("expected width %" SAL_PRIdINT64 " actual %" SAL_PRIdINT64 "\n", sal_Int64(aRect.GetWidth()), sal_Int64(aSnap.GetWidth()) );
- CPPUNIT_ASSERT_EQUAL( true, testEqualsWithTolerance( aRect.GetWidth(), aSnap.GetWidth(), TOLERANCE ) );
- printf("expected left %" SAL_PRIdINT64 " actual %" SAL_PRIdINT64 "\n", sal_Int64(aRect.Left()), sal_Int64(aSnap.Left()) );
- CPPUNIT_ASSERT_EQUAL( true, testEqualsWithTolerance( aRect.Left(), aSnap.Left(), TOLERANCE ) );
- printf("expected right %" SAL_PRIdINT64 " actual %" SAL_PRIdINT64 "\n", sal_Int64(aRect.Top()), sal_Int64(aSnap.Top()) );
- CPPUNIT_ASSERT_EQUAL( true, testEqualsWithTolerance( aRect.Top(), aSnap.Top(), TOLERANCE ) );
-
- ScDrawObjData* pData = ScDrawLayer::GetObjData( pObj );
- CPPUNIT_ASSERT_MESSAGE("expected object meta data", pData);
- printf("expected startrow %" SAL_PRIdINT32 " actual %" SAL_PRIdINT32 "\n", aAnchor.maStart.Row(), pData->maStart.Row() );
- CPPUNIT_ASSERT_EQUAL( aAnchor.maStart.Row(), pData->maStart.Row() );
- printf("expected startcol %d actual %d\n", aAnchor.maStart.Col(), pData->maStart.Col() );
- CPPUNIT_ASSERT_EQUAL( aAnchor.maStart.Col(), pData->maStart.Col() );
- printf("expected endrow %" SAL_PRIdINT32 " actual %" SAL_PRIdINT32 "\n", aAnchor.maEnd.Row(), pData->maEnd.Row() );
- CPPUNIT_ASSERT_EQUAL( aAnchor.maEnd.Row(), pData->maEnd.Row() );
- printf("expected endcol %d actual %d\n", aAnchor.maEnd.Col(), pData->maEnd.Col() );
- CPPUNIT_ASSERT_EQUAL( aAnchor.maEnd.Col(), pData->maEnd.Col() );
-}
-
-void ScFiltersTest::testLegacyCellAnchoredRotatedShape()
-{
- {
- // This example doc contains cell anchored shape that is rotated, the
- // rotated shape is in fact clipped by the sheet boundaries (and thus
- // is a good edge case test to see if we import it still correctly)
- ScDocShellRef xDocSh = loadDoc(u"legacycellanchoredrotatedclippedshape.", FORMAT_ODS);
-
- ScDocument& rDoc = xDocSh->GetDocument();
- // ensure the imported legacy rotated shape is in the expected position
- tools::Rectangle aRect( 6000, -2000, 8000, 4000 );
- // ensure the imported ( and converted ) anchor ( note we internally now store the anchor in
- // terms of the rotated shape ) is more or less contains the correct info
- ScDrawObjData aAnchor;
- aAnchor.maStart.SetRow( 0 );
- aAnchor.maStart.SetCol( 5 );
- aAnchor.maEnd.SetRow( 3 );
- aAnchor.maEnd.SetCol( 7 );
- impl_testLegacyCellAnchoredRotatedShape( rDoc, aRect, aAnchor );
- // test save and reload
- // for some reason having this test in subsequent_export-test.cxx causes
- // a core dump in editeng ( so moved to here )
- xDocSh = saveAndReload( *xDocSh, FORMAT_ODS);
- ScDocument& rDoc2 = xDocSh->GetDocument();
- impl_testLegacyCellAnchoredRotatedShape( rDoc2, aRect, aAnchor );
-
- xDocSh->DoClose();
- }
- {
- // This example doc contains cell anchored shape that is rotated, the
- // rotated shape is in fact clipped by the sheet boundaries, additionally
- // the shape is completely hidden because the rows the shape occupies
- // are hidden
- ScDocShellRef xDocSh = loadDoc(u"legacycellanchoredrotatedhiddenshape.", FORMAT_ODS, true);
- ScDocument& rDoc = xDocSh->GetDocument();
- // ensure the imported legacy rotated shape is in the expected position
- tools::Rectangle aRect( 6000, -2000, 8000, 4000 );
-
- // ensure the imported (and converted) anchor (note we internally now store the anchor in
- // terms of the rotated shape) is more or less contains the correct info
- ScDrawObjData aAnchor;
- aAnchor.maStart.SetRow( 0 );
- aAnchor.maStart.SetCol( 5 );
- aAnchor.maEnd.SetRow( 3 );
- aAnchor.maEnd.SetCol( 7 );
- rDoc.ShowRows(0, 9, 0, true); // show relevant rows
- rDoc.SetDrawPageSize(0); // trigger recalcpos
- impl_testLegacyCellAnchoredRotatedShape( rDoc, aRect, aAnchor);
- // test save and reload
- xDocSh = saveAndReload( *xDocSh, FORMAT_ODS);
- ScDocument& rDoc2 = xDocSh->GetDocument();
- impl_testLegacyCellAnchoredRotatedShape( rDoc2, aRect, aAnchor );
-
- xDocSh->DoClose();
- }
- {
- // This example doc contains cell anchored shape that is rotated
- ScDocShellRef xDocSh = loadDoc(u"legacycellanchoredrotatedshape.", FORMAT_ODS);
-
- ScDocument& rDoc = xDocSh->GetDocument();
- // ensure the imported legacy rotated shape is in the expected position
- tools::Rectangle aRect( 6000, 3000, 8000, 9000 );
- // ensure the imported (and converted) anchor (note we internally now store the anchor in
- // terms of the rotated shape) more or less contains the correct info
-
- ScDrawObjData aAnchor;
- aAnchor.maStart.SetRow( 3 );
- aAnchor.maStart.SetCol( 6 );
- aAnchor.maEnd.SetRow( 9 );
- aAnchor.maEnd.SetCol( 8 );
- // test import
- impl_testLegacyCellAnchoredRotatedShape( rDoc, aRect, aAnchor );
- // test save and reload
- xDocSh = saveAndReload( *xDocSh, FORMAT_ODS);
- ScDocument& rDoc2 = xDocSh->GetDocument();
- impl_testLegacyCellAnchoredRotatedShape( rDoc2, aRect, aAnchor );
-
- xDocSh->DoClose();
- }
-}
-
static void testEnhancedProtectionImpl( const ScDocument& rDoc )
{
const ScTableProtection* pProt = rDoc.GetTabProtection(0);
diff --git a/sc/qa/unit/subsequent_export_test.cxx b/sc/qa/unit/subsequent_export_test.cxx
index 34f675f36677..7c006b163544 100644
--- a/sc/qa/unit/subsequent_export_test.cxx
+++ b/sc/qa/unit/subsequent_export_test.cxx
@@ -96,6 +96,8 @@ public:
void testConditionalFormatContainsTextXLSX();
void testConditionalFormatPriorityCheckXLSX();
void testConditionalFormatOriginXLSX();
+ void testTdf79998();
+ void testLegacyCellAnchoredRotatedShape();
void testMiscRowHeightExport();
void testNamedRangeBugfdo62729();
void testBuiltinRangesXLSX();
@@ -216,6 +218,8 @@ public:
CPPUNIT_TEST(testConditionalFormatContainsTextXLSX);
CPPUNIT_TEST(testConditionalFormatPriorityCheckXLSX);
CPPUNIT_TEST(testConditionalFormatOriginXLSX);
+ CPPUNIT_TEST(testTdf79998);
+ CPPUNIT_TEST(testLegacyCellAnchoredRotatedShape);
CPPUNIT_TEST(testMiscRowHeightExport);
CPPUNIT_TEST(testNamedRangeBugfdo62729);
CPPUNIT_TEST(testBuiltinRangesXLSX);
@@ -4153,6 +4157,138 @@ void ScExportTest::testConditionalFormatOriginXLSX()
OUString("NOT(ISERROR(SEARCH(\"BAC\",B1)))"), aFormula);
}
+// FILESAVE: XLSX export with long sheet names (length > 31 characters)
+void ScExportTest::testTdf79998()
+{
+ // check: original document has tab name > 31 characters
+ createScDoc("ods/tdf79998.ods");
+ ScDocument* pDoc = getScDoc();
+ const std::vector<OUString> aTabNames1 = pDoc->GetAllTableNames();
+ CPPUNIT_ASSERT_EQUAL(OUString("Utilities (FX Kurse, Kreditkarten etc)"), aTabNames1[1]);
+
+ // check: saved XLSX document has truncated tab name
+ saveAndReload("Calc Office Open XML");
+ pDoc = getScDoc();
+ const std::vector<OUString> aTabNames2 = pDoc->GetAllTableNames();
+ CPPUNIT_ASSERT_EQUAL(OUString("Utilities (FX Kurse, Kreditkart"), aTabNames2[1]);
+}
+
+static void impl_testLegacyCellAnchoredRotatedShape(ScDocument& rDoc, const tools::Rectangle& aRect,
+ const ScDrawObjData& aAnchor,
+ tools::Long TOLERANCE = 30 /* 30 hmm */)
+{
+ ScDrawLayer* pDrawLayer = rDoc.GetDrawLayer();
+ CPPUNIT_ASSERT_MESSAGE("No drawing layer.", pDrawLayer);
+ SdrPage* pPage = pDrawLayer->GetPage(0);
+ CPPUNIT_ASSERT_MESSAGE("No page instance for the 1st sheet.", pPage);
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pPage->GetObjCount());
+
+ SdrObject* pObj = pPage->GetObj(0);
+ const tools::Rectangle& aSnap = pObj->GetSnapRect();
+ printf("expected height %" SAL_PRIdINT64 " actual %" SAL_PRIdINT64 "\n",
+ sal_Int64(aRect.GetHeight()), sal_Int64(aSnap.GetHeight()));
+ CPPUNIT_ASSERT_EQUAL(true,
+ testEqualsWithTolerance(aRect.GetHeight(), aSnap.GetHeight(), TOLERANCE));
+ printf("expected width %" SAL_PRIdINT64 " actual %" SAL_PRIdINT64 "\n",
+ sal_Int64(aRect.GetWidth()), sal_Int64(aSnap.GetWidth()));
+ CPPUNIT_ASSERT_EQUAL(true,
+ testEqualsWithTolerance(aRect.GetWidth(), aSnap.GetWidth(), TOLERANCE));
+ printf("expected left %" SAL_PRIdINT64 " actual %" SAL_PRIdINT64 "\n", sal_Int64(aRect.Left()),
+ sal_Int64(aSnap.Left()));
+ CPPUNIT_ASSERT_EQUAL(true, testEqualsWithTolerance(aRect.Left(), aSnap.Left(), TOLERANCE));
+ printf("expected right %" SAL_PRIdINT64 " actual %" SAL_PRIdINT64 "\n", sal_Int64(aRect.Top()),
+ sal_Int64(aSnap.Top()));
+ CPPUNIT_ASSERT_EQUAL(true, testEqualsWithTolerance(aRect.Top(), aSnap.Top(), TOLERANCE));
+
+ ScDrawObjData* pData = ScDrawLayer::GetObjData(pObj);
+ CPPUNIT_ASSERT_MESSAGE("expected object meta data", pData);
+ printf("expected startrow %" SAL_PRIdINT32 " actual %" SAL_PRIdINT32 "\n",
+ aAnchor.maStart.Row(), pData->maStart.Row());
+ CPPUNIT_ASSERT_EQUAL(aAnchor.maStart.Row(), pData->maStart.Row());
+ printf("expected startcol %d actual %d\n", aAnchor.maStart.Col(), pData->maStart.Col());
+ CPPUNIT_ASSERT_EQUAL(aAnchor.maStart.Col(), pData->maStart.Col());
+ printf("expected endrow %" SAL_PRIdINT32 " actual %" SAL_PRIdINT32 "\n", aAnchor.maEnd.Row(),
+ pData->maEnd.Row());
+ CPPUNIT_ASSERT_EQUAL(aAnchor.maEnd.Row(), pData->maEnd.Row());
+ printf("expected endcol %d actual %d\n", aAnchor.maEnd.Col(), pData->maEnd.Col());
+ CPPUNIT_ASSERT_EQUAL(aAnchor.maEnd.Col(), pData->maEnd.Col());
+}
+
+void ScExportTest::testLegacyCellAnchoredRotatedShape()
+{
+ {
+ // This example doc contains cell anchored shape that is rotated, the
+ // rotated shape is in fact clipped by the sheet boundaries (and thus
+ // is a good edge case test to see if we import it still correctly)
+ createScDoc("ods/legacycellanchoredrotatedclippedshape.ods");
+
+ ScDocument* pDoc = getScDoc();
+ // ensure the imported legacy rotated shape is in the expected position
+ tools::Rectangle aRect(6000, -2000, 8000, 4000);
+ // ensure the imported ( and converted ) anchor ( note we internally now store the anchor in
+ // terms of the rotated shape ) is more or less contains the correct info
+ ScDrawObjData aAnchor;
+ aAnchor.maStart.SetRow(0);
+ aAnchor.maStart.SetCol(5);
+ aAnchor.maEnd.SetRow(3);
+ aAnchor.maEnd.SetCol(7);
+ impl_testLegacyCellAnchoredRotatedShape(*pDoc, aRect, aAnchor);
+ // test save and reload
+ // for some reason having this test in subsequent_export-test.cxx causes
+ // a core dump in editeng ( so moved to here )
+ saveAndReload("calc8");
+ pDoc = getScDoc();
+ impl_testLegacyCellAnchoredRotatedShape(*pDoc, aRect, aAnchor);
+ }
+ {
+ // This example doc contains cell anchored shape that is rotated, the
+ // rotated shape is in fact clipped by the sheet boundaries, additionally
+ // the shape is completely hidden because the rows the shape occupies
+ // are hidden
+ createScDoc("ods/legacycellanchoredrotatedhiddenshape.ods");
+ ScDocument* pDoc = getScDoc();
+ // ensure the imported legacy rotated shape is in the expected position
+ tools::Rectangle aRect(6000, -2000, 8000, 4000);
+
+ // ensure the imported (and converted) anchor (note we internally now store the anchor in
+ // terms of the rotated shape) is more or less contains the correct info
+ ScDrawObjData aAnchor;
+ aAnchor.maStart.SetRow(0);
+ aAnchor.maStart.SetCol(5);
+ aAnchor.maEnd.SetRow(3);
+ aAnchor.maEnd.SetCol(7);
+ pDoc->ShowRows(0, 9, 0, true); // show relevant rows
+ pDoc->SetDrawPageSize(0); // trigger recalcpos
+ impl_testLegacyCellAnchoredRotatedShape(*pDoc, aRect, aAnchor);
+ // test save and reload
+ saveAndReload("calc8");
+ pDoc = getScDoc();
+ impl_testLegacyCellAnchoredRotatedShape(*pDoc, aRect, aAnchor);
+ }
+ {
+ // This example doc contains cell anchored shape that is rotated
+ createScDoc("ods/legacycellanchoredrotatedshape.ods");
+
+ ScDocument* pDoc = getScDoc();
+ // ensure the imported legacy rotated shape is in the expected position
+ tools::Rectangle aRect(6000, 3000, 8000, 9000);
+ // ensure the imported (and converted) anchor (note we internally now store the anchor in
+ // terms of the rotated shape) more or less contains the correct info
+
+ ScDrawObjData aAnchor;
+ aAnchor.maStart.SetRow(3);
+ aAnchor.maStart.SetCol(6);
+ aAnchor.maEnd.SetRow(9);
+ aAnchor.maEnd.SetCol(8);
+ // test import
+ impl_testLegacyCellAnchoredRotatedShape(*pDoc, aRect, aAnchor);
+ // test save and reload
+ saveAndReload("calc8");
+ pDoc = getScDoc();
+ impl_testLegacyCellAnchoredRotatedShape(*pDoc, aRect, aAnchor);
+ }
+}
+
void ScExportTest::testTdf113646()
{
createScDoc("ods/tdf113646.ods");