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 /* 1. Test the _write_sheet_views() method with split panes. */
CTEST(worksheet,write_split_panes_opt01)14 CTEST(worksheet, write_split_panes_opt01) {
15 char* got;
16 char exp[] = "<sheetViews><sheetView tabSelected=\"1\" workbookViewId=\"0\"><pane ySplit=\"600\" topLeftCell=\"A2\"/><selection pane=\"bottomLeft\" activeCell=\"A2\" sqref=\"A2\"/></sheetView></sheetViews>";
17 FILE* testfile = lxw_tmpfile(NULL);
18
19 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
20 worksheet->file = testfile;
21
22 worksheet_select(worksheet);
23 worksheet_split_panes_opt(worksheet, 15, 0, 1, 0);
24 _worksheet_write_sheet_views(worksheet);
25
26 RUN_XLSX_STREQ(exp, got);
27
28 lxw_worksheet_free(worksheet);
29 }
30
31
32 /* 2. Test the _write_sheet_views() method with split panes. */
CTEST(worksheet,write_split_panes_opt02)33 CTEST(worksheet, write_split_panes_opt02) {
34 char* got;
35 char exp[] = "<sheetViews><sheetView tabSelected=\"1\" workbookViewId=\"0\"><pane ySplit=\"900\" topLeftCell=\"A3\"/><selection pane=\"bottomLeft\" activeCell=\"A3\" sqref=\"A3\"/></sheetView></sheetViews>";
36 FILE* testfile = lxw_tmpfile(NULL);
37
38 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
39 worksheet->file = testfile;
40
41 worksheet_select(worksheet);
42 worksheet_split_panes_opt(worksheet, 30, 0, 2, 0);
43 _worksheet_write_sheet_views(worksheet);
44
45 RUN_XLSX_STREQ(exp, got);
46
47 lxw_worksheet_free(worksheet);
48 }
49
50
51 /* 3. Test the _write_sheet_views() method with split panes. */
CTEST(worksheet,write_split_panes_opt03)52 CTEST(worksheet, write_split_panes_opt03) {
53 char* got;
54 char exp[] = "<sheetViews><sheetView tabSelected=\"1\" workbookViewId=\"0\"><pane ySplit=\"2400\" topLeftCell=\"A8\"/><selection pane=\"bottomLeft\" activeCell=\"A8\" sqref=\"A8\"/></sheetView></sheetViews>";
55 FILE* testfile = lxw_tmpfile(NULL);
56
57 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
58 worksheet->file = testfile;
59
60 worksheet_select(worksheet);
61 worksheet_split_panes_opt(worksheet, 105, 0, 7, 0);
62 _worksheet_write_sheet_views(worksheet);
63
64 RUN_XLSX_STREQ(exp, got);
65
66 lxw_worksheet_free(worksheet);
67 }
68
69
70 /* 4. Test the _write_sheet_views() method with split panes. */
CTEST(worksheet,write_split_panes_opt04)71 CTEST(worksheet, write_split_panes_opt04) {
72 char* got;
73 char exp[] = "<sheetViews><sheetView tabSelected=\"1\" workbookViewId=\"0\"><pane xSplit=\"1350\" topLeftCell=\"B1\"/><selection pane=\"topRight\" activeCell=\"B1\" sqref=\"B1\"/></sheetView></sheetViews>";
74 FILE* testfile = lxw_tmpfile(NULL);
75
76 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
77 worksheet->file = testfile;
78
79 worksheet_select(worksheet);
80 worksheet_split_panes_opt(worksheet, 0, 8.43, 0, 1);
81 _worksheet_write_sheet_views(worksheet);
82
83 RUN_XLSX_STREQ(exp, got);
84
85 lxw_worksheet_free(worksheet);
86 }
87
88
89 /* 5. Test the _write_sheet_views() method with split panes. */
CTEST(worksheet,write_split_panes_opt05)90 CTEST(worksheet, write_split_panes_opt05) {
91 char* got;
92 char exp[] = "<sheetViews><sheetView tabSelected=\"1\" workbookViewId=\"0\"><pane xSplit=\"2310\" topLeftCell=\"C1\"/><selection pane=\"topRight\" activeCell=\"C1\" sqref=\"C1\"/></sheetView></sheetViews>";
93 FILE* testfile = lxw_tmpfile(NULL);
94
95 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
96 worksheet->file = testfile;
97
98 worksheet_select(worksheet);
99 worksheet_split_panes_opt(worksheet, 0, 17.57, 0, 2);
100 _worksheet_write_sheet_views(worksheet);
101
102 RUN_XLSX_STREQ(exp, got);
103
104 lxw_worksheet_free(worksheet);
105 }
106
107
108 /* 6. Test the _write_sheet_views() method with split panes. */
CTEST(worksheet,write_split_panes_opt06)109 CTEST(worksheet, write_split_panes_opt06) {
110 char* got;
111 char exp[] = "<sheetViews><sheetView tabSelected=\"1\" workbookViewId=\"0\"><pane xSplit=\"5190\" topLeftCell=\"F1\"/><selection pane=\"topRight\" activeCell=\"F1\" sqref=\"F1\"/></sheetView></sheetViews>";
112 FILE* testfile = lxw_tmpfile(NULL);
113
114 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
115 worksheet->file = testfile;
116
117 worksheet_select(worksheet);
118 worksheet_split_panes_opt(worksheet, 0, 45, 0, 5);
119 _worksheet_write_sheet_views(worksheet);
120
121 RUN_XLSX_STREQ(exp, got);
122
123 lxw_worksheet_free(worksheet);
124 }
125
126
127 /* 7. Test the _write_sheet_views() method with split panes. */
CTEST(worksheet,write_split_panes_opt07)128 CTEST(worksheet, write_split_panes_opt07) {
129 char* got;
130 char exp[] = "<sheetViews><sheetView tabSelected=\"1\" workbookViewId=\"0\"><pane xSplit=\"1350\" ySplit=\"600\" topLeftCell=\"B2\"/><selection pane=\"topRight\" activeCell=\"B1\" sqref=\"B1\"/><selection pane=\"bottomLeft\" activeCell=\"A2\" sqref=\"A2\"/><selection pane=\"bottomRight\" activeCell=\"B2\" sqref=\"B2\"/></sheetView></sheetViews>";
131 FILE* testfile = lxw_tmpfile(NULL);
132
133 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
134 worksheet->file = testfile;
135
136 worksheet_select(worksheet);
137 worksheet_split_panes_opt(worksheet, 15, 8.43, 1, 1);
138 _worksheet_write_sheet_views(worksheet);
139
140 RUN_XLSX_STREQ(exp, got);
141
142 lxw_worksheet_free(worksheet);
143 }
144
145
146 /* 8. Test the _write_sheet_views() method with split panes. */
CTEST(worksheet,write_split_panes_opt08)147 CTEST(worksheet, write_split_panes_opt08) {
148 char* got;
149 char exp[] = "<sheetViews><sheetView tabSelected=\"1\" workbookViewId=\"0\"><pane xSplit=\"6150\" ySplit=\"1200\" topLeftCell=\"G4\"/><selection pane=\"topRight\" activeCell=\"G1\" sqref=\"G1\"/><selection pane=\"bottomLeft\" activeCell=\"A4\" sqref=\"A4\"/><selection pane=\"bottomRight\" activeCell=\"G4\" sqref=\"G4\"/></sheetView></sheetViews>";
150 FILE* testfile = lxw_tmpfile(NULL);
151
152 lxw_worksheet *worksheet = lxw_worksheet_new(NULL);
153 worksheet->file = testfile;
154
155 worksheet_select(worksheet);
156 worksheet_split_panes_opt(worksheet, 45, 54.14, 3, 6);
157 _worksheet_write_sheet_views(worksheet);
158
159 RUN_XLSX_STREQ(exp, got);
160
161 lxw_worksheet_free(worksheet);
162 }
163