You've already forked lazarus-ccr
fpspreadsheet: Add unit tests for page layout headers and footers.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4114 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -1045,7 +1045,9 @@ begin
|
||||
nodeName := textNode.NodeName;
|
||||
case nodeName of
|
||||
'#text':
|
||||
Result := Result + textNode.NodeValue;
|
||||
if textNode.NodeValue = '&'
|
||||
then Result := Result + '&&'
|
||||
else Result := Result + textNode.NodeValue;
|
||||
'text:sheet-name':
|
||||
Result := Result + '&A';
|
||||
'text:page-number':
|
||||
@ -3746,12 +3748,13 @@ procedure TsSpreadOpenDocWriter.WriteMasterStyles(AStream: TStream);
|
||||
'D': Result := Result + Format(
|
||||
'<text:date style:data-style-name="N2" text:date-value="%s">%s</text:date>',
|
||||
[FormatDateTime('yyyy"-"mm"-"dd', date()), DateToStr(date())]);
|
||||
'F': Result := Result + '<text:file-name text:display="full">???</text:file-name>';
|
||||
'F': Result := Result + '<text:file-name text:display="name-and-extension">???</text:file-name>';
|
||||
'P': Result := Result + '<text:page-number>1</text:page-number>';
|
||||
'N': Result := Result + '<text:page-count>1</text:page-count>';
|
||||
'T': Result := Result + Format(
|
||||
'<text:time>%s</text:time>', [FormatDateTime('hh:nn:ss', time())]);
|
||||
'Z': Result := Result + '<text:file-name text:display="path">???</text:file-name>';
|
||||
'&': Result := Result + '&&';
|
||||
end;
|
||||
end
|
||||
else
|
||||
|
@ -42,6 +42,14 @@ type
|
||||
procedure TestWriteRead_BIFF2_PageMargins_3sheets_2;
|
||||
procedure TestWriteRead_BIFF2_PageMargins_3sheets_3;
|
||||
|
||||
procedure TestWriteRead_BIFF2_HeaderFooterRegions_1sheet;
|
||||
procedure TestWriteRead_BIFF2_HeaderFooterRegions_2sheets;
|
||||
procedure TestWriteRead_BIFF2_HeaderFooterRegions_3sheets;
|
||||
|
||||
procedure TestWriteRead_BIFF2_HeaderFooterSymbols_1sheet;
|
||||
procedure TestWriteRead_BIFF2_HeaderFooterSymbols_2sheets;
|
||||
procedure TestWriteRead_BIFF2_HeaderFooterSymbols_3sheets;
|
||||
|
||||
// no BIFF2 page orientation tests because this info is not readily available in the file
|
||||
|
||||
|
||||
@ -83,6 +91,14 @@ type
|
||||
procedure TestWriteRead_BIFF5_PageNumber_2sheets;
|
||||
procedure TestWriteRead_BIFF5_PageNumber_3sheets;
|
||||
|
||||
procedure TestWriteRead_BIFF5_HeaderFooterRegions_1sheet;
|
||||
procedure TestWriteRead_BIFF5_HeaderFooterRegions_2sheets;
|
||||
procedure TestWriteRead_BIFF5_HeaderFooterRegions_3sheets;
|
||||
|
||||
procedure TestWriteRead_BIFF5_HeaderFooterSymbols_1sheet;
|
||||
procedure TestWriteRead_BIFF5_HeaderFooterSymbols_2sheets;
|
||||
procedure TestWriteRead_BIFF5_HeaderFooterSymbols_3sheets;
|
||||
|
||||
{ BIFF8 page layout tests }
|
||||
procedure TestWriteRead_BIFF8_PageMargins_1sheet_0;
|
||||
procedure TestWriteRead_BIFF8_PageMargins_1sheet_1;
|
||||
@ -121,6 +137,14 @@ type
|
||||
procedure TestWriteRead_BIFF8_PageNumber_2sheets;
|
||||
procedure TestWriteRead_BIFF8_PageNumber_3sheets;
|
||||
|
||||
procedure TestWriteRead_BIFF8_HeaderFooterRegions_1sheet;
|
||||
procedure TestWriteRead_BIFF8_HeaderFooterRegions_2sheets;
|
||||
procedure TestWriteRead_BIFF8_HeaderFooterRegions_3sheets;
|
||||
|
||||
procedure TestWriteRead_BIFF8_HeaderFooterSymbols_1sheet;
|
||||
procedure TestWriteRead_BIFF8_HeaderFooterSymbols_2sheets;
|
||||
procedure TestWriteRead_BIFF8_HeaderFooterSymbols_3sheets;
|
||||
|
||||
{ OOXML page layout tests }
|
||||
procedure TestWriteRead_OOXML_PageMargins_1sheet_0;
|
||||
procedure TestWriteRead_OOXML_PageMargins_1sheet_1;
|
||||
@ -159,6 +183,14 @@ type
|
||||
procedure TestWriteRead_OOXML_PageNumber_2sheets;
|
||||
procedure TestWriteRead_OOXML_PageNumber_3sheets;
|
||||
|
||||
procedure TestWriteRead_OOXML_HeaderFooterRegions_1sheet;
|
||||
procedure TestWriteRead_OOXML_HeaderFooterRegions_2sheets;
|
||||
procedure TestWriteRead_OOXML_HeaderFooterRegions_3sheets;
|
||||
|
||||
procedure TestWriteRead_OOXML_HeaderFooterSymbols_1sheet;
|
||||
procedure TestWriteRead_OOXML_HeaderFooterSymbols_2sheets;
|
||||
procedure TestWriteRead_OOXML_HeaderFooterSymbols_3sheets;
|
||||
|
||||
{ OpenDocument page layout tests }
|
||||
procedure TestWriteRead_ODS_PageMargins_1sheet_0;
|
||||
procedure TestWriteRead_ODS_PageMargins_1sheet_1;
|
||||
@ -197,6 +229,14 @@ type
|
||||
procedure TestWriteRead_ODS_PageNumber_2sheets;
|
||||
procedure TestWriteRead_ODS_PageNumber_3sheets;
|
||||
|
||||
procedure TestWriteRead_ODS_HeaderFooterRegions_1sheet;
|
||||
procedure TestWriteRead_ODS_HeaderFooterRegions_2sheets;
|
||||
procedure TestWriteRead_ODS_HeaderFooterRegions_3sheets;
|
||||
|
||||
procedure TestWriteRead_ODS_HeaderFooterSymbols_1sheet;
|
||||
procedure TestWriteRead_ODS_HeaderFooterSymbols_2sheets;
|
||||
procedure TestWriteRead_ODS_HeaderFooterSymbols_3sheets;
|
||||
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -314,6 +354,7 @@ end;
|
||||
3 - Scale n pages to width: sheet 1 n=2, sheet 2 n=3, sheet 3 n=1
|
||||
4 - Scale n pages to height: sheet 1 n=2, sheet 2 n=3, sheet 3 n=1
|
||||
5 - First page number: sheet 1 - 3, sheet 2 - automatic, sheet 3 - 1
|
||||
6 - Header/footer region test: sheet 1 - header only, sheet 2 - footer only, sheet 3 - both
|
||||
-------------------------------------------------------------------------------}
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_PageLayout(
|
||||
AFormat: TsSpreadsheetFormat; ANumSheets, ATestMode: Integer);
|
||||
@ -370,7 +411,7 @@ begin
|
||||
end;
|
||||
5: // Page number of first pge
|
||||
begin
|
||||
Options := Options + [poPrintHeaders, poUseStartPageNumber];
|
||||
Options := Options + [poUseStartPageNumber];
|
||||
case p of
|
||||
0: StartPageNumber := 3;
|
||||
1: Exclude(Options, poUseStartPageNumber);
|
||||
@ -378,6 +419,24 @@ begin
|
||||
end;
|
||||
Headers[HEADER_FOOTER_INDEX_ALL] := '&LPage &P of &N';
|
||||
end;
|
||||
6: // Header/footer region test
|
||||
case p of
|
||||
0: Headers[HEADER_FOOTER_INDEX_ALL] := '&LLeft header&CCenter header&RRight header';
|
||||
1: Footers[HEADER_FOOTER_INDEX_ALL] := '&LLeft foorer&CCenter footer&RRight footer';
|
||||
2: begin
|
||||
Headers[HEADER_FOOTER_INDEX_ALL] := '&LLeft header&CCenter header&RRight header';
|
||||
Footers[HEADER_FOOTER_INDEX_ALL] := '&LLeft foorer&CCenter footer&RRight footer';
|
||||
end;
|
||||
end;
|
||||
7: // Header/footer symbol test
|
||||
case p of
|
||||
0: Headers[HEADER_FOOTER_INDEX_ALL] := '&LPage &P / Page count &N&CDate &D - Time &T&RFile &Z&F';
|
||||
1: Footers[HEADER_FOOTER_INDEX_ALL] := '&LSheet "&A"&C100&&';
|
||||
2: begin
|
||||
Headers[HEADER_FOOTER_INDEX_ALL] := '&LPage &P of &N&C&D &T&R&Z&F';
|
||||
Footers[HEADER_FOOTER_INDEX_ALL] := '&LSheet "&A"&C100&&';
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -449,6 +508,13 @@ begin
|
||||
CheckEquals(sollPageLayout[p].StartPageNumber, actualPageLayout.StartPageNumber,
|
||||
'StartPageNumber value mismatch, sheet "' + MyWorksheet.Name + '"');
|
||||
end;
|
||||
6, 7: // Header/footer tests
|
||||
begin
|
||||
CheckEquals(sollPageLayout[p].Headers[1], actualPageLayout.Headers[1],
|
||||
'Header value mismatch, sheet "' + MyWorksheet.Name + '"');
|
||||
CheckEquals(sollPageLayout[p].Footers[1], actualPageLayout.Footers[1],
|
||||
'Footer value mismatch, sheet "' + MyWorksheet.Name + '"');
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -524,6 +590,38 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF2_HeaderFooterRegions_1sheet;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel2, 1, 6);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF2_HeaderFooterRegions_2sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel2, 2, 6);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF2_HeaderFooterRegions_3sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel2, 3, 6);
|
||||
end;
|
||||
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF2_HeaderFooterSymbols_1sheet;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel2, 1, 7);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF2_HeaderFooterSymbols_2sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel2, 2, 7);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF2_HeaderFooterSymbols_3sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel2, 3, 7);
|
||||
end;
|
||||
|
||||
|
||||
{ Tests for BIFF5 file format }
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF5_PageMargins_1sheet_0;
|
||||
@ -685,6 +783,38 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF5_HeaderFooterRegions_1sheet;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel5, 1, 6);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF5_HeaderFooterRegions_2sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel5, 2, 6);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF5_HeaderFooterRegions_3sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel5, 3, 6);
|
||||
end;
|
||||
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF5_HeaderFooterSymbols_1sheet;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel5, 1, 7);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF5_HeaderFooterSymbols_2sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel5, 2, 7);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF5_HeaderFooterSymbols_3sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel5, 3, 7);
|
||||
end;
|
||||
|
||||
|
||||
{ Tests for BIFF8 file format }
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF8_PageMargins_1sheet_0;
|
||||
@ -846,6 +976,38 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF8_HeaderFooterRegions_1sheet;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel8, 1, 6);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF8_HeaderFooterRegions_2sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel8, 2, 6);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF8_HeaderFooterRegions_3sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel8, 3, 6);
|
||||
end;
|
||||
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF8_HeaderFooterSymbols_1sheet;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel8, 1, 7);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF8_HeaderFooterSymbols_2sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel8, 2, 7);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_BIFF8_HeaderFooterSymbols_3sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfExcel8, 3, 7);
|
||||
end;
|
||||
|
||||
|
||||
{ Tests for OOXML file format }
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_PageMargins_1sheet_0;
|
||||
@ -1007,6 +1169,38 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_HeaderFooterRegions_1sheet;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOOXML, 1, 6);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_HeaderFooterRegions_2sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOOXML, 2, 6);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_HeaderFooterRegions_3sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOOXML, 3, 6);
|
||||
end;
|
||||
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_HeaderFooterSymbols_1sheet;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOOXML, 1, 7);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_HeaderFooterSymbols_2sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOOXML, 2, 7);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_OOXML_HeaderFooterSymbols_3sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOOXML, 3, 7);
|
||||
end;
|
||||
|
||||
|
||||
{ Tests for Open Document file format }
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_PageMargins_1sheet_0;
|
||||
@ -1168,6 +1362,38 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_HeaderFooterRegions_1sheet;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOpenDocument, 1, 6);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_HeaderFooterRegions_2sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOpenDocument, 2, 6);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_HeaderFooterRegions_3sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOpenDocument, 3, 6);
|
||||
end;
|
||||
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_HeaderFooterSymbols_1sheet;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOpenDocument, 1, 7);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_HeaderFooterSymbols_2sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOpenDocument, 2, 7);
|
||||
end;
|
||||
|
||||
procedure TSpreadWriteReadPageLayoutTests.TestWriteRead_ODS_HeaderFooterSymbols_3sheets;
|
||||
begin
|
||||
TestWriteRead_PageLayout(sfOpenDocument, 3, 7);
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
RegisterTest(TSpreadWriteReadPageLayoutTests);
|
||||
|
||||
|
Reference in New Issue
Block a user