diff --git a/components/fpspreadsheet/tests/datetests.pas b/components/fpspreadsheet/tests/datetests.pas index b87b6ff4b..b73c591d7 100644 --- a/components/fpspreadsheet/tests/datetests.pas +++ b/components/fpspreadsheet/tests/datetests.pas @@ -198,16 +198,18 @@ type { TSpreadWriteReadDateTests } //Write to xls/xml file and read back - TSpreadWriteReadDateTests= class(TTestCase) + TSpreadWriteReadDateTests = class(TTestCase) private protected // Set up expected values: procedure SetUp; override; procedure TearDown; override; - published // Reads dates, date/time and time values from spreadsheet and checks against list // One cell per test so some tests can fail and those further below may still work - procedure TestWriteReadDates; + procedure TestWriteReadDates(AFormat: TsSpreadsheetFormat); + published + procedure TestWriteReadDates_BIFF5; + procedure TestWriteReadDates_BIFF8; end; @@ -281,7 +283,7 @@ begin inherited TearDown; end; -procedure TSpreadWriteReadDateTests.TestWriteReadDates; +procedure TSpreadWriteReadDateTests.TestWriteReadDates(AFormat: TsSpreadsheetFormat); var MyWorksheet: TsWorksheet; MyWorkbook: TsWorkbook; @@ -305,13 +307,16 @@ begin Fail('Failed writing date time for cell '+CellNotation(MyWorkSheet,Row)); CheckEquals(SollDates[Row],ActualDateTime,'Test date/time value mismatch cell '+CellNotation(MyWorksheet,Row)); end; - MyWorkBook.WriteToFile(TempFile,sfExcel8,true); + MyWorkBook.WriteToFile(TempFile, AFormat, true); MyWorkbook.Free; // Open the spreadsheet, as biff8 MyWorkbook := TsWorkbook.Create; - MyWorkbook.ReadFromFile(TempFile, sfExcel8); - MyWorksheet:=GetWorksheetByName(MyWorkBook,DatesSheet); + MyWorkbook.ReadFromFile(TempFile, AFormat); + if AFormat = sfExcel2 then + MyWorksheet := MyWorkbook.GetFirstWorksheet + else + MyWorksheet := GetWorksheetByName(MyWorkBook,DatesSheet); if MyWorksheet=nil then fail('Error in test code. Failed to get named worksheet'); @@ -328,6 +333,16 @@ begin DeleteFile(TempFile); end; +procedure TSpreadWriteReadDateTests.TestWriteReadDates_BIFF5; +begin + TestWriteReadDates(sfExcel5); +end; + +procedure TSpreadWriteReadDateTests.TestWriteReadDates_BIFF8; +begin + TestWriteReadDates(sfExcel8); +end; + procedure TSpreadReadDateTests.TestReadDate(FileName: string; Row: integer); var MyWorksheet: TsWorksheet; diff --git a/components/fpspreadsheet/tests/numberstests.pas b/components/fpspreadsheet/tests/numberstests.pas index 9b1af8f25..fce9d4eb8 100644 --- a/components/fpspreadsheet/tests/numberstests.pas +++ b/components/fpspreadsheet/tests/numberstests.pas @@ -91,10 +91,12 @@ type // Set up expected values: procedure SetUp; override; procedure TearDown; override; - published // Reads numbers values from spreadsheet and checks against list // One cell per test so some tests can fail and those further below may still work - procedure TestWriteReadNumbers; + procedure TestWriteReadNumbers(AFormat: TsSpreadsheetFormat); + published + procedure TestWriteReadNumbers_BIFF5; + procedure TestWriteReadNumbers_BIFF8; end; @@ -149,7 +151,7 @@ begin inherited TearDown; end; -procedure TSpreadWriteReadNumberTests.TestWriteReadNumbers; +procedure TSpreadWriteReadNumberTests.TestWriteReadNumbers(AFormat: TsSpreadsheetFormat); var MyWorksheet: TsWorksheet; MyWorkbook: TsWorkbook; @@ -165,7 +167,7 @@ begin } // Write out all test values MyWorkbook := TsWorkbook.Create; - MyWorkSheet:=MyWorkBook.AddWorksheet(NumbersSheet); + MyWorkSheet := MyWorkBook.AddWorksheet(NumbersSheet); for Row := Low(SollNumbers) to High(SollNumbers) do begin MyWorkSheet.WriteNumber(Row,0,SollNumbers[Row]); @@ -173,13 +175,16 @@ begin ActualNumber:=MyWorkSheet.ReadAsNumber(Row,0); CheckEquals(SollNumbers[Row],ActualNumber,'Test value mismatch cell '+CellNotation(MyWorkSheet,Row)); end; - MyWorkBook.WriteToFile(TempFile,sfExcel8,true); + MyWorkBook.WriteToFile(TempFile, AFormat, true); MyWorkbook.Free; // Open the spreadsheet, as biff8 MyWorkbook := TsWorkbook.Create; - MyWorkbook.ReadFromFile(TempFile, sfExcel8); - MyWorksheet:=GetWorksheetByName(MyWorkBook,NumbersSheet); + MyWorkbook.ReadFromFile(TempFile, AFormat); + if AFormat = sfExcel2 then + MyWorksheet := MyWorkbook.GetFirstWorksheet + else + MyWorksheet := GetWorksheetByName(MyWorkBook,NumbersSheet); if MyWorksheet=nil then fail('Error in test code. Failed to get named worksheet'); @@ -195,6 +200,16 @@ begin DeleteFile(TempFile); end; +procedure TSpreadWriteReadNumberTests.TestWriteReadNumbers_BIFF5; +begin + TestWriteReadNumbers(sfExcel5); +end; + +procedure TSpreadWriteReadNumberTests.TestWriteReadNumbers_BIFF8; +begin + TestWriteReadNumbers(sfExcel8); +end; + procedure TSpreadReadNumberTests.TestReadNumber(FileName: string; Row: integer); var MyWorksheet: TsWorksheet;