From 290fd8f7ab5764712e5e7dcee59ffb510a08e27b Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Thu, 18 Jul 2019 08:51:02 +0000 Subject: [PATCH] fpspreadsheet: Extend file-based test cases for Excel2003/XML file format. Still lots of issues. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7049 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../fpspreadsheet/tests/emptycelltests.pas | 124 ++++++ .../fpspreadsheet/tests/fileformattests.pas | 7 + components/fpspreadsheet/tests/fonttests.pas | 25 ++ .../fpspreadsheet/tests/formulatests.pas | 51 +++ .../fpspreadsheet/tests/hyperlinktests.pas | 124 +++++- .../fpspreadsheet/tests/internaltests.pas | 6 + .../fpspreadsheet/tests/numberstests.pas | 144 ++++++- .../fpspreadsheet/tests/pagelayouttests.pas | 378 ++++++++++++++++++ .../fpspreadsheet/tests/protectiontests.pas | 133 +++++- .../tests/singleformulatests.pas | 18 + .../fpspreadsheet/tests/virtualmodetests.pas | 12 + 11 files changed, 1015 insertions(+), 7 deletions(-) diff --git a/components/fpspreadsheet/tests/emptycelltests.pas b/components/fpspreadsheet/tests/emptycelltests.pas index 827eba0d8..6266474b6 100644 --- a/components/fpspreadsheet/tests/emptycelltests.pas +++ b/components/fpspreadsheet/tests/emptycelltests.pas @@ -145,6 +145,27 @@ type procedure TestWriteReadEmptyCells_OOXML_9; procedure TestWriteReadEmptyCells_OOXML_9_inv; + { §xcel/XML file format tests } + procedure TestWriteReadEmptyCells_XML_0; + procedure TestWriteReadEmptyCells_XML_0_inv; + procedure TestWriteReadEmptyCells_XML_1; + procedure TestWriteReadEmptyCells_XML_1_inv; + procedure TestWriteReadEmptyCells_XML_2; + procedure TestWriteReadEmptyCells_XML_2_inv; + procedure TestWriteReadEmptyCells_XML_3; + procedure TestWriteReadEmptyCells_XML_3_inv; + procedure TestWriteReadEmptyCells_XML_4; + procedure TestWriteReadEmptyCells_XML_4_inv; + procedure TestWriteReadEmptyCells_XML_5; + procedure TestWriteReadEmptyCells_XML_5_inv; + procedure TestWriteReadEmptyCells_XML_6; + procedure TestWriteReadEmptyCells_XML_6_inv; + procedure TestWriteReadEmptyCells_XML_7; + procedure TestWriteReadEmptyCells_XML_7_inv; + procedure TestWriteReadEmptyCells_XML_8; + procedure TestWriteReadEmptyCells_XML_8_inv; + procedure TestWriteReadEmptyCells_XML_9; + procedure TestWriteReadEmptyCells_XML_9_inv; end; implementation @@ -840,6 +861,109 @@ begin end; +{ Excel2003 / XML tests } + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_0; +begin + TestWriteReadEmptyCells(sfExcelXML, 0, false); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_0_inv; +begin + TestWriteReadEmptyCells(sfExcelXML, 0, true); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_1; +begin + TestWriteReadEmptyCells(sfExcelXML, 1, false); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_1_inv; +begin + TestWriteReadEmptyCells(sfExcelXML, 1, true); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_2; +begin + TestWriteReadEmptyCells(sfExcelXML, 2, false); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_2_inv; +begin + TestWriteReadEmptyCells(sfExcelXML, 2, true); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_3; +begin + TestWriteReadEmptyCells(sfExcelXML, 3, false); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_3_inv; +begin + TestWriteReadEmptyCells(sfExcelXML, 3, true); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_4; +begin + TestWriteReadEmptyCells(sfExcelXML, 4, false); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_4_inv; +begin + TestWriteReadEmptyCells(sfExcelXML, 4, true); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_5; +begin + TestWriteReadEmptyCells(sfExcelXML, 5, false); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_5_inv; +begin + TestWriteReadEmptyCells(sfExcelXML, 5, true); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_6; +begin + TestWriteReadEmptyCells(sfExcelXML, 6, false); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_6_inv; +begin + TestWriteReadEmptyCells(sfExcelXML, 6, true); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_7; +begin + TestWriteReadEmptyCells(sfExcelXML, 7, false); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_7_inv; +begin + TestWriteReadEmptyCells(sfExcelXML, 7, true); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_8; +begin + TestWriteReadEmptyCells(sfExcelXML, 8, false); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_8_inv; +begin + TestWriteReadEmptyCells(sfExcelXML, 8, true); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_9; +begin + TestWriteReadEmptyCells(sfExcelXML, 9, false); +end; + +procedure TSpreadWriteReadEmptyCellTests.TestWriteReadEmptyCells_XML_9_inv; +begin + TestWriteReadEmptyCells(sfExcelXML, 9, true); +end; + + initialization RegisterTest(TSpreadWriteReadEmptyCellTests); InitSollLayouts; diff --git a/components/fpspreadsheet/tests/fileformattests.pas b/components/fpspreadsheet/tests/fileformattests.pas index 04819c865..241d29e78 100644 --- a/components/fpspreadsheet/tests/fileformattests.pas +++ b/components/fpspreadsheet/tests/fileformattests.pas @@ -33,6 +33,7 @@ type procedure TestAutoDetect_BIFF5; procedure TestAutoDetect_BIFF8; procedure TestAutoDetect_OOXML; + procedure TestAutoDetect_XML; procedure TestAutoDetect_ODS; end; @@ -128,6 +129,12 @@ begin TestAutoDetect(sfOOXML); end; +{ Excel 2003/XML } +procedure TSpreadFileFormatTests.TestAutoDetect_XML; +begin + TestAutoDetect(sfExcelXML); +end; + { ODS } procedure TSpreadFileFormatTests.TestAutoDetect_ODS; begin diff --git a/components/fpspreadsheet/tests/fonttests.pas b/components/fpspreadsheet/tests/fonttests.pas index a22eac8bc..63fdaeb65 100644 --- a/components/fpspreadsheet/tests/fonttests.pas +++ b/components/fpspreadsheet/tests/fonttests.pas @@ -67,6 +67,12 @@ type procedure TestWriteRead_OOXML_Font_Arial; procedure TestWriteRead_OOXML_Font_TimesNewRoman; procedure TestWriteRead_OOXML_Font_CourierNew; + + // Excel2003/XML test cases +// procedure TestWriteRead_XML_Bold; + procedure TestWriteRead_XML_Font_Arial; + procedure TestWriteRead_XML_Font_TimesNewRoman; + procedure TestWriteRead_XML_Font_CourierNew; end; implementation @@ -301,6 +307,25 @@ begin TestWriteReadFont(sfOOXML, 'Courier New'); end; + +{ Excel 2003/XML } + +procedure TSpreadWriteReadFontTests.TestWriteRead_XML_Font_Arial; +begin + TestWriteReadFont(sfExcelXML, 'Arial'); +end; + +procedure TSpreadWriteReadFontTests.TestWriteRead_XML_Font_TimesNewRoman; +begin + TestWriteReadFont(sfExcelXML, 'Times New Roman'); +end; + +procedure TSpreadWriteReadFontTests.TestWriteRead_XML_Font_CourierNew; +begin + TestWriteReadFont(sfExcelXML, 'Courier New'); +end; + + initialization RegisterTest(TSpreadWriteReadFontTests); diff --git a/components/fpspreadsheet/tests/formulatests.pas b/components/fpspreadsheet/tests/formulatests.pas index 35947851a..39f293b41 100644 --- a/components/fpspreadsheet/tests/formulatests.pas +++ b/components/fpspreadsheet/tests/formulatests.pas @@ -52,6 +52,8 @@ type procedure Test_Write_Read_FormulaStrings_BIFF8; { OOXML Tests } procedure Test_Write_Read_FormulaStrings_OOXML; + { Excel2003/XML Tests } + procedure Test_Write_Read_FormulaStrings_XML; { ODS Tests } procedure Test_Write_Read_FormulaStrings_ODS; @@ -64,6 +66,8 @@ type procedure Test_Write_Read_CalcRPNFormula_BIFF8; { OOXML Tests } procedure Test_Write_Read_CalcRPNFormula_OOXML; + { Excel2003/XML Tests } + procedure Test_Write_Read_CalcRPNFormula_XML; { ODSL Tests } procedure Test_Write_Read_CalcRPNFormula_ODS; @@ -76,6 +80,8 @@ type procedure Test_Write_Read_CalcStringFormula_BIFF8; { OOXML Tests } procedure Test_Write_Read_CalcStringFormula_OOXML; + { Excel2003/XML Tests } + procedure Test_Write_Read_CalcStringFormula_XML; { ODS Tests } procedure Test_Write_Read_CalcStringFormula_ODS; @@ -83,6 +89,7 @@ type procedure Test_Write_Read_Calc3DFormula_BIFF5; procedure Test_Write_Read_Calc3DFormula_BIFF8; procedure Test_Write_Read_Calc3DFormula_OOXML; + procedure Test_Write_Read_Calc3DFormula_XML; procedure Test_Write_Read_Calc3DFormula_ODS; { Overwrite formula with other content } @@ -90,24 +97,28 @@ type procedure Test_OverwriteFormula_Number_BIFF5; procedure Test_OverwriteFormula_Number_BIFF8; procedure Test_OverwriteFormula_Number_OOXML; + procedure Test_OverwriteFormula_Number_XML; procedure Test_OverwriteFormula_Number_ODS; procedure Test_OverwriteFormula_Text_BIFF2; procedure Test_OverwriteFormula_Text_BIFF5; procedure Test_OverwriteFormula_Text_BIFF8; procedure Test_OverwriteFormula_Text_OOXML; + procedure Test_OverwriteFormula_Text_XML; procedure Test_OverwriteFormula_Text_ODS; procedure Test_OverwriteFormula_Bool_BIFF2; procedure Test_OverwriteFormula_Bool_BIFF5; procedure Test_OverwriteFormula_Bool_BIFF8; procedure Test_OverwriteFormula_Bool_OOXML; + procedure Test_OverwriteFormula_Bool_XML; procedure Test_OverwriteFormula_Bool_ODS; procedure Test_OverwriteFormula_Error_BIFF2; procedure Test_OverwriteFormula_Error_BIFF5; procedure Test_OverwriteFormula_Error_BIFF8; procedure Test_OverwriteFormula_Error_OOXML; + procedure Test_OverwriteFormula_Error_XML; procedure Test_OverwriteFormula_Error_ODS; end; @@ -230,6 +241,11 @@ begin Test_Write_Read_FormulaStrings(sfOOXML, true); end; +procedure TSpreadWriteReadFormulaTests.Test_Write_Read_FormulaStrings_XML; +begin + Test_Write_Read_FormulaStrings(sfExcelXML, true); +end; + procedure TSpreadWriteReadFormulaTests.Test_Write_Read_FormulaStrings_ODS; begin Test_Write_Read_FormulaStrings(sfOpenDocument, true); @@ -528,6 +544,11 @@ begin Test_Write_Read_CalcFormulas(sfOOXML, true); end; +procedure TSpreadWriteReadFormulaTests.Test_Write_Read_CalcRPNFormula_XML; +begin + Test_Write_Read_CalcFormulas(sfExcelXML, true); +end; + procedure TSpreadWriteReadFormulaTests.Test_Write_Read_CalcRPNFormula_ODS; begin Test_Write_Read_CalcFormulas(sfOpenDocument, true); @@ -553,6 +574,11 @@ begin Test_Write_Read_CalcFormulas(sfOOXML, false); end; +procedure TSpreadWriteReadFormulaTests.Test_Write_Read_CalcStringFormula_XML; +begin + Test_Write_Read_CalcFormulas(sfExcelXML, false); +end; + procedure TSpreadWriteReadFormulaTests.Test_Write_Read_CalcStringFormula_ODS; begin Test_Write_Read_CalcFormulas(sfOpenDocument, false); @@ -862,6 +888,11 @@ begin Test_Write_Read_Calc3DFormulas(sfOOXML); end; +procedure TSpreadWriteReadFormulaTests.Test_Write_Read_Calc3DFormula_XML; +begin + Test_Write_Read_Calc3DFormulas(sfExcelXML); +end; + procedure TSpreadWriteReadFormulaTests.Test_Write_Read_Calc3DFormula_ODS; begin Test_Write_Read_Calc3DFormulas(sfOpenDocument); @@ -985,6 +1016,11 @@ begin Test_OverwriteFormulaTest(0, sfOOXML); end; +procedure TSpreadWriteReadFormulaTests.Test_OverwriteFormula_Number_XML; +begin + Test_OverwriteFormulaTest(0, sfExcelXML); +end; + procedure TSpreadWriteReadFormulaTests.Test_OverwriteFormula_Number_ODS; begin Test_OverwriteFormulaTest(0, sfOpenDocument); @@ -1010,6 +1046,11 @@ begin Test_OverwriteFormulaTest(1, sfOOXML); end; +procedure TSpreadWriteReadFormulaTests.Test_OverwriteFormula_Text_XML; +begin + Test_OverwriteFormulaTest(1, sfExcelXML); +end; + procedure TSpreadWriteReadFormulaTests.Test_OverwriteFormula_Text_ODS; begin Test_OverwriteFormulaTest(1, sfOpenDocument); @@ -1036,6 +1077,11 @@ begin Test_OverwriteFormulaTest(2, sfOOXML); end; +procedure TSpreadWriteReadFormulaTests.Test_OverwriteFormula_Bool_XML; +begin + Test_OverwriteFormulaTest(2, sfExcelXML); +end; + procedure TSpreadWriteReadFormulaTests.Test_OverwriteFormula_Bool_ODS; begin Test_OverwriteFormulaTest(2, sfOpenDocument); @@ -1062,6 +1108,11 @@ begin Test_OverwriteFormulaTest(3, sfOOXML); end; +procedure TSpreadWriteReadFormulaTests.Test_OverwriteFormula_Error_XML; +begin + Test_OverwriteFormulaTest(3, sfExcelXML); +end; + procedure TSpreadWriteReadFormulaTests.Test_OverwriteFormula_Error_ODS; begin Test_OverwriteFormulaTest(3, sfOpenDocument); diff --git a/components/fpspreadsheet/tests/hyperlinktests.pas b/components/fpspreadsheet/tests/hyperlinktests.pas index ff6a255b4..8c4a2edd2 100644 --- a/components/fpspreadsheet/tests/hyperlinktests.pas +++ b/components/fpspreadsheet/tests/hyperlinktests.pas @@ -28,10 +28,10 @@ type ATestMode, ATooltipMode: Integer); published - { BIFF2 comment tests - nothing to do: BIFF2 does not support hyperlinks } - { BIFF5 comment tests - nothing to do: BIFF5 does not support hyperlinks } + { BIFF2 hyperlink tests - nothing to do: BIFF2 does not support hyperlinks } + { BIFF5 hyperlink tests - nothing to do: BIFF5 does not support hyperlinks } - { BIFF8 comment tests } + { BIFF8 hyperlink tests } procedure TestWriteRead_Hyperlink_BIFF8_HTTPLink1; procedure TestWriteRead_Hyperlink_BIFF8_HTTPLink1_Tooltip1; procedure TestWriteRead_Hyperlink_BIFF8_HTTPLink1_Tooltip2; @@ -51,7 +51,7 @@ type procedure TestWriteRead_Hyperlink_BIFF8_InternalLink_Tooltip1; procedure TestWriteRead_Hyperlink_BIFF8_InternalLink_Tooltip2; - { OpenDocument comment tests } + { OpenDocument hyperlink tests } procedure TestWriteRead_Hyperlink_ODS_HTTPLink1; procedure TestWriteRead_Hyperlink_ODS_HTTPLink1_Tooltip1; procedure TestWriteRead_Hyperlink_ODS_HTTPLink1_Tooltip2; @@ -71,7 +71,7 @@ type procedure TestWriteRead_Hyperlink_ODS_InternalLink_Tooltip1; procedure TestWriteRead_Hyperlink_ODS_InternalLink_Tooltip2; - { OOXML comment tests } + { OOXML hyperlink tests } procedure TestWriteRead_Hyperlink_OOXML_HTTPLink1; procedure TestWriteRead_Hyperlink_OOXML_HTTPLink1_Tooltip1; procedure TestWriteRead_Hyperlink_OOXML_HTTPLink1_Tooltip2; @@ -90,6 +90,27 @@ type procedure TestWriteRead_Hyperlink_OOXML_InternalLink; procedure TestWriteRead_Hyperlink_OOXML_InternalLink_Tooltip1; procedure TestWriteRead_Hyperlink_OOXML_InternalLink_Tooltip2; + + { Excel2003/XML hyperlink tests } + procedure TestWriteRead_Hyperlink_XML_HTTPLink1; + procedure TestWriteRead_Hyperlink_XML_HTTPLink1_Tooltip1; + procedure TestWriteRead_Hyperlink_XML_HTTPLink1_Tooltip2; + procedure TestWriteRead_Hyperlink_XML_HTTPLink2; + procedure TestWriteRead_Hyperlink_XML_HTTPLink2_Tooltip1; + procedure TestWriteRead_Hyperlink_XML_HTTPLink2_Tooltip2; + procedure TestWriteRead_Hyperlink_XML_FileLink; + procedure TestWriteRead_Hyperlink_XML_FileLink_Tooltip1; + procedure TestWriteRead_Hyperlink_XML_FileLink_Tooltip2; + procedure TestWriteRead_Hyperlink_XML_RelFileLink1; + procedure TestWriteRead_Hyperlink_XML_RelFileLink1_Tooltip1; + procedure TestWriteRead_Hyperlink_XML_RelFileLink1_Tooltip2; + procedure TestWriteRead_Hyperlink_XML_RelFileLink2; + procedure TestWriteRead_Hyperlink_XML_RelFileLink2_Tooltip1; + procedure TestWriteRead_Hyperlink_XML_RelFileLink2_Tooltip2; + procedure TestWriteRead_Hyperlink_XML_InternalLink; + procedure TestWriteRead_Hyperlink_XML_InternalLink_Tooltip1; + procedure TestWriteRead_Hyperlink_XML_InternalLink_Tooltip2; + end; implementation @@ -513,6 +534,99 @@ begin TestWriteRead_Hyperlink(sfOOXML, 5, 2); end; + +{ Hyperlink tests for Excel2003/XML file format } +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_HttpLink1; +begin + TestWriteRead_Hyperlink(sfExcelXML, 0, 0); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_HttpLink1_ToolTip1; +begin + TestWriteRead_Hyperlink(sfExcelXML, 0, 1); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_HttpLink1_ToolTip2; +begin + TestWriteRead_Hyperlink(sfExcelXML, 0, 2); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_HttpLink2; +begin + TestWriteRead_Hyperlink(sfExcelXML, 1, 0); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_HttpLink2_ToolTip1; +begin + TestWriteRead_Hyperlink(sfExcelXML, 1, 1); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_HttpLink2_ToolTip2; +begin + TestWriteRead_Hyperlink(sfExcelXML, 1, 2); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_FileLink; +begin + TestWriteRead_Hyperlink(sfExcelXML, 2, 0); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_FileLink_ToolTip1; +begin + TestWriteRead_Hyperlink(sfExcelXML, 2, 1); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_FileLink_ToolTip2; +begin + TestWriteRead_Hyperlink(sfExcelXML, 2, 2); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_RelFileLink1; +begin + TestWriteRead_Hyperlink(sfExcelXML, 3, 0); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_RelFileLink1_ToolTip1; +begin + TestWriteRead_Hyperlink(sfExcelXML, 3, 1); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_RelFileLink1_ToolTip2; +begin + TestWriteRead_Hyperlink(sfExcelXML, 3, 2); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_RelFileLink2; +begin + TestWriteRead_Hyperlink(sfExcelXML, 4, 0); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_RelFileLink2_ToolTip1; +begin + TestWriteRead_Hyperlink(sfExcelXML, 4, 1); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_RelFileLink2_ToolTip2; +begin + TestWriteRead_Hyperlink(sfExcelXML, 4, 2); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_InternalLink; +begin + TestWriteRead_Hyperlink(sfExcelXML, 5, 0); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_InternalLink_ToolTip1; +begin + TestWriteRead_Hyperlink(sfExcelXML, 5, 1); +end; + +procedure TSpreadWriteReadHyperlinkTests.TestWriteRead_Hyperlink_XML_InternalLink_ToolTip2; +begin + TestWriteRead_Hyperlink(sfExcelXML, 5, 2); +end; + + initialization RegisterTest(TSpreadWriteReadHyperlinkTests); diff --git a/components/fpspreadsheet/tests/internaltests.pas b/components/fpspreadsheet/tests/internaltests.pas index 1b23177cd..d7713387d 100644 --- a/components/fpspreadsheet/tests/internaltests.pas +++ b/components/fpspreadsheet/tests/internaltests.pas @@ -59,6 +59,7 @@ type // Test for invalid sheet names procedure InvalidSheetName_BIFF8; procedure InvalidSheetName_XLSX; + procedure InvalidSheetName_XML; procedure InvalidSheetName_ODS; // Tests whether overwriting existing file works procedure OverwriteExistingFile; @@ -201,6 +202,11 @@ begin InvalidSheetname(sfOOXML); end; +procedure TSpreadInternalTests.InvalidSheetName_XML; +begin + InvalidSheetname(sfExcelXML); +end; + procedure TSpreadInternalTests.InvalidSheetName_ODS; begin InvalidSheetname(sfOpenDocument); diff --git a/components/fpspreadsheet/tests/numberstests.pas b/components/fpspreadsheet/tests/numberstests.pas index 8b2d14003..716143fae 100644 --- a/components/fpspreadsheet/tests/numberstests.pas +++ b/components/fpspreadsheet/tests/numberstests.pas @@ -89,7 +89,7 @@ type procedure TestReadODFNumber21; procedure TestReadODFNumber22; - procedure TestReadOOXMLNumber0; //number tests using ODF/LibreOffice file format + procedure TestReadOOXMLNumber0; //number tests using Excel XLSX file format procedure TestReadOOXMLNumber1; //number and time procedure TestReadOOXMLNumber2; procedure TestReadOOXMLNumber3; @@ -112,6 +112,30 @@ type procedure TestReadOOXMLNumber20; procedure TestReadOOXMLNumber21; procedure TestReadOOXMLNumber22; + + procedure TestReadXMLNumber0; //number tests using Wxcel2003/XML file format + procedure TestReadXMLNumber1; //number and time + procedure TestReadXMLNumber2; + procedure TestReadXMLNumber3; + procedure TestReadXMLNumber4; //time only tests start here + procedure TestReadXMLNumber5; + procedure TestReadXMLNumber6; + procedure TestReadXMLNumber7; + procedure TestReadXMLNumber8; + procedure TestReadXMLNumber9; + procedure TestReadXMLNumber10; + procedure TestReadXMLNumber11; + procedure TestReadXMLNumber12; + procedure TestReadXMLNumber13; + procedure TestReadXMLNumber14; + procedure TestReadXMLNumber15; + procedure TestReadXMLNumber16; + procedure TestReadXMLNumber17; + procedure TestReadXMLNumber18; + procedure TestReadXMLNumber19; + procedure TestReadXMLNumber20; + procedure TestReadXMLNumber21; + procedure TestReadXMLNumber22; end; { TSpreadWriteReadNumberTests } @@ -283,6 +307,7 @@ begin TestWorkbook := TsWorkbook.Create; case UpperCase(ExtractFileExt(FileName)) of '.XLSX': TestWorkbook.ReadFromFile(FileName, sfOOXML); + '.XML' : TestWorkbook.ReadFromFile(FileName, sfExcelXML); '.ODS' : TestWorkbook.ReadFromFile(FileName, sfOpenDocument); // Excel XLS/BIFF else TestWorkbook.ReadFromFile(FileName, sfExcel8); @@ -659,6 +684,123 @@ begin end; +{ Excel2003/XML Tests } +procedure TSpreadReadNumberTests.TestReadXMLNumber0; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,0); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber1; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,1); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber2; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,2); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber3; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,3); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber4; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,4); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber5; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,5); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber6; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,6); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber7; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,7); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber8; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,8); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber9; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,9); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber10; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,10); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber11; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,11); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber12; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,12); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber13; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,13); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber14; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,14); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber15; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,15); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber16; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,16); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber17; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,17); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber18; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,18); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber19; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,19); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber20; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,20); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber21; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,21); +end; + +procedure TSpreadReadNumberTests.TestReadXMLNumber22; +begin + TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileOOXML,22); +end; + + initialization // Register so these tests are included in a full run RegisterTest(TSpreadReadNumberTests); diff --git a/components/fpspreadsheet/tests/pagelayouttests.pas b/components/fpspreadsheet/tests/pagelayouttests.pas index 67515dbfd..164dadf29 100644 --- a/components/fpspreadsheet/tests/pagelayouttests.pas +++ b/components/fpspreadsheet/tests/pagelayouttests.pas @@ -280,6 +280,79 @@ type procedure TestWriteRead_OOXML_RepeatedCol_0_Row_0; procedure TestWriteRead_OOXML_RepeatedCols_0_1_Rows_0_1; + { Excel2003/XML page layout tests } + procedure TestWriteRead_XML_PageMargins_1sheet_0; + procedure TestWriteRead_XML_PageMargins_1sheet_1; + procedure TestWriteRead_XML_PageMargins_1sheet_2; + procedure TestWriteRead_XML_PageMargins_1sheet_3; + procedure TestWriteRead_XML_PageMargins_2sheets_0; + procedure TestWriteRead_XML_PageMargins_2sheets_1; + procedure TestWriteRead_XML_PageMargins_2sheets_2; + procedure TestWriteRead_XML_PageMargins_2sheets_3; + procedure TestWriteRead_XML_PageMargins_3sheets_0; + procedure TestWriteRead_XML_PageMargins_3sheets_1; + procedure TestWriteRead_XML_PageMargins_3sheets_2; + procedure TestWriteRead_XML_PageMargins_3sheets_3; + + procedure TestWriteRead_XML_PageOrientation_1sheet; + procedure TestWriteRead_XML_PageOrientation_2sheets; + procedure TestWriteRead_XML_PageOrientation_3sheets; + + procedure TestWriteRead_XML_PaperSize_1sheet; + procedure TestWriteRead_XML_PaperSize_2sheets; + procedure TestWriteRead_XML_PaperSize_3sheets; + + procedure TestWriteRead_XML_ScalingFactor_1sheet; + procedure TestWriteRead_XML_ScalingFactor_2sheets; + procedure TestWriteRead_XML_ScalingFactor_3sheets; + + procedure TestWriteRead_XML_WidthToPages_1sheet; + procedure TestWriteRead_XML_WidthToPages_2sheets; + procedure TestWriteRead_XML_WidthToPages_3sheets; + + procedure TestWriteRead_XML_HeightToPages_1sheet; + procedure TestWriteRead_XML_HeightToPages_2sheets; + procedure TestWriteRead_XML_HeightToPages_3sheets; + + procedure TestWriteRead_XML_PageNumber_1sheet; + procedure TestWriteRead_XML_PageNumber_2sheets; + procedure TestWriteRead_XML_PageNumber_3sheets; + + procedure TestWriteRead_XML_HeaderFooterRegions_1sheet; + procedure TestWriteRead_XML_HeaderFooterRegions_2sheets; + procedure TestWriteRead_XML_HeaderFooterRegions_3sheets; + + procedure TestWriteRead_XML_HeaderFooterSymbols_1sheet; + procedure TestWriteRead_XML_HeaderFooterSymbols_2sheets; + procedure TestWriteRead_XML_HeaderFooterSymbols_3sheets; + + procedure TestWriteRead_XML_HeaderFooterFontSymbols_1sheet; + procedure TestWriteRead_XML_HeaderFooterFontSymbols_2sheets; + procedure TestWriteRead_XML_HeaderFooterFontSymbols_3sheets; + + procedure TestWriteRead_XML_HeaderFooterFontColor_1sheet; + procedure TestWriteRead_XML_HeaderFooterFontColor_2sheets; + procedure TestWriteRead_XML_HeaderFooterFontColor_3sheets; + + procedure TestWriteRead_XML_PrintRanges_1sheet_1Range_NoSpace; + procedure TestWriteRead_XML_PrintRanges_1sheet_2Ranges_NoSpace; + procedure TestWriteRead_XML_PrintRanges_2sheet_1Range_NoSpace; + procedure TestWriteRead_XML_PrintRanges_2sheet_2Ranges_NoSpace; + + procedure TestWriteRead_XML_PrintRanges_1sheet_1Range_Space; + procedure TestWriteRead_XML_PrintRanges_1sheet_2Ranges_Space; + procedure TestWriteRead_XML_PrintRanges_2sheet_1Range_Space; + procedure TestWriteRead_XML_PrintRanges_2sheet_2Ranges_Space; + + procedure TestWriteRead_XML_RepeatedRow_0; + procedure TestWriteRead_XML_RepeatedRows_0_1; + procedure TestWriteRead_XML_RepeatedRows_1_3; + procedure TestWriteRead_XML_RepeatedCol_0; + procedure TestWriteRead_XML_RepeatedCols_0_1; + procedure TestWriteRead_XML_RepeatedCols_1_3; + procedure TestWriteRead_XML_RepeatedCol_0_Row_0; + procedure TestWriteRead_XML_RepeatedCols_0_1_Rows_0_1; + { OpenDocument page layout tests } procedure TestWriteRead_ODS_PageMargins_1sheet_0; procedure TestWriteRead_ODS_PageMargins_1sheet_1; @@ -1872,6 +1945,311 @@ begin end; +{ Tests for Excdl2003/XML file format } + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageMargins_1sheet_0; +begin + TestWriteRead_PageMargins(sfExcelXML, 1, 0); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageMargins_1sheet_1; +begin + TestWriteRead_PageMargins(sfExcelXML, 1, 1); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageMargins_1sheet_2; +begin + TestWriteRead_PageMargins(sfExcelXML, 1, 2); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageMargins_1sheet_3; +begin + TestWriteRead_PageMargins(sfExcelXML, 1, 3); +end; + + +procedure TSpreadWriteReadPagelayoutTests.TestWriteRead_XML_PageMargins_2sheets_0; +begin + TestWriteRead_PageMargins(sfExcelXML, 2, 0); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageMargins_2sheets_1; +begin + TestWriteRead_PageMargins(sfExcelXML, 2, 1); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageMargins_2sheets_2; +begin + TestWriteRead_PageMargins(sfExcelXML, 2, 2); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageMargins_2sheets_3; +begin + TestWriteRead_PageMargins(sfExcelXML, 2, 3); +end; + + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageMargins_3sheets_0; +begin + TestWriteRead_PageMargins(sfExcelXML, 3, 0); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageMargins_3sheets_1; +begin + TestWriteRead_PageMargins(sfExcelXML, 3, 1); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageMargins_3sheets_2; +begin + TestWriteRead_PageMargins(sfExcelXML, 3, 2); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageMargins_3sheets_3; +begin + TestWriteRead_PageMargins(sfExcelXML, 3, 3); +end; + + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageOrientation_1sheet; +begin + TestWriteRead_PageLayout(sfExcelXML, 1, 0); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageOrientation_2sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 2, 0); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageOrientation_3sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 3, 0); +end; + + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PaperSize_1sheet; +begin + TestWriteRead_PageLayout(sfExcelXML, 1, 1); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PaperSize_2sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 2, 1); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PaperSize_3sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 3, 1); +end; + + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_ScalingFactor_1sheet; +begin + TestWriteRead_PageLayout(sfExcelXML, 1, 2); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_ScalingFactor_2sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 2, 2); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_ScalingFactor_3sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 3, 2); +end; + + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_WidthToPages_1sheet; +begin + TestWriteRead_PageLayout(sfExcelXML, 1, 3); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_WidthToPages_2sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 2, 3); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_WidthToPages_3sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 3, 3); +end; + + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeightToPages_1sheet; +begin + TestWriteRead_PageLayout(sfExcelXML, 1, 4); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeightToPages_2sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 2, 4); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeightToPages_3sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 3, 4); +end; + + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageNumber_1sheet; +begin + TestWriteRead_PageLayout(sfExcelXML, 1, 5); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageNumber_2sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 2, 5); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PageNumber_3sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 3, 5); +end; + + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterRegions_1sheet; +begin + TestWriteRead_PageLayout(sfExcelXML, 1, 6); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterRegions_2sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 2, 6); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterRegions_3sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 3, 6); +end; + + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterSymbols_1sheet; +begin + TestWriteRead_PageLayout(sfExcelXML, 1, 7); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterSymbols_2sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 2, 7); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterSymbols_3sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 3, 7); +end; + + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterFontSymbols_1sheet; +begin + TestWriteRead_PageLayout(sfExcelXML, 1, 8); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterFontSymbols_2sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 2, 8); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterFontSymbols_3sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 3, 8); +end; + + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterFontColor_1sheet; +begin + TestWriteRead_PageLayout(sfExcelXML, 1, 9); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterFontColor_2sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 2, 9); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_HeaderFooterFontColor_3sheets; +begin + TestWriteRead_PageLayout(sfExcelXML, 3, 9); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PrintRanges_1sheet_1Range_NoSpace; +begin + TestWriteRead_PrintRanges(sfExcelXML, 1, 1, false); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PrintRanges_1sheet_2Ranges_NoSpace; +begin + TestWriteRead_PrintRanges(sfExcelXML, 1, 2, false); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PrintRanges_2sheet_1Range_NoSpace; +begin + TestWriteRead_PrintRanges(sfExcelXML, 2, 1, false); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PrintRanges_2sheet_2Ranges_NoSpace; +begin + TestWriteRead_PrintRanges(sfExcelXML, 2, 2, false); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PrintRanges_1sheet_1Range_Space; +begin + TestWriteRead_PrintRanges(sfExcelXML, 1, 1, true); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PrintRanges_1sheet_2Ranges_Space; +begin + TestWriteRead_PrintRanges(sfExcelXML, 1, 2, true); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PrintRanges_2sheet_1Range_Space; +begin + TestWriteRead_PrintRanges(sfExcelXML, 2, 1, true); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_PrintRanges_2sheet_2Ranges_Space; +begin + TestWriteRead_PrintRanges(sfExcelXML, 2, 2, true); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_RepeatedRow_0; +begin + TestWriteRead_RepeatedColRows(sfExcelXML, -1, -1, 0, 0); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_RepeatedRows_0_1; +begin + TestWriteRead_RepeatedColRows(sfExcelXML, -1, -1, 0, 1); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_RepeatedRows_1_3; +begin + TestWriteRead_RepeatedColRows(sfExcelXML, -1, -1, 1, 3); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_RepeatedCol_0; +begin + TestWriteRead_RepeatedColRows(sfExcelXML, 0, 0, -1, -1); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_RepeatedCols_0_1; +begin + TestWriteRead_RepeatedColRows(sfExcelXML, 0, 1, -1, -1); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_RepeatedCols_1_3; +begin + TestWriteRead_RepeatedColRows(sfExcelXML, 1, 3, -1, -1); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_RepeatedCol_0_Row_0; +begin + TestWriteRead_RepeatedColRows(sfExcelXML, 0, 0, 0, 0); +end; + +procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_XML_RepeatedCols_0_1_Rows_0_1; +begin + TestWriteRead_RepeatedColRows(sfExcelXML, 0, 1, 0, 1); +end; + + { Tests for Open Document file format } procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_PageMargins_1sheet_0; diff --git a/components/fpspreadsheet/tests/protectiontests.pas b/components/fpspreadsheet/tests/protectiontests.pas index 75063beab..45ab175ad 100644 --- a/components/fpspreadsheet/tests/protectiontests.pas +++ b/components/fpspreadsheet/tests/protectiontests.pas @@ -97,6 +97,30 @@ type procedure TestWriteRead_OOXML_Passwords; + { Excedl2003/XML protection tests } + procedure TestWriteRead_XML_WorkbookProtection_None; + procedure TestWriteRead_XML_WorkbookProtection_Struct; + procedure TestWriteRead_XML_WorkbookProtection_Win; + procedure TestWriteRead_XML_WorkbookProtection_StructWin; + + procedure TestWriteRead_XML_WorksheetProtection_Default; + procedure TestWriteRead_XML_WorksheetProtection_FormatCells; + procedure TestWriteRead_XML_WorksheetProtection_FormatColumns; + procedure TestWriteRead_XML_WorksheetProtection_FormatRows; + procedure TestWriteRead_XML_WorksheetProtection_DeleteColumns; + procedure TestWriteRead_XML_WorksheetProtection_DeleteRows; + procedure TestWriteRead_XML_WorksheetProtection_InsertColumns; + procedure TestWriteRead_XML_WorksheetProtection_InsertHyperlinks; + procedure TestWriteRead_XML_WorksheetProtection_InsertRows; + procedure TestWriteRead_XML_WorksheetProtection_Sort; + procedure TestWriteRead_XML_WorksheetProtection_SelectLockedCells; + procedure TestWriteRead_XML_WorksheetProtection_SelectUnlockedCells; + procedure TestWriteRead_XML_WorksheetProtection_Objects; + + procedure TestWriteRead_XML_CellProtection; + + procedure TestWriteRead_XML_Passwords; + { ODS protection tests } procedure TestWriteRead_ODS_WorkbookProtection_None; procedure TestWriteRead_ODS_WorkbookProtection_Struct; @@ -109,6 +133,7 @@ type procedure TestWriteRead_ODS_CellProtection; + procedure TestWriteRead_ODS_Passwords; end; implementation @@ -662,7 +687,107 @@ end; procedure TSpreadWriteReadProtectionTests.TestWriteRead_OOXML_Passwords; begin - TestWriteRead_Passwords(sfOpenDocument); + TestWriteRead_Passwords(sfOOXML); +end; + + +{------------------------------------------------------------------------------} +{ Tests for OOXML file format } +{------------------------------------------------------------------------------} + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorkbookProtection_None; +begin + TestWriteRead_WorkbookProtection(sfExcelXML, 0); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorkbookProtection_Struct; +begin + TestWriteRead_WorkbookProtection(sfExcelXML, 1); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorkbookProtection_Win; +begin + TestWriteRead_WorkbookProtection(sfExcelXML, 2); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorkbookProtection_StructWin; +begin + TestWriteRead_WorkbookProtection(sfExcelXML, 3); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_Default; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 0); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_FormatCells; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 1); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_FormatColumns; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 2); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_FormatRows; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 3); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_DeleteColumns; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 4); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_DeleteRows; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 5); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_InsertColumns; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 6); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_InsertHyperlinks; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 7); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_InsertRows; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 8); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_Sort; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 9); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_SelectLockedCells; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 10); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_SelectUnlockedCells; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 11); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_WorksheetProtection_Objects; +begin + TestWriteRead_WorksheetProtection(sfExcelXML, 12); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_CellProtection; +begin + TestWriteRead_CellProtection(sfExcelXML); +end; + +procedure TSpreadWriteReadProtectionTests.TestWriteRead_XML_Passwords; +begin + TestWriteRead_Passwords(sfExcelXML); end; @@ -710,6 +835,12 @@ begin TestWriteRead_CellProtection(sfOpenDocument); end; +procedure TSpreadWriteReadProtectionTests.TestWriteRead_ODS_Passwords; +begin + TestWriteRead_Passwords(sfOpenDocument); +end; + + initialization RegisterTest(TSpreadWriteReadProtectionTests); diff --git a/components/fpspreadsheet/tests/singleformulatests.pas b/components/fpspreadsheet/tests/singleformulatests.pas index 65a54348a..39e888216 100644 --- a/components/fpspreadsheet/tests/singleformulatests.pas +++ b/components/fpspreadsheet/tests/singleformulatests.pas @@ -87,6 +87,9 @@ type procedure SumMultiSheetRange_FlippedCells_OOXML; procedure SumMultiSheetRange_FlippedSheets_OOXML; procedure SumMultiSheetRange_FlippedSheetsAndCells_OOXML; + procedure SumMultiSheetRange_FlippedCells_XML; + procedure SumMultiSheetRange_FlippedSheets_XML; + procedure SumMultiSheetRange_FlippedSheetsAndCells_XML; procedure SumMultiSheetRange_FlippedSheetsAndCells_ODS; procedure IfConst_BIFF8; @@ -564,6 +567,11 @@ begin TestFormula('SUM(Sheet3:Sheet2!C5:C3)', '55', ftkCellRangeSheetRange, sfOOXML, 'SUM(Sheet2:Sheet3!C3:C5)'); end; +procedure TSpreadSingleFormulaTests.SumMultiSheetRange_FlippedSheetsAndCells_XML; +begin + TestFormula('SUM(Sheet3:Sheet2!C5:C3)', '55', ftkCellRangeSheetRange, sfExcelXML, 'SUM(Sheet2:Sheet3!C3:C5)'); +end; + procedure TSpreadSingleFormulaTests.SumMultiSheetRange_FlippedSheetsAndCells_ODS; begin TestFormula('SUM(Sheet3:Sheet2!C5:C3)', '55', ftkCellRangeSheetRange, sfOpenDocument, 'SUM(Sheet2:Sheet3!C3:C5)'); @@ -585,6 +593,16 @@ begin TestFormula('SUM(Sheet3:Sheet2!C3:C5)', '55', ftkCellRangeSheetRange, sfOOXML, 'SUM(Sheet2:Sheet3!C3:C5)'); end; +procedure TSpreadSingleFormulaTests.SumMultiSheetRange_FlippedCells_XML; +begin + TestFormula('SUM(Sheet2:Sheet3!C5:C3)', '55', ftkCellRangeSheetRange, sfExcelXML, 'SUM(Sheet2:Sheet3!C3:C5)'); +end; + +procedure TSpreadSingleFormulaTests.SumMultiSheetRange_FlippedSheets_XML; +begin + TestFormula('SUM(Sheet3:Sheet2!C3:C5)', '55', ftkCellRangeSheetRange, sfExcelXML, 'SUM(Sheet2:Sheet3!C3:C5)'); +end; + { --- } procedure TSpreadSingleFormulaTests.IfConst_BIFF8; diff --git a/components/fpspreadsheet/tests/virtualmodetests.pas b/components/fpspreadsheet/tests/virtualmodetests.pas index b07e53c9f..b6aa08fa8 100644 --- a/components/fpspreadsheet/tests/virtualmodetests.pas +++ b/components/fpspreadsheet/tests/virtualmodetests.pas @@ -32,12 +32,14 @@ type procedure TestWriteVirtualMode_BIFF8; procedure TestWriteVirtualMode_ODS; procedure TestWriteVirtualMode_OOXML; + procedure TestWriteVirtualMode_XML; procedure TestWriteVirtualMode_BIFF2_BufStream; procedure TestWriteVirtualMode_BIFF5_BufStream; procedure TestWriteVirtualMode_BIFF8_BufStream; procedure TestWriteVirtualMode_ODS_BufStream; procedure TestWriteVirtualMode_OOXML_BufStream; + procedure TestWriteVirtualMode_XML_BufStream; end; implementation @@ -149,6 +151,11 @@ begin TestWriteVirtualMode(sfOOXML, false); end; +procedure TSpreadVirtualModeTests.TestWriteVirtualMode_XML; +begin + TestWriteVirtualMode(sfExcelXML, false); +end; + procedure TSpreadVirtualModeTests.TestWriteVirtualMode_BIFF2_BufStream; begin TestWriteVirtualMode(sfExcel2, True); @@ -174,6 +181,11 @@ begin TestWriteVirtualMode(sfOOXML, true); end; +procedure TSpreadVirtualModeTests.TestWriteVirtualMode_XML_BufStream; +begin + TestWriteVirtualMode(sfExcelXML, true); +end; + initialization // Register so these tests are included in a full run