/*******************************************************************************
* Copyright (c) 2010 Martin Schnabel <mb0@mb0.org>.
* 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
******************************************************************************/
package org.axdt.asdoc.parser.html;
import org.axdt.asdoc.model.AsdocPackage;
import org.axdt.asdoc.model.AsdocRoot;
import org.axdt.asdoc.model.AsdocType;
import org.axdt.asdoc.model.ParseLevel;
import org.axdt.asdoc.parser.AsdocParser;
import org.axdt.asdoc.parser.AsdocParserTest;
import org.axdt.asdoc.util.AsdocEXMLProcessor;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
public class AsdocHtmlParserTest extends AsdocParserTest {
public AsdocHtmlParserTest() {
super("testdocs.zip!/html/");
}
protected AsdocParser createParser() {
return new AsdocHtmlParser();
}
public void testParserNoop() throws Exception {
AsdocRoot root = createRoot();
assertNotNull(root);
assertNotNull(root.eContents());
assertEquals(0, root.eContents().size());
}
public void testParser() throws Exception {
AsdocParser parser = createParser();
AsdocRoot root = createRoot();
parser.parseDoc(root, ParseLevel.MEMBER);
assertFalse(0 == root.eContents().size());
}
public void testSaveParseResult() throws Exception {
AsdocParser parser = createParser();
AsdocRoot root = createRoot();
parser.parseDoc(root, ParseLevel.MEMBER);
ResourceSet set = new AsdocEXMLProcessor().createResourceSet();
Resource resource = set.createResource(URI.createURI("file:/tmp/axdt-test/foo.asdoc"));
resource.getContents().add(root);
resource.save(null);
}
public void testPackageLevel() throws Exception {
CollectPackageList parser = new CollectPackageList();
assertPackageLevelResult(parser.collectPackages(createRoot(), false));
AsdocRoot root = createRoot();
assertPackageLevelResult(parser.collectPackages(root, true));
assertPackageLevelRoot(root);
}
public void testTypeLevel() throws Exception {
AsdocRoot root = createRoot();
createParser().parseDoc(root, ParseLevel.TYPE);
assertTypeLevelResult(root);
}
public void testGlobalLevel() throws Exception {
AsdocRoot root = createRoot();
CollectTypeInfo collectTypes = new CollectTypeInfo();
AsdocPackage pack = root.createPackage("foo.globals");
collectTypes.collectGlobalInfo(pack);
assertGlobalLevel(pack);
}
public void testMemberLevel() throws Exception {
AsdocRoot root = createRoot();
CollectTypeInfo collectTypes = new CollectTypeInfo();
AsdocPackage pack = root.createPackage("foo.members");
AsdocType type = collectTypes
.collectType(createType(pack, "Members"));
assertMemberLevel(type.getMembers(), false);
type = collectTypes.collectType(createType(pack, "StaticMembers"));
assertMemberLevel(type.getMembers(), true);
}
public void testMemberLevelInheritance() throws Exception {
AsdocRoot root = createRoot();
CollectTypeInfo collectTypes = new CollectTypeInfo();
AsdocPackage pack = root.createPackage("foo.bar");
AsdocType type = collectTypes.collectType(createType(pack, "Bar"));
assertTypeLevelInheritance_Bar(type);
type = collectTypes.collectType(createType(pack, "SuperBar"));
assertTypeLevelInheritance_SuperBar(type);
}
public void testParseTypeName() throws Exception {
CollectTypeInfo parser = new CollectTypeInfo();
assertEquals(null, parser.parseTypeName(null, null));
assertEquals(null, parser.parseTypeName(" ", null));
assertEquals("flash.events.EventDispatcher", parser.parseTypeName(
" flash.events.EventDispatcher ", null
));
assertEquals("Object", parser.parseTypeName(
" Object ", null
));
assertEquals("asunit.framework.Test", parser.parseTypeName(
" Test.html ", "asunit.framework"
));
assertEquals("asunit.framework.Test", parser.parseTypeName(
" ../framework/Test.html ", "asunit.textui"
));
assertEquals("asunit.framework.Test", parser.parseTypeName(
" ../../asunit/framework/Test.html ", "asunit.textui"
));
assertEquals("Object", parser.parseTypeName(
" ../../Object.html ", "asunit.textui"
));
assertEquals("Test", parser.parseTypeName(
" ../framework/Test.html ", null
));
assertEquals("Assert", parser.parseTypeName(
" http://asunit.org/docs/asunit3/asunit/framework/Assert.html ", null
));
}
public void testCollectPackageList_getFQN() throws Exception {
CollectPackageList parser = new CollectPackageList();
assertNull(parser.getFQN(null));
assertNull(parser.getFQN("fooooo"));
assertEquals("flash.utils",
parser.getFQN("flash/utils/package-detail.html"));
assertEquals("flash.utils", parser.getFQN("javascript:"
+ "savePackageListScrollTop();void window.open(baseRef + "
+ "'flash/utils/package-detail.html', '_self');"));
}
}