1..32 # __construct() ok 1 - ->__construct() can take no argument ok 2 - ->__construct() can take an array of default HTML attributes ok 3 - __construct() throws an InvalidArgumentException if you pass some non existant options ok 4 - The exception contains the non existant option names # getRequiredOptions ok 5 - ->getRequiredOptions() returns an array of required option names ok 6 - __construct() throws an RuntimeException if you don't pass a required option # ->getOption() ->setOption() ->setOptions() ->getOptions() ->hasOption() ok 7 - ->setOption() sets an option value ok 8 - ->getOption() returns null if the option does not exist ok 9 - ->hasOption() returns true if the option exist ok 10 - ->hasOption() returns false if the option does not exist ok 11 - ->setOption() throws an InvalidArgumentException if the option is not registered # ->addOption() ok 12 - ->addOption() adds a new option ok 13 - ->getOptions() returns an array of all options # ->setAttribute() ->getAttribute() ok 14 - ->setAttribute() sets a new default attribute for the widget # ->getAttributes() ok 15 - ->getAttributes() returns an array of attributes # ->setAttributes() ok 16 - ->setAttributes() sets attributes # ->attributesToHtml() ok 17 - ->attributesToHtml() converts an attribute array to an HTML attribute string # ->renderTag() ok 18 - ->renderTag() renders a HTML tag with attributes ok 19 - ->renderTag() renders an empty string if the tag name is empty # ->renderContentTag() ok 20 - ->renderContentTag() renders a HTML tag with content and attributes ok 21 - ->renderContentTag() renders an empty string if the tag name is empty # ::escapeOnce() ok 22 - ::escapeOnce() escapes an HTML strings ok 23 - ::escapeOnce() does not escape an already escaped string ok 24 - ::escapeOnce() does not escape an already escaped string ok 25 - ::escapeOnce() converts objects to string # ::fixDoubleEscape() ok 26 - ::fixDoubleEscape() fixes double escaped strings # ::getCharset() ::setCharset() ok 27 - ::getCharset() returns the charset to use for widgets ok 28 - ::setCharset() changes the charset to use for widgets # ::setXhtml() ::isXhtml() ok 29 - ::isXhtml() return true if the widget must returns XHTML tags ok 30 - ::setXhtml() changes the value of the XHTML tag # ->getJavaScripts() ->getStylesheets() ok 31 - ->getJavaScripts() returns an array of stylesheets ok 32 - ->getStylesheets() returns an array of JavaScripts # Looks like everything went fine.