public function testOfControllerWithRegistrationClosed()
 {
     // make sure registration is closed
     $bvalues = array('namespace' => OptionDAO::APP_OPTIONS, 'option_name' => 'is_registration_open', 'option_value' => 'false');
     $bdata = FixtureBuilder::build('options', $bvalues);
     $controller = new PasswordResetController(true);
     $result = $controller->go();
     $v_mgr = $controller->getViewManager();
     $this->assertEqual($v_mgr->getTemplateDataItem('is_registration_open'), false);
     $this->assertNoPattern('/Register/', $result);
 }
    public function testOfControllerGoodTokenMismatchedPassword()
    {
        $time = strtotime('-1 hour');
        $q = <<<SQL
UPDATE #prefix#owners
SET password_token = '{$this->token}_{$time}'
WHERE id = 1;
SQL;
        $this->db->exec($q);
        $_POST['password'] = '******';
        $_POST['password_confirm'] = 'the same';
        $_GET['token'] = $this->token;
        $controller = new PasswordResetController(true);
        $result = $controller->go();
        $v_mgr = $controller->getViewManager();
        $this->assertEqual($v_mgr->getTemplateDataItem('errormsg'), "Passwords didn't match.");
    }
 public function testOwnerHasCleanStateAfterSuccessfulPasswordReset()
 {
     $builder = FixtureBuilder::build('owners', array('id' => 3, 'full_name' => 'Zaphod Beeblebrox', 'email' => '*****@*****.**', 'is_activated' => false, 'failed_logins' => 10, 'account_status' => 'Deactivated account'));
     $dao = DAOFactory::getDAO('OwnerDAO');
     $owner = $dao->getByEmail('*****@*****.**');
     $token = $owner->setPasswordRecoveryToken();
     $_POST['password'] = '******';
     $_POST['password_confirm'] = 'trillian';
     $_GET['token'] = $token;
     $controller = new PasswordResetController(true);
     $result = $controller->go();
     // Lack of error_msg in PasswordResetController's view template indicates success.
     $v_mgr = $controller->getViewManager();
     $this->assertFalse($v_mgr->getTemplateDataItem('error_msg'));
     $owner = $dao->getByEmail('*****@*****.**');
     $this->assertTrue($owner->is_activated);
     $this->assertEqual($owner->account_status, '');
     $this->assertEqual($owner->failed_logins, 0);
 }