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