usersmanager.test.php

来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 896 行 · 第 1/2 页

PHP
896
字号
							    // check that all fields are the same		$this->assertEqual($user['login'], $login);		$this->assertIsA($user['password'], 'string');		$this->assertIsA($user['date_registered'], 'string');		$this->assertEqual($user['email'], $email);				//alias shouldnt be empty even if no alias specified		$this->assertTrue( strlen($user['alias']) > 0);    }            /**     * no user => empty array     */    function test_getUsers_noUser()    {    	$this->assertEqual(Piwik_UsersManager_API::getUsers(), array());    }        /**     * normal case     */    function test_getUsers()    {    	    	Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");    	Piwik_UsersManager_API::addUser("geggeqge632ge56a4qag", "geqgegeagae", "tesggt@tesgt.com", "alias");    	Piwik_UsersManager_API::addUser("geggeqgeqagqegg", "geqgeaggggae", "tesgggt@tesgt.com");    	    	   $users = Piwik_UsersManager_API::getUsers();    	   foreach($users as &$user)    	   {    	   	unset($user['token_auth']);    	   	unset($user['date_registered']);    	   }    	$this->assertEqual($users,     		array(    			array('login' => "gegg4564eqgeqag", 'password' => md5("geqgegagae"),    'alias' => "alias", 'email' => "tegst@tesgt.com"),    			array('login' => "geggeqge632ge56a4qag",  'password' => md5("geqgegeagae"),'alias' =>  "alias",  'email' => "tesggt@tesgt.com"),    			array('login' => "geggeqgeqagqegg",  'password' => md5("geqgeaggggae"),  'alias' => 'geggeqgeqagqegg','email' => "tesgggt@tesgt.com"),    		)    	);    	    }        /**     * normal case     */    function test_getUsersLogin()    {    	    	Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");    	Piwik_UsersManager_API::addUser("geggeqge632ge56a4qag", "geqgegeagae", "tesggt@tesgt.com", "alias");    	Piwik_UsersManager_API::addUser("geggeqgeqagqegg", "geqgeaggggae", "tesgggt@tesgt.com");    	    	$logins = Piwik_UsersManager_API::getUsersLogin();    	    	$this->assertEqual($logins,     		array(  "gegg4564eqgeqag", "geggeqge632ge56a4qag",  "geggeqgeqagqegg")    		);     }            /**     * no login => exception     */    function test_setUserAccess_noLogin()    {    	// try to get it, it should raise an exception		try {    		Piwik_UsersManager_API::setUserAccess("nologin", "view", 1);	        $this->fail("Exception not raised.");    	}    	catch (Exception $expected) {    		$this->assertPattern("(UsersManager_ExceptionUserDoesNotExist)", $expected->getMessage());        }    	    }        /**     * wrong access specified  => exception     */    function test_setUserAccess_wrongAccess()    {    	Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");    	    	// try to get it, it should raise an exception		try {    		Piwik_UsersManager_API::setUserAccess("gegg4564eqgeqag", "viewnotknown", 1);	        $this->fail("Exception not raised.");    	}    	catch (Exception $expected) {    		$this->assertPattern("(UsersManager_ExceptionAccessValues)", $expected->getMessage());        }    }        /**     * idsites = all => apply access to all websites with admin access     */    function test_setUserAccess_idsitesIsAll()    {    	Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");    	    	FakeAccess::$superUser = false;    	    	Piwik_UsersManager_API::setUserAccess("gegg4564eqgeqag", "view", "all");    	    	FakeAccess::$superUser = true;    	$access = Piwik_UsersManager_API::getSitesAccessFromUser("gegg4564eqgeqag");    	    	FakeAccess::$superUser = false;    	$this->assertEqual( array_keys($access), FakeAccess::getSitesIdWithAdminAccess());    	    	// we want to test the case for which we have actually set some rights    	// if this is not OK then change the setUp method and add some admin rights for some websites    	$this->assertTrue( count(array_keys($access)) > 0);    }        /**     * idsites = all AND user is superuser=> apply access to all websites     */    function test_setUserAccess_idsitesIsAllSuperuser()    {    	FakeAccess::$superUser = true;    	    	$id1=Piwik_SitesManager_API::addSite("test",array("http://piwik.net","http://piwik.com/test/"));		$id2=Piwik_SitesManager_API::addSite("test2",array("http://piwik.net","http://piwik.com/test/"));    	$id3=Piwik_SitesManager_API::addSite("test3",array("http://piwik.net","http://piwik.com/test/"));    	$id4=Piwik_SitesManager_API::addSite("test4",array("http://piwik.net","http://piwik.com/test/"));    	$id5=Piwik_SitesManager_API::addSite("test5",array("http://piwik.net","http://piwik.com/test/"));    			Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");    	Piwik_UsersManager_API::setUserAccess("gegg4564eqgeqag", "view", "all");    	    	$access = Piwik_UsersManager_API::getSitesAccessFromUser("gegg4564eqgeqag");    	$this->assertEqual( array($id1,$id2,$id3,$id4,$id5), array_keys($access));    	    }        /**     * idsites is empty => no acccess set     */    function test_setUserAccess_idsitesEmpty()    {    	Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");    	    	Piwik_UsersManager_API::setUserAccess("gegg4564eqgeqag", "view", array());    	    	$access = Piwik_UsersManager_API::getSitesAccessFromUser("gegg4564eqgeqag");    	$this->assertEqual( array(), $access);    	    }        /**     * normal case, access set for only one site     */    function test_setUserAccess_idsitesOneSite()    {    	Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");    	$id1=Piwik_SitesManager_API::addSite("test",array("http://piwik.net","http://piwik.com/test/"));		    	Piwik_UsersManager_API::setUserAccess("gegg4564eqgeqag", "view", array(1));    	    	$access = Piwik_UsersManager_API::getSitesAccessFromUser("gegg4564eqgeqag");    	$this->assertEqual( array(1), array_keys($access));    }    /**     * normal case, access set for multiple sites     */    function test_setUserAccess_idsitesMultipleSites()    {    	    	Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");    	$id1=Piwik_SitesManager_API::addSite("test",array("http://piwik.net","http://piwik.com/test/"));		$id2=Piwik_SitesManager_API::addSite("test",array("http://piwik.net","http://piwik.com/test/"));		$id3=Piwik_SitesManager_API::addSite("test",array("http://piwik.net","http://piwik.com/test/"));		    	Piwik_UsersManager_API::setUserAccess("gegg4564eqgeqag", "view", array($id1,$id3));    	    	$access = Piwik_UsersManager_API::getSitesAccessFromUser("gegg4564eqgeqag");    	$this->assertEqual( array($id1,$id3), array_keys($access));    }    /**     * normal case, string idSites comma separated access set for multiple sites     */    function test_setUserAccess_withIdSitesIsStringCommaSeparated()    {    	    	Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");    	$id1=Piwik_SitesManager_API::addSite("test",array("http://piwik.net","http://piwik.com/test/"));		$id2=Piwik_SitesManager_API::addSite("test",array("http://piwik.net","http://piwik.com/test/"));		$id3=Piwik_SitesManager_API::addSite("test",array("http://piwik.net","http://piwik.com/test/"));		    	Piwik_UsersManager_API::setUserAccess("gegg4564eqgeqag", "view", "1,3");    	    	$access = Piwik_UsersManager_API::getSitesAccessFromUser("gegg4564eqgeqag");    	$this->assertEqual( array($id1,$id3), array_keys($access));    }            /**     * normal case,  set different acccess to different websites for one user     */    function test_setUserAccess_multipleCallDistinctAccessSameUser()    {    	Piwik_UsersManager_API::addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");    	$id1=Piwik_SitesManager_API::addSite("test",array("http://piwik.net","http://piwik.com/test/"));		$id2=Piwik_SitesManager_API::addSite("test",array("http://piwik.net","http://piwik.com/test/"));		    	Piwik_UsersManager_API::setUserAccess("gegg4564eqgeqag", "view", array($id1));    	Piwik_UsersManager_API::setUserAccess("gegg4564eqgeqag", "admin", array($id2));    	    	$access = Piwik_UsersManager_API::getSitesAccessFromUser("gegg4564eqgeqag");    	$this->assertEqual( array($id1=>'view',$id2=>'admin'), $access);    }        /**     * normal case, set different access to different websites for multiple users     */    function test_setUserAccess_multipleCallDistinctAccessMultipleUser()    {    	Piwik_UsersManager_API::addUser("user1", "geqgegagae", "tegst@tesgt.com", "alias");    	Piwik_UsersManager_API::addUser("user2", "geqgegagae", "tegst2@tesgt.com", "alias");    	$id1=Piwik_SitesManager_API::addSite("test1",array("http://piwik.net","http://piwik.com/test/"));		$id2=Piwik_SitesManager_API::addSite("test2",array("http://piwik.net","http://piwik.com/test/"));		$id3=Piwik_SitesManager_API::addSite("test2",array("http://piwik.net","http://piwik.com/test/"));		    	Piwik_UsersManager_API::setUserAccess("user1", "view", array($id1,$id2));    	Piwik_UsersManager_API::setUserAccess("user2", "admin", array($id1));    	Piwik_UsersManager_API::setUserAccess("user2", "view", array($id3));    	    	$access1 = Piwik_UsersManager_API::getSitesAccessFromUser("user1");    	$access2 = Piwik_UsersManager_API::getSitesAccessFromUser("user2");    	$wanted1 = array( $id1 => 'view', $id2 => 'view', );    	$wanted2 = array( $id1 => 'admin', $id3 => 'view' );    	    	$this->assertEqual($access1, $wanted1);    	$this->assertEqual($access2, $wanted2);    	    	    	$access1 = Piwik_UsersManager_API::getUsersAccessFromSite($id1);    	$access2 = Piwik_UsersManager_API::getUsersAccessFromSite($id2);    	$access3 = Piwik_UsersManager_API::getUsersAccessFromSite($id3);    	$wanted1 = array( 'user1' => 'view', 'user2' => 'admin', );    	$wanted2 = array( 'user1' => 'view' );    	$wanted3 = array( 'user2' => 'view' );    	    	$this->assertEqual($access1, $wanted1);    	$this->assertEqual($access2, $wanted2);    	$this->assertEqual($access3, $wanted3);    	    	$access1 = Piwik_UsersManager_API::getUsersSitesFromAccess('view');    	$access2 = Piwik_UsersManager_API::getUsersSitesFromAccess('admin');    	$wanted1 = array( 'user1' => array($id1,$id2), 'user2' => array($id3) );    	$wanted2 = array( 'user2' => array($id1) );    	    	$this->assertEqual($access1, $wanted1);    	$this->assertEqual($access2, $wanted2);     }        /**     * we set access for one user for one site several times and check that it is updated     */    function test_setUserAccess_multipleCallOverwriteSingleUserOneSite()    {    	Piwik_UsersManager_API::addUser("user1", "geqgegagae", "tegst@tesgt.com", "alias");    	    	$id1=Piwik_SitesManager_API::addSite("test1",array("http://piwik.net","http://piwik.com/test/"));		$id2=Piwik_SitesManager_API::addSite("test2",array("http://piwik.net","http://piwik.com/test/"));		    	Piwik_UsersManager_API::setUserAccess("user1", "view", array($id1,$id2));    	Piwik_UsersManager_API::setUserAccess("user1", "admin", array($id1));    	    	$access1 = Piwik_UsersManager_API::getSitesAccessFromUser("user1");    	$wanted1 = array( $id1 => 'admin', $id2 => 'view', );    	    	$this->assertEqual($access1, $wanted1);    	    }            /**     * wrong user =>exception     */    function test_getSitesAccessFromUser_wrongUser()    {    	try {    		$access1 = Piwik_UsersManager_API::getSitesAccessFromUser("user1");    	}    	catch (Exception $expected) {    		$this->assertPattern("(UsersManager_ExceptionUserDoesNotExist)", $expected->getMessage());            return;        }        $this->fail("Exception not raised.");    }        /**     *wrong idsite =>exception     */    function test_getUsersAccessFromSite_wrongSite()    {    	try {    		$access1 = Piwik_UsersManager_API::getUsersAccessFromSite(1);    	}    	catch (Exception $expected) {            return;        }        $this->fail("Exception not raised.");    }        /**     * wrong access =>exception     */    function test_getUsersSitesFromAccess_wrongSite()    {    	try {    		$access1 = Piwik_UsersManager_API::getUsersSitesFromAccess('unknown');    	}    	catch (Exception $expected) {    		$this->assertPattern("(UsersManager_ExceptionAccessValues)", $expected->getMessage());            return;        }        $this->fail("Exception not raised.");    }            /**     * non existing login => exception     */    function test_updateUser_wrongLogin()    {    	try {    		Piwik_UsersManager_API::updateUser(  "lolgin", "password");    	}    	catch (Exception $expected) {    		$this->assertPattern("(UsersManager_ExceptionUserDoesNotExist)", $expected->getMessage());            return;        }        $this->fail("Exception not raised.");    }            /**     * no email no alias => keep old ones     */    function test_updateUser_noemailnoalias()    {    	$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'] );		    	Piwik_UsersManager_API::updateUser(  $login, "passowordOK");    	    	$this->_checkUserHasNotChanged($user, "passowordOK");    }        /**     *no email => keep old ones     */    function test_updateUser_noemail()    {    	    	$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'] );		    	Piwik_UsersManager_API::updateUser(  $login, "passowordOK", null, "newalias");    	    	$this->_checkUserHasNotChanged($user, "passowordOK", null, "newalias");    }        /**     * no alias => keep old ones     */    function test_updateUser_noalias()    {    	    	$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'] );		    	Piwik_UsersManager_API::updateUser(  $login, "passowordOK", "email@geaga.com");    	    	$this->_checkUserHasNotChanged($user, "passowordOK", "email@geaga.com");    }        /**     * check to modify as the user     */    function test_updateUser_IAmTheUser()    {    	FakeAccess::$identity = 'login';    	$this->test_updateUser_noemailnoalias();    	    }    /**     * check to modify as being another user => exception     */    function test_updateUser_IAmNOTTheUser()    {    	    	FakeAccess::$identity = 'login2';    	FakeAccess::$superUser = false;    	try{    		$this->test_updateUser_noemailnoalias();    		    	}catch (Exception $expected) {    		return;        }        $this->fail("Exception not raised.");    }        /**     * normal case, reused in other tests     */    function test_updateUser()    {    	    	$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'] );		    	Piwik_UsersManager_API::updateUser(  $login, "passowordOK", "email@geaga.com", "NEW ALIAS");    	    	$this->_checkUserHasNotChanged($user, "passowordOK", "email@geaga.com", "NEW ALIAS");    }    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?