usersmanager.test.php
来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 896 行 · 第 1/2 页
PHP
896 行
<?phpif(!defined("PATH_TEST_TO_ROOT")) { define('PATH_TEST_TO_ROOT', getcwd().'/../../');}if(!defined('CONFIG_TEST_INCLUDED')){ require_once PATH_TEST_TO_ROOT."tests/config_test.php";}require_once "Database.test.php";require 'UsersManager/API.php';require_once 'core/Site.php';class Test_Piwik_UsersManager extends Test_Database{ function setUp() { parent::setUp(); // setup the access layer $pseudoMockAccess = new FakeAccess; FakeAccess::setIdSitesView( array(1,2)); FakeAccess::setIdSitesAdmin( array(3,4)); //finally we set the user as a super user by default FakeAccess::$superUser = true; Zend_Registry::set('access', $pseudoMockAccess); } private function _checkUserHasNotChanged($user, $newPassword, $newEmail = null, $newAlias= null) { if(is_null($newEmail)) { $newEmail = $user['email']; } if(is_null($newAlias)) { $newAlias = $user['alias']; } $userAfter = Piwik_UsersManager_API::getUser($user["login"]); unset($userAfter['date_registered']); // we now compute what the token auth should be, it should always be a hash of the login and the current password // if the password has changed then the token_auth has changed! $user['token_auth']= Piwik_UsersManager_API::getTokenAuth($user["login"], md5($newPassword) ); $user['password']=md5($newPassword); $user['email']=$newEmail; $user['alias']=$newAlias; $this->assertEqual($user,$userAfter); } /** * bad password => exception */ function test_updateUser_badpasswd() { $login="login"; $user = array('login'=>$login, 'password'=>"geqgeagae", 'email'=>"test@test.com", 'alias'=>"alias"); Piwik_UsersManager_API::addUser($user['login'],$user['password'] ,$user['email'] ,$user['alias'] ); try { Piwik_UsersManager_API::updateUser( $login, "pas"); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionInvalidPassword)", $expected->getMessage()); $this->_checkUserHasNotChanged($user,$user['password']); return; } $this->fail("Exception not raised."); }//} class test{ /** * wrong login / integer => exception */ function test_addUser_wrongLogin1() { try { Piwik_UsersManager_API::addUser(12, "password", "email@email.com", "alias"); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionInvalidLogin)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * wrong login / too short => exception */ function test_addUser_wrongLogin2() { try { Piwik_UsersManager_API::addUser("gegag'ggea'", "password", "email@email.com", "alias"); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionInvalidLogin)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * wrong login / too long => exception */ function test_addUser_wrongLogin3() { try { Piwik_UsersManager_API::addUser("gegag11gge@", "password", "email@email.com", "alias"); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionInvalidLogin)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * wrong login / bad characters => exception */ function test_addUser_wrongLogin4() { try { Piwik_UsersManager_API::addUser("geg'ag11gge@", "password", "email@email.com", "alias"); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionInvalidLogin)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * existing login => exception */ function test_addUser_existingLogin() { try { Piwik_UsersManager_API::addUser("test", "password", "email@email.com", "alias"); Piwik_UsersManager_API::addUser("test", "password2", "em2ail@email.com", "al2ias"); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionLoginExists)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * too short -> exception */ function test_addUser_wrongPassword1() { try { Piwik_UsersManager_API::addUser("geggeqgeqag", "pas", "email@email.com", "alias"); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionInvalidPassword)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * too long -> exception */ function test_addUser_wrongPassword2() { try { Piwik_UsersManager_API::addUser("ghqgeggg", "gegageqqqqqqqgeqgqeg84897897897897g122", "email@email.com", "alias"); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionInvalidPassword)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * empty -> exception */ function test_addUser_wrongPassword3() { try { Piwik_UsersManager_API::addUser("geggeqgeqag", "", "email@email.com", "alias"); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionInvalidPassword)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * wrong email => exception */ function test_addUser_wrongEmail1() { try { Piwik_UsersManager_API::addUser("geggeqgeqag", "geqgeagae", "ema'il@email.com", "alias"); } catch (Exception $expected) { $this->assertPattern("(mail)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * wrong email => exception */ function test_addUser_wrongEmail2() { try { Piwik_UsersManager_API::addUser("geggeqgeqag", "geqgeagae", "@email.com", "alias"); } catch (Exception $expected) { $this->assertPattern("(mail)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * wrong email => exception */ function test_addUser_wrongEmail3() { try { Piwik_UsersManager_API::addUser("geggeqgeqag", "geqgeagae", "email@.com", "alias"); } catch (Exception $expected) { $this->assertPattern("(mail)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * wrong email => exception */ function test_addUser_wrongEmail4() { try { Piwik_UsersManager_API::addUser("geggeqgeqag", "geqgeagae", "email@4.", "alias"); } catch (Exception $expected) { $this->assertPattern("(mail)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * empty email => exception */ function test_addUser_emptyEmail() { try { Piwik_UsersManager_API::addUser("geggeqgeqag", "geqgeagae", "", "alias"); } catch (Exception $expected) { $this->assertPattern("(mail)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * empty alias => use login */ function test_addUser_emptyAlias() { $login ="geggeqgeqag"; Piwik_UsersManager_API::addUser($login, "geqgeagae", "mgeagi@geq.com", ""); $user = Piwik_UsersManager_API::getUser($login); $this->assertEqual($user['alias'], $login); $this->assertEqual($user['login'], $login); } /** * no alias => use login */ function test_addUser_noAliasSpecified() { $login ="geggeqg455eqag"; Piwik_UsersManager_API::addUser($login, "geqgeagae", "mgeagi@geq.com"); $user = Piwik_UsersManager_API::getUser($login); $this->assertEqual($user['alias'], $login); $this->assertEqual($user['login'], $login); } /** * normal test case * */ function test_addUser() { $login ="geggeq55eqag"; $password = "mypassword"; $email = "mgeag4544i@geq.com"; $alias = "her is my alias )(&|\" '拢%*(&%+))"; Piwik_UsersManager_API::addUser($login, $password, $email, $alias); $user = Piwik_UsersManager_API::getUser($login); // check that the date registered is correct $this->assertTrue( strtotime($user['date_registered']) >= time() - 1 , "the date_registered ".strtotime($user['date_registered'])." is different from the time() ". time()); $this->assertTrue($user['date_registered'] <= time() ); // check that token is 32 chars $this->assertEqual(strlen($user['password']), 32); // that the password has been md5 $this->assertEqual($user['token_auth'], md5($login.md5($password))); // check that all fields are the same $this->assertEqual($user['login'], $login); $this->assertEqual($user['password'], md5($password)); $this->assertEqual($user['email'], $email); $this->assertEqual($user['alias'], $alias); } /** * user doesnt exist => exception */ function test_deleteUser_doesntExist() { Piwik_UsersManager_API::addUser("geggeqgeqag", "geqgeagae", "test@test.com", "alias"); try { Piwik_UsersManager_API::deleteUser("geggeqggnew"); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionDeleteDoesNotExist)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * empty name, doesnt exists =>exception */ function test_deleteUser_emptyUser() { try { Piwik_UsersManager_API::deleteUser(""); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionDeleteDoesNotExist)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * null user,, doesnt exists =>exception */ function test_deleteUser_nullUser() { try { Piwik_UsersManager_API::deleteUser(null); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionDeleteDoesNotExist)", $expected->getMessage()); return; } $this->fail("Exception not raised."); } /** * normal case, user deleted */ function test_deleteUser() { //create the 3 websites $idsite = Piwik_SitesManager_API::addSite("site1",array("http://piwik.net","http://piwik.com/test/")); $idsite = Piwik_SitesManager_API::addSite("site2",array("http://piwik.com/test/")); $idsite = Piwik_SitesManager_API::addSite("site3",array("http://piwik.org")); //add user and set some rights Piwik_UsersManager_API::addUser("geggeqgeqag", "geqgeagae", "test@test.com", "alias"); Piwik_UsersManager_API::setUserAccess("geggeqgeqag", "view", array(1,2)); Piwik_UsersManager_API::setUserAccess("geggeqgeqag", "admin", array(1,3)); // check rights are set $this->assertNotEqual(Piwik_UsersManager_API::getSitesAccessFromUser("geggeqgeqag"), array()); // delete the user Piwik_UsersManager_API::deleteUser("geggeqgeqag"); // try to get it, it should raise an exception try { $user = Piwik_UsersManager_API::getUser("geggeqgeqag"); $this->fail("Exception not raised."); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionUserDoesNotExist)", $expected->getMessage()); } // add the same user Piwik_UsersManager_API::addUser("geggeqgeqag", "geqgeagae", "test@test.com", "alias"); //checks access have been deleted //to do so we recreate the same user login and check if the rights are still there $this->assertEqual(Piwik_UsersManager_API::getSitesAccessFromUser("geggeqgeqag"), array()); } /** * no user => exception */ function test_getUser_noUser() { // try to get it, it should raise an exception try { $user = Piwik_UsersManager_API::getUser("geggeqgeqag"); $this->fail("Exception not raised."); } catch (Exception $expected) { $this->assertPattern("(UsersManager_ExceptionUserDoesNotExist)", $expected->getMessage()); } } /** * normal case */ function test_getUser() { $login ="geggeq55eqag"; $password = "mypassword"; $email = "mgeag4544i@geq.com"; $alias = ""; Piwik_UsersManager_API::addUser($login, $password, $email, $alias); $user = Piwik_UsersManager_API::getUser($login);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?