IN: http.server.components.tests USING: http.server.components http.server.forms http.server.validators namespaces tools.test kernel accessors tuple-syntax mirrors http http.server.actions http.server.templating.fhtml io.streams.string io.streams.null ; validation-failed? off [ 3 ] [ "3" "n" validate ] unit-test [ 123 ] [ "" "n" 123 >>default validate ] unit-test [ f ] [ validation-failed? get ] unit-test [ t ] [ "3x" "n" validate validation-error? ] unit-test [ t ] [ validation-failed? get ] unit-test [ "" ] [ "" "email" validate ] unit-test [ "slava@jedit.org" ] [ "slava@jedit.org" "email" validate ] unit-test [ "slava@jedit.org" ] [ "slava@jedit.org" "email" t >>required validate ] unit-test [ t ] [ "a" "email" t >>required validate validation-error? ] unit-test [ t ] [ "a" "email" validate validation-error? ] unit-test TUPLE: test-tuple text number more-text ; : test-tuple new ; : ( -- form ) "test"
"resource:extra/http/server/components/test/form.fhtml" >>view-template "resource:extra/http/server/components/test/form.fhtml" >>edit-template "text" t >>required add-field "number" 123 >>default t >>required 0 >>min-value 10 >>max-value add-field "more-text" "hi" >>default add-field ; [ ] [ values set view-form write-response-body drop ] unit-test [ ] [ values set edit-form write-response-body drop ] unit-test [ TUPLE{ test-tuple number: 123 more-text: "hi" } ] [ from-tuple set-defaults values-tuple ] unit-test [ H{ { "text" "fdafsa" } { "number" "xxx" } { "more-text" "" } } params set H{ } clone values set [ t ] [ (validate-form) ] unit-test [ "fdafsa" ] [ "text" value ] unit-test [ t ] [ "number" value validation-error? ] unit-test ] with-scope [ [ ] [ "n" 0 >>min-value 10 >>max-value "n" set ] unit-test [ "123" ] [ "123" "n" get validate value>> ] unit-test [ ] [ "i" "i" set ] unit-test [ 3 ] [ "3" "i" get validate ] unit-test [ t ] [ "3.9" "i" get validate validation-error? ] unit-test H{ } clone values set [ ] [ 3 "i" set-value ] unit-test [ "3" ] [ [ "i" get render-view ] with-string-writer ] unit-test [ ] [ [ "i" get render-edit ] with-null-stream ] unit-test [ ] [ "t" "t" set ] unit-test [ ] [ "hello world" "t" set-value ] unit-test [ ] [ [ "t" get render-edit ] with-null-stream ] unit-test ] with-scope [ t ] [ "wake up sheeple" dup "n" validate = ] unit-test [ ] [ "password" "p" set ] unit-test