Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/modelquery/ModelQueryTester.java')
-rw-r--r--tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/modelquery/ModelQueryTester.java390
1 files changed, 0 insertions, 390 deletions
diff --git a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/modelquery/ModelQueryTester.java b/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/modelquery/ModelQueryTester.java
deleted file mode 100644
index e1aad84dd..000000000
--- a/tests/org.eclipse.jst.jsp.ui.tests/src/org/eclipse/jst/jsp/ui/tests/modelquery/ModelQueryTester.java
+++ /dev/null
@@ -1,390 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 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.jst.jsp.ui.tests.modelquery;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.tests.JSPUITestsPlugin;
-import org.eclipse.jst.jsp.ui.tests.Logger;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryProvider;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * @author pavery
- */
-public class ModelQueryTester extends TestCase {
-
- private final boolean testShippedDTDLookup = false;
-
- // Our Structured Model, which should always be an XMLModel (or subclass)
- protected IDOMModel fModel = null;
-
- protected ModelQuery fModelQuery = null;
-
- public ModelQueryTester(String name) {
- super(name);
- }
-
- protected static Test suite() {
- return new TestSuite(ModelQueryTester.class);
- }
-
- public static void main(java.lang.String[] args) {
- if (args == null || args.length == 0) {
- runAll();
- }
- else if (args.length == 1) {
- String methodToRun = args[0].trim();
- runOne(methodToRun);
- }
-
- }
-
- protected static void runAll() {
- TestRunner.run(suite());
-
- }
-
- protected static void runOne(String methodName) {
- TestSuite testSuite = new TestSuite();
- TestCase test = new ModelQueryTester(methodName);
- testSuite.addTest(test);
- junit.textui.TestRunner.run(testSuite);
- }
-
- /**
- * Create an empty HTML model
- */
- protected void setUpHTML() {
- fModel = (IDOMModel) createModel(ContentTypeIdForHTML.ContentTypeID_HTML);
- initVars();
- }
-
- /**
- * Create an empty XML model
- */
- protected void setUpXML() {
- fModel = (IDOMModel) createModel(ContentTypeIdForXML.ContentTypeID_XML);
- initVars();
- }
-
-
- /**
- * Initialize local fields for this test
- */
- protected void initVars() {
- fModelQuery = ModelQueryUtil.getModelQuery(fModel.getDocument());
-
-
- }
-
- /**
- * Test the HTML BODY Element for the "bgcolor" attribute declaration
- */
- public void testBodyElement() {
- setUpHTML();
- fModel.getStructuredDocument().set("<html><body bgcolor=\"#ffffff\"><form method=\"post\"></form></body></html>"); // set
- // text
-
- // TEST getting a CMElementDeclaration
- Element bodyElement = (Element) fModel.getIndexedRegion(7); // node at
- // offset7--should
- // be
- // <body>
- CMElementDeclaration bodyDecl = fModelQuery.getCMElementDeclaration(bodyElement);
-
- int contentType = bodyDecl.getContentType();
- assertTrue("CMElementDeclaration CONTENT TYPE INCORRECT FOR BODY", (contentType == CMElementDeclaration.MIXED));
-
- // get permissible attrs
- CMNamedNodeMap map = bodyDecl.getAttributes();
- assertTrue("ATTRIBUTES FROM ELEMENT DECLARATION == NULL", (map != null));
- Vector allowed = new Vector();
- for (int i = 0; i < map.getLength(); i++) {
- CMAttributeDeclaration node = (CMAttributeDeclaration) map.item(i);
- String name = node.getNodeName();
- allowed.add(name);
- if (name.equalsIgnoreCase("bgcolor")) {
- assertTrue("GOT INCORRECT ATTRIBUTE NODE TYPE", (node.getNodeType() == CMNode.ATTRIBUTE_DECLARATION));
-
- CMDataType attrType = node.getAttrType();
- // System.out.println("attribute type > " + attrType);
- assertTrue("COULD NOT GET ATTRIBUTE TYPE", (attrType != null));
- assertTrue("COULDN'T GET IMPLIED VALUE KIND", (attrType.getImpliedValueKind() == CMDataType.IMPLIED_VALUE_NONE));
- }
- }
- }
-
- /**
- * Test the HTML HTML Element for its declared children
- */
- public void testHtmlChildren() {
- setUpHTML();
- fModel.getStructuredDocument().set("<html></html>"); // set text
- Element htmlElement = fModel.getDocument().getDocumentElement();
- CMElementDeclaration htmlDecl = fModelQuery.getCMElementDeclaration(htmlElement);
-
- // HTML's children are within a group
- CMContent contents = htmlDecl.getContent();
-
- assertTrue("content type is not a group", contents.getNodeType() == CMNode.GROUP);
-
- CMGroup group = (CMGroup) contents;
- int operator = group.getOperator();
- CMNodeList childList = group.getChildNodes();
- int max = contents.getMaxOccur();
- int min = contents.getMinOccur();
-
- // the group should be allowed once, with a sequence whose first entry
- // is the declaration for HEAD
- assertTrue("occurrance of group", min == 1 && max == 1);
- assertTrue("relationship in group", operator == CMGroup.SEQUENCE);
- assertTrue("content descriptor type, position 0", contents.getNodeType() == CMNode.GROUP);
- assertTrue("child order (HEAD first)", childList.item(0).getNodeName().equalsIgnoreCase(HTML40Namespace.ElementName.HEAD));
-
- assertTrue("content descriptor type, position 1", childList.item(1).getNodeType() == CMNode.GROUP);
- // The second child should be a group as well, containing BODY and
- // FRAMESET with an
- // operator of CMGroup.CHOICE
- assertTrue("content descriptor type, position 1 - relationship of group", ((CMGroup) childList.item(1)).getOperator() == CMGroup.CHOICE);
- }
-
- public void testFormMethodAttr() {
- setUpHTML();
- fModel.getStructuredDocument().set("<html><body bgcolor=\"#ffffff\"><form method=\"post\"></form></body></html>"); // set
- // text
-
- // TEST GETTING A CMAttributeDeclaratoin
- Element formElement = (Element) fModel.getIndexedRegion(31); // <form>
- Attr attrNode = formElement.getAttributeNode(HTML40Namespace.ATTR_NAME_METHOD);
- CMAttributeDeclaration methodAttrDecl = fModelQuery.getCMAttributeDeclaration(attrNode);
- assertTrue("Content Model missing the attribute declaration for \"method\"", methodAttrDecl != null);
-
- List values = getValidStrings(formElement, methodAttrDecl);
- assertTrue("wrong number of values for attribute \"method\"", (values.size() == 2));
- assertTrue("default value for attribute \"method\" is wrong", (methodAttrDecl.getAttrType().getImpliedValue().equalsIgnoreCase("get")));
- }
-
- /**
- * A short test to ensure that a DTD can be loaded from a system
- * reference.
- *
- * Note: May require a functioning network connection for the references
- * to be resolved properly.
- *
- * @throws IOException
- */
- public void testDTDLoadFromSystemID_1() throws IOException {
- if (testShippedDTDLookup) {
- setUpXML();
- URL installationPath = Platform.getBundle(JSPUITestsPlugin.ID).getEntry("/");
- String diskLocation = null;
- diskLocation = FileLocator.resolve(installationPath).toExternalForm();
-
- assertTrue("failed to resolve plugin install path", diskLocation != null);
- String content = "<?xml version=\"1.0\"?><!DOCTYPE html SYSTEM " + diskLocation + "TestFiles/DTDs/wapDTDs/WAP-2-0/wml20.dtd\"" + "><html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:wml=\"http://www.wapforum.org/2001/wml\"></html>";
- fModel.getStructuredDocument().set(content);
- CMDocumentManager documentManagaer = fModelQuery.getCMDocumentManager();
- documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_ASYNC_LOAD, false);
- documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD, true);
-
- Node domNode = (Node) fModel.getIndexedRegion(content.length() - 2);
- CMNode node = fModelQuery.getCMNode(domNode);
- assertTrue("wml20.dtd failed to load", node != null && node.getNodeName().equalsIgnoreCase("html"));
- }
- }
-
-
- /**
- * A short test to ensure that a DTD, the XHTML 1.0 Transitional one, can
- * be loaded from a system reference.
- *
- * Note: May require a functioning network connection for the references
- * to be resolved properly.
- * @throws IOException
- */
- public void testDTDLoadFromSystemID_2() throws IOException {
- if (testShippedDTDLookup) {
- URL installationPath = Platform.getBundle(JSPUITestsPlugin.ID).getEntry("/");
- String diskLocation = null;
-
- diskLocation = FileLocator.resolve(installationPath).toExternalForm();
-
- assertTrue("failed to resolve plugin install path", diskLocation != null);
- setUpXML();
- String content = "<?xml version=\"1.0\"?><!DOCTYPE html SYSTEM " + diskLocation + "testfiles/XHTML/xhtml1-transitional.dtd\"" + "><html></html>";
- fModel.getStructuredDocument().set(content);
-
- CMDocumentManager documentManagaer = fModelQuery.getCMDocumentManager();
- documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_ASYNC_LOAD, false);
- documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD, true);
-
- // see defect 282429
- CMElementDeclaration htmlDecl = (CMElementDeclaration) fModelQuery.getCMNode((Node) fModel.getIndexedRegion(content.length() - 2));
- assertTrue("xhtml1-transitional.dtd not loaded", htmlDecl != null);
-
- // HTML's children are within a group
- CMContent contents = htmlDecl.getContent();
-
- assertTrue("content type is not a group", contents.getNodeType() == CMNode.GROUP);
-
- CMGroup group = (CMGroup) contents;
- int operator = group.getOperator();
- CMNodeList childList = group.getChildNodes();
- int max = contents.getMaxOccur();
- int min = contents.getMinOccur();
-
- // the group should be allowed once, with a sequence whose first
- // entry
- // is the declaration for HEAD
- assertTrue("occurrance of group", min == 1 && max == 1);
- assertTrue("relationship in group", operator == CMGroup.SEQUENCE);
- assertTrue("content descriptor type, position 0", contents.getNodeType() == CMNode.GROUP);
- assertTrue("child order (HEAD first)", childList.item(0).getNodeName().equals(HTML40Namespace.ElementName.HEAD.toLowerCase()));
- assertTrue("child order (BODY second)", childList.item(1).getNodeName().equals(HTML40Namespace.ElementName.BODY.toLowerCase()));
- }
- }
-
- /**
- * A short test to ensure that the DTD for JSP 1.2 tag libraries can be
- * loaded from a public reference registered in the XML catalog
- */
- public void testDTDLoadFromPublicID() {
- // No longer provided in WTP
- // TODO: provide DTD?
- // if (testShippedDTDLookup) {
- // setUpXML();
- // String contents = "<!DOCTYPE taglib PUBLIC \"-//Sun Microsystems,
- // Inc.//DTD JSP Tag Library 1.2//EN\">
- // <taglib><tag>foo</tag></taglib>";
- // fModel.getStructuredDocument().set(contents);
- //
- // CMDocumentManager documentManagaer =
- // fModelQuery.getCMDocumentManager();
- // documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_ASYNC_LOAD,
- // false);
- // documentManagaer.setPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD,
- // true);
- //
- //
- // // taglib
- // CMNode node = fModelQuery.getCMNode((Node)
- // fModel.getIndexedRegion(contents.length() - 2));
- // assertTrue("web-jsptaglibrary_1_2.dtd failed to load through
- // catalog", node != null && node.getNodeType() ==
- // CMNode.ELEMENT_DECLARATION &&
- // node.getNodeName().equalsIgnoreCase("taglib"));
- //
- // // tag
- // node = fModelQuery.getCMNode((Node)
- // fModel.getIndexedRegion(contents.length() - 12));
- // assertTrue("CMElementDeclaration for \"tag\" from
- // web-jsptaglibrary_1_2.dtd is missing", node != null &&
- // node.getNodeType() == CMNode.ELEMENT_DECLARATION &&
- // node.getNodeName().equalsIgnoreCase("tag"));
- // CMContent content = ((CMElementDeclaration) node).getContent();
- // assertTrue("only one occurrence of child group allowed",
- // content.getNodeType() == CMNode.GROUP && content.getMaxOccur() ==
- // 1);
- // }
- }
-
-
-
- public static IStructuredModel createModel(String contentTypeID) {
- // create an empty model with its default factories
- IStructuredModel model = StructuredModelManager.getModelManager().createUnManagedStructuredModelFor(contentTypeID);
-
- // add editor adapter factories
- AdapterFactoryRegistry adapterRegistry = JSPUIPlugin.getDefault().getAdapterFactoryRegistry();
- Iterator adapterList = adapterRegistry.getAdapterFactories();
- // And all those appropriate for this particular type of content
- while (adapterList.hasNext()) {
- try {
- AdapterFactoryProvider provider = (AdapterFactoryProvider) adapterList.next();
- if (provider.isFor(model.getModelHandler())) {
- provider.addAdapterFactories(model);
- }
- }
- catch (Exception e) {
- Logger.logException(e);
- }
- }
- return model;
- }
-
- /**
- * Return the valid values for an attribute with the given declaration on
- * the given element. Derived from XMLPropertySource
- */
- private List getValidStrings(Element element, CMAttributeDeclaration attrDecl) {
- CMDataType valuesHelper = attrDecl.getAttrType();
- Vector values = new Vector();
-
- if (valuesHelper.getImpliedValueKind() == CMDataType.IMPLIED_VALUE_FIXED && valuesHelper.getImpliedValue() != null) {
- // FIXED value
- values.add(valuesHelper.getImpliedValue());
- }
- else {
- // ENUMERATED values
- String[] valueStrings = null;
- // new way
- valueStrings = fModelQuery.getPossibleDataTypeValues(element, attrDecl);
- if (valueStrings == null)
- // older way
- valueStrings = attrDecl.getAttrType().getEnumeratedValues();
- if (valueStrings != null) {
- for (int i = 0; i < valueStrings.length; i++) {
- values.add(valueStrings[i]);
- }
- }
- }
- if (valuesHelper.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_NONE && valuesHelper.getImpliedValue() != null) {
- if (!values.contains(valuesHelper.getImpliedValue()))
- values.add(valuesHelper.getImpliedValue());
- }
-
- return values;
- }
-
-} \ No newline at end of file

Back to the top