package org.meaningfulweb.core.test;
import java.io.File;
import junit.framework.TestCase;
import org.apache.log4j.Logger;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.meaningfulweb.api.MeaningfulWebObject;
import org.meaningfulweb.api.MetaContentExtractor;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.DefaultHandler;
import org.mortbay.jetty.handler.HandlerList;
import org.mortbay.jetty.handler.ResourceHandler;
public class MWCoreTest{
private static final Logger logger = Logger.getLogger(MWCoreTest.class);
static final File TestDataDir = new File("src/test/test-data");
private static final int testPort = 4444;
private static Server server = null;
@BeforeClass
public static void init(){
server = new Server(testPort);
ResourceHandler resource_handler=new ResourceHandler();
resource_handler.setResourceBase(TestDataDir.getAbsolutePath());
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[]{resource_handler,new DefaultHandler()});
server.setHandler(handlers);
try {
server.start();
} catch (Exception e) {
e.printStackTrace();
}
}
@AfterClass
public static void shutdown(){
try {
server.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testHappyPath() throws Exception{
MetaContentExtractor extractor = new MetaContentExtractor();
String url = "http://localhost:"+testPort+"/small.html";
MeaningfulWebObject obj = extractor.extractFromUrl(url);
TestCase.assertEquals("smalltitle", obj.getTitle());
TestCase.assertEquals("small description", obj.getDescription());
}
@Test
public void testNullTitle() throws Exception{
MetaContentExtractor extractor = new MetaContentExtractor();
String url = "http://localhost:"+testPort+"/notitle.html";
MeaningfulWebObject obj = extractor.extractFromUrl(url);
TestCase.assertNull(obj.getTitle());
}
@Test
public void testImage() throws Exception{
MetaContentExtractor extractor = new MetaContentExtractor();
String url = "http://localhost:"+testPort+"/withImage.html";
MeaningfulWebObject obj = extractor.extractFromUrl(url);
TestCase.assertEquals("http://abc.com/img.gif", obj.getImage());
TestCase.assertEquals("http://abc.com/img.gif", obj.getFullImage());
}
}