blob: aba4bdd968679e65947b0d38c9965663187f41f4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 2014 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 org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.util.FeatureMap;
import org.eclipse.emf.ecore.util.FeatureMapUtil.FeatureEList;
import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
import org.eclipse.mylyn.docs.epub.core.EPUB;
import org.eclipse.mylyn.docs.epub.core.ILogger;
import org.eclipse.mylyn.docs.epub.dc.DCType;
import org.eclipse.mylyn.docs.epub.dc.Identifier;
import org.junit.After;
import org.junit.Before;
import junit.framework.TestCase;
@SuppressWarnings("nls")
public abstract class AbstractTest extends TestCase {
private static final boolean DEBUGGING = false;;
private class StdOutLogger implements ILogger {
public void log(String message) {
log(message, Severity.INFO);
}
public void log(String message, Severity severity) {
if (DEBUGGING) {
switch (severity) {
case ERROR:
System.out.print("[ERROR] ");
break;
case DEBUG:
System.out.print("[DEBUG] ");
break;
case INFO:
System.out.print("[INFO ] ");
break;
case VERBOSE:
System.out.print("[VERBO] ");
break;
case WARNING:
System.out.print("[WARN ] ");
break;
default:
break;
}
System.out.println(message);
}
}
}
protected static final EStructuralFeature TEXT = XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot_Text();
protected EPUB epub;
protected final File epubFile = new File("test" + File.separator + "test.epub");
protected final File epubFolder = new File("test" + File.separator + "epub");
protected final StdOutLogger logger = new StdOutLogger();
protected boolean deleteFolder(File folder) {
if (folder.isDirectory()) {
String[] children = folder.list();
for (String element : children) {
boolean ok = deleteFolder(new File(folder, element));
if (!ok) {
return false;
}
}
}
return folder.delete();
}
@SuppressWarnings("rawtypes")
public String getText(DCType identifier) {
FeatureMap fm = identifier.getMixed();
Object o = fm.get(TEXT, false);
if (o instanceof FeatureEList) {
if (((FeatureEList) o).size() > 0) {
return ((FeatureEList) o).get(0).toString();
}
}
return null;
}
@SuppressWarnings("rawtypes")
public String getText(Identifier element) {
FeatureMap fm = element.getMixed();
Object o = fm.get(TEXT, false);
if (o instanceof FeatureEList) {
if (((FeatureEList) o).size() > 0) {
return ((FeatureEList) o).get(0).toString();
}
}
return null;
}
/**
* @throws java.lang.Exception
*/
@Override
@Before
public void setUp() throws Exception {
if (epubFile.exists()) {
epubFile.delete();
}
if (epubFolder.exists()) {
deleteFolder(epubFolder);
}
epubFolder.mkdirs();
epub = new EPUB(logger);
}
@Override
@After
public void tearDown() {
epubFile.delete();
}
/* Bug 454932 - fix or remove failing EPUB test
@Override
@After
public void tearDown() throws Exception {
if (epubFolder.exists()) {
deleteFolder(epubFolder);
}
if (epubFile.exists()) {
ValidationReport report = new ValidationReport(epubFile.toString());
EpubCheck checker = new EpubCheck(epubFile, report);
checker.validate();
final String logMessage = report.getErrors();
epubFile.delete();
if (!errorExpected && report.getErrorCount() > 0) {
fail(logMessage);
}
}
}
*/
}