public function testFormRule() { $form = new HTML_QuickForm2('track', 'post'); $foo = $form->addElement('text', 'foo', array('id' => 'foo')); $form->addRule(new FormRule($form)); $this->assertFalse($form->validate()); $this->assertEquals('an error message', $foo->getError()); }
/** * login checks username and password and set the loginstatus appropriate, * returns login-form or loggedin-message * * @return string the html-string of login-form or message */ private function login() { // smarty-template $sLogin = new JudoIntranetSmarty(); // decode uri $uri = 'index.php'; $r = ''; if ($this->get('r') !== false) { $uri = base64_decode($this->get('r')); $r = '&r=' . $this->get('r'); } // formular $form = new HTML_QuickForm2('login', 'post', array('name' => 'login', 'action' => 'index.php?id=login' . $r)); // renderer $renderer = HTML_QuickForm2_Renderer::factory('default'); $renderer->setOption('required_note', parent::lang('class.MainView#login#form#requiredNote')); // elements // username $username = $form->addElement('text', 'username')->setLabel(parent::lang('class.MainView#login#form#username') . ':'); $username->addRule('required', parent::lang('class.MainView#login#rule#required.username')); // $username->addRule('regexp',''); // password $password = $form->addElement('password', 'password')->setLabel(parent::lang('class.MainView#login#form#password') . ':'); $password->addRule('required', parent::lang('class.MainView#login#rule#required.password')); // $password->addRule('regexp',''); // submit-button $form->addElement('submit', 'submit', array('value' => parent::lang('class.MainView#login#form#loginButton'))); // callback $form->addRule('callback', 'Authentifizierung fehlgeschlagen', array('callback' => array($this, 'callback_check_login'))); // smarty-mesage $sLogin->assign('caption', parent::lang('class.MainView#login#message#caption')); // validate if ($form->validate()) { // login and redirect $_SESSION['user']->change_user($username->getValue(), true); header('Location:' . $uri); exit; } else { // smarty message and form $sLogin->assign('message', parent::lang($_SESSION['user']->get_login_message())); $sLogin->assign('form', $form->render($renderer)); } // return smarty return $sLogin->fetch('smarty.login.tpl'); }