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