github.com/readium/readium-lcp-server@v0.0.0-20240101192032-6e95190e99f1/epub/reader_test.go (about) 1 // Copyright (c) 2016 Readium Foundation 2 // 3 // Redistribution and use in source and binary forms, with or without modification, 4 // are permitted provided that the following conditions are met: 5 // 6 // 1. Redistributions of source code must retain the above copyright notice, this 7 // list of conditions and the following disclaimer. 8 // 2. Redistributions in binary form must reproduce the above copyright notice, 9 // this list of conditions and the following disclaimer in the documentation and/or 10 // other materials provided with the distribution. 11 // 3. Neither the name of the organization nor the names of its contributors may be 12 // used to endorse or promote products derived from this software without specific 13 // prior written permission 14 // 15 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 16 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 19 // ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 26 package epub 27 28 import ( 29 "archive/zip" 30 "fmt" 31 "sort" 32 "testing" 33 ) 34 35 func TestEpubLoading(t *testing.T) { 36 37 zr, err := zip.OpenReader("../test/samples/sample.epub") 38 if err != nil { 39 t.Fatal(err) 40 } 41 defer zr.Close() 42 43 ep, err := Read(&zr.Reader) 44 if err != nil { 45 t.Fatal(err) 46 } 47 48 if len(ep.Resource) == 0 { 49 t.Error("Expected some resources") 50 } 51 52 if len(ep.Package) != 1 { 53 t.Errorf("Expected 1 opf, got %d", len(ep.Package)) 54 } 55 56 expectedCleartext := []string{ContainerFile, "OPS/package.opf", "OPS/images/9780316000000.jpg", "OPS/toc.xhtml"} 57 sort.Strings(expectedCleartext) 58 if fmt.Sprintf("%v", ep.cleartextResources) != fmt.Sprintf("%v", expectedCleartext) { 59 t.Errorf("Cleartext resources, expected %v, got %v", expectedCleartext, ep.cleartextResources) 60 } 61 62 if found, r := ep.Cover(); !found || r == nil { 63 t.Error("Expected a cover to be found") 64 } 65 66 if expected := ContentType_XHTML; ep.Resource[2].ContentType != expected { 67 t.Errorf("Content Type matching, expected %v, got %v", expected, ep.Resource[2].ContentType) 68 } 69 }