aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Jellyfin.Providers.Tests/Books/EpubUtilsTests.cs34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/Jellyfin.Providers.Tests/Books/EpubUtilsTests.cs b/tests/Jellyfin.Providers.Tests/Books/EpubUtilsTests.cs
new file mode 100644
index 0000000000..a5a3af6210
--- /dev/null
+++ b/tests/Jellyfin.Providers.Tests/Books/EpubUtilsTests.cs
@@ -0,0 +1,34 @@
+using System.IO;
+using System.IO.Compression;
+using System.Text;
+using MediaBrowser.Providers.Books.OpenPackagingFormat;
+using Xunit;
+
+namespace Jellyfin.Providers.Tests.Books;
+
+public class EpubUtilsTests
+{
+ [Fact]
+ public void ReadContentFilePath_ReadsRootFileFromContainer()
+ {
+ using var stream = new MemoryStream();
+ using (var archive = new ZipArchive(stream, ZipArchiveMode.Create, true))
+ {
+ using var writer = new StreamWriter(archive.CreateEntry("META-INF/container.xml").Open(), Encoding.UTF8);
+ writer.Write(
+ """
+ <?xml version="1.0"?>
+ <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
+ <rootfiles>
+ <rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>
+ </rootfiles>
+ </container>
+ """);
+ }
+
+ stream.Position = 0;
+ using var epub = new ZipArchive(stream, ZipArchiveMode.Read);
+
+ Assert.Equal("OEBPS/content.opf", EpubUtils.ReadContentFilePath(epub));
+ }
+}