| /******************************************************************************* |
| * 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.ui.tests.contentmodel; |
| |
| import junit.framework.TestCase; |
| |
| import org.eclipse.wst.sse.core.StructuredModelManager; |
| import org.eclipse.wst.sse.ui.internal.editor.EditorModelUtil; |
| import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML; |
| import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; |
| import org.eclipse.wst.xml.ui.internal.XMLUIPlugin; |
| import org.eclipse.wst.xml.ui.internal.preferences.XMLUIPreferenceNames; |
| import org.w3c.dom.Element; |
| import org.w3c.dom.NodeList; |
| |
| /** |
| * @author nitin |
| * |
| */ |
| public class TestInferredContentModel extends TestCase { |
| |
| /** |
| * |
| */ |
| public TestInferredContentModel() { |
| } |
| |
| public void testInferredAttrTypeDefault_bug318108() { |
| boolean useInferred = XMLUIPlugin.getDefault().getPreferenceStore().getBoolean(XMLUIPreferenceNames.USE_INFERRED_GRAMMAR); |
| XMLUIPlugin.getDefault().getPreferenceStore().setValue(XMLUIPreferenceNames.USE_INFERRED_GRAMMAR, true); |
| |
| |
| IDOMModel model = (IDOMModel) StructuredModelManager.getModelManager().createUnManagedStructuredModelFor(ContentTypeIdForXML.ContentTypeID_XML); |
| model.getStructuredDocument().set("<root>\n<a r=\"1\"/>\n<a>\n</root>\n"); |
| |
| EditorModelUtil.addFactoriesTo(model); |
| // need to wait for delayed DOMObserver to build inferred content model |
| try { |
| Thread.sleep(5000); |
| } |
| catch (InterruptedException e1) { |
| // TODO Auto-generated catch block |
| e1.printStackTrace(); |
| } |
| |
| NodeList elementsByTagName = model.getDocument().getElementsByTagName("a"); |
| try { |
| for (int i = 0; i < elementsByTagName.getLength(); i++) { |
| Element a = (Element) elementsByTagName.item(i); |
| a.getAttribute("r"); |
| } |
| } |
| catch (Exception e) { |
| // https://bugs.eclipse.org/bugs/show_bug.cgi?id=318108 |
| fail(e.toString()); |
| } |
| finally { |
| XMLUIPlugin.getDefault().getPreferenceStore().setValue(XMLUIPreferenceNames.USE_INFERRED_GRAMMAR, useInferred); |
| } |
| } |
| } |