blob: 7cd243e360b92841914044381fba59304fee0970 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 Standard for Technology in Automotive Retail 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:
* David Carver (STAR) - bug 271784 - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.dtd.ui.tests.plugin;
import java.io.IOException;
import java.net.URL;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathFactory;
import junit.framework.TestCase;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.wst.dtd.ui.internal.DTDUIPlugin;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class TestPluginXMLRequirements extends TestCase{
private static final String PLUGIN_XML = "plugin.xml";
Document pluginDoc = null;
XPath xpath = null;
public TestPluginXMLRequirements() {
super();
}
protected void setUp() throws Exception {
super.setUp();
loadPluginXML();
initXPath();
}
protected void tearDown() throws Exception {
super.tearDown();
pluginDoc = null;
xpath = null;
}
private void initXPath() {
XPathFactory xpathFactory = XPathFactory.newInstance();
xpath = xpathFactory.newXPath();
}
private void loadPluginXML() throws Exception {
URL url = getTestFile(PLUGIN_XML);
url.openStream();
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder domBuilder = domFactory.newDocumentBuilder();
pluginDoc = domBuilder.parse(url.openStream());
}
protected URL getInstallLocation(String path) {
URL installLocation = DTDUIPlugin.getDefault().getBundle().getEntry(path);
URL resolvedLocation = null;
try {
resolvedLocation = FileLocator.resolve(installLocation);
}
catch (IOException e) {
// impossible
throw new Error(e);
}
return resolvedLocation;
}
protected URL getTestFile(String filepath) {
URL installURL = getInstallLocation("/" + filepath);
return installURL;
}
public void testDTDToolTipExists() throws Exception {
String xpathString = "//menuContribution[@locationURI = 'toolbar:org.eclipse.wst.xml.ui.perspective.NewFileToolBar']/command[@id = 'org.eclipse.wst.dtd.ui.newDTDFile']";
XPathExpression xpathExpr = xpath.compile(xpathString);
Element element = (Element) xpathExpr.evaluate(pluginDoc.getDocumentElement(), XPathConstants.NODE);
String toolTip = element.getAttribute("tooltip");
assertEquals("Unexpected value for DTD tooltip", "%DTD_New_context_type_Extension_Element.name", toolTip);
}
}