Add another test case for Excel 2003 XML import.
This one is for importing border directions. Change-Id: I92666c30b629109a1061b7ae1fad31841850d34b Reviewed-on: https://gerrit.libreoffice.org/50021 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
This commit is contained in:
committed by
Kohei Yoshida
parent
3be02487f0
commit
55cdba99f6
@@ -0,0 +1,121 @@
|
||||
<?xml version="1.0"?>
|
||||
<?mso-application progid="Excel.Sheet"?>
|
||||
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
|
||||
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||||
xmlns:x="urn:schemas-microsoft-com:office:excel"
|
||||
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
|
||||
xmlns:html="http://www.w3.org/TR/REC-html40">
|
||||
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
|
||||
<Author>Kohei Yoshida</Author>
|
||||
<LastAuthor>Kohei Yoshida</LastAuthor>
|
||||
<Created>2018-01-14T17:03:52Z</Created>
|
||||
<LastSaved>2018-01-25T01:00:20Z</LastSaved>
|
||||
<Version>16.00</Version>
|
||||
</DocumentProperties>
|
||||
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
|
||||
<AllowPNG/>
|
||||
</OfficeDocumentSettings>
|
||||
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
|
||||
<WindowHeight>7680</WindowHeight>
|
||||
<WindowWidth>20490</WindowWidth>
|
||||
<WindowTopX>0</WindowTopX>
|
||||
<WindowTopY>0</WindowTopY>
|
||||
<ProtectStructure>False</ProtectStructure>
|
||||
<ProtectWindows>False</ProtectWindows>
|
||||
</ExcelWorkbook>
|
||||
<Styles>
|
||||
<Style ss:ID="Default" ss:Name="Normal">
|
||||
<Alignment ss:Vertical="Bottom"/>
|
||||
<Borders/>
|
||||
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
|
||||
<Interior/>
|
||||
<NumberFormat/>
|
||||
<Protection/>
|
||||
</Style>
|
||||
<Style ss:ID="s16">
|
||||
<Borders>
|
||||
<Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||
</Borders>
|
||||
</Style>
|
||||
<Style ss:ID="s17">
|
||||
<Borders>
|
||||
<Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||
</Borders>
|
||||
</Style>
|
||||
<Style ss:ID="s18">
|
||||
<Borders>
|
||||
<Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||
</Borders>
|
||||
</Style>
|
||||
<Style ss:ID="s19">
|
||||
<Borders>
|
||||
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||
</Borders>
|
||||
</Style>
|
||||
<Style ss:ID="s20">
|
||||
<Borders>
|
||||
<Border ss:Position="DiagonalLeft" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||
</Borders>
|
||||
</Style>
|
||||
<Style ss:ID="s21">
|
||||
<Borders>
|
||||
<Border ss:Position="DiagonalRight" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||
</Borders>
|
||||
</Style>
|
||||
<Style ss:ID="s22">
|
||||
<Borders>
|
||||
<Border ss:Position="DiagonalLeft" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||
<Border ss:Position="DiagonalRight" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||
</Borders>
|
||||
</Style>
|
||||
</Styles>
|
||||
<Worksheet ss:Name="Directions">
|
||||
<Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="14" x:FullColumns="1"
|
||||
x:FullRows="1" ss:DefaultRowHeight="15">
|
||||
<Column ss:Index="2" ss:AutoFitWidth="0" ss:Width="92.25"/>
|
||||
<Row ss:Index="2">
|
||||
<Cell ss:Index="2" ss:StyleID="s16"><Data ss:Type="String">top</Data></Cell>
|
||||
</Row>
|
||||
<Row ss:Index="4">
|
||||
<Cell ss:Index="2" ss:StyleID="s17"><Data ss:Type="String">left</Data></Cell>
|
||||
</Row>
|
||||
<Row ss:Index="6">
|
||||
<Cell ss:Index="2" ss:StyleID="s18"><Data ss:Type="String">right</Data></Cell>
|
||||
</Row>
|
||||
<Row ss:Index="8">
|
||||
<Cell ss:Index="2" ss:StyleID="s19"><Data ss:Type="String">bottom</Data></Cell>
|
||||
</Row>
|
||||
<Row ss:Index="10">
|
||||
<Cell ss:Index="2" ss:StyleID="s20"><Data ss:Type="String">tl to br</Data></Cell>
|
||||
</Row>
|
||||
<Row ss:Index="12">
|
||||
<Cell ss:Index="2" ss:StyleID="s21"><Data ss:Type="String">tr to bl</Data></Cell>
|
||||
</Row>
|
||||
<Row ss:Index="14">
|
||||
<Cell ss:Index="2" ss:StyleID="s22"><Data ss:Type="String">cross diagonal</Data></Cell>
|
||||
</Row>
|
||||
</Table>
|
||||
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||
<PageSetup>
|
||||
<Header x:Margin="0.3"/>
|
||||
<Footer x:Margin="0.3"/>
|
||||
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||
</PageSetup>
|
||||
<Print>
|
||||
<ValidPrinterInfo/>
|
||||
<HorizontalResolution>600</HorizontalResolution>
|
||||
<VerticalResolution>600</VerticalResolution>
|
||||
</Print>
|
||||
<Selected/>
|
||||
<Panes>
|
||||
<Pane>
|
||||
<Number>3</Number>
|
||||
<ActiveRow>13</ActiveRow>
|
||||
<ActiveCol>1</ActiveCol>
|
||||
</Pane>
|
||||
</Panes>
|
||||
<ProtectObjects>False</ProtectObjects>
|
||||
<ProtectScenarios>False</ProtectScenarios>
|
||||
</WorksheetOptions>
|
||||
</Worksheet>
|
||||
</Workbook>
|
||||
@@ -241,6 +241,7 @@ public:
|
||||
void testBackgroundColorStandardXLSXML();
|
||||
void testNamedExpressionsXLSXML();
|
||||
void testEmptyRowsXLSXML();
|
||||
void testBorderDirectionsXLSXML();
|
||||
|
||||
CPPUNIT_TEST_SUITE(ScFiltersTest);
|
||||
CPPUNIT_TEST(testBooleanFormatXLSX);
|
||||
@@ -367,6 +368,7 @@ public:
|
||||
CPPUNIT_TEST(testBackgroundColorStandardXLSXML);
|
||||
CPPUNIT_TEST(testNamedExpressionsXLSXML);
|
||||
CPPUNIT_TEST(testEmptyRowsXLSXML);
|
||||
CPPUNIT_TEST(testBorderDirectionsXLSXML);
|
||||
CPPUNIT_TEST(testCondFormatFormulaListenerXLSX);
|
||||
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
@@ -3681,6 +3683,96 @@ void ScFiltersTest::testEmptyRowsXLSXML()
|
||||
xDocSh->DoClose();
|
||||
}
|
||||
|
||||
void ScFiltersTest::testBorderDirectionsXLSXML()
|
||||
{
|
||||
ScDocShellRef xDocSh = loadDoc("border-directions.", FORMAT_XLS_XML);
|
||||
CPPUNIT_ASSERT_MESSAGE("Failed to load border-directions.xml", xDocSh.is());
|
||||
ScDocument& rDoc = xDocSh->GetDocument();
|
||||
|
||||
struct Check
|
||||
{
|
||||
ScAddress aPos;
|
||||
bool bTop;
|
||||
bool bBottom;
|
||||
bool bLeft;
|
||||
bool bRight;
|
||||
bool bTLtoBR;
|
||||
bool bTRtoBL;
|
||||
};
|
||||
|
||||
std::vector<Check> aChecks = {
|
||||
{ { 1, 1, 0 }, true, false, false, false, false, false }, // B2 - top
|
||||
{ { 1, 3, 0 }, false, false, true, false, false, false }, // B4 - left
|
||||
{ { 1, 5, 0 }, false, false, false, true, false, false }, // B6 - right
|
||||
{ { 1, 7, 0 }, false, true, false, false, false, false }, // B8 - bottom
|
||||
{ { 1, 9, 0 }, false, false, false, false, true, false }, // B10 - tl to br
|
||||
{ { 1, 11, 0 }, false, false, false, false, false, true }, // B12 - tr to bl
|
||||
{ { 1, 13, 0 }, false, false, false, false, true, true }, // B14 - cross-diagonal
|
||||
};
|
||||
|
||||
auto funcCheckBorder = []( bool bHasBorder, const editeng::SvxBorderLine* pLine ) -> bool
|
||||
{
|
||||
if (bHasBorder)
|
||||
{
|
||||
if (!pLine)
|
||||
{
|
||||
std::cout << "Border was expected, but not found!" << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (SvxBorderLineStyle::SOLID != pLine->GetBorderLineStyle())
|
||||
{
|
||||
std::cout << "Border type was expected to be of SOLID, but is not." << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Color(COL_BLACK) != pLine->GetColor())
|
||||
{
|
||||
std::cout << "Border color was expected to be black, but is not." << std::endl;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pLine)
|
||||
{
|
||||
std::cout << "Border was not expected, but is found!" << std::endl;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
for (const Check& c : aChecks)
|
||||
{
|
||||
const ScPatternAttr* pPat = rDoc.GetPattern(c.aPos);
|
||||
CPPUNIT_ASSERT(pPat);
|
||||
|
||||
const SvxBoxItem& rBox = pPat->GetItem(ATTR_BORDER);
|
||||
|
||||
const editeng::SvxBorderLine* pLine = rBox.GetTop();
|
||||
CPPUNIT_ASSERT(funcCheckBorder(c.bTop, pLine));
|
||||
|
||||
pLine = rBox.GetBottom();
|
||||
CPPUNIT_ASSERT(funcCheckBorder(c.bBottom, pLine));
|
||||
|
||||
pLine = rBox.GetLeft();
|
||||
CPPUNIT_ASSERT(funcCheckBorder(c.bLeft, pLine));
|
||||
|
||||
pLine = rBox.GetRight();
|
||||
CPPUNIT_ASSERT(funcCheckBorder(c.bRight, pLine));
|
||||
|
||||
pLine = pPat->GetItem(ATTR_BORDER_TLBR).GetLine();
|
||||
CPPUNIT_ASSERT(funcCheckBorder(c.bTLtoBR, pLine));
|
||||
|
||||
pLine = pPat->GetItem(ATTR_BORDER_BLTR).GetLine();
|
||||
CPPUNIT_ASSERT(funcCheckBorder(c.bTRtoBL, pLine));
|
||||
}
|
||||
|
||||
xDocSh->DoClose();
|
||||
}
|
||||
|
||||
void ScFiltersTest::testCondFormatXLSB()
|
||||
{
|
||||
ScDocShellRef xDocSh = loadDoc("cond_format.", FORMAT_XLSB);
|
||||
|
||||
Reference in New Issue
Block a user