summaryrefslogtreecommitdiffstats
path: root/config-application-package/src/test/java/com/yahoo
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2022-03-24 12:59:47 +0100
committerJon Marius Venstad <venstad@gmail.com>2022-03-24 12:59:47 +0100
commit04927f9142d5582d79757b9b66e2924f7d84dd93 (patch)
treee2a692f50d248adcdf15cfa738e9ca9091784004 /config-application-package/src/test/java/com/yahoo
parent73b080b527e303a60a365b2bb95b72dcc2f81f4c (diff)
Add a top layer path to virtual file system
Diffstat (limited to 'config-application-package/src/test/java/com/yahoo')
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/IncludeProcessorTest.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/config-application-package/src/test/java/com/yahoo/config/application/IncludeProcessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/IncludeProcessorTest.java
index 56ba4f01048..3de624c78ac 100644
--- a/config-application-package/src/test/java/com/yahoo/config/application/IncludeProcessorTest.java
+++ b/config-application-package/src/test/java/com/yahoo/config/application/IncludeProcessorTest.java
@@ -2,6 +2,7 @@
package com.yahoo.config.application;
import com.yahoo.config.application.api.ApplicationPackage;
+import org.junit.Assert;
import org.junit.Test;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
@@ -13,6 +14,9 @@ import java.io.File;
import java.io.IOException;
import java.nio.file.NoSuchFileException;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
/**
* @author Ulf Lilleengen
*/
@@ -78,11 +82,33 @@ public class IncludeProcessorTest {
TestBase.assertDocument(expected, doc);
}
+ @Test
+ public void testIllegalParent() throws ParserConfigurationException, IOException, SAXException, TransformerException {
+ try {
+ File app = new File("src/test/resources/multienvapp_fail_parent");
+ DocumentBuilder docBuilder = Xml.getPreprocessDocumentBuilder();
+ new IncludeProcessor(app).process(docBuilder.parse(getServices(app)));
+ fail("sibling to package should not be allowed");
+ }
+ catch (IllegalArgumentException e) {
+ assertEquals("src/test/resources/multienvapp_fail_parent/../multienvapp/services.xml is not a descendant of src/test/resources/multienvapp_fail_parent", e.getMessage());
+ }
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testIllegalParent2() throws ParserConfigurationException, IOException, SAXException, TransformerException {
+ File app = new File("src/test/resources/multienvapp_fail_parent2");
+ DocumentBuilder docBuilder = Xml.getPreprocessDocumentBuilder();
+ new IncludeProcessor(app).process(docBuilder.parse(getServices(app)));
+ fail("absolute include path should not be allowed");
+ }
+
@Test(expected = NoSuchFileException.class)
public void testRequiredIncludeIsDefault() throws ParserConfigurationException, IOException, SAXException, TransformerException {
File app = new File("src/test/resources/multienvapp_failrequired");
DocumentBuilder docBuilder = Xml.getPreprocessDocumentBuilder();
new IncludeProcessor(app).process(docBuilder.parse(getServices(app)));
+ fail("should fail by default to include a non-existent file");
}
static File getServices(File app) {