summaryrefslogtreecommitdiffstats
path: root/t/helper/untaint.t
diff options
context:
space:
mode:
Diffstat (limited to 't/helper/untaint.t')
-rw-r--r--t/helper/untaint.t19
1 files changed, 19 insertions, 0 deletions
diff --git a/t/helper/untaint.t b/t/helper/untaint.t
new file mode 100644
index 0000000..f9d8a9c
--- /dev/null
+++ b/t/helper/untaint.t
@@ -0,0 +1,19 @@
+use strict;
+use warnings;
+
+use Test::More;
+use Test::Exception;
+
+use App::BorgRestore::Helper;
+
+ok(App::BorgRestore::Helper::untaint_archive_name('abc-1234:5+1') eq 'abc-1234:5+1');
+ok(App::BorgRestore::Helper::untaint_archive_name('abc') eq 'abc');
+ok(App::BorgRestore::Helper::untaint_archive_name('root-2016-09-30T15+02:00.checkpoint') eq 'root-2016-09-30T15+02:00.checkpoint');
+
+dies_ok(sub{App::BorgRestore::Helper::untaint_archive_name('abc`"\'')}, 'special chars not allowed');
+dies_ok(sub{App::BorgRestore::Helper::untaint_archive_name('abc`')}, 'special chars not allowed');
+dies_ok(sub{App::BorgRestore::Helper::untaint_archive_name('abc"')}, 'special chars not allowed');
+dies_ok(sub{App::BorgRestore::Helper::untaint_archive_name('abc\'')}, 'special chars not allowed');
+
+
+done_testing;