Skip to content

Commit 6233b6e

Browse files
[~] Changed Test to use the reportbase
[~] Changed report Html [+] Test ToC creation
1 parent ae4c3d1 commit 6233b6e

File tree

2 files changed

+39
-35
lines changed

2 files changed

+39
-35
lines changed

roles/lib/files/FWO.Report/ReportBase.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ public static string ToUtcString(string? timestring)
291291
}
292292
}
293293

294-
private static List<ToCHeader> CreateTOCContent(string html)
294+
public static List<ToCHeader> CreateTOCContent(string html)
295295
{
296296
HtmlDocument doc = new();
297297
doc.LoadHtml(html);
@@ -321,7 +321,7 @@ private static List<ToCHeader> CreateTOCContent(string html)
321321
return tocs;
322322
}
323323

324-
private string BuildHTMLToC(string html)
324+
public string BuildHTMLToC(string html)
325325
{
326326
bool tocTemplateValid = IsValidHTML(TocHTMLTemplate);
327327

@@ -365,7 +365,7 @@ private string BuildHTMLToC(string html)
365365
return TocHTMLTemplate;
366366
}
367367

368-
private static bool IsValidHTML(string html)
368+
public static bool IsValidHTML(string html)
369369
{
370370
try
371371
{
@@ -380,7 +380,7 @@ private static bool IsValidHTML(string html)
380380

381381
}
382382

383-
private static byte[] AddToCBookmarksToPDF(Stream pdfData, string html)
383+
public static byte[] AddToCBookmarksToPDF(Stream pdfData, string html)
384384
{
385385
PdfDocument document = PdfReader.Open(pdfData, PdfDocumentOpenMode.Modify);
386386

@@ -408,7 +408,7 @@ private static byte[] AddToCBookmarksToPDF(Stream pdfData, string html)
408408
return pdfWithToCData;
409409
}
410410

411-
private PuppeteerSharp.Media.PaperFormat? GetPuppeteerPaperFormat(PaperFormat format)
411+
public PuppeteerSharp.Media.PaperFormat? GetPuppeteerPaperFormat(PaperFormat format)
412412
{
413413
if (format == PaperFormat.Custom)
414414
return new PuppeteerSharp.Media.PaperFormat(CustomWidth, CustomHeight);

roles/tests-unit/files/FWO.Test/HtmlToPdfTest.cs

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
using PuppeteerSharp.BrowserData;
77
using HtmlAgilityPack;
88
using System.Diagnostics;
9+
using FWO.Report;
10+
using FWO.Report.Data;
911

1012
namespace FWO.Test
1113
{
@@ -14,17 +16,19 @@ namespace FWO.Test
1416
internal class HtmlToPdfTest
1517
{
1618
private const string FilePath = "pdffile.pdf";
17-
private const string Html = "<html> <body> <h1>test<h1> test mit puppteer </body> </html>";
19+
private const string Html = "<html> <body> <h1>test</h1> <h2>test mit puppteer</h2> </body> </html>";
1820
private const string ChromeBinPathLinux = "/usr/local/bin";
21+
1922

2023
[Test]
2124
public async Task GeneratePdf()
2225
{
23-
Assert.That(IsValidHTML(Html));
26+
bool isValidHtml = ReportBase.IsValidHTML(Html);
27+
ClassicAssert.IsTrue(isValidHtml);
2428

2529
string? isGitHubActions = Environment.GetEnvironmentVariable("RUNNING_ON_GITHUB");
2630

27-
if(!string.IsNullOrEmpty(isGitHubActions))
31+
if (!string.IsNullOrEmpty(isGitHubActions))
2832
{
2933
return;
3034
}
@@ -78,18 +82,18 @@ public async Task GeneratePdf()
7882

7983
try
8084
{
81-
await TryCreatePDF(browser, PaperFormat.A0);
82-
await TryCreatePDF(browser, PaperFormat.A1);
83-
await TryCreatePDF(browser, PaperFormat.A2);
84-
await TryCreatePDF(browser, PaperFormat.A3);
85-
await TryCreatePDF(browser, PaperFormat.A4);
86-
await TryCreatePDF(browser, PaperFormat.A5);
87-
await TryCreatePDF(browser, PaperFormat.A6);
88-
89-
await TryCreatePDF(browser, PaperFormat.Ledger);
90-
await TryCreatePDF(browser, PaperFormat.Legal);
91-
await TryCreatePDF(browser, PaperFormat.Letter);
92-
await TryCreatePDF(browser, PaperFormat.Tabloid);
85+
await TryCreatePDF(browser, PuppeteerSharp.Media.PaperFormat.A0);
86+
await TryCreatePDF(browser, PuppeteerSharp.Media.PaperFormat.A1);
87+
await TryCreatePDF(browser, PuppeteerSharp.Media.PaperFormat.A2);
88+
await TryCreatePDF(browser, PuppeteerSharp.Media.PaperFormat.A3);
89+
await TryCreatePDF(browser, PuppeteerSharp.Media.PaperFormat.A4);
90+
await TryCreatePDF(browser, PuppeteerSharp.Media.PaperFormat.A5);
91+
await TryCreatePDF(browser, PuppeteerSharp.Media.PaperFormat.A6);
92+
93+
await TryCreatePDF(browser, PuppeteerSharp.Media.PaperFormat.Ledger);
94+
await TryCreatePDF(browser, PuppeteerSharp.Media.PaperFormat.Legal);
95+
await TryCreatePDF(browser, PuppeteerSharp.Media.PaperFormat.Letter);
96+
await TryCreatePDF(browser, PuppeteerSharp.Media.PaperFormat.Tabloid);
9397
}
9498
catch (Exception)
9599
{
@@ -101,22 +105,20 @@ public async Task GeneratePdf()
101105
}
102106
}
103107

104-
private static bool IsValidHTML(string html)
108+
[Test]
109+
public void TryCreateToC()
105110
{
106-
try
107-
{
108-
HtmlDocument? doc = new();
109-
doc.LoadHtml(html);
110-
return !doc.ParseErrors.Any();
111-
}
112-
catch (Exception)
113-
{
114-
return false;
115-
}
111+
bool isValidHtml = ReportBase.IsValidHTML(Html);
112+
ClassicAssert.IsTrue(isValidHtml);
116113

114+
List<ToCHeader>? tocContent = ReportBase.CreateTOCContent(Html);
115+
116+
ClassicAssert.AreEqual(tocContent.Count, 2);
117+
ClassicAssert.AreEqual(tocContent[0].Title, "test");
118+
ClassicAssert.AreEqual(tocContent[1].Title, "test mit puppteer");
117119
}
118120

119-
private async Task TryCreatePDF(IBrowser browser, PaperFormat paperFormat)
121+
private async Task TryCreatePDF(IBrowser browser, PuppeteerSharp.Media.PaperFormat paperFormat)
120122
{
121123
Log.WriteInfo("Test Log", $"Test creating PDF {paperFormat}");
122124

@@ -126,13 +128,15 @@ private async Task TryCreatePDF(IBrowser browser, PaperFormat paperFormat)
126128
await page.SetContentAsync(Html);
127129

128130
PdfOptions pdfOptions = new() { DisplayHeaderFooter = true, Landscape = true, PrintBackground = true, Format = paperFormat, MarginOptions = new MarginOptions { Top = "1cm", Bottom = "1cm", Left = "1cm", Right = "1cm" } };
129-
byte[] pdfData = await page.PdfDataAsync(pdfOptions);
131+
using Stream? pdfData = await page.PdfStreamAsync(pdfOptions);
132+
133+
byte[]? pdfWithToCData = ReportBase.AddToCBookmarksToPDF(pdfData, Html);
130134

131-
await File.WriteAllBytesAsync(FilePath, pdfData);
135+
await File.WriteAllBytesAsync(FilePath, pdfWithToCData);
132136

133137
Assert.That(FilePath, Does.Exist);
134138
FileAssert.Exists(FilePath);
135-
ClassicAssert.AreEqual(new FileInfo(FilePath).Length, pdfData.Length);
139+
ClassicAssert.AreEqual(new FileInfo(FilePath).Length, pdfWithToCData.Length);
136140
}
137141
catch (Exception)
138142
{

0 commit comments

Comments
 (0)