+ Tests: add support for LibreOffice/OpenOffice .ods spreadsheets

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2907 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
bigchimp
2014-03-23 11:34:37 +00:00
parent 9f4da10a62
commit 52b97c050d
9 changed files with 688 additions and 16 deletions

View File

@ -6,6 +6,7 @@ unit datetests;
Adding tests/test data:
1. Add a new value to column A in the relevant worksheet, and save the spreadsheet read-only
(for dates, there are 2 files, with different datemodes. Use them both...)
Repeat this for all supported spreadsheet formats (Excel XLS, ODF, etc)
2. Increase SollDates array size
3. Add value from 1) to InitNormVariables so you can test against it
4. Add your read test(s), read and check read value against SollDates[<added number>]
@ -117,6 +118,82 @@ type
procedure TestReadDate1899_35;
procedure TestReadDate1899_36;
procedure TestReadDate1899_37;
procedure TestReadODFDate0; // same as above except OpenDocument/ODF format
procedure TestReadODFDate1; //date and time
procedure TestReadODFDate2;
procedure TestReadODFDate3;
procedure TestReadODFDate4; //time only tests start here
procedure TestReadODFDate5;
procedure TestReadODFDate6;
procedure TestReadODFDate7;
procedure TestReadODFDate8;
procedure TestReadODFDate9;
procedure TestReadODFDate10;
procedure TestReadODFDate11;
procedure TestReadODFDate12;
procedure TestReadODFDate13;
procedure TestReadODFDate14;
procedure TestReadODFDate15;
procedure TestReadODFDate16;
procedure TestReadODFDate17;
procedure TestReadODFDate18;
procedure TestReadODFDate19;
procedure TestReadODFDate20;
procedure TestReadODFDate21;
procedure TestReadODFDate22;
procedure TestReadODFDate23;
procedure TestReadODFDate24;
procedure TestReadODFDate25;
procedure TestReadODFDate26;
procedure TestReadODFDate27;
procedure TestReadODFDate28;
procedure TestReadODFDate29;
procedure TestReadODFDate30;
procedure TestReadODFDate31;
procedure TestReadODFDate32;
procedure TestReadODFDate33;
procedure TestReadODFDate34;
procedure TestReadODFDate35;
procedure TestReadODFDate36;
procedure TestReadODFDate37;
procedure TestReadODFDate1899_0; //same as above except with the 1899/1900 date system set
procedure TestReadODFDate1899_1;
procedure TestReadODFDate1899_2;
procedure TestReadODFDate1899_3;
procedure TestReadODFDate1899_4;
procedure TestReadODFDate1899_5;
procedure TestReadODFDate1899_6;
procedure TestReadODFDate1899_7;
procedure TestReadODFDate1899_8;
procedure TestReadODFDate1899_9;
procedure TestReadODFDate1899_10;
procedure TestReadODFDate1899_11;
procedure TestReadODFDate1899_12;
procedure TestReadODFDate1899_13;
procedure TestReadODFDate1899_14;
procedure TestReadODFDate1899_15;
procedure TestReadODFDate1899_16;
procedure TestReadODFDate1899_17;
procedure TestReadODFDate1899_18;
procedure TestReadODFDate1899_19;
procedure TestReadODFDate1899_20;
procedure TestReadODFDate1899_21;
procedure TestReadODFDate1899_22;
procedure TestReadODFDate1899_23;
procedure TestReadODFDate1899_24;
procedure TestReadODFDate1899_25;
procedure TestReadODFDate1899_26;
procedure TestReadODFDate1899_27;
procedure TestReadODFDate1899_28;
procedure TestReadODFDate1899_29;
procedure TestReadODFDate1899_30;
procedure TestReadODFDate1899_31;
procedure TestReadODFDate1899_32;
procedure TestReadODFDate1899_33;
procedure TestReadODFDate1899_34;
procedure TestReadODFDate1899_35;
procedure TestReadODFDate1899_36;
procedure TestReadODFDate1899_37;
end;
{ TSpreadWriteReadDateTests }
@ -137,8 +214,6 @@ type
implementation
const
TestFileBIFF8='testbiff8.xls'; //with 1904 datemode date system
TestFileBIFF8_1899='testbiff8_1899.xls'; //with 1899/1900 datemode date system
DatesSheet = 'Dates'; //worksheet name
// Initialize array with variables that represent the values
@ -262,9 +337,14 @@ begin
if Row>High(SollDates) then
fail('Error in test code: array bounds overflow. Check array size is correct.');
// Open the spreadsheet, as biff8
// Open the spreadsheet
MyWorkbook := TsWorkbook.Create;
MyWorkbook.ReadFromFile(FileName, sfExcel8);
case UpperCase(ExtractFileExt(FileName)) of
'.XLSX': MyWorkbook.ReadFromFile(FileName, sfOOXML);
'.ODS': MyWorkbook.ReadFromFile(FileName, sfOpenDocument);
// Excel XLS/BIFF
else MyWorkbook.ReadFromFile(FileName, sfExcel8);
end;
MyWorksheet:=GetWorksheetByName(MyWorkBook,DatesSheet);
if MyWorksheet=nil then
fail('Error in test code. Failed to get named worksheet');
@ -672,6 +752,386 @@ begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileBIFF8_1899,37);
end;
procedure TSpreadReadDateTests.TestReadODFDate0;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,0);
end;
procedure TSpreadReadDateTests.TestReadODFDate1;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,1);
end;
procedure TSpreadReadDateTests.TestReadODFDate2;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,2);
end;
procedure TSpreadReadDateTests.TestReadODFDate3;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,3);
end;
procedure TSpreadReadDateTests.TestReadODFDate4;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,4);
end;
procedure TSpreadReadDateTests.TestReadODFDate5;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,5);
end;
procedure TSpreadReadDateTests.TestReadODFDate6;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,6);
end;
procedure TSpreadReadDateTests.TestReadODFDate7;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,7);
end;
procedure TSpreadReadDateTests.TestReadODFDate8;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,8);
end;
procedure TSpreadReadDateTests.TestReadODFDate9;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,9);
end;
procedure TSpreadReadDateTests.TestReadODFDate10;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,10);
end;
procedure TSpreadReadDateTests.TestReadODFDate11;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,11);
end;
procedure TSpreadReadDateTests.TestReadODFDate12;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,12);
end;
procedure TSpreadReadDateTests.TestReadODFDate13;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,13);
end;
procedure TSpreadReadDateTests.TestReadODFDate14;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,14);
end;
procedure TSpreadReadDateTests.TestReadODFDate15;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,15);
end;
procedure TSpreadReadDateTests.TestReadODFDate16;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,16);
end;
procedure TSpreadReadDateTests.TestReadODFDate17;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,17);
end;
procedure TSpreadReadDateTests.TestReadODFDate18;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,18);
end;
procedure TSpreadReadDateTests.TestReadODFDate19;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,19);
end;
procedure TSpreadReadDateTests.TestReadODFDate20;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,20);
end;
procedure TSpreadReadDateTests.TestReadODFDate21;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,21);
end;
procedure TSpreadReadDateTests.TestReadODFDate22;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,22);
end;
procedure TSpreadReadDateTests.TestReadODFDate23;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,23);
end;
procedure TSpreadReadDateTests.TestReadODFDate24;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,24);
end;
procedure TSpreadReadDateTests.TestReadODFDate25;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,25);
end;
procedure TSpreadReadDateTests.TestReadODFDate26;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,26);
end;
procedure TSpreadReadDateTests.TestReadODFDate27;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,27);
end;
procedure TSpreadReadDateTests.TestReadODFDate28;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,28);
end;
procedure TSpreadReadDateTests.TestReadODFDate29;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,29);
end;
procedure TSpreadReadDateTests.TestReadODFDate30;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,30);
end;
procedure TSpreadReadDateTests.TestReadODFDate31;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,31);
end;
procedure TSpreadReadDateTests.TestReadODFDate32;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,32);
end;
procedure TSpreadReadDateTests.TestReadODFDate33;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,33);
end;
procedure TSpreadReadDateTests.TestReadODFDate34;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,34);
end;
procedure TSpreadReadDateTests.TestReadODFDate35;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,35);
end;
procedure TSpreadReadDateTests.TestReadODFDate36;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,36);
end;
procedure TSpreadReadDateTests.TestReadODFDate37;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF,37);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_0;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,0);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_1;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,1);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_2;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,2);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_3;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,3);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_4;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,4);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_5;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,5);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_6;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,6);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_7;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,7);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_8;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,8);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_9;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,9);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_10;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,10);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_11;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,11);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_12;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,12);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_13;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,13);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_14;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,14);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_15;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,15);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_16;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,16);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_17;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,17);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_18;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,18);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_19;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,19);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_20;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,20);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_21;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,21);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_22;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,22);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_23;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,23);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_24;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,24);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_25;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,25);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_26;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,26);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_27;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,27);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_28;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,28);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_29;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,29);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_30;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,30);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_31;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,31);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_32;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,32);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_33;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,33);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_34;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,34);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_35;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,35);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_36;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,36);
end;
procedure TSpreadReadDateTests.TestReadODFDate1899_37;
begin
TestReadDate(ExtractFilePath(ParamStr(0)) + TestFileODF_1899,37);
end;
initialization
// Register so these tests are included in a full run

View File

@ -10,7 +10,7 @@ units (e.g. datetests).
}
uses
// Not using lazarus package as the user may be working with multiple versions
// Not using Lazarus package as the user may be working with multiple versions
// Instead, add .. to unit search path
Classes, SysUtils, fpcunit, testutils, testregistry,
fpsallformats, fpspreadsheet, xlsbiff8 {and a project requirement for lclbase for utf8 handling},

View File

@ -61,6 +61,26 @@ type
procedure TestReadNumber17;
procedure TestReadNumber18;
procedure TestReadNumber19;
procedure TestReadODFNumber0; //number tests using ODF/LibreOffice file format
procedure TestReadODFNumber1; //number and time
procedure TestReadODFNumber2;
procedure TestReadODFNumber3;
procedure TestReadODFNumber4; //time only tests start here
procedure TestReadODFNumber5;
procedure TestReadODFNumber6;
procedure TestReadODFNumber7;
procedure TestReadODFNumber8;
procedure TestReadODFNumber9;
procedure TestReadODFNumber10;
procedure TestReadODFNumber11;
procedure TestReadODFNumber12;
procedure TestReadODFNumber13;
procedure TestReadODFNumber14;
procedure TestReadODFNumber15;
procedure TestReadODFNumber16;
procedure TestReadODFNumber17;
procedure TestReadODFNumber18;
procedure TestReadODFNumber19;
end;
{ TSpreadWriteReadNumberTests }
@ -137,6 +157,7 @@ var
Row: Cardinal;
TempFile: string; //write xls/xml to this file and read back from it
begin
//todo: add support for ODF format
TempFile:=GetTempFileName;
{// Not needed: use workbook.writetofile with overwrite=true
if fileexists(TempFile) then
@ -183,9 +204,14 @@ begin
if Row>High(SollNumbers) then
fail('Error in test code: array bounds overflow. Check array size is correct.');
// Open the spreadsheet, as biff8
// Open the spreadsheet
MyWorkbook := TsWorkbook.Create;
MyWorkbook.ReadFromFile(FileName, sfExcel8);
case UpperCase(ExtractFileExt(FileName)) of
'.XLSX': MyWorkbook.ReadFromFile(FileName, sfOOXML);
'.ODS': MyWorkbook.ReadFromFile(FileName, sfOpenDocument);
// Excel XLS/BIFF
else MyWorkbook.ReadFromFile(FileName, sfExcel8);
end;
MyWorksheet:=GetWorksheetByName(MyWorkBook,NumbersSheet);
if MyWorksheet=nil then
fail('Error in test code. Failed to get named worksheet');
@ -308,6 +334,107 @@ begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileBIFF8,17);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber0;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,0);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber1;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,1);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber2;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,2);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber3;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,3);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber4;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,4);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber5;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,5);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber6;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,6);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber7;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,7);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber8;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,8);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber9;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,9);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber10;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,10);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber11;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,11);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber12;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,12);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber13;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,13);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber14;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,14);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber15;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,15);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber16;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,16);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber17;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,17);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber18;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,16);
end;
procedure TSpreadReadNumberTests.TestReadODFNumber19;
begin
TestReadNumber(ExtractFilePath(ParamStr(0)) + TestFileODF,17);
end;
initialization
// Register so these tests are included in a full run

View File

@ -148,12 +148,15 @@
</Item2>
<Item3>
<Name Value="EAssertionFailedError"/>
<Enabled Value="False"/>
</Item3>
<Item4>
<Name Value="Exception"/>
<Enabled Value="False"/>
</Item4>
<Item5>
<Name Value="EIBDatabaseError"/>
<Enabled Value="False"/>
</Item5>
</Exceptions>
</Debugging>

View File

@ -130,17 +130,10 @@
<OtherUnitFiles Value=".."/>
</SearchPaths>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
<Optimizations>
<OptimizationLevel Value="0"/>
</Optimizations>
</CodeGeneration>
<Linking>
<Debugging>
<GenerateDebugInfo Value="False"/>
</Debugging>
<LinkSmart Value="True"/>
</Linking>
<Other>
<CompilerMessages>
<MsgFileName Value=""/>
@ -152,15 +145,19 @@
<Exceptions Count="4">
<Item1>
<Name Value="EAbort"/>
<Enabled Value="False"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
<Enabled Value="False"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
<Enabled Value="False"/>
</Item3>
<Item4>
<Name Value="EAssertionFailedError"/>
<Enabled Value="False"/>
</Item4>
</Exceptions>
</Debugging>

View File

@ -62,6 +62,19 @@ type
procedure TestReadString10;
procedure TestReadString11;
procedure TestReadString12;
procedure TestReadODFString0; //OpenDocument/LibreOffice format empty string
procedure TestReadODFString1;
procedure TestReadODFString2;
procedure TestReadODFString3;
procedure TestReadODFString4;
procedure TestReadODFString5;
procedure TestReadODFString6;
procedure TestReadODFString7;
procedure TestReadODFString8;
procedure TestReadODFString9;
procedure TestReadODFString10;
procedure TestReadODFString11;
procedure TestReadODFString12;
end;
{ TSpreadWriteReadStringTests }
@ -127,6 +140,7 @@ var
Row: Cardinal;
TempFile: string; //write xls/xml to this file and read back from it
begin
//todo: add support for ODF/LibreOffice format
TempFile:=GetTempFileName;
{// Not needed: use workbook.writetofile with overwrite=true
if fileexists(TempFile) then
@ -278,9 +292,14 @@ begin
if Row>High(SollStrings) then
fail('Error in test code: array bounds overflow. Check array size is correct.');
// Open the spreadsheet, as biff8
// Open the spreadsheet
MyWorkbook := TsWorkbook.Create;
MyWorkbook.ReadFromFile(FileName, sfExcel8);
case UpperCase(ExtractFileExt(FileName)) of
'.XLSX': MyWorkbook.ReadFromFile(FileName, sfOOXML);
'.ODS': MyWorkbook.ReadFromFile(FileName, sfOpenDocument);
// Excel XLS/BIFF
else MyWorkbook.ReadFromFile(FileName, sfExcel8);
end;
MyWorksheet:=GetWorksheetByName(MyWorkBook,StringsSheet);
if MyWorksheet=nil then
fail('Error in test code: could not retrieve worksheet.');
@ -368,6 +387,70 @@ begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileBIFF8,12);
end;
procedure TSpreadReadStringTests.TestReadODFString0;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,0);
end;
procedure TSpreadReadStringTests.TestReadODFString1;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,1);
end;
procedure TSpreadReadStringTests.TestReadODFString2;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,2);
end;
procedure TSpreadReadStringTests.TestReadODFString3;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,3);
end;
procedure TSpreadReadStringTests.TestReadODFString4;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,4);
end;
procedure TSpreadReadStringTests.TestReadODFString5;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,5);
end;
procedure TSpreadReadStringTests.TestReadODFString6;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,6);
end;
procedure TSpreadReadStringTests.TestReadODFString7;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,7);
end;
procedure TSpreadReadStringTests.TestReadODFString8;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,8);
end;
procedure TSpreadReadStringTests.TestReadODFString9;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,9);
end;
procedure TSpreadReadStringTests.TestReadODFString10;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,10);
end;
procedure TSpreadReadStringTests.TestReadODFString11;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,11);
end;
procedure TSpreadReadStringTests.TestReadODFString12;
begin
TestReadString(ExtractFilePath(ParamStr(0)) + TestFileODF,12);
end;
initialization
// Register so these tests are included in a full run

Binary file not shown.

Binary file not shown.

View File

@ -13,6 +13,8 @@ uses
const
TestFileBIFF8='testbiff8.xls'; //with 1904 datemode date system
TestFileBIFF8_1899='testbiff8_1899.xls'; //with 1899/1900 datemode date system
TestFileODF='testodf.ods'; //OpenDocument/LibreOffice with 1904 datemode date system
TestFileODF_1899='testodf_1899.ods'; //OpenDocument/LibreOffice with 1899/1900 datemode date system
TestFileManual='testmanual.xls'; //file name for manual checking using external spreadsheet program (Excel/LibreOffice..)
DatesSheet = 'Dates'; //worksheet name
FormulasSheet = 'Formulas'; //worksheet name