/******************************************************************************* | |
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* Contributors: | |
* Oracle - initial API and implementation from Oracle TopLink | |
******************************************************************************/ | |
package org.eclipse.persistence.testing.oxm.platform; | |
import org.eclipse.persistence.platform.xml.XMLPlatform; | |
import org.eclipse.persistence.platform.xml.XMLPlatformFactory; | |
import org.eclipse.persistence.platform.xml.XMLPlatformException; | |
import org.eclipse.persistence.testing.oxm.OXTestCase; | |
import javax.xml.parsers.DocumentBuilder; | |
import javax.xml.parsers.DocumentBuilderFactory; | |
import org.w3c.dom.*; | |
public class PlatformNamespaceTestCases extends OXTestCase { | |
public PlatformNamespaceTestCases(String name) { | |
super(name); | |
} | |
private Document getDocument() throws Exception{ | |
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); | |
DocumentBuilder builder = builderFactory.newDocumentBuilder(); | |
Document document = builder.getDOMImplementation().createDocument("","test",null); | |
return document; | |
} | |
public void testNamespace() throws Exception { | |
XMLPlatform xmlPlatform = XMLPlatformFactory.getInstance().getXMLPlatform(); | |
String prefix = "abc"; | |
String firstElementName = "first"; | |
String namespaceURI = "http://www.w3.org/2001/blah"; | |
Document document = getDocument(); | |
Node firstElement = document.createElementNS(namespaceURI, prefix+":"+firstElementName); | |
document.getDocumentElement().appendChild(firstElement); | |
log(document); | |
String namespace = xmlPlatform.resolveNamespacePrefix(firstElement, prefix); | |
log("\nnamespace returned was: " + namespace); | |
this.assertEquals("Incorrect namespace returned.",namespace,namespaceURI); | |
} | |
public void testNamespaceOnParent() throws Exception { | |
XMLPlatform xmlPlatform = XMLPlatformFactory.getInstance().getXMLPlatform(); | |
String prefix = "abc"; | |
String firstElementName = "first"; | |
String secondElementName = "second"; | |
String namespaceURI = "http://www.w3.org/2001/blah"; | |
Document document = getDocument(); | |
Node firstElement = document.createElementNS(namespaceURI, prefix+":"+firstElementName); | |
document.getDocumentElement().appendChild(firstElement); | |
Node secondElement = document.createElementNS("", secondElementName); | |
firstElement.appendChild(secondElement); | |
log(document); | |
String namespace = xmlPlatform.resolveNamespacePrefix(secondElement, prefix); | |
log("\nnamespace returned was: " + namespace); | |
this.assertEquals("Incorrect namespace returned.",namespace,namespaceURI); | |
} | |
public void testNamespaceNotDeclared() throws Exception { | |
XMLPlatform xmlPlatform = XMLPlatformFactory.getInstance().getXMLPlatform(); | |
String prefix = "abc"; | |
String firstElementName = "first"; | |
String secondElementName = "second"; | |
Document document = getDocument(); | |
Node firstElement = document.createElementNS("", firstElementName); | |
document.getDocumentElement().appendChild(firstElement); | |
Node secondElement = document.createElementNS("", secondElementName); | |
firstElement.appendChild(secondElement); | |
log(document); | |
String namespace = xmlPlatform.resolveNamespacePrefix(secondElement, prefix); | |
log("\nnamespace returned was: " + namespace); | |
this.assertNull("Namespace should have been null but wasn't.", namespace); | |
} | |
} |