added explicit tests for .. in paths

fixes #63
diff --git a/src/metadata.rs b/src/metadata.rs
index 777cb16..7d401bc 100644
--- a/src/metadata.rs
+++ b/src/metadata.rs
@@ -1464,6 +1464,24 @@
     const ED25519_4_PK8: &'static [u8] = include_bytes!("../tests/ed25519/ed25519-4.pk8.der");
 
     #[test]
+    fn no_pardir_in_target_path() {
+        let bad_paths = &[
+            "..",
+            "../some/path",
+            "../some/path/",
+            "some/../path",
+            "some/../path/..",
+        ];
+
+        for path in bad_paths.iter() {
+            assert!(safe_path(*path).is_err());
+            assert!(TargetPath::new(path.to_string()).is_err());
+            assert!(MetadataPath::new(path.to_string()).is_err());
+            assert!(VirtualTargetPath::new(path.to_string()).is_err());
+        }
+    }
+
+    #[test]
     fn path_matches_chain() {
         let test_cases: &[(bool, &str, &[&[&str]])] =
             &[