aboutsummaryrefslogtreecommitdiff
path: root/test/literals.ml
diff options
context:
space:
mode:
Diffstat (limited to 'test/literals.ml')
-rw-r--r--test/literals.ml64
1 files changed, 62 insertions, 2 deletions
diff --git a/test/literals.ml b/test/literals.ml
index 0d7799d..6070f86 100644
--- a/test/literals.ml
+++ b/test/literals.ml
@@ -20,7 +20,7 @@ let result =
(* String and escaped delimiter *)
-let nested_squote () = _test_instruction "'<<''key''>>'" result
+let nested_squote () = _test_instruction {|'<<''key''>>'|} result
let nested_dquote () = _test_instruction {|"<<""key"">>"|} result
let long_quote () = _test_instruction {|{<<{key}>>}|} result
@@ -36,7 +36,63 @@ let nested_string_expression2 () = _test_instruction {|"<<('key')>>"|} result
(* The block shall also interpreted when inside a comment *)
-let nested_comment () = _test_instruction "!! '<<variable>>'" result
+let nested_comment () =
+ _test_instruction {|!'<<expr>>'|} [ Tree.Ast.Comment _position ];
+ _test_instruction {|!"<<expr>>"|} [ Tree.Ast.Comment _position ];
+ _test_instruction {|!{<<expr>>}|} [ Tree.Ast.Comment _position ]
+
+let comment2 () =
+ _test_instruction {|!"text <<expr>>"|} [ Tree.Ast.Comment _position ];
+ _test_instruction {|!{text <<expr>>}|} [ Tree.Ast.Comment _position ];
+ _test_instruction {|!'text <<expr>>'|} [ Tree.Ast.Comment _position ]
+
+(** A single quote inside a string does not mean we are starting nested string
+ *)
+let direct_text () =
+ _test_instruction {|"don't"|}
+ [ Tree.Ast.Expression (Tree.Ast.Literal (_position, [ T.Text "don't" ])) ];
+ _test_instruction {|'don"t'|}
+ [ Tree.Ast.Expression (Tree.Ast.Literal (_position, [ T.Text "don\"t" ])) ];
+ _test_instruction {|'don{t'|}
+ [ Tree.Ast.Expression (Tree.Ast.Literal (_position, [ T.Text "don{t" ])) ]
+
+let elements_sequence () =
+ _test_instruction {|"'<<$array[''key'']>>'"|}
+ [
+ Tree.Ast.Expression
+ (Tree.Ast.Literal (_position, [ T.Text "'<<$array[''key'']>>'" ]));
+ ]
+
+let expression () =
+ _test_instruction {|'<<iif(var=0,1,0)>>'|}
+ [
+ Tree.Ast.Expression
+ (Tree.Ast.Literal
+ ( _position,
+ [
+ T.Expression
+ [
+ Tree.Ast.Function
+ ( _position,
+ T.Iif,
+ [
+ Tree.Ast.BinaryOp
+ ( _position,
+ T.Eq,
+ Tree.Ast.Ident
+ {
+ Tree.Ast.pos = _position;
+ name = "VAR";
+ index = None;
+ },
+ Tree.Ast.Integer (_position, "0") );
+ Tree.Ast.Integer (_position, "1");
+ Tree.Ast.Integer (_position, "0");
+ ] );
+ ];
+ T.Text "";
+ ] ));
+ ]
let test =
( "Literals",
@@ -53,4 +109,8 @@ let test =
Alcotest.test_case "Nested string with expression2" `Quick
nested_string_expression2;
Alcotest.test_case "Nested comment" `Quick nested_comment;
+ Alcotest.test_case "Comment2" `Quick comment2;
+ Alcotest.test_case "Quote in string" `Quick direct_text;
+ Alcotest.test_case "elements_sequence" `Quick elements_sequence;
+ Alcotest.test_case "expression" `Quick expression;
] )