USING: html.templates html.templates.chloe
tools.test io.streams.string kernel sequences ascii boxes
namespaces xml html.components html.forms
splitting unicode.categories furnace accessors
html.templates.chloe.compiler ;
IN: html.templates.chloe.tests
: run-template
with-string-writer [ "\r\n\t" member? not ] filter
"?>" split1 nip ; inline
: test-template ( name -- template )
"vocab:html/templates/chloe/test/"
prepend ;
[ "Hello world" ] [
[
"test1" test-template call-template
] run-template
] unit-test
[ "Blah blah" "Hello world" ] [
[
title set
[
"test2" test-template call-template
] run-template
title get box>
] with-scope
] unit-test
[ "Hello worldBlah blah" ] [
[
[
"test2" test-template call-template
] "test3" test-template with-boilerplate
] run-template
] unit-test
: test4-aux? t ;
[ "True" ] [
[
"test4" test-template call-template
] run-template
] unit-test
: test5-aux? f ;
[ "" ] [
[
"test5" test-template call-template
] run-template
] unit-test
[ ] [ begin-form ] unit-test
[ ] [ "A label" "label" set-value ] unit-test
SINGLETON: link-test
M: link-test link-title drop "" ;
M: link-test link-href drop "http://www.apple.com/foo&bar" ;
[ ] [ link-test "link" set-value ] unit-test
[ ] [ "int x = 5;" "code" set-value ] unit-test
[ ] [ "c" "mode" set-value ] unit-test
[ ] [ { 1 2 3 } "inspector" set-value ] unit-test
[ ] [ "a paragraph
" "html" set-value ] unit-test
[ ] [ "sheeple" "field" set-value ] unit-test
[ ] [ "a password" "password" set-value ] unit-test
[ ] [ "a\nb\nc" "textarea" set-value ] unit-test
[ ] [ "new york" "choice" set-value ] unit-test
[ ] [ { "new york" "detroit" "minneapolis" } "choices" set-value ] unit-test
[ ] [
[
"test8" test-template call-template
] run-template drop
] unit-test
[ ] [ { 1 2 3 } "numbers" set-value ] unit-test
[ "" ] [
[
"test7" test-template call-template
] run-template [ blank? not ] filter
] unit-test
TUPLE: person first-name last-name ;
[ ] [
{
T{ person f "RBaxter" "Unknown" }
T{ person f "Doug" "Coleman" }
} "people" set-value
] unit-test
[ "RBaxter | Unknown |
Doug | Coleman |
" ] [
[
"test8" test-template call-template
] run-template [ blank? not ] filter
] unit-test
[ ] [
{
H{ { "first-name" "RBaxter" } { "last-name" "Unknown" } }
H{ { "first-name" "Doug" } { "last-name" "Coleman" } }
} "people" set-value
] unit-test
[ "RBaxter | Unknown |
Doug | Coleman |
" ] [
[
"test8" test-template call-template
] run-template [ blank? not ] filter
] unit-test
[ ] [ 1 "id" set-value ] unit-test
[ "Hello" ] [
[
"test9" test-template call-template
] run-template
] unit-test
[ ] [ H{ { "a" H{ { "b" "c" } } } } values set ] unit-test
[ "" ] [
[
"test10" test-template call-template
] run-template
] unit-test
[ ] [ begin-form ] unit-test
[ ] [