001 /*
002 * Copyright 2002 - 2010 JEuclid, http://jeuclid.sf.net
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017 /* $Id: DOMNameSpaceTest.java,v 92b6a7c39d7f 2010/08/11 20:23:17 max $ */
018
019 package net.sourceforge.jeuclid.test;
020
021 import net.sourceforge.jeuclid.DOMBuilder;
022 import net.sourceforge.jeuclid.MathMLParserSupport;
023 import net.sourceforge.jeuclid.elements.AbstractJEuclidElement;
024
025 import org.junit.Assert;
026 import org.junit.Test;
027 import org.w3c.dom.Document;
028 import org.w3c.dom.Node;
029 import org.w3c.dom.mathml.MathMLDocument;
030
031 /**
032 * Tests misc DOM Namespace functionality.
033 *
034 * @version $Revision: 92b6a7c39d7f $
035 */
036 public class DOMNameSpaceTest {
037
038 /**
039 * Tests if MathML Namespace is kept.
040 *
041 * @throws Exception
042 * if the test fails.
043 */
044 @Test
045 public void testNameSpaceKeep() throws Exception {
046 final Document doc = MathMLParserSupport
047 .parseString("<math xmlns='http://www.w3.org/1998/Math/MathML'><mn>1</mn></math>");
048 Assert.assertEquals(doc.getDocumentElement().getNamespaceURI(),
049 AbstractJEuclidElement.URI);
050 final MathMLDocument jdoc = DOMBuilder.getInstance()
051 .createJeuclidDom(doc);
052 Assert.assertEquals(jdoc.getDocumentElement().getNamespaceURI(),
053 AbstractJEuclidElement.URI);
054 }
055
056 /**
057 * Tests if MathML Namespace is added.
058 *
059 * @throws Exception
060 * if the test fails.
061 */
062 @Test
063 public void testNameSpaceAdded() throws Exception {
064 final Document doc = MathMLParserSupport
065 .parseString("<math><mn>1</mn></math>");
066 Assert.assertEquals(doc.getDocumentElement().getNamespaceURI(), null);
067 final MathMLDocument jdoc = DOMBuilder.getInstance()
068 .createJeuclidDom(doc);
069 Assert.assertEquals(jdoc.getDocumentElement().getNamespaceURI(),
070 AbstractJEuclidElement.URI);
071 }
072
073 /**
074 * Tests foreign namespaces.
075 *
076 * @throws Exception
077 * if the test fails.
078 */
079 @Test
080 public void testForeignNameSpaces() throws Exception {
081 final Document doc = MathMLParserSupport
082 .parseString("<math><f:bla xmlns:f='http://www.atest.org/'>1</f:bla></math>");
083 Assert.assertEquals(doc.getDocumentElement().getNamespaceURI(), null);
084 final MathMLDocument jdoc = DOMBuilder.getInstance()
085 .createJeuclidDom(doc);
086 Assert.assertEquals(jdoc.getDocumentElement().getNamespaceURI(),
087 AbstractJEuclidElement.URI);
088 final Node n = jdoc.getDocumentElement().getChildNodes().item(0);
089 Assert.assertEquals(n.getNamespaceURI(), "http://www.atest.org/");
090 }
091
092 }