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 + -
显示快捷键?