| /******************************************************************************* |
| * Copyright (c) 2015 Torkild U. Resheim. |
| * |
| * All rights reserved. This program and the accompanying materials are made |
| * available under the terms of the Eclipse Public License v1.0 which |
| * accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Torkild U. Resheim - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.mylyn.docs.epub.tests.api; |
| |
| import java.io.File; |
| import java.io.IOException; |
| import java.util.List; |
| |
| import org.eclipse.emf.common.util.Diagnostic; |
| import org.eclipse.mylyn.docs.epub.core.EPUBPublication; |
| import org.junit.Test; |
| |
| /** |
| * @author Torkild U. Resheim |
| */ |
| @SuppressWarnings("nls") |
| public class TestEPUBPublication extends AbstractTest { |
| |
| private class EPUB_OPF_Test extends EPUBPublication { |
| public void testReadOPF(File rootFile) throws IOException { |
| readOPF(rootFile); |
| } |
| } |
| |
| /** |
| * Test whether or not a basic EPUB 3 OPF can be read. |
| * |
| * @throws Exception |
| */ |
| @Test |
| public final void testReadOPF() throws Exception { |
| File rootFile = new File("testdata/OPF-Tests/EPUB3/content.opf"); |
| EPUB_OPF_Test epub = new EPUB_OPF_Test(); |
| epub.testReadOPF(rootFile); |
| } |
| |
| /** |
| * Test method for <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=380729">bug 380729</a>: Allow reference |
| * elements to have "other." types |
| * |
| * @throws Exception |
| */ |
| @Test |
| public final void test_addMeta() throws Exception { |
| File rootFile = new File("testdata/OPF-Tests/EPUB3/basic.opf"); |
| EPUB_OPF_Test oebps = new EPUB_OPF_Test(); |
| oebps.testReadOPF(rootFile); |
| |
| // Validate that data already read from the OPF file is OK. |
| List<Diagnostic> problems = oebps.validateMetadata(); |
| assertEquals(0, problems.size()); |
| |
| // Add a EPUB 3 Meta item |
| oebps.addMeta("id", "property", "refines", "scheme"); |
| assertEquals("id", oebps.getPackage().getMetadata().getMetas().get(0).getId()); |
| assertEquals("property", oebps.getPackage().getMetadata().getMetas().get(0).getProperty()); |
| assertEquals("refines", oebps.getPackage().getMetadata().getMetas().get(0).getRefines()); |
| assertEquals("scheme", oebps.getPackage().getMetadata().getMetas().get(0).getScheme()); |
| try { |
| oebps.addMeta("id", null, "refines", "scheme"); |
| fail(); |
| } catch (IllegalArgumentException e) { |
| } |
| |
| problems = oebps.validateMetadata(); |
| assertEquals(0, problems.size()); |
| } |
| } |