| 
									
										
										
										
											2008-06-15 03:38:12 -04:00
										 |  |  | USING: kernel sequences tools.test assocs html.forms validators accessors | 
					
						
							|  |  |  | namespaces ;
 | 
					
						
							| 
									
										
										
										
											2009-05-16 01:29:21 -04:00
										 |  |  | FROM: html.forms => values ;
 | 
					
						
							| 
									
										
										
										
											2009-08-13 20:21:44 -04:00
										 |  |  | IN: html.forms.tests | 
					
						
							| 
									
										
										
										
											2008-06-15 03:38:12 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | : with-validation ( quot -- messages )
 | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         begin-form | 
					
						
							|  |  |  |         call
 | 
					
						
							|  |  |  |     ] with-scope ; inline
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ 14 ] [ | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         "14" [ v-number 13 v-min-value 100 v-max-value ] validate | 
					
						
							|  |  |  |     ] with-validation | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         "140" [ v-number 13 v-min-value 100 v-max-value ] validate | 
					
						
							|  |  |  |         [ validation-error? ] | 
					
						
							|  |  |  |         [ value>> "140" = ] | 
					
						
							|  |  |  |         bi and
 | 
					
						
							|  |  |  |     ] with-validation | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | TUPLE: person name age ;
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | person { | 
					
						
							|  |  |  |     { "name" [ ] } | 
					
						
							|  |  |  |     { "age" [ v-number 13 v-min-value 100 v-max-value ] } | 
					
						
							|  |  |  | } define-validators | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t t ] [ | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         { { "age" "" } } | 
					
						
							|  |  |  |         { { "age" [ v-required ] } } | 
					
						
							|  |  |  |         validate-values | 
					
						
							|  |  |  |         validation-failed? | 
					
						
							|  |  |  |         "age" value | 
					
						
							|  |  |  |         [ validation-error? ] | 
					
						
							|  |  |  |         [ message>> "required" = ] | 
					
						
							|  |  |  |         bi and
 | 
					
						
							|  |  |  |     ] with-validation | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ H{ { "a" 123 } } f ] [ | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         H{ | 
					
						
							|  |  |  |             { "a" "123" } | 
					
						
							|  |  |  |             { "b" "c" } | 
					
						
							|  |  |  |             { "c" "d" } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         H{ | 
					
						
							|  |  |  |             { "a" [ v-integer ] } | 
					
						
							|  |  |  |         } validate-values | 
					
						
							|  |  |  |         values
 | 
					
						
							|  |  |  |         validation-failed? | 
					
						
							|  |  |  |     ] with-validation | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t "foo" ] [ | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         "foo" validation-error | 
					
						
							|  |  |  |         validation-failed? | 
					
						
							|  |  |  |         form get errors>> first
 | 
					
						
							|  |  |  |     ] with-validation | 
					
						
							|  |  |  | ] unit-test |