summaryrefslogtreecommitdiffstats
path: root/pigeonhole/tests/extensions/variables/quoting.svtest
diff options
context:
space:
mode:
Diffstat (limited to 'pigeonhole/tests/extensions/variables/quoting.svtest')
-rw-r--r--pigeonhole/tests/extensions/variables/quoting.svtest36
1 files changed, 36 insertions, 0 deletions
diff --git a/pigeonhole/tests/extensions/variables/quoting.svtest b/pigeonhole/tests/extensions/variables/quoting.svtest
new file mode 100644
index 0000000..f65e4e4
--- /dev/null
+++ b/pigeonhole/tests/extensions/variables/quoting.svtest
@@ -0,0 +1,36 @@
+require "vnd.dovecot.testsuite";
+
+require "variables";
+require "encoded-character";
+
+test "Encodings - RFC examples" {
+ set "s" "$";
+ set "foo" "bar";
+
+ # "${fo\o}" => ${foo} => the expansion of variable foo.
+ if not string :is "${fo\o}" "bar" {
+ test_fail "failed 'the expansion of variable foo (${s}{fo\\o})'";
+ }
+
+ # "${fo\\o}" => ${fo\o} => illegal identifier => left verbatim.
+ if not string :is "${fo\\o}" "${s}{fo\\o}" {
+ test_fail "failed 'illegal identifier => left verbatim'";
+ }
+
+ # "\${foo}" => ${foo} => the expansion of variable foo.
+ if not string "\${foo}" "bar" {
+ test_fail "failed 'the expansion of variable foo (\\${s}{foo})'";
+ }
+
+ # "\\${foo}" => \${foo} => a backslash character followed by the
+ # expansion of variable foo.
+ if not string "\\${foo}" "\\bar" {
+ test_fail "failed 'a backslash character followed by expansion of variable foo";
+ }
+
+ set "name" "Ethelbert";
+ if not string "dear${hex:20 24 7b 4e}ame}" "dear Ethelbert" {
+ test_fail "failed 'dear Ethelbert' example";
+ }
+}
+