==== no search string extension
inline:{plain1@1.example=plain2@2.example,{"aa bb"@cc.example="dd ee"@dd.example}}
internal:plain1@1.example -external-> external:plain2@2.example (null extension)
internal:aa bb@cc.example -external-> external:"dd ee"@dd.example (null extension)
external:"aa bb"@cc.example -external-> external:"dd ee"@dd.example (null extension)
external:"aa bb"@cc.example -external-> internal:dd ee@dd.example (null extension)
internal:plain1@1.example -internal-> external:plain2@2.example (null extension)
internal:aa bb@cc.example -internal-> external:(not found) (null extension)
internal:"aa bb"@cc.example -internal-> external:"dd ee"@dd.example (null extension)
==== with search string extension
inline:{plain1@1.example=plain2@2.example,{"aa bb"@cc.example="dd ee"@dd.example}}
internal:plain1+ext@1.example -external-> external:plain2@2.example (+ext)
internal:aa bb+ax bx@cc.example -external-> external:"dd ee"@dd.example (+ax bx)
external:"aa bb+ax bx"@cc.example -external-> external:"dd ee"@dd.example (+ax bx)
external:"aa bb+ax bx"@cc.example -external-> internal:dd ee@dd.example (+ax bx)
internal:plain1+ext@1.example -internal-> external:plain2@2.example (+ext)
internal:"aa bb+ax bx"@cc.example -internal-> external:(not found) (null extension)
internal:"aa bb"+ax bx@cc.example -internal-> external:"dd ee"@dd.example (+ax bx)
==== at in localpart
inline:{"a@b"=foo@example,"a.b."=bar@example}
external:"a@b"@localhost.localdomain -external-> external:foo@example (null extension)
external:"a@b+ext"@localhost.localdomain -external-> external:foo@example (+ext)
external:"a.b."@localhost.localdomain -external-> external:bar@example (null extension)
==== legacy support
inline:{"a@b"=extern-1@example,a@b=intern-1@example,a.b.=intern-2@example}
internal:a@b@localhost.localdomain -external-first-> external:extern-1@example (null extension)
internal:a.b.@localhost.localdomain -external-first-> external:intern-2@example (null extension)
==== at_domain test
inline:{plain1@1.example=plain2@2.example,@3.example=plain4@4.example,plain5@3.example=plain6@6.example}
external:plain1+ext@1.example -external-> external:plain2@2.example (+ext)
external:plain2@2.example -external-> external:(not found) (null extension)
external:plain3@3.example -external-> external:plain4@4.example (null extension)
external:plain5@3.example -external-> external:plain6@6.example (null extension)
==== domain test
inline:{plain1@1.example=plain2@2.example,3.example=plain4@4.example,plain5@3.example=plain6@6.example}
external:plain1+ext@1.example -external-> external:plain2@2.example (+ext)
external:plain2@2.example -external-> external:(not found) (null extension)
external:plain3@3.example -external-> external:plain4@4.example (null extension)
external:plain5@3.example -external-> external:plain6@6.example (null extension)
==== at_domain for local domain
inline:{ab=foo@example,@localhost.localdomain=@bar.example}
external:ab@localhost.localdomain -external-> external:foo@example (null extension)
external:cd@localhost.localdomain -external-> external:@bar.example (null extension)
==== localpart_at_if_local and domain test
inline:{ab@=foo@example,localhost.localdomain=@bar.example}
internal:ab@localhost.localdomain -external-> external:foo@example (null extension)
internal:ab+ext@localhost.localdomain -external-> external:foo@example (+ext)
internal:cd@localhost.localdomain -external-> external:@bar.example (null extension)
==== localpart_at has less precedence than domain test
inline:{ab@=foo@example,localhost.localdomain=@bar.example}
external:ab@localhost.localdomain -external-> external:@bar.example (null extension)
external:ab@foo -external-> external:foo@example (null extension)
==== domain and subdomain test
inline:{example=example-result,.example=dot-example-result}
external:plain1+ext@1.example -external-> external:(not found) (null extension)
external:foo@sub.example -external-> external:(not found) (null extension)
external:foo@example -external-> external:example-result (null extension)
external:foo@example -external-> external:example-result (null extension)
external:foo@sub.example -external-> external:example-result (null extension)
external:foo@sub.sub.example -external-> external:example-result (null extension)
external:foo@example -external-> external:example-result (null extension)
external:foo@sub.example -external-> external:dot-example-result (null extension)
external:foo@sub.sub.example -external-> external:dot-example-result (null extension)
