1..145 # __construct ok 1 - __construct() creates an empty validator schema ok 2 - __construct() creates an empty widget form schema ok 3 - __construct() can take an array of default values as its first argument ok 4 - __construct() takes a CSRF secret as its second argument ok 5 - __construct() takes a CSRF secret as its second argument ok 6 - __construct() can disable the CSRF protection by passing false as the second argument ok 7 - __construct() uses CSRF protection if null is passed as the second argument and it's enabled globally # ->getOption() ->setOption() ok 8 - __construct takes an option array as its second argument ok 9 - ->setOption() changes the value of an option # ->setDefault() ->getDefault() ->hasDefault() ->setDefaults() ->getDefaults() ok 10 - setDefaults() sets the form default values ok 11 - setDefault() sets a default value ok 12 - hasDefault() returns true if the form has a default value for the given field ok 13 - hasDefault() returns false if the form does not have a default value for the given field ok 14 - getDefault() returns a default value for a given field ok 15 - getDefault() returns null if the form does not have a default value for a given field ok 16 - ->getDefaults() keeps the CSRF token default value ok 17 - ->setDefaults() does not set the CSRF token if CSRF is disabled # ->getName() ok 18 - ->getName() returns null if the name format is not an array ok 19 - ->getName() returns the name under which user data can be retrieved # ::enableCSRFProtection() ::disableCSRFProtection() ok 20 - ::enableCSRFProtection() enabled CSRF protection for all future forms ok 21 - ::disableCSRFProtection() disables CSRF protection for all future forms ok 22 - ::enableCSRFProtection() enabled CSRF protection for all future forms ok 23 - ::disableCSRFProtection() disables CSRF protection for all future forms ok 24 - ->isCSRFProtected() returns true if the form is CSRF protected ok 25 - ::enableCSRFProtection() can take a secret argument # ::getCSRFFieldName() ::setCSRFFieldName() ok 26 - ::setCSRFFieldName() changes the CSRF token field name ok 27 - ::getCSRFFieldName() returns the CSRF token field name # ->isMultipart() ok 28 - ->isMultipart() returns false if the form does not need a multipart form ok 29 - ->isMultipart() returns true if the form needs a multipart form # ->setValidators() ->setValidatorSchema() ->getValidatorSchema() ->setValidator() ->getValidator() ok 30 - ->setValidatorSchema() sets the current validator schema ok 31 - ->setValidators() sets field validators ok 32 - ->setValidators() sets field validators ok 33 - ->setValidator() sets a validator for a field # ->setWidgets() ->setWidgetSchema() ->getWidgetSchema() ok 34 - ->setWidgetSchema() sets the current widget schema ok 35 - ->setWidgets() sets field widgets ok 36 - ->setWidgets() sets field widgets ok 37 - ->setWidget() sets a widget for a field # ArrayAccess interface ok 38 - sfForm implements the ArrayAccess interface ok 39 - sfForm implements the ArrayAccess interface ok 40 - sfForm ArrayAccess implementation does not permit to set a form field ok 41 - sfForm implements the ArrayAccess interface ok 42 - sfForm implements the ArrayAccess interface ok 43 - sfForm ArrayAccess implementation removes form defaults ok 44 - sfForm ArrayAccess implementation removes the widget and the validator ok 45 - sfForm ArrayAccess implementation removes the widget and the validator ok 46 - sfForm ArrayAccess implementation throws a LogicException if the form field does not exist ok 47 - sfForm ArrayAccess implementation removes embedded forms ok 48 - sfForm ArrayAccess implementation removes bound values ok 49 - sfForm ArrayAccess implementation removes tainted values # Countable interface ok 50 - sfForm implements the Countable interface # Iterator interface ok 51 - sfForm implements the Iterator interface ok 52 - sfForm implements the Iterator interface ok 53 - sfForm implements the Iterator interface # ->bind() ->isValid() ->getValues() ->isBound() ->getErrorSchema() ok 54 - ->isBound() returns false if the form is not bound ok 55 - ->getValues() returns an empty array if the form is not bound ok 56 - ->isValid() returns false if the form is not bound ok 57 - ->hasErrors() returns false if the form is not bound ok 58 - ->getValue() returns null if the form is not bound ok 59 - ->isBound() returns true if the form is bound ok 60 - ->getValues() returns an array of cleaned values if the form is bound ok 61 - ->isValid() returns true if the form passes the validation ok 62 - ->hasErrors() returns false if the form passes the validation ok 63 - ->getValue() returns the cleaned value for a field name if the form is bound ok 64 - ->getValue() returns null when non-existant param is requested ok 65 - ->isValid() returns false if the form does not pass the validation ok 66 - ->isValid() returns true if the form does not pass the validation ok 67 - ->getValues() returns an empty array if the form does not pass the validation ok 68 - ->getErrorSchema() returns an error schema object with all errors # bind when field names are numeric ok 69 - ->bind() behaves correctly when field names are numeric # bind with files ok 70 - ->bind() behaves correctly with files ok 71 - ->bind() second argument is mandatory if the form is multipart # bind with files in embed form ok 72 - ->bind() behaves correctly with files in embed form # ->renderGlobalErrors() not ok 73 - ->renderGlobalErrors() renders global errors as an HTML list # Failed test (./sfFormTest.php at line 396) # got: '