580 lines
19 KiB
Rust
580 lines
19 KiB
Rust
extern crate mtgott;
|
|
use mtgott::dirsearch::*;
|
|
use mtgott::runtime::*;
|
|
use std::rc::Rc;
|
|
|
|
macro_rules! assert_gave {
|
|
($a:expr, $str:literal) => {
|
|
assert_eq!($a, String::from($str))
|
|
};
|
|
}
|
|
|
|
#[test]
|
|
fn t001(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "boba".into(), text: "{$ aboba = \"xdds\" $}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{{ boba.aboba }}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(Value::Int(0), "index", 50).unwrap(), "xdds");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t002(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "boba/biba/aaa/bbb".into(), text: "{$ aboba = \"xdds\" $}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{{ boba. biba .aaa.bbb.aboba }}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(Value::Int(0), "index", 50).unwrap(), "xdds");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t003(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "boba/biba/aaa/bbb".into(), text: "{$ aboba = \"xdds\" $}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index/yyy/eee".into(), text: "{{ boba. biba .aaa.bbb.aboba }}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(Value::Int(0), "index.yyy.eee", 50).unwrap(), "xdds");
|
|
}
|
|
|
|
#[test]
|
|
fn t004(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "boba/biba/aaa/bbb".into(), text: "{$ pack $} {$ AAA = \"xdds\" $} {$}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index/yyy/eee".into(), text: "{{ boba. biba .aaa.bbb.pack.AAA }}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(Value::Int(0), "index.yyy.eee", 50).unwrap(), "xdds");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t005(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "file".into(), text: "{$ pack $} {$ const = 12345 $} {$}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{{ file.pack.const }}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(Value::Int(0), "index", 50).unwrap(), "12345");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t006(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "file".into(), text: "{$ pack $} {$ const = file.pack.pack2.chislo $} {$ pack2 $} {$ chislo = 123 $} {$} {$}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{{ file.pack.const }}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(Value::Int(0), "index", 50).unwrap(), "123");
|
|
}
|
|
|
|
#[test]
|
|
fn t007(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "file".into(), text: "{$ pack $}{$c=45$}{$} {@ el @}---{{this.pack.c}}---{@} ".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{#file.el#}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(Value::Int(0), "index", 50).unwrap(), "---45---");
|
|
}
|
|
|
|
#[test]
|
|
fn t008(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "file".into(), text: "{@ el a@}---{{a}}---{@} ".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{#file.el \"45\"#}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(Value::Int(0), "index", 50).unwrap(), "---45---");
|
|
}
|
|
|
|
#[test]
|
|
fn t009(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "file".into(), text: "{@ el a b c d e f g @}---{{a}}---{{c}}---{{e}}---{{g}}---{@} ".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{#file.el 1 2 3 4 5 6 7#}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(Value::Int(0), "index", 50).unwrap(), "---1---3---5---7---");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t010(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "file".into(), text: "{@el a b @} {{a}}{{b}} {@} ".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{#file.el 1 2#}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(Value::Int(0), "index", 50).unwrap(), "12");
|
|
}
|
|
|
|
#[test]
|
|
fn t011(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "file".into(), text: "{@el a @} {{a[1]}} {@} ".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{#file.el $#}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Arr(Rc::new(vec![Value::Int(10), Value::Int(20), Value::Int(30)])),
|
|
"index", 50
|
|
).unwrap(), "20");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t012(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "file".into(), text: "{@el a @} {{a[1]}} {@} ".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{#file[\"el\"] $#}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Arr(Rc::new(vec![Value::Int(10), Value::Int(20), Value::Int(30)])),
|
|
"index", 50
|
|
).unwrap(), "20");
|
|
}
|
|
|
|
#[test]
|
|
fn t013(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{{}} {{}}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0),
|
|
"index", 50
|
|
).unwrap(), " ");
|
|
}
|
|
|
|
#[test]
|
|
fn t014(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: " {{ $[0 ]}} {{$ [1]}} {{$[ 2]}} ".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Arr(Rc::new(vec![Value::Int(10), Value::Int(20), Value::Int(30)])),
|
|
"index", 50
|
|
).unwrap(), "10 20 30");
|
|
}
|
|
|
|
#[test]
|
|
fn t015(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "help".into(), text: " {@www $ a b@} {{$[a]}} {{$[b]}} {@}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: " {#help.www $ 2 1 #}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Arr(Rc::new(vec![Value::Int(10), Value::Int(11), Value::Int(12)])),
|
|
"index", 50
|
|
).unwrap(), "12 11");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t016(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "__".into(), text: "".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: " {{ (x:x) 10 }}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0),
|
|
"index", 50
|
|
).unwrap(), "10");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t017(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "__".into(), text: "".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: " {{ (x:y:x) 0 1 }}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0),
|
|
"index", 50
|
|
).unwrap(), "0");
|
|
}
|
|
|
|
#[test]
|
|
fn t018(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "__".into(), text: "{$arr = [0, 10, 20, 30]$}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: " {{ (x:y:z:z.arr[x]) 2 \"Lol\" __ }}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "20");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t019(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "__".into(), text: "{$arr = [0, 10, 20, 30]$}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: " {{ (x:y:z:w:w x z) 2 \"Lol\" __ x:z:z.arr[x]}}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "20");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t020(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "__".into(), text: "{$arr = [0, 10, 20, 30]$}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: " {{ (x:y:z:w:w x z) __ \"Lol\" 2 x:z:x.arr[z]}}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "20");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t021(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "__".into(), text: "{$arr = [\" zero\", 10, 20,]$} {$dict$} {$lol = \"HELLO\"$} {@ cat a b @}{#a#}{#b#}{@} {$}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: " {{ __.dict.cat ((a:b:c:c[b][a]) \"lol\" \"dict\" __) __.arr[0] }}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "HELLO zero");
|
|
}
|
|
|
|
#[test]
|
|
fn t022(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "__".into(), text: "{$arr = [\" zero\", 10, 20,]$} {$dict$} {$lol = \"HELLO\"$} {@ cat a b @}{#a#}{#b#}{@} {$}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: " {{ __.dict.cat ((a:b:c:c[a][b]) \"dict\" \"lol\" __) __.arr[0] }}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "HELLO zero");
|
|
}
|
|
|
|
#[test]
|
|
fn t023(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "aaa".into(), text: "{@ el arr @}
|
|
|
|
A
|
|
|
|
B
|
|
{@} ".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: " {# aaa.el ([1, 2, 3]) #}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "A\n\nB");
|
|
}
|
|
|
|
macro_rules! valarr {
|
|
($($el:expr),* $(,)?) => {
|
|
Value::Arr(std::rc::Rc::new(
|
|
vec![$($el),*]
|
|
))
|
|
};
|
|
}
|
|
|
|
macro_rules! valdict {
|
|
($($el:literal => $val:expr),* $(,)?) => {{
|
|
let mut hashmap = std::collections::HashMap::new();
|
|
$(hashmap.insert($el.to_string(), $val);)*
|
|
Value::Dict(Rc::new(hashmap))
|
|
}}
|
|
}
|
|
|
|
#[test]
|
|
fn t024(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "A".into(), text: "".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{% let x = $[2]%} \n {{x}} \n{%} ".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
valarr![Value::Int(10), Value::Int(11), Value::Int(12)],
|
|
"index", 50
|
|
).unwrap(), "12");
|
|
}
|
|
|
|
#[test]
|
|
fn t025(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "A".into(), text: "".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{% let l1 = $[2]%} {%let l2 = l1 [ 0]%}\n\n {{ l2}} \n {%} \n{%} ".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
valarr![Value::Int(0), Value::Int(1), valarr![Value::Int(69), Value::Int(228)]],
|
|
"index", 50
|
|
).unwrap(), "69");
|
|
}
|
|
|
|
#[test]
|
|
fn t026(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "A".into(), text: "".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{% for v: $ %}{{v}}{%nogap %} ".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
valarr![Value::Int(10), Value::Int(11), Value::Int(12)],
|
|
"index", 50
|
|
).unwrap(), "101112");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t027(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "A".into(), text: "".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{% for v: $ %}{{v}}{% gap %} ".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
valarr![Value::Int(10), Value::Int(11), Value::Int(12)],
|
|
"index", 50
|
|
).unwrap(), "10 11 12");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t028(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "A".into(), text: "".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{% for v: $ %} \n {{v}} \n {% lf %} ".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
valarr![Value::Int(10), Value::Int(11), Value::Int(12)],
|
|
"index", 50
|
|
).unwrap(), "10\n11\n12");
|
|
}
|
|
|
|
#[test]
|
|
fn t029(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "A".into(), text: "".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{% for k, v: $ %} {{k }}->{{ v}} {% lf %} ".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
valarr![Value::Int(10), Value::Int(11), Value::Int(12)],
|
|
"index", 50
|
|
).unwrap(), "0->10\n1->11\n2->12");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t030(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{% for k, v: $ %} {{k }}->{{ v}} {% lf %} ".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
valarr![Value::Int(10), Value::Int(11), Value::Int(12)],
|
|
"index", 50
|
|
).unwrap(), "0->10\n1->11\n2->12");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t031(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{% for k, v: $ %} {{k }}:{{ v}} {% gap %} ".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
let a = r.render(
|
|
valdict!["a" => Value::Int(1), "b" => Value::Int(2)],
|
|
"index", 50
|
|
).unwrap();
|
|
assert!(["a:1 b:2".to_string(), "b:2 a:1".to_string()].contains(&a));
|
|
}
|
|
|
|
#[test]
|
|
fn t032(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{%for v: $ %} ->{{v}} {%gap%} ".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
let a = r.render(
|
|
valdict!["a" => Value::Int(1), "b" => Value::Int(2)],
|
|
"index", 50
|
|
).unwrap();
|
|
assert!(["->1 ->2".to_string(), "->2 ->1".to_string()].contains(&a));
|
|
}
|
|
|
|
#[test]
|
|
fn t033(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{% if 1%}Yes{%}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "Yes");
|
|
}
|
|
|
|
#[test]
|
|
fn t034(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{% if 0%}Yes{%}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "");
|
|
}
|
|
|
|
#[test]
|
|
fn t035(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{%if 0%}Yes{%endif%}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "");
|
|
}
|
|
|
|
#[test]
|
|
fn t036(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{%if 0%}Yes{%else%}No{%}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "No");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t037(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{%if \"0\"%}Yes{%else%}No{%endif%}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "Yes");
|
|
}
|
|
|
|
#[test]
|
|
fn t038(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{%if \"0\"%}Yes{%else%}No{%endif%}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "Yes");
|
|
}
|
|
|
|
#[test]
|
|
fn t039(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{%if \"\"%}Yes{%else if 1%}Or Maybe{%else%}No{%endif%}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "Or Maybe");
|
|
}
|
|
|
|
#[test]
|
|
fn t040(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{%if \"\"%}Yes{%else if 0%}Or Maybe{%}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t041(){
|
|
let i = MtgottDirContent{mtgott: vec![
|
|
FileWithPath{v_path: "dictionaries".into(), text: "{$ empty $}{$} {$second$}{$el = 3$} {$}".into()}
|
|
], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "{%if dictionaries.empty%}Yes {%else if dictionaries.second %}Or Maybe {%}".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
Value::Int(0), "index", 50
|
|
).unwrap(), "Or Maybe");
|
|
}
|
|
|
|
|
|
#[test]
|
|
fn t042(){
|
|
let i = MtgottDirContent{mtgott: vec![], imtgott: vec![
|
|
FileWithPath{v_path: "index".into(), text: "
|
|
START
|
|
{%for x: $%}
|
|
{%if x.a%} A {% else if x.b%}B {%else if x.c%}C {%else%} D{%}
|
|
|
|
{%lf%}
|
|
END
|
|
".into()}
|
|
], plain: vec![]};
|
|
let r = get_root_html_from_dir_text_html(i).unwrap();
|
|
assert_gave!(r.render(
|
|
valarr![
|
|
valdict!["a" => Value::Int(1), "b" => Value::Int(1), "c" => Value::Int(1),],
|
|
valdict!["a" => Value::Int(0), "b" => Value::Int(1), "c" => Value::Int(1),],
|
|
valdict!["a" => Value::Int(0), "b" => Value::Int(0), "c" => Value::Int(1),],
|
|
valdict!["a" => Value::Int(0), "b" => Value::Int(0), "c" => Value::Int(0),],
|
|
],
|
|
"index", 50
|
|
).unwrap(), "START\n A\n B\n C\n D\nEND");
|
|
} |