summaryrefslogtreecommitdiffstats
path: root/pigeonhole/tests/extensions/variables/quoting.svtest
blob: f65e4e458f4c7cb0b1064e9838593b2e06d215ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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";
    }
}