示例#1
0
 public function testEditUserEmail()
 {
     $_COOKIE['epuser_id'] = '1.5ce7f6e2d7de4db00c297e1da0d48ac';
     $u = new THEUSER();
     $u->loggedin = 1;
     $this->assertEquals('*****@*****.**', $u->email());
     $d = $u->update_self(array('firstname' => 'Experiment', 'lastname' => 'User', 'email' => '*****@*****.**', 'emailpublic' => '0', 'postcode' => 'EH1 99SP', 'password' => '', 'url' => '', 'optin' => '', 'user_id' => 1), false);
     // email should not change as user needs to confirm
     $this->assertEquals('*****@*****.**', $u->email());
     $tokenCount = $this->getConnection()->getRowCount('tokens', 'data = "1::user@example.com"');
     $this->assertEquals(1, $tokenCount, 'correct number of email confirm tokens');
     // token is based on the time so we can't test for it
     $queryTable = $this->getConnection()->createQueryTable('tokens', 'SELECT type, data FROM tokens WHERE data = "1::user@example.com"');
     $expectedTable = $this->createXmlDataSet(dirname(__FILE__) . '/_fixtures/expectedTokens.xml')->getTable("tokens");
     $this->assertTablesEqual($expectedTable, $queryTable);
     $alertCount = $this->getConnection()->getRowCount('alerts', 'email = "*****@*****.**"');
     $this->assertEquals(1, $alertCount, 'correct number of alerts');
     $queryTable = $this->getConnection()->createQueryTable('tokens', 'SELECT token, type, data FROM tokens WHERE data = "1::user@example.com"');
     $tokenRow = $queryTable->getRow(0);
     $token = '2-' . $tokenRow['token'];
     $u->confirm_email($token, false);
     $this->assertEquals('*****@*****.**', $u->email(), 'confirming with token updates email address');
     $tokenCount = $this->getConnection()->getRowCount('tokens', 'data = "1::user@example.com"');
     $this->assertEquals(0, $tokenCount, 'token deleted once email confirmed');
     $alertCount = $this->getConnection()->getRowCount('alerts', 'email = "*****@*****.**"');
     $this->assertEquals(1, $alertCount, 'one alert for new email address');
     $alertCount = $this->getConnection()->getRowCount('alerts', 'email = "*****@*****.**"');
     $this->assertEquals(0, $alertCount, 'no alerts for old email address');
 }