1 /*
2 * Tests for the lib_xlsx_writer library.
3 *
4 * Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
5 *
6 */
7
8 #include "../ctest.h"
9 #include "../helper.h"
10
11 #include "../../../include/xlsxwriter/workbook.h"
12 #include "../../../include/xlsxwriter/shared_strings.h"
13
14 // Test assembling a complete Workbook file.
CTEST(workbook,workbook01)15 CTEST(workbook, workbook01) {
16
17 char* got;
18 char exp[] =
19 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
20 "<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">"
21 "<fileVersion appName=\"xl\" lastEdited=\"4\" lowestEdited=\"4\" rupBuild=\"4505\"/>"
22 "<workbookPr defaultThemeVersion=\"124226\"/>"
23 "<bookViews>"
24 "<workbookView xWindow=\"240\" yWindow=\"15\" windowWidth=\"16095\" windowHeight=\"9660\"/>"
25 "</bookViews>"
26 "<sheets>"
27 "<sheet name=\"Sheet1\" sheetId=\"1\" r:id=\"rId1\"/>"
28 "</sheets>"
29 "<calcPr calcId=\"124519\" fullCalcOnLoad=\"1\"/>"
30 "</workbook>";
31
32 FILE* testfile = lxw_tmpfile(NULL);
33
34 lxw_workbook *workbook = workbook_new(NULL);
35 workbook->file = testfile;
36
37 workbook_add_worksheet(workbook, NULL);
38
39 lxw_workbook_assemble_xml_file(workbook);
40
41 RUN_XLSX_STREQ_SHORT(exp, got);
42
43 lxw_workbook_free(workbook);
44 }
45
46 // Test assembling a complete Workbook file.
CTEST(workbook,workbook02)47 CTEST(workbook, workbook02) {
48
49 char* got;
50 char exp[] =
51 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
52 "<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">"
53 "<fileVersion appName=\"xl\" lastEdited=\"4\" lowestEdited=\"4\" rupBuild=\"4505\"/>"
54 "<workbookPr defaultThemeVersion=\"124226\"/>"
55 "<bookViews>"
56 "<workbookView xWindow=\"240\" yWindow=\"15\" windowWidth=\"16095\" windowHeight=\"9660\"/>"
57 "</bookViews>"
58 "<sheets>"
59 "<sheet name=\"Sheet1\" sheetId=\"1\" r:id=\"rId1\"/>"
60 "<sheet name=\"Sheet2\" sheetId=\"2\" r:id=\"rId2\"/>"
61 "</sheets>"
62 "<calcPr calcId=\"124519\" fullCalcOnLoad=\"1\"/>"
63 "</workbook>";
64
65 FILE* testfile = lxw_tmpfile(NULL);
66
67 lxw_workbook *workbook = workbook_new(NULL);
68 workbook->file = testfile;
69
70 workbook_add_worksheet(workbook, NULL);
71 workbook_add_worksheet(workbook, NULL);
72
73 lxw_workbook_assemble_xml_file(workbook);
74
75 RUN_XLSX_STREQ_SHORT(exp, got);
76
77 lxw_workbook_free(workbook);
78 }
79
80 // Test assembling a complete Workbook file.
CTEST(workbook,workbook03)81 CTEST(workbook, workbook03) {
82
83 char* got;
84 char exp[] =
85 "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
86 "<workbook xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\">"
87 "<fileVersion appName=\"xl\" lastEdited=\"4\" lowestEdited=\"4\" rupBuild=\"4505\"/>"
88 "<workbookPr defaultThemeVersion=\"124226\"/>"
89 "<bookViews>"
90 "<workbookView xWindow=\"240\" yWindow=\"15\" windowWidth=\"16095\" windowHeight=\"9660\"/>"
91 "</bookViews>"
92 "<sheets>"
93 "<sheet name=\"Non Default Name\" sheetId=\"1\" r:id=\"rId1\"/>"
94 "<sheet name=\"Another Name\" sheetId=\"2\" r:id=\"rId2\"/>"
95 "</sheets>"
96 "<calcPr calcId=\"124519\" fullCalcOnLoad=\"1\"/>"
97 "</workbook>";
98
99 FILE* testfile = lxw_tmpfile(NULL);
100
101 lxw_workbook *workbook = workbook_new(NULL);
102 workbook->file = testfile;
103
104 workbook_add_worksheet(workbook, "Non Default Name");
105 workbook_add_worksheet(workbook, "Another Name");
106
107 lxw_workbook_assemble_xml_file(workbook);
108
109 RUN_XLSX_STREQ_SHORT(exp, got);
110
111 lxw_workbook_free(workbook);
112 }
113