Author: cbowditch
Date: Mon Jan  6 14:44:14 2020
New Revision: 1872384

URL: http://svn.apache.org/viewvc?rev=1872384&view=rev
Log:
FOP-2892; fix + test

Added:
    xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/configuration/
    
xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/configuration/DefaultConfigurationTest.java
    
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/configuration/
    
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/configuration/sample_config.xml
Modified:
    
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/configuration/DefaultConfiguration.java

Modified: 
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/configuration/DefaultConfiguration.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/configuration/DefaultConfiguration.java?rev=1872384&r1=1872383&r2=1872384&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/configuration/DefaultConfiguration.java
 (original)
+++ 
xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/configuration/DefaultConfiguration.java
 Mon Jan  6 14:44:14 2020
@@ -108,7 +108,7 @@ public class DefaultConfiguration implem
 
     @Override
     public Configuration getChild(String key) {
-        NodeList nl = element.getElementsByTagName(key);
+        NodeList nl = element.getChildNodes();
         for (int i = 0; i < nl.getLength(); ++i) {
             Node n = nl.item(i);
             if (n.getNodeName().equals(key)) {
@@ -133,13 +133,15 @@ public class DefaultConfiguration implem
 
     @Override
     public Configuration[] getChildren(String key) {
-        NodeList nl = element.getElementsByTagName(key);
-        Configuration[] result = new Configuration[nl.getLength()];
+        ArrayList<Configuration> result = new ArrayList<>(1);
+        NodeList nl = element.getChildNodes();
         for (int i = 0; i < nl.getLength(); ++i) {
             Node n = nl.item(i);
-            result[i] = new DefaultConfiguration((Element) n);
+            if (n.getNodeName().equals(key)) {
+                result.add(new DefaultConfiguration((Element) n));
+            }
         }
-        return result;
+        return result.toArray(new Configuration[0]);
     }
 
     @Override

Added: 
xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/configuration/DefaultConfigurationTest.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/configuration/DefaultConfigurationTest.java?rev=1872384&view=auto
==============================================================================
--- 
xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/configuration/DefaultConfigurationTest.java
 (added)
+++ 
xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/configuration/DefaultConfigurationTest.java
 Mon Jan  6 14:44:14 2020
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.fop.configuration;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class DefaultConfigurationTest {
+
+    DefaultConfiguration configuration;
+
+    @Before
+    public void setup() throws Exception {
+        DefaultConfigurationBuilder builder = new 
DefaultConfigurationBuilder();
+        configuration = 
builder.build(getClass().getResourceAsStream("sample_config.xml"));
+    }
+
+    @Test
+    public void testGetChild() {
+        Configuration fontsConfig = configuration.getChild("fonts");
+        assertEquals("fonts element should be direct child", "fop/fonts",  
fontsConfig.getLocation());
+    }
+
+    @Test
+    public void testGetChildren() {
+        Configuration[] fontsConfig = configuration.getChildren("fonts");
+        assertEquals("only direct children should match", 1, 
fontsConfig.length);
+        assertEquals("fonts element should be direct child", "fop/fonts", 
fontsConfig[0].getLocation());
+    }
+}

Added: 
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/configuration/sample_config.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/configuration/sample_config.xml?rev=1872384&view=auto
==============================================================================
--- 
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/configuration/sample_config.xml
 (added)
+++ 
xmlgraphics/fop/trunk/fop-core/src/test/resources/org/apache/fop/configuration/sample_config.xml
 Mon Jan  6 14:44:14 2020
@@ -0,0 +1,20 @@
+<fop version="1.0">
+
+  <renderers>
+    <renderer mime="application/pdf">
+      <fonts> 
+        <auto-detect/>
+      </fonts>
+    </renderer>
+  </renderers>
+
+  <!-- A substitution can map a font family to another. -->
+  <fonts>
+    <substitutions>  
+        <substitution>
+            <from font-family='courierNew' font-style='normal' 
font-weight='400'/>   <to font-family='Courier New'/> 
+         </substitution> 
+     </substitutions>
+  </fonts>
+
+</fop>
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-h...@xmlgraphics.apache.org

Reply via email to