Added support for headers and footers.

This commit is contained in:
John McNamara 2015-04-09 02:16:02 +01:00
parent dcd2f60189
commit 0bc6eeb66a
8 changed files with 605 additions and 1 deletions

View file

@ -0,0 +1,108 @@
/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "xlsxwriter/worksheet.h"
// Test the header and footer functions.
CTEST(worksheet, write_odd_header) {
char* got;
char exp[] = "<oddHeader>Page &amp;P of &amp;N</oddHeader>";
FILE* testfile = tmpfile();
lxw_worksheet *worksheet = _new_worksheet(NULL);
worksheet->file = testfile;
worksheet_set_header(worksheet, "Page &P of &N");
_worksheet_write_odd_header(worksheet);
RUN_XLSX_STREQ(exp, got);
_free_worksheet(worksheet);
}
// Test the header and footer functions.
CTEST(worksheet, write_odd_footer) {
char* got;
char exp[] = "<oddFooter>&amp;F</oddFooter>";
FILE* testfile = tmpfile();
lxw_worksheet *worksheet = _new_worksheet(NULL);
worksheet->file = testfile;
worksheet_set_footer(worksheet, "&F");
_worksheet_write_odd_footer(worksheet);
RUN_XLSX_STREQ(exp, got);
_free_worksheet(worksheet);
}
// Test the header and footer functions.
CTEST(worksheet, _worksheet_write_header_footer1) {
char* got;
char exp[] = "<headerFooter><oddHeader>Page &amp;P of &amp;N</oddHeader></headerFooter>";
FILE* testfile = tmpfile();
lxw_worksheet *worksheet = _new_worksheet(NULL);
worksheet->file = testfile;
worksheet_set_header(worksheet, "Page &P of &N");
_worksheet_write_header_footer(worksheet);
RUN_XLSX_STREQ(exp, got);
_free_worksheet(worksheet);
}
// Test the header and footer functions.
CTEST(worksheet, _worksheet_write_header_footer2) {
char* got;
char exp[] = "<headerFooter><oddFooter>&amp;F</oddFooter></headerFooter>";
FILE* testfile = tmpfile();
lxw_worksheet *worksheet = _new_worksheet(NULL);
worksheet->file = testfile;
worksheet_set_footer(worksheet, "&F");
_worksheet_write_header_footer(worksheet);
RUN_XLSX_STREQ(exp, got);
_free_worksheet(worksheet);
}
// Test the header and footer functions.
CTEST(worksheet, _worksheet_write_header_footer3) {
char* got;
char exp[] = "<headerFooter><oddHeader>Page &amp;P of &amp;N</oddHeader><oddFooter>&amp;F</oddFooter></headerFooter>";
FILE* testfile = tmpfile();
lxw_worksheet *worksheet = _new_worksheet(NULL);
worksheet->file = testfile;
worksheet_set_header(worksheet, "Page &P of &N");
worksheet_set_footer(worksheet, "&F");
_worksheet_write_header_footer(worksheet);
RUN_XLSX_STREQ(exp, got);
_free_worksheet(worksheet);
}

View file

@ -116,3 +116,26 @@ CTEST(worksheet, write_page_margin06) {
_free_worksheet(worksheet);
}
/* Test the _write_page_margins() method. */
CTEST(worksheet, write_page_margin07) {
char* got;
char exp[] = "<pageMargins left=\"0.7\" right=\"0.7\" top=\"0.75\" "
"bottom=\"0.75\" header=\"0.2\" footer=\"0.4\"/>";
FILE* testfile = tmpfile();
lxw_header_footer_options header_options = {0.2};
lxw_header_footer_options footer_options = {0.4};
lxw_worksheet *worksheet = _new_worksheet(NULL);
worksheet->file = testfile;
worksheet_set_header_opt(worksheet, "", &header_options);
worksheet_set_footer_opt(worksheet, "", &footer_options);
_worksheet_write_page_margins(worksheet);
RUN_XLSX_STREQ(exp, got);
_free_worksheet(worksheet);
}