fpspreadsheet: Add unit tests for hidden worksheets.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5776 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2017-03-01 20:16:47 +00:00
parent 4ce25109a8
commit 80f4f07a18

View File

@ -27,6 +27,7 @@ type
ALeftPaneWidth, ATopPaneHeight: Integer); ALeftPaneWidth, ATopPaneHeight: Integer);
procedure TestWriteReadGridHeaders(AFormat: TsSpreadsheetFormat; procedure TestWriteReadGridHeaders(AFormat: TsSpreadsheetFormat;
AShowGridLines, AShowHeaders: Boolean); AShowGridLines, AShowHeaders: Boolean);
procedure TestWriteReadHiddenSheet(AFormat: TsSpreadsheetFormat);
published published
// Writes out sheet options & reads back. // Writes out sheet options & reads back.
@ -53,6 +54,8 @@ type
procedure TestWriteRead_BIFF5_Panes_Vert; procedure TestWriteRead_BIFF5_Panes_Vert;
procedure TestWriteRead_BIFF5_Panes_None; procedure TestWriteRead_BIFF5_Panes_None;
procedure TestWriteRead_BIFF5_HiddenSheet;
{ BIFF8 tests } { BIFF8 tests }
procedure TestWriteRead_BIFF8_ShowGridLines_ShowHeaders; procedure TestWriteRead_BIFF8_ShowGridLines_ShowHeaders;
procedure TestWriteRead_BIFF8_ShowGridLines_HideHeaders; procedure TestWriteRead_BIFF8_ShowGridLines_HideHeaders;
@ -64,6 +67,8 @@ type
procedure TestWriteRead_BIFF8_Panes_Vert; procedure TestWriteRead_BIFF8_Panes_Vert;
procedure TestWriteRead_BIFF8_Panes_None; procedure TestWriteRead_BIFF8_Panes_None;
procedure TestWriteRead_BIFF8_HiddenSheet;
{ ODS tests } { ODS tests }
procedure TestWriteRead_ODS_ShowGridLines_ShowHeaders; procedure TestWriteRead_ODS_ShowGridLines_ShowHeaders;
procedure TestWriteRead_ODS_ShowGridLines_HideHeaders; procedure TestWriteRead_ODS_ShowGridLines_HideHeaders;
@ -75,6 +80,8 @@ type
procedure TestWriteRead_ODS_Panes_Vert; procedure TestWriteRead_ODS_Panes_Vert;
procedure TestWriteRead_ODS_Panes_None; procedure TestWriteRead_ODS_Panes_None;
procedure TestWriteRead_ODS_HiddenSheet;
{ OOXML tests } { OOXML tests }
procedure TestWriteRead_OOXML_ShowGridLines_ShowHeaders; procedure TestWriteRead_OOXML_ShowGridLines_ShowHeaders;
procedure TestWriteRead_OOXML_ShowGridLines_HideHeaders; procedure TestWriteRead_OOXML_ShowGridLines_HideHeaders;
@ -85,6 +92,8 @@ type
procedure TestWriteRead_OOXML_Panes_Hor; procedure TestWriteRead_OOXML_Panes_Hor;
procedure TestWriteRead_OOXML_Panes_Vert; procedure TestWriteRead_OOXML_Panes_Vert;
procedure TestWriteRead_OOXML_Panes_None; procedure TestWriteRead_OOXML_Panes_None;
procedure TestWriteRead_OOXML_HiddenSheet;
end; end;
implementation implementation
@ -422,6 +431,67 @@ begin
end; end;
procedure TSpreadWriteReadOptionsTests.TestWriteReadHiddenSheet(
AFormat: TsSpreadsheetFormat);
const
RESULTS: array[0..1] of Boolean = (false, true);
var
MyWorksheet: TsWorksheet;
MyWorkbook: TsWorkbook;
TempFile: string; //write xls/xml to this file and read back from it
i: Integer;
begin
TempFile := GetTempFileName;
// Write out pane sizes
MyWorkbook := TsWorkbook.Create;
try
MyWorkBook.AddWorksheet(OptionsSheet);
MyWorkSheet := MyWorkBook.AddWorksheet(OptionsSheet + '-hidden');
MyWorksheet.Options := myWorksheet.Options + [soHidden];
MyWorkBook.WriteToFile(TempFile, AFormat, true);
finally
MyWorkbook.Free;
end;
// Read back pane sizes
MyWorkbook := TsWorkbook.Create;
try
MyWorkbook.ReadFromFile(TempFile, AFormat);
for i:=0 to MyWorkbook.GetWorksheetCount-1 do begin
MyWorksheet := MyWorkbook.GetWorksheetByIndex(i);
if MyWorksheet=nil then
fail('Error in test code. Failed to get named worksheet #' + IntToStr(i));
CheckEquals(RESULTS[i], soHidden in MyWorksheet.Options,
'Test saved hidden state mismatch, sheet #' + IntToStr(i));
end;
finally
MyWorkbook.Free;
DeleteFile(TempFile);
end;
end;
procedure TSpreadWriteReadOptionsTests.TestWriteRead_BIFF5_HiddenSheet;
begin
TestWriteReadHiddenSheet(sfExcel5);
end;
procedure TSpreadWriteReadOptionsTests.TestWriteRead_BIFF8_HiddenSheet;
begin
TestWriteReadHiddenSheet(sfExcel8);
end;
procedure TSpreadWriteReadOptionsTests.TestWriteRead_OOXML_HiddenSheet;
begin
TestWriteReadHiddenSheet(sfOOXML);
end;
procedure TSpreadWriteReadOptionsTests.TestWriteRead_ODS_HiddenSheet;
begin
TestWriteReadHiddenSheet(sfOpenDocument);
end;
initialization initialization
RegisterTest(TSpreadWriteReadOptionsTests); RegisterTest(TSpreadWriteReadOptionsTests);