初始化PHP-Xlswrite扩展

This commit is contained in:
ykxiao
2024-03-05 10:01:08 +08:00
commit 879cf9584d
2483 changed files with 1054962 additions and 0 deletions

View File

@ -0,0 +1,15 @@
/*
* Test runner for xmlwriter using ctest.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#define CTEST_MAIN
#include "../ctest.h"
int main(int argc, const char *argv[])
{
return ctest_main(argc, argv);
}

View File

@ -0,0 +1,112 @@
/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
#include "../../../include/xlsxwriter/shared_strings.h"
// Test assembling a complete Workbook file.
CTEST(workbook, workbook01) {
char* got;
char exp[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
"<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">"
"<fileVersion appName=\"xl\" lastEdited=\"4\" lowestEdited=\"4\" rupBuild=\"4505\"/>"
"<workbookPr defaultThemeVersion=\"124226\"/>"
"<bookViews>"
"<workbookView xWindow=\"240\" yWindow=\"15\" windowWidth=\"16095\" windowHeight=\"9660\"/>"
"</bookViews>"
"<sheets>"
"<sheet name=\"Sheet1\" sheetId=\"1\" r:id=\"rId1\"/>"
"</sheets>"
"<calcPr calcId=\"124519\" fullCalcOnLoad=\"1\"/>"
"</workbook>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
workbook_add_worksheet(workbook, NULL);
lxw_workbook_assemble_xml_file(workbook);
RUN_XLSX_STREQ_SHORT(exp, got);
lxw_workbook_free(workbook);
}
// Test assembling a complete Workbook file.
CTEST(workbook, workbook02) {
char* got;
char exp[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
"<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">"
"<fileVersion appName=\"xl\" lastEdited=\"4\" lowestEdited=\"4\" rupBuild=\"4505\"/>"
"<workbookPr defaultThemeVersion=\"124226\"/>"
"<bookViews>"
"<workbookView xWindow=\"240\" yWindow=\"15\" windowWidth=\"16095\" windowHeight=\"9660\"/>"
"</bookViews>"
"<sheets>"
"<sheet name=\"Sheet1\" sheetId=\"1\" r:id=\"rId1\"/>"
"<sheet name=\"Sheet2\" sheetId=\"2\" r:id=\"rId2\"/>"
"</sheets>"
"<calcPr calcId=\"124519\" fullCalcOnLoad=\"1\"/>"
"</workbook>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
workbook_add_worksheet(workbook, NULL);
workbook_add_worksheet(workbook, NULL);
lxw_workbook_assemble_xml_file(workbook);
RUN_XLSX_STREQ_SHORT(exp, got);
lxw_workbook_free(workbook);
}
// Test assembling a complete Workbook file.
CTEST(workbook, workbook03) {
char* got;
char exp[] =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
"<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">"
"<fileVersion appName=\"xl\" lastEdited=\"4\" lowestEdited=\"4\" rupBuild=\"4505\"/>"
"<workbookPr defaultThemeVersion=\"124226\"/>"
"<bookViews>"
"<workbookView xWindow=\"240\" yWindow=\"15\" windowWidth=\"16095\" windowHeight=\"9660\"/>"
"</bookViews>"
"<sheets>"
"<sheet name=\"Non Default Name\" sheetId=\"1\" r:id=\"rId1\"/>"
"<sheet name=\"Another Name\" sheetId=\"2\" r:id=\"rId2\"/>"
"</sheets>"
"<calcPr calcId=\"124519\" fullCalcOnLoad=\"1\"/>"
"</workbook>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
workbook_add_worksheet(workbook, "Non Default Name");
workbook_add_worksheet(workbook, "Another Name");
lxw_workbook_assemble_xml_file(workbook);
RUN_XLSX_STREQ_SHORT(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,75 @@
/*
* Tests for the libxlsxwriter library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
#include "../../../include/xlsxwriter/shared_strings.h"
/* Test finding a worksheet that does exist (implicit naming). */
CTEST(workbook, get_worksheet_by_name01) {
lxw_workbook *workbook = workbook_new(NULL);
lxw_worksheet *exp = workbook_add_worksheet(workbook, NULL);
lxw_worksheet *got = workbook_get_worksheet_by_name(workbook, "Sheet1");
ASSERT_TRUE(got == exp);
lxw_workbook_free(workbook);
}
/* Test finding a worksheet that does exist (explicit naming). */
CTEST(workbook, get_worksheet_by_name02) {
lxw_workbook *workbook = workbook_new(NULL);
lxw_worksheet *exp = workbook_add_worksheet(workbook, "FOO");
lxw_worksheet *got = workbook_get_worksheet_by_name(workbook, "FOO");
ASSERT_TRUE(got == exp);
lxw_workbook_free(workbook);
}
/* Test finding a worksheet that doesn't exist. */
CTEST(workbook, get_worksheet_by_name03) {
lxw_workbook *workbook = workbook_new(NULL);
workbook_add_worksheet(workbook, NULL);
lxw_worksheet *got = workbook_get_worksheet_by_name(workbook, "FOO");
ASSERT_TRUE(got == NULL);
lxw_workbook_free(workbook);
}
/* Test finding a worksheet when no worksheets exist. */
CTEST(workbook, get_worksheet_by_name04) {
lxw_workbook *workbook = workbook_new(NULL);
lxw_worksheet *got = workbook_get_worksheet_by_name(workbook, "FOO");
ASSERT_TRUE(got == NULL);
lxw_workbook_free(workbook);
}
/* Test finding a worksheet with a NULL name. */
CTEST(workbook, get_worksheet_by_name05) {
lxw_workbook *workbook = workbook_new(NULL);
workbook_add_worksheet(workbook, NULL);
lxw_worksheet *got = workbook_get_worksheet_by_name(workbook, NULL);
ASSERT_TRUE(got == NULL);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,146 @@
/*
* Tests for the libxlsxwriter library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
#include "../../../include/xlsxwriter/shared_strings.h"
/* Test a valid sheet name. */
CTEST(workbook, validate_worksheet_name01) {
const char* sheetname = "123456789_123456789_123456789_1";
lxw_workbook *workbook = workbook_new(NULL);
lxw_error exp = LXW_NO_ERROR;
lxw_error got = workbook_validate_sheet_name(workbook, sheetname);
ASSERT_EQUAL(exp, got);
lxw_workbook_free(workbook);
}
/* Test a sheet name that is too long. */
CTEST(workbook, validate_worksheet_name02) {
const char* sheetname = "123456789_123456789_123456789_12";
lxw_workbook *workbook = workbook_new(NULL);
lxw_error exp = LXW_ERROR_SHEETNAME_LENGTH_EXCEEDED;
lxw_error got = workbook_validate_sheet_name(workbook, sheetname);
ASSERT_EQUAL(exp, got);
lxw_workbook_free(workbook);
}
/* Test a sheet name contains invalid characters. */
CTEST(workbook, validate_worksheet_name03) {
const char* sheetname = "Sheet[1]";
lxw_workbook *workbook = workbook_new(NULL);
lxw_error exp = LXW_ERROR_INVALID_SHEETNAME_CHARACTER;
lxw_error got = workbook_validate_sheet_name(workbook, sheetname);
ASSERT_EQUAL(exp, got);
lxw_workbook_free(workbook);
}
/* Test a sheet name that already exists. */
CTEST(workbook, validate_worksheet_name04) {
const char* sheetname = "Sheet1";
lxw_workbook *workbook = workbook_new(NULL);
workbook_add_worksheet(workbook, sheetname);
lxw_error exp = LXW_ERROR_SHEETNAME_ALREADY_USED;
lxw_error got = workbook_validate_sheet_name(workbook, sheetname);
ASSERT_EQUAL(exp, got);
lxw_workbook_free(workbook);
}
/* Test a sheet name that starts with an apostrophe. */
CTEST(workbook, validate_worksheet_name05) {
const char* sheetname = "'Sheet1";
lxw_workbook *workbook = workbook_new(NULL);
lxw_error exp = LXW_ERROR_SHEETNAME_START_END_APOSTROPHE;
lxw_error got = workbook_validate_sheet_name(workbook, sheetname);
ASSERT_EQUAL(exp, got);
lxw_workbook_free(workbook);
}
/* Test a sheet name that ends with an apostrophe. */
CTEST(workbook, validate_worksheet_name06) {
const char* sheetname = "Sheet1'";
lxw_workbook *workbook = workbook_new(NULL);
lxw_error exp = LXW_ERROR_SHEETNAME_START_END_APOSTROPHE;
lxw_error got = workbook_validate_sheet_name(workbook, sheetname);
ASSERT_EQUAL(exp, got);
lxw_workbook_free(workbook);
}
/* Test a sheet name that already exists, case insensitive. */
CTEST(workbook, validate_worksheet_name07) {
const char* sheetname = "Sheet1";
lxw_workbook *workbook = workbook_new(NULL);
workbook_add_worksheet(workbook, sheetname);
lxw_error exp = LXW_ERROR_SHEETNAME_ALREADY_USED;
lxw_error got = workbook_validate_sheet_name(workbook, "sheet1");
ASSERT_EQUAL(exp, got);
lxw_workbook_free(workbook);
}
/* Test a sheet name that already exists, case insensitive. */
CTEST(workbook, validate_worksheet_name08) {
const char* sheetname = "Café";
lxw_workbook *workbook = workbook_new(NULL);
workbook_add_worksheet(workbook, sheetname);
lxw_error exp = LXW_ERROR_SHEETNAME_ALREADY_USED;
lxw_error got = workbook_validate_sheet_name(workbook, "café");
ASSERT_EQUAL(exp, got);
lxw_workbook_free(workbook);
}
/* Test a sheet name that already exists, case insensitive. */
CTEST(workbook, validate_worksheet_name09) {
const char* sheetname = "abcde";
lxw_workbook *workbook = workbook_new(NULL);
workbook_add_worksheet(workbook, sheetname);
lxw_error exp = LXW_ERROR_SHEETNAME_ALREADY_USED;
lxw_error got = workbook_validate_sheet_name(workbook, "ABCDE");
ASSERT_EQUAL(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,30 @@
/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
// Test the _write_book_views() function.
CTEST(workbook, write_book_views) {
char* got;
char exp[] = "<bookViews><workbookView xWindow=\"240\" yWindow=\"15\" windowWidth=\"16095\" windowHeight=\"9660\"/></bookViews>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
_write_book_views(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,30 @@
/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
// Test the _write_calc_pr() function.
CTEST(workbook, write_calc_pr) {
char* got;
char exp[] = "<calcPr calcId=\"124519\" fullCalcOnLoad=\"1\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
_write_calc_pr(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,30 @@
/*
* Tests for the libxlsxwriter library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
/* Test the _write_defined_name() method. */
CTEST(workbook, write_defined_name) {
char* got;
char exp[] = "<definedName name=\"_xlnm.Print_Titles\" localSheetId=\"0\">Sheet1!$1:$1</definedName>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_defined_name defined_name = {0, 0, "_xlnm.Print_Titles", "", "Sheet1!$1:$1", "", "", {NULL, NULL}};
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
_write_defined_name(workbook, &defined_name);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,66 @@
/*
* Tests for the libxlsxwriter library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
/* Test the _write_defined_names() method. */
CTEST(workbook, write_defined_names) {
char* got;
char exp[] = "<definedNames><definedName name=\"_xlnm.Print_Titles\" localSheetId=\"0\">Sheet1!$1:$1</definedName></definedNames>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
workbook_add_worksheet(workbook, NULL);
_store_defined_name(workbook, "_xlnm.Print_Titles", "", "Sheet1!$1:$1", 0, 0);
_write_defined_names(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}
/* Test the _write_defined_name() method. */
CTEST(workbook, write_defined_names_sorted) {
char* got;
char exp[] = "<definedNames><definedName name=\"_Egg\">Sheet1!$A$1</definedName><definedName name=\"_Fog\">Sheet1!$A$1</definedName><definedName name=\"aaa\" localSheetId=\"1\">Sheet2!$A$1</definedName><definedName name=\"Abc\">Sheet1!$A$1</definedName><definedName name=\"Bar\" localSheetId=\"2\">'Sheet 3'!$A$1</definedName><definedName name=\"Bar\" localSheetId=\"0\">Sheet1!$A$1</definedName><definedName name=\"Bar\" localSheetId=\"1\">Sheet2!$A$1</definedName><definedName name=\"Baz\">0.98</definedName><definedName name=\"car\" localSheetId=\"2\">\"Saab 900\"</definedName></definedNames>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
workbook_add_worksheet(workbook, NULL);
workbook_add_worksheet(workbook, NULL);
workbook_add_worksheet(workbook, "Sheet 3");
workbook_define_name(workbook, "'Sheet 3'!Bar", "='Sheet 3'!$A$1");
workbook_define_name(workbook, "Abc", "=Sheet1!$A$1" );
workbook_define_name(workbook, "Baz", "=0.98" );
workbook_define_name(workbook, "Sheet1!Bar", "=Sheet1!$A$1" );
workbook_define_name(workbook, "Sheet2!Bar", "=Sheet2!$A$1" );
workbook_define_name(workbook, "Sheet2!aaa", "=Sheet2!$A$1" );
workbook_define_name(workbook, "'Sheet 3'!car", "=\"Saab 900\"" );
workbook_define_name(workbook, "_Egg", "=Sheet1!$A$1" );
workbook_define_name(workbook, "_Fog", "=Sheet1!$A$1" );
_write_defined_names(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,29 @@
/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
// Test the _write_file_version() function.
CTEST(workbook, write_file_version) {
char* got;
char exp[] = "<fileVersion appName=\"xl\" lastEdited=\"4\" lowestEdited=\"4\" rupBuild=\"4505\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
_write_file_version(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,66 @@
/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
// Test the _write_sheet() function.
CTEST(workbook, write_sheet1) {
char* got;
char exp[] = "<sheet name=\"Sheet1\" sheetId=\"1\" r:id=\"rId1\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
_write_sheet(workbook, "Sheet1", 1, 0);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}
// Test the _write_sheet() function.
CTEST(workbook, write_sheet2) {
char* got;
char exp[] = "<sheet name=\"Sheet1\" sheetId=\"1\" state=\"hidden\" r:id=\"rId1\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
_write_sheet(workbook, "Sheet1", 1, 1);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}
// Test the _write_sheet() function.
CTEST(workbook, write_sheet3) {
char* got;
char exp[] = "<sheet name=\"Bits &amp; Bobs\" sheetId=\"1\" r:id=\"rId1\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
_write_sheet(workbook, "Bits & Bobs", 1, 0);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,32 @@
/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
// Test the _write_sheets() function.
CTEST(workbook, write_sheets) {
char* got;
char exp[] = "<sheets><sheet name=\"Sheet1\" sheetId=\"1\" r:id=\"rId1\"/></sheets>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
workbook_add_worksheet(workbook, NULL);
_write_sheets(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,29 @@
/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
// Test the _write_workbook() function.
CTEST(workbook, write_workbook) {
char* got;
char exp[] = "<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
_write_workbook(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,29 @@
/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
// Test the _write_workbook_pr() function.
CTEST(workbook, write_workbook_pr) {
char* got;
char exp[] = "<workbookPr defaultThemeVersion=\"124226\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
_write_workbook_pr(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,70 @@
/*
* Tests for the lib_xlsx_writer library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
// Test the _write_workbook_view() function.
CTEST(workbook, write_workbook_view1) {
char* got;
char exp[] = "<workbookView xWindow=\"240\" yWindow=\"15\" windowWidth=\"16095\" windowHeight=\"9660\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
_write_workbook_view(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}
// Test the _write_workbook_view() function.
CTEST(workbook, write_workbook_view2) {
char* got;
char exp[] = "<workbookView xWindow=\"240\" yWindow=\"15\" windowWidth=\"16095\" windowHeight=\"9660\" activeTab=\"1\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
workbook->active_sheet = 1;
_write_workbook_view(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}
// Test the _write_workbook_view() function.
CTEST(workbook, write_workbook_view3) {
char* got;
char exp[] = "<workbookView xWindow=\"240\" yWindow=\"15\" windowWidth=\"16095\" windowHeight=\"9660\" firstSheet=\"2\" activeTab=\"1\"/>";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
workbook->active_sheet = 1;
workbook->first_sheet = 2;
_write_workbook_view(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}

View File

@ -0,0 +1,28 @@
/*
* Tests for the libxlsxwriter library.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "../ctest.h"
#include "../helper.h"
#include "../../../include/xlsxwriter/workbook.h"
// Test _xml_declaration().
CTEST(workbook, xml_declaration) {
char* got;
char exp[] = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n";
FILE* testfile = lxw_tmpfile(NULL);
lxw_workbook *workbook = workbook_new(NULL);
workbook->file = testfile;
_workbook_xml_declaration(workbook);
RUN_XLSX_STREQ(exp, got);
lxw_workbook_free(workbook);
}