@@ -37,25 +37,23 @@ func TestNewAndSave(t *testing.T) {
3737
3838 pdf_new , err := New ()
3939 if err != nil {
40- t .Errorf ("New(): %v" , err )
40+ t .Fatalf ("New(): %v" , err )
41+ }
42+ defer pdf_new .Close ()
43+ err = pdf_new .SaveAs (pdf_new_filename )
44+ if err != nil {
45+ t .Errorf ("SaveAs(%s): %v" , pdf_new_filename , err )
4146 } else {
42- err = pdf_new . SaveAs (pdf_new_filename )
47+ pdf_empty , err := Open (pdf_new_filename )
4348 if err != nil {
44- t .Errorf ("SaveAs(%s): %v" , pdf_new_filename , err )
45- } else {
46- pdf_empty , err := Open (pdf_new_filename )
47- if err != nil {
48- t .Errorf ("Open(%s): %v" , pdf_new_filename , err )
49- } else {
50- err = pdf_empty .Save ()
51- if err != nil {
52- t .Errorf ("Save(%s): %v" , pdf_new_filename , err )
53- }
54- }
55- defer pdf_empty .Close ()
49+ t .Fatalf ("Open(%s): %v" , pdf_new_filename , err )
50+ }
51+ defer pdf_empty .Close ()
52+ err = pdf_empty .Save ()
53+ if err != nil {
54+ t .Errorf ("Save(%s): %v" , pdf_new_filename , err )
5655 }
5756 }
58- defer pdf_new .Close ()
5957
6058 // Check file size != 0
6159 fi , err := os .Stat (pdf_new_filename )
@@ -69,7 +67,7 @@ func TestMergeDocuments(t *testing.T) {
6967 // Create the first PDF-document
7068 pdf1 , err := New ()
7169 if err != nil {
72- t .Errorf ("New(): %v" , err )
70+ t .Fatalf ("New(): %v" , err )
7371 }
7472 defer pdf1 .Close ()
7573
@@ -79,7 +77,7 @@ func TestMergeDocuments(t *testing.T) {
7977 // Create the second PDF-document
8078 pdf2 , err := New ()
8179 if err != nil {
82- t .Errorf ("New(): %v" , err )
80+ t .Fatalf ("New(): %v" , err )
8381 }
8482 defer pdf2 .Close ()
8583
@@ -89,7 +87,7 @@ func TestMergeDocuments(t *testing.T) {
8987 // Create the third PDF-document
9088 pdf3 , err := New ()
9189 if err != nil {
92- t .Errorf ("New(): %v" , err )
90+ t .Fatalf ("New(): %v" , err )
9391 }
9492 defer pdf3 .Close ()
9593
@@ -101,7 +99,7 @@ func TestMergeDocuments(t *testing.T) {
10199 // Merge all three documents
102100 mergedDoc , err := MergeDocuments ([]* Document {pdf1 , pdf2 , pdf3 })
103101 if err != nil {
104- t .Errorf ("MergeDocuments(): %v" , err )
102+ t .Fatalf ("MergeDocuments(): %v" , err )
105103 }
106104 defer mergedDoc .Close ()
107105
@@ -117,7 +115,7 @@ func TestSplitDocument(t *testing.T) {
117115 // Create a PDF-document with 4 pages
118116 pdf , err := New ()
119117 if err != nil {
120- t .Errorf ("New(): %v" , err )
118+ t .Fatalf ("New(): %v" , err )
121119 }
122120 defer pdf .Close ()
123121
@@ -128,7 +126,7 @@ func TestSplitDocument(t *testing.T) {
128126 // Split the PDF-document into 3 parts: pages 1-2, page 3, pages 4 to end
129127 pdfs , err := SplitDocument (pdf , "1-2;3;4-" )
130128 if err != nil {
131- t .Errorf ("SplitDocument(): %v" , err )
129+ t .Fatalf ("SplitDocument(): %v" , err )
132130 }
133131
134132 if len (pdfs ) != 3 {
@@ -157,7 +155,7 @@ func TestSplit(t *testing.T) {
157155 // Create a PDF-document with 4 pages
158156 pdf , err := New ()
159157 if err != nil {
160- t .Errorf ("New(): %v" , err )
158+ t .Fatalf ("New(): %v" , err )
161159 }
162160 defer pdf .Close ()
163161
@@ -168,7 +166,7 @@ func TestSplit(t *testing.T) {
168166 // Split the PDF-document into 3 parts: pages 1-2, page 3, pages 4 to end
169167 pdfs , err := pdf .Split ("1-2;3;4-" )
170168 if err != nil {
171- t .Errorf ("Split(): %v" , err )
169+ t .Fatalf ("Split(): %v" , err )
172170 }
173171
174172 if len (pdfs ) != 3 {
@@ -197,7 +195,7 @@ func TestSplitAtPage(t *testing.T) {
197195 // Create a PDF-document with 4 pages
198196 pdf , err := New ()
199197 if err != nil {
200- t .Errorf ("New(): %v" , err )
198+ t .Fatalf ("New(): %v" , err )
201199 }
202200 defer pdf .Close ()
203201
@@ -208,7 +206,7 @@ func TestSplitAtPage(t *testing.T) {
208206 // Split the PDF-document into two parts: first 2 pages, and remaining pages
209207 left , right , err := SplitAtPage (pdf , 2 )
210208 if err != nil {
211- t .Errorf ("SplitAtPage(): %v" , err )
209+ t .Fatalf ("SplitAtPage(): %v" , err )
212210 }
213211
214212 // Defer closing both PDF-documents
@@ -227,7 +225,7 @@ func TestSplitAt(t *testing.T) {
227225 // Create a PDF-document with 4 pages
228226 pdf , err := New ()
229227 if err != nil {
230- t .Errorf ("New(): %v" , err )
228+ t .Fatalf ("New(): %v" , err )
231229 }
232230 defer pdf .Close ()
233231
@@ -238,7 +236,7 @@ func TestSplitAt(t *testing.T) {
238236 // Use the SplitAt method to split the document into two parts at page 2
239237 left , right , err := pdf .SplitAt (2 )
240238 if err != nil {
241- t .Errorf ("SplitAt(): %v" , err )
239+ t .Fatalf ("SplitAt(): %v" , err )
242240 }
243241
244242 // Defer closing both resulting documents
@@ -254,8 +252,11 @@ func TestSplitAt(t *testing.T) {
254252}
255253
256254func TestPages (t * testing.T ) {
257-
258- pdf , _ := New ()
255+ // Create a PDF-document with 4 pages
256+ pdf , err := New ()
257+ if err != nil {
258+ t .Fatalf ("New(): %v" , err )
259+ }
259260 defer pdf .Close ()
260261
261262 // Add page
@@ -273,8 +274,11 @@ func TestPages(t *testing.T) {
273274}
274275
275276func TestStats (t * testing.T ) {
276-
277- pdf , _ := New ()
277+ // Create a PDF-document with 4 pages
278+ pdf , err := New ()
279+ if err != nil {
280+ t .Fatalf ("New(): %v" , err )
281+ }
278282 defer pdf .Close ()
279283
280284 // Text with stamp: "Evaluation Only. Created with Aspose.PDF ..."
@@ -311,7 +315,7 @@ func TestAppend(t *testing.T) {
311315 // Create the first PDF-document
312316 pdf1 , err := New ()
313317 if err != nil {
314- t .Errorf ("New(): %v" , err )
318+ t .Fatalf ("New(): %v" , err )
315319 }
316320 defer pdf1 .Close ()
317321
@@ -327,7 +331,7 @@ func TestAppend(t *testing.T) {
327331 // Create the second PDF-document
328332 pdf2 , err := New ()
329333 if err != nil {
330- t .Errorf ("New(): %v" , err )
334+ t .Fatalf ("New(): %v" , err )
331335 }
332336 defer pdf2 .Close ()
333337
@@ -404,32 +408,6 @@ func TestAppendPages(t *testing.T) {
404408 }
405409}
406410
407- func TestAbout (t * testing.T ) {
408- // Create a new document instance
409- doc , err := New ()
410- if err != nil {
411- t .Fatalf ("New(): %v" , err )
412- }
413- defer doc .Close ()
414-
415- // Call About()
416- info , err := doc .About ()
417- if err != nil {
418- t .Fatalf ("About(): %v" , err )
419- }
420-
421- // Validate required fields (basic presence checks)
422- if info .Product == "" {
423- t .Errorf ("Product field is empty" )
424- }
425- if info .Version == "" {
426- t .Errorf ("Version field is empty" )
427- }
428-
429- // Log full structure
430- t .Logf ("About result: %+v" , info )
431- }
432-
433411func TestExtractText (t * testing.T ) {
434412 // Create a new document
435413 doc , err := New ()
@@ -551,6 +529,7 @@ func TestOrganize(t *testing.T) {
551529 organizeFunctions := []organizeFunction {
552530 {"Optimize" , (* Document ).Optimize },
553531 {"OptimizeResource" , (* Document ).OptimizeResource },
532+ {"OptimizeFileSize" , func (doc * Document ) error { return doc .OptimizeFileSize (25 ) }},
554533 {"Grayscale" , (* Document ).Grayscale },
555534 {"Rotate" , func (doc * Document ) error { return doc .Rotate (RotationOn270 ) }},
556535 {"SetBackground" , func (doc * Document ) error { return doc .SetBackground (255 , 255 , 200 ) }},
@@ -561,7 +540,12 @@ func TestOrganize(t *testing.T) {
561540 {"AddPageNum" , (* Document ).AddPageNum },
562541 {"AddTextHeader" , func (doc * Document ) error { return doc .AddTextHeader ("Header" ) }},
563542 {"AddTextFooter" , func (doc * Document ) error { return doc .AddTextFooter ("Footer" ) }},
543+ {"AddWatermark" , func (doc * Document ) error {
544+ return doc .AddWatermark ("Watermark" , "Arial" , 16 , "#010101" , 100 , 100 , 45 , true , 0.5 )
545+ }},
564546 {"Flatten" , (* Document ).Flatten },
547+ {"EmbedFonts" , (* Document ).EmbedFonts },
548+ {"UnembedFonts" , (* Document ).UnembedFonts },
565549 {"RemoveAnnotations" , (* Document ).RemoveAnnotations },
566550 {"RemoveAttachments" , (* Document ).RemoveAttachments },
567551 {"RemoveBlankPages" , (* Document ).RemoveBlankPages },
@@ -570,6 +554,7 @@ func TestOrganize(t *testing.T) {
570554 {"RemoveImages" , (* Document ).RemoveImages },
571555 {"RemoveJavaScripts" , (* Document ).RemoveJavaScripts },
572556 {"RemoveTables" , (* Document ).RemoveTables },
557+ {"RemoveWatermarks" , (* Document ).RemoveWatermarks },
573558 {"PageRotate" , func (doc * Document ) error { return doc .PageRotate (1 , RotationOn270 ) }},
574559 {"PageSetSize" , func (doc * Document ) error { return doc .PageSetSize (1 , PageSizeA1 ) }},
575560 {"PageGrayscale" , func (doc * Document ) error { return doc .PageGrayscale (1 ) }},
@@ -581,10 +566,14 @@ func TestOrganize(t *testing.T) {
581566 {"PageAddPageNum" , func (doc * Document ) error { return doc .PageAddPageNum (1 ) }},
582567 {"PageAddTextHeader" , func (doc * Document ) error { return doc .PageAddTextHeader (1 , "Page Header" ) }},
583568 {"PageAddTextFooter" , func (doc * Document ) error { return doc .PageAddTextFooter (1 , "Page Footer" ) }},
569+ {"PageAddWatermark" , func (doc * Document ) error {
570+ return doc .PageAddWatermark (1 , "Watermark" , "Arial" , 16 , "#010101" , 100 , 100 , 45 , true , 0.5 )
571+ }},
584572 {"PageRemoveAnnotations" , func (doc * Document ) error { return doc .PageRemoveAnnotations (1 ) }},
585573 {"PageRemoveHiddenText" , func (doc * Document ) error { return doc .PageRemoveHiddenText (1 ) }},
586574 {"PageRemoveImages" , func (doc * Document ) error { return doc .PageRemoveImages (1 ) }},
587575 {"PageRemoveTables" , func (doc * Document ) error { return doc .PageRemoveTables (1 ) }},
576+ {"PageRemoveWatermarks" , func (doc * Document ) error { return doc .PageRemoveWatermarks (1 ) }},
588577 }
589578
590579 for _ , test := range organizeFunctions {
@@ -663,3 +652,29 @@ func TestBytes(t *testing.T) {
663652 // Assert that the byte slice is not empty
664653 assert_ne (t , int64 (0 ), int64 (len (data )))
665654}
655+
656+ func TestAbout (t * testing.T ) {
657+ // Create a new document instance
658+ doc , err := New ()
659+ if err != nil {
660+ t .Fatalf ("New(): %v" , err )
661+ }
662+ defer doc .Close ()
663+
664+ // Call About()
665+ info , err := doc .About ()
666+ if err != nil {
667+ t .Fatalf ("About(): %v" , err )
668+ }
669+
670+ // Validate required fields (basic presence checks)
671+ if info .Product == "" {
672+ t .Errorf ("Product field is empty" )
673+ }
674+ if info .Version == "" {
675+ t .Errorf ("Version field is empty" )
676+ }
677+
678+ // Log full structure
679+ t .Logf ("About result: %+v" , info )
680+ }
0 commit comments