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/worksheet.h"
12
13 /* Test the _write_page_margins() method. */
CTEST(worksheet,write_page_margin01)14 CTEST(worksheet, write_page_margin01) {
15 char* got;
16 char exp[] = "<pageMargins left=\"0.7\" right=\"0.7\" top=\"0.75\" "
17 "bottom=\"0.75\" header=\"0.3\" footer=\"0.3\"/>";
18 FILE* testfile = lxw_tmpfile(NULL);
19
20 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
21 worksheet->file = testfile;
22
23 _worksheet_write_page_margins(worksheet);
24
25 RUN_XLSX_STREQ(exp, got);
26
27 lxw_worksheet_free(worksheet);
28 }
29
30 /* Test the _write_page_margins() method. */
CTEST(worksheet,write_page_margin02)31 CTEST(worksheet, write_page_margin02) {
32 char* got;
33 char exp[] = "<pageMargins left=\"0.7\" right=\"0.7\" top=\"0.75\" "
34 "bottom=\"0.75\" header=\"0.3\" footer=\"0.3\"/>";
35 FILE* testfile = lxw_tmpfile(NULL);
36
37 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
38 worksheet->file = testfile;
39
40 worksheet_set_margins(worksheet, -1, -1, -1, -1);
41 _worksheet_write_page_margins(worksheet);
42
43 RUN_XLSX_STREQ(exp, got);
44
45 lxw_worksheet_free(worksheet);
46 }
47
48 /* Test the _write_page_margins() method. */
CTEST(worksheet,write_page_margin03)49 CTEST(worksheet, write_page_margin03) {
50 char* got;
51 char exp[] = "<pageMargins left=\"0.8\" right=\"0.7\" top=\"0.75\" "
52 "bottom=\"0.75\" header=\"0.3\" footer=\"0.3\"/>";
53 FILE* testfile = lxw_tmpfile(NULL);
54
55 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
56 worksheet->file = testfile;
57
58 worksheet_set_margins(worksheet, 0.8, -1, -1, -1);
59 _worksheet_write_page_margins(worksheet);
60
61 RUN_XLSX_STREQ(exp, got);
62
63 lxw_worksheet_free(worksheet);
64 }
65
66 /* Test the _write_page_margins() method. */
CTEST(worksheet,write_page_margin04)67 CTEST(worksheet, write_page_margin04) {
68 char* got;
69 char exp[] = "<pageMargins left=\"0.7\" right=\"0.8\" top=\"0.75\" "
70 "bottom=\"0.75\" header=\"0.3\" footer=\"0.3\"/>";
71 FILE* testfile = lxw_tmpfile(NULL);
72
73 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
74 worksheet->file = testfile;
75
76 worksheet_set_margins(worksheet, -1, 0.8, -1, -1);
77 _worksheet_write_page_margins(worksheet);
78
79 RUN_XLSX_STREQ(exp, got);
80
81 lxw_worksheet_free(worksheet);
82 }
83
84 /* Test the _write_page_margins() method. */
CTEST(worksheet,write_page_margin05)85 CTEST(worksheet, write_page_margin05) {
86 char* got;
87 char exp[] = "<pageMargins left=\"0.7\" right=\"0.7\" top=\"0.8\" "
88 "bottom=\"0.75\" header=\"0.3\" footer=\"0.3\"/>";
89 FILE* testfile = lxw_tmpfile(NULL);
90
91 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
92 worksheet->file = testfile;
93
94 worksheet_set_margins(worksheet, -1, -1, 0.8, -1);
95 _worksheet_write_page_margins(worksheet);
96
97 RUN_XLSX_STREQ(exp, got);
98
99 lxw_worksheet_free(worksheet);
100 }
101
102 /* Test the _write_page_margins() method. */
CTEST(worksheet,write_page_margin06)103 CTEST(worksheet, write_page_margin06) {
104 char* got;
105 char exp[] = "<pageMargins left=\"0.7\" right=\"0.7\" top=\"0.75\" "
106 "bottom=\"0.8\" header=\"0.3\" footer=\"0.3\"/>";
107 FILE* testfile = lxw_tmpfile(NULL);
108
109 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
110 worksheet->file = testfile;
111
112 worksheet_set_margins(worksheet, -1, -1, -1, 0.8);
113 _worksheet_write_page_margins(worksheet);
114
115 RUN_XLSX_STREQ(exp, got);
116
117 lxw_worksheet_free(worksheet);
118 }
119
120 /* Test the _write_page_margins() method. */
CTEST(worksheet,write_page_margin07)121 CTEST(worksheet, write_page_margin07) {
122 char* got;
123 char exp[] = "<pageMargins left=\"0.7\" right=\"0.7\" top=\"0.75\" "
124 "bottom=\"0.75\" header=\"0.2\" footer=\"0.4\"/>";
125 FILE* testfile = lxw_tmpfile(NULL);
126 lxw_header_footer_options header_options = {.margin = 0.2};
127 lxw_header_footer_options footer_options = {.margin = 0.4};
128
129 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
130 worksheet->file = testfile;
131
132 worksheet_set_header_opt(worksheet, "", &header_options);
133 worksheet_set_footer_opt(worksheet, "", &footer_options);
134
135 _worksheet_write_page_margins(worksheet);
136
137 RUN_XLSX_STREQ(exp, got);
138
139 lxw_worksheet_free(worksheet);
140 }
141
142