/******************************************************************************* * Copyright (c) 2010 IBM Corporation and others. * 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: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.wst.xml.catalog.tests.internal; import java.net.URL; import java.util.List; import org.eclipse.core.runtime.FileLocator; import org.eclipse.wst.xml.core.internal.catalog.Catalog; import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog; import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry; import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog; public class CatalogReaderTest extends AbstractCatalogTest { protected void setUp() throws Exception { super.setUp(); } protected void tearDown() throws Exception { super.tearDown(); } public CatalogReaderTest(String name) { super(name); } /* * Class under test for void read(ICatalog, String) */ public void testReadCatalog()throws Exception { //read catalog String catalogFile = "/data/catalog1.xml"; URL catalogUrl = TestPlugin.getDefault().getBundle().getEntry(catalogFile); assertNotNull(catalogUrl); URL base = FileLocator.resolve(catalogUrl); Catalog catalog = (Catalog)getCatalog("catalog1", base.toString()); //CatalogReader.read(catalog, catalogFilePath); assertNotNull(catalog); // test main catalog - catalog1.xml //assertEquals("cat1", catalog.getId()); assertEquals(3, catalog.getCatalogEntries().length); // test public entries List entries = CatalogTest.getCatalogEntries(catalog, ICatalogEntry.ENTRY_TYPE_PUBLIC); assertEquals(1, entries.size()); ICatalogEntry entry = (ICatalogEntry)entries.get(0); //String resolvedURI = URIHelper.makeAbsolute(base, "./Invoice/Invoice.dtd"); assertEquals(getFileLocation("/data/Invoice/Invoice.dtd"), entry.getURI()); assertEquals("InvoiceId_test", entry.getKey()); assertEquals("http://webURL", entry.getAttributeValue("webURL")); // test system entries entries = CatalogTest.getCatalogEntries(catalog, ICatalogEntry.ENTRY_TYPE_SYSTEM); assertEquals(1, entries.size()); entry = (ICatalogEntry)entries.get(0); assertEquals(getFileLocation("/data/Invoice/Invoice.dtd"), entry.getURI()); assertEquals("Invoice.dtd", entry.getKey()); assertEquals("yes", entry.getAttributeValue("chached")); assertEquals("value1", entry.getAttributeValue("property")); // test uri entries entries = CatalogTest.getCatalogEntries(catalog, ICatalogEntry.ENTRY_TYPE_URI); assertEquals(1, entries.size()); entry = (ICatalogEntry)entries.get(0); assertEquals(getFileLocation("/data/Invoice/Invoice.dtd"), entry.getURI()); assertEquals("http://www.test.com/Invoice.dtd", entry.getKey()); assertEquals("no", entry.getAttributeValue("chached")); assertEquals("value2", entry.getAttributeValue("property")); // test next catalog - catalog2.xml INextCatalog[] nextCatalogEntries = catalog.getNextCatalogs(); assertEquals(1, nextCatalogEntries.length); INextCatalog nextCatalogEntry = (INextCatalog)nextCatalogEntries[0]; assertNotNull(nextCatalogEntry); // String catalogRefId = nextCatalogEntry.getCatalogRefId(); // assertEquals("nextCatalog1", catalogRefId); //resolvedURI = URIHelper.makeAbsolute(base, "catalog2.xml"); assertEquals("catalog2.xml", nextCatalogEntry.getCatalogLocation()); ICatalog nextCatalog = nextCatalogEntry.getReferencedCatalog(); assertNotNull(nextCatalog); assertEquals(4, nextCatalog.getCatalogEntries().length); // test public entries entries = CatalogTest.getCatalogEntries(nextCatalog, ICatalogEntry.ENTRY_TYPE_PUBLIC); assertEquals(2, entries.size()); entry = (ICatalogEntry)entries.get(0); //resolvedURI = URIHelper.makeAbsolute(nextCatalog.getBase(), "./PublicationCatalogue/Catalogue.xsd"); assertEquals(getFileLocation("/data/PublicationCatalogue/Catalogue.xsd"), entry.getURI()); assertEquals("http://www.eclipse.org/webtools/Catalogue_001", entry.getKey()); // test public entry from a group entry = (ICatalogEntry)entries.get(1); //resolvedURI = URIHelper.makeAbsolute(nextCatalog.getBase(), "./PublicationCatalogue/Catalogue.xsd"); assertEquals(getFileLocation("/data/PublicationCatalogue/Catalogue.xsd"), entry.getURI()); assertEquals("http://www.eclipse.org/webtools/Catalogue_002", entry.getKey()); // test system entries entries = CatalogTest.getCatalogEntries(nextCatalog, ICatalogEntry.ENTRY_TYPE_SYSTEM); assertEquals(1, entries.size()); entry = (ICatalogEntry)entries.get(0); assertEquals(getFileLocation("/data/PublicationCatalogue/Catalogue.xsd"), entry.getURI()); assertEquals("Catalogue.xsd", entry.getKey()); // test uri entries entries = CatalogTest.getCatalogEntries(nextCatalog, ICatalogEntry.ENTRY_TYPE_URI); assertEquals(1, entries.size()); entry = (ICatalogEntry)entries.get(0); assertEquals("http://www.eclipse.org/webtools/Catalogue/Catalogue.xsd", entry.getURI()); assertEquals("http://www.eclipse.org/webtools/Catalogue.xsd", entry.getKey()); } /* * Class under test for void read(ICatalog, String) */ public void testReadComplexCatalog() throws Exception { //read catalog String catalogFile = "/data/delegateAndRewrite/catalog11.xml"; URL catalogUrl = TestPlugin.getDefault().getBundle().getEntry(catalogFile); assertNotNull(catalogUrl); URL base = FileLocator.resolve(catalogUrl); Catalog catalog = (Catalog)getCatalog("catalog11", base.toString()); //CatalogReader.read(catalog, catalogFilePath); assertNotNull(catalog); // test main catalog - catalog1.xml //assertEquals("cat1", catalog.getId()); assertEquals(13, catalog.getCatalogElements().length); // test public entries assertEquals(2, CatalogTest.getCatalogEntries(catalog, ICatalogEntry.ENTRY_TYPE_PUBLIC).size()); // test system entries assertEquals(2, CatalogTest.getCatalogEntries(catalog, ICatalogEntry.ENTRY_TYPE_SYSTEM).size()); // test uri entries assertEquals(1, CatalogTest.getCatalogEntries(catalog, ICatalogEntry.ENTRY_TYPE_URI).size()); // test next catalog - catalog2.xml INextCatalog[] nextCatalogEntries = catalog.getNextCatalogs(); assertEquals(1, nextCatalogEntries.length); INextCatalog nextCatalogEntry = (INextCatalog)nextCatalogEntries[0]; assertNotNull(nextCatalogEntry); assertEquals("catalog.xml", nextCatalogEntry.getCatalogLocation()); } public void testCompatabilityReader() throws Exception { // read catalog String catalogFile = "/data/compatabilityTest.xmlcatalog"; URL catalogUrl = TestPlugin.getDefault().getBundle().getEntry(catalogFile); assertNotNull(catalogUrl); URL base = FileLocator.resolve(catalogUrl); Catalog catalog = (Catalog)getCatalog("compatabilityCatalog", base.toString()); //CatalogReader.read(catalog, catalogFilePath); assertNotNull(catalog); List entries = CatalogTest.getCatalogEntries(catalog, ICatalogEntry.ENTRY_TYPE_PUBLIC); assertEquals(1, entries.size()); ICatalogEntry entry = (ICatalogEntry)entries.get(0); assertEquals("platform:/resource/XMLExamples/Invoice2/Invoice.dtd", entry.getURI()); assertEquals("InvoiceId", entry.getKey()); } }