diff --git a/src/test/java/org/apache/sling/dynamicinclude/pathmatcher/PrefixPathMatcherTest.java b/src/test/java/org/apache/sling/dynamicinclude/pathmatcher/PrefixPathMatcherTest.java
new file mode 100644
index 0000000..df45d38
--- /dev/null
+++ b/src/test/java/org/apache/sling/dynamicinclude/pathmatcher/PrefixPathMatcherTest.java
@@ -0,0 +1,42 @@
+/*-
+ * 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.sling.dynamicinclude.pathmatcher;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+
+public class PrefixPathMatcherTest {
+    private final PrefixPathMatcher ppm = new PrefixPathMatcher("/foo");
+
+    @Test
+    public void testMatch() {
+        assertTrue(ppm.match("/foo"));
+        assertTrue(ppm.match("/foobar"));
+    }
+
+    @Test
+    public void testNoMatch() {
+        assertFalse(ppm.match("/barbar"));
+        assertFalse(ppm.match("/bar/foo"));
+        assertFalse(ppm.match(""));
+        assertFalse(ppm.match(null));
+    }
+}
diff --git a/src/test/java/org/apache/sling/dynamicinclude/pathmatcher/RegexPathMatcherTest.java b/src/test/java/org/apache/sling/dynamicinclude/pathmatcher/RegexPathMatcherTest.java
new file mode 100644
index 0000000..34484f0
--- /dev/null
+++ b/src/test/java/org/apache/sling/dynamicinclude/pathmatcher/RegexPathMatcherTest.java
@@ -0,0 +1,41 @@
+/*-
+ * 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.sling.dynamicinclude.pathmatcher;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import org.junit.Test;
+
+public class RegexPathMatcherTest {
+    private final RegexPathMatcher rpm = new RegexPathMatcher("^/[fg]oo");
+
+    @Test
+    public void testMatch() {
+        assertTrue(rpm.match("/foo"));
+        assertTrue(rpm.match("/goo"));
+    }
+
+    @Test
+    public void testNoMatch() {
+        assertFalse(rpm.match("/foobar"));
+        assertFalse(rpm.match(""));
+        assertFalse(rpm.match(null));
+    }
+}
