Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsgiehl <stefangiehl@gmail.com>2012-10-19 21:47:37 +0400
committersgiehl <stefangiehl@gmail.com>2012-10-19 21:47:37 +0400
commit5762ad9e177d844593032133c99881417f56de5b (patch)
tree81bc88f1f37699f828bf38a15e66e7d3f9f9aa14 /plugins/UsersManager
parent389c28f97b53cd37d0719366aaa3ada479d7c053 (diff)
refs #3227 removing plugin simple tests
git-svn-id: http://dev.piwik.org/svn/trunk@7240 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'plugins/UsersManager')
-rw-r--r--plugins/UsersManager/tests/UsersManager.test.php985
1 files changed, 0 insertions, 985 deletions
diff --git a/plugins/UsersManager/tests/UsersManager.test.php b/plugins/UsersManager/tests/UsersManager.test.php
deleted file mode 100644
index af3a6e6629..0000000000
--- a/plugins/UsersManager/tests/UsersManager.test.php
+++ /dev/null
@@ -1,985 +0,0 @@
-<?php
-if(!defined('PIWIK_CONFIG_TEST_INCLUDED'))
-{
- require_once dirname(__FILE__)."/../../../tests/config_test.php";
-}
-
-require_once PIWIK_PATH_TEST_TO_ROOT . '/tests/core/Database.test.php';
-
-class Test_Piwik_UsersManager extends Test_Database
-{
- function __construct()
- {
- parent::__construct();
-
- Piwik_Config::getInstance()->setTestEnvironment();
- Piwik_PluginsManager::getInstance()->unloadPlugins();
- Piwik_PluginsManager::getInstance()->loadPlugins( array('LanguagesManager') );
- $plugin = Piwik_PluginsManager::getInstance()->getLoadedPlugin('LanguagesManager');
- $plugin->install();
- }
-
- 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);
-
- // we make sure the tests don't depend on the config file content
- Piwik_Config::getInstance()->superuser = array(
- 'login'=>'superusertest',
- 'password'=>'passwordsuperusertest',
- 'email'=>'superuser@example.com'
- );
- }
-
- private function _flatten($sitesAccess)
- {
- $result = array();;
-
- foreach($sitesAccess as $siteAccess)
- {
- $result[ $siteAccess['site'] ] = $siteAccess['access'];
- }
- return $result;
- }
-
- 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::getInstance()->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::getInstance()->getTokenAuth($user["login"], md5($newPassword) );
-
- $user['password']=md5($newPassword);
- $user['email']=$newEmail;
- $user['alias']=$newAlias;
- $this->assertEqual($user,$userAfter);
- }
-
- function test_all_superUserIncluded()
- {
- Piwik_Config::getInstance()->superuser = array(
- 'login'=>'superusertest',
- 'password'=>'passwordsuperusertest',
- 'email'=>'superuser@example.com'
- );
-
- $user = array( 'login'=>'user',
- 'password'=>"geqgeagae",
- 'email'=>"test@test.com",
- 'alias'=>"alias");
- Piwik_UsersManager_API::getInstance()->addUser($user['login'],$user['password'] ,$user['email'] ,$user['alias'] );
-
- try {
- Piwik_UsersManager_API::getInstance()->addUser('superusertest','te','fake@fale.co','ega');
- $this->fail();
- } catch (Exception $expected) {
- $this->assertPattern("(UsersManager_ExceptionSuperUser)", $expected->getMessage());
- }
- try {
- Piwik_UsersManager_API::getInstance()->updateUser('superusertest','te','fake@fale.co','ega');
- $this->fail();
- } catch (Exception $expected) {
- $this->assertPattern("(UsersManager_ExceptionSuperUser)", $expected->getMessage());
- }
- try {
- Piwik_UsersManager_API::getInstance()->deleteUser('superusertest','te','fake@fale.co','ega');
- $this->fail();
- } catch (Exception $expected) {
- $this->assertPattern("(UsersManager_ExceptionSuperUser)", $expected->getMessage());
- }
- try {
- Piwik_UsersManager_API::getInstance()->deleteUser('superusertest','te','fake@fale.co','ega');
- $this->fail();
- } catch (Exception $expected) {
- $this->assertPattern("(UsersManager_ExceptionSuperUser)", $expected->getMessage());
- }
- $this->pass();
- }
- /**
- * bad password => exception
- */
- function test_updateUser_badpasswd()
- {
- $login="login";
- $user = array('login'=>$login,
- 'password'=>"geqgeagae",
- 'email'=>"test@test.com",
- 'alias'=>"alias");
-
- Piwik_UsersManager_API::getInstance()->addUser($user['login'],$user['password'] ,$user['email'] ,$user['alias'] );
-
-
- try {
- Piwik_UsersManager_API::getInstance()->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::getInstance()->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::getInstance()->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::getInstance()->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::getInstance()->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::getInstance()->addUser("test", "password", "email@email.com", "alias");
- Piwik_UsersManager_API::getInstance()->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::getInstance()->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::getInstance()->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::getInstance()->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::getInstance()->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::getInstance()->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::getInstance()->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::getInstance()->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::getInstance()->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::getInstance()->addUser($login, "geqgeagae", "mgeagi@geq.com", "");
- $user = Piwik_UsersManager_API::getInstance()->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::getInstance()->addUser($login, "geqgeagae", "mgeagi@geq.com");
- $user = Piwik_UsersManager_API::getInstance()->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 )(&|\" '£%*(&%+))";
-
- $time = time();
- Piwik_UsersManager_API::getInstance()->addUser($login, $password, $email, $alias);
- $user = Piwik_UsersManager_API::getInstance()->getUser($login);
-
- // check that the date registered is correct
- $this->assertTrue( $time <= strtotime($user['date_registered']) && strtotime($user['date_registered']) <= time(),
- "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::getInstance()->addUser("geggeqgeqag", "geqgeagae", "test@test.com", "alias");
-
- try {
- Piwik_UsersManager_API::getInstance()->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::getInstance()->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::getInstance()->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::getInstance()->addSite("site1",array("http://piwik.net","http://piwik.com/test/"));
- $idsite = Piwik_SitesManager_API::getInstance()->addSite("site2",array("http://piwik.com/test/"));
- $idsite = Piwik_SitesManager_API::getInstance()->addSite("site3",array("http://piwik.org"));
-
- //add user and set some rights
- Piwik_UsersManager_API::getInstance()->addUser("geggeqgeqag", "geqgeagae", "test@test.com", "alias");
- Piwik_UsersManager_API::getInstance()->setUserAccess("geggeqgeqag", "view", array(1,2));
- Piwik_UsersManager_API::getInstance()->setUserAccess("geggeqgeqag", "admin", array(1,3));
-
- // check rights are set
- $this->assertNotEqual(Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("geggeqgeqag"), array());
-
- // delete the user
- Piwik_UsersManager_API::getInstance()->deleteUser("geggeqgeqag");
-
- // try to get it, it should raise an exception
- try {
- $user = Piwik_UsersManager_API::getInstance()->getUser("geggeqgeqag");
- $this->fail("Exception not raised.");
- }
- catch (Exception $expected) {
- $this->assertPattern("(UsersManager_ExceptionUserDoesNotExist)", $expected->getMessage());
- }
- // add the same user
- Piwik_UsersManager_API::getInstance()->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::getInstance()->getSitesAccessFromUser("geggeqgeqag"), array());
-
- }
-
-
- /**
- * no user => exception
- */
- function test_getUser_noUser()
- {
- // try to get it, it should raise an exception
- try {
- $user = Piwik_UsersManager_API::getInstance()->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::getInstance()->addUser($login, $password, $email, $alias);
- $user = Piwik_UsersManager_API::getInstance()->getUser($login);
-
- // 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::getInstance()->getUsers(), array());
- }
-
- /**
- * normal case
- * as well as selecting specific user names, comma separated
- */
- function test_getUsers()
- {
- Piwik_UsersManager_API::getInstance()->addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
- Piwik_UsersManager_API::getInstance()->addUser("geggeqge632ge56a4qag", "geqgegeagae", "tesggt@tesgt.com", "alias");
- Piwik_UsersManager_API::getInstance()->addUser("geggeqgeqagqegg", "geqgeaggggae", "tesgggt@tesgt.com");
-
- $users = Piwik_UsersManager_API::getInstance()->getUsers();
- $users = $this->removeNonTestableFieldsFromUsers($users);
- $user1 = array('login' => "gegg4564eqgeqag", 'password' => md5("geqgegagae"), 'alias' => "alias", 'email' => "tegst@tesgt.com");
- $user2 = array('login' => "geggeqge632ge56a4qag", 'password' => md5("geqgegeagae"),'alias' => "alias", 'email' => "tesggt@tesgt.com");
- $user3 = array('login' => "geggeqgeqagqegg", 'password' => md5("geqgeaggggae"), 'alias' => 'geggeqgeqagqegg','email' => "tesgggt@tesgt.com");
- $expectedUsers = array($user1, $user2, $user3);
- $this->assertEqual($users, $expectedUsers);
- $this->assertEqual( $this->removeNonTestableFieldsFromUsers(Piwik_UsersManager_API::getInstance()->getUsers('gegg4564eqgeqag')), array($user1));
- $this->assertEqual( $this->removeNonTestableFieldsFromUsers(Piwik_UsersManager_API::getInstance()->getUsers('gegg4564eqgeqag,geggeqge632ge56a4qag')), array($user1, $user2));
-
- }
-
- function removeNonTestableFieldsFromUsers($users)
- {
- foreach($users as &$user)
- {
- unset($user['token_auth']);
- unset($user['date_registered']);
- }
- return $users;
- }
-
- /**
- * normal case
- */
- function test_getUsersLogin()
- {
-
- Piwik_UsersManager_API::getInstance()->addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
- Piwik_UsersManager_API::getInstance()->addUser("geggeqge632ge56a4qag", "geqgegeagae", "tesggt@tesgt.com", "alias");
- Piwik_UsersManager_API::getInstance()->addUser("geggeqgeqagqegg", "geqgeaggggae", "tesgggt@tesgt.com");
-
- $logins = Piwik_UsersManager_API::getInstance()->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::getInstance()->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::getInstance()->addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
-
- // try to get it, it should raise an exception
- try {
- Piwik_UsersManager_API::getInstance()->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::getInstance()->addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
-
- FakeAccess::$superUser = false;
-
- Piwik_UsersManager_API::getInstance()->setUserAccess("gegg4564eqgeqag", "view", "all");
-
- FakeAccess::$superUser = true;
- $access = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("gegg4564eqgeqag");
- $access = $this->_flatten($access);
-
- 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::getInstance()->addSite("test",array("http://piwik.net","http://piwik.com/test/"));
- $id2=Piwik_SitesManager_API::getInstance()->addSite("test2",array("http://piwik.net","http://piwik.com/test/"));
- $id3=Piwik_SitesManager_API::getInstance()->addSite("test3",array("http://piwik.net","http://piwik.com/test/"));
- $id4=Piwik_SitesManager_API::getInstance()->addSite("test4",array("http://piwik.net","http://piwik.com/test/"));
- $id5=Piwik_SitesManager_API::getInstance()->addSite("test5",array("http://piwik.net","http://piwik.com/test/"));
-
- Piwik_UsersManager_API::getInstance()->addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
- Piwik_UsersManager_API::getInstance()->setUserAccess("gegg4564eqgeqag", "view", "all");
-
- $access = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("gegg4564eqgeqag");
- $access = $this->_flatten($access);
- $this->assertEqual( array($id1,$id2,$id3,$id4,$id5), array_keys($access));
-
- }
-
- /**
- * idsites is empty => no acccess set
- */
- function test_setUserAccess_idsitesEmpty()
- {
- Piwik_UsersManager_API::getInstance()->addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
-
- Piwik_UsersManager_API::getInstance()->setUserAccess("gegg4564eqgeqag", "view", array());
-
- $access = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("gegg4564eqgeqag");
- $access = $this->_flatten($access);
- $this->assertEqual( array(), $access);
-
- }
-
- /**
- * normal case, access set for only one site
- */
- function test_setUserAccess_idsitesOneSite()
- {
- Piwik_UsersManager_API::getInstance()->addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
- $id1=Piwik_SitesManager_API::getInstance()->addSite("test",array("http://piwik.net","http://piwik.com/test/"));
-
- Piwik_UsersManager_API::getInstance()->setUserAccess("gegg4564eqgeqag", "view", array(1));
-
- $access = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("gegg4564eqgeqag");
- $access = $this->_flatten($access);
- $this->assertEqual( array(1), array_keys($access));
- }
-
- /**
- * normal case, access set for multiple sites
- */
- function test_setUserAccess_idsitesMultipleSites()
- {
-
- Piwik_UsersManager_API::getInstance()->addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
- $id1=Piwik_SitesManager_API::getInstance()->addSite("test",array("http://piwik.net","http://piwik.com/test/"));
- $id2=Piwik_SitesManager_API::getInstance()->addSite("test",array("http://piwik.net","http://piwik.com/test/"));
- $id3=Piwik_SitesManager_API::getInstance()->addSite("test",array("http://piwik.net","http://piwik.com/test/"));
-
- Piwik_UsersManager_API::getInstance()->setUserAccess("gegg4564eqgeqag", "view", array($id1,$id3));
-
- $access = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("gegg4564eqgeqag");
- $access = $this->_flatten($access);
- $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::getInstance()->addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
- $id1=Piwik_SitesManager_API::getInstance()->addSite("test",array("http://piwik.net","http://piwik.com/test/"));
- $id2=Piwik_SitesManager_API::getInstance()->addSite("test",array("http://piwik.net","http://piwik.com/test/"));
- $id3=Piwik_SitesManager_API::getInstance()->addSite("test",array("http://piwik.net","http://piwik.com/test/"));
-
- Piwik_UsersManager_API::getInstance()->setUserAccess("gegg4564eqgeqag", "view", "1,3");
-
- $access = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("gegg4564eqgeqag");
- $access = $this->_flatten($access);
- $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::getInstance()->addUser("gegg4564eqgeqag", "geqgegagae", "tegst@tesgt.com", "alias");
- $id1=Piwik_SitesManager_API::getInstance()->addSite("test",array("http://piwik.net","http://piwik.com/test/"));
- $id2=Piwik_SitesManager_API::getInstance()->addSite("test",array("http://piwik.net","http://piwik.com/test/"));
-
- Piwik_UsersManager_API::getInstance()->setUserAccess("gegg4564eqgeqag", "view", array($id1));
- Piwik_UsersManager_API::getInstance()->setUserAccess("gegg4564eqgeqag", "admin", array($id2));
-
- $access = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("gegg4564eqgeqag");
- $access = $this->_flatten($access);
- $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::getInstance()->addUser("user1", "geqgegagae", "tegst@tesgt.com", "alias");
- Piwik_UsersManager_API::getInstance()->addUser("user2", "geqgegagae", "tegst2@tesgt.com", "alias");
- $id1=Piwik_SitesManager_API::getInstance()->addSite("test1",array("http://piwik.net","http://piwik.com/test/"));
- $id2=Piwik_SitesManager_API::getInstance()->addSite("test2",array("http://piwik.net","http://piwik.com/test/"));
- $id3=Piwik_SitesManager_API::getInstance()->addSite("test2",array("http://piwik.net","http://piwik.com/test/"));
-
- Piwik_UsersManager_API::getInstance()->setUserAccess("user1", "view", array($id1,$id2));
- Piwik_UsersManager_API::getInstance()->setUserAccess("user2", "admin", array($id1));
- Piwik_UsersManager_API::getInstance()->setUserAccess("user2", "view", array($id3, $id2));
-
- $access1 = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("user1");
- $access1 = $this->_flatten($access1);
- $access2 = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("user2");
- $access2 = $this->_flatten($access2);
- $wanted1 = array( $id1 => 'view', $id2 => 'view', );
- $wanted2 = array( $id1 => 'admin', $id2 => 'view', $id3 => 'view' );
-
- $this->assertEqual($access1, $wanted1);
- $this->assertEqual($access2, $wanted2);
-
-
- $access1 = Piwik_UsersManager_API::getInstance()->getUsersAccessFromSite($id1);
- $access2 = Piwik_UsersManager_API::getInstance()->getUsersAccessFromSite($id2);
- $access3 = Piwik_UsersManager_API::getInstance()->getUsersAccessFromSite($id3);
- $wanted1 = array( 'user1' => 'view', 'user2' => 'admin', );
- $wanted2 = array( 'user1' => 'view', 'user2' => 'view' );
- $wanted3 = array( 'user2' => 'view' );
-
- $this->assertEqual($access1, $wanted1);
- $this->assertEqual($access2, $wanted2);
- $this->assertEqual($access3, $wanted3);
-
- $access1 = Piwik_UsersManager_API::getInstance()->getUsersSitesFromAccess('view');
- $access2 = Piwik_UsersManager_API::getInstance()->getUsersSitesFromAccess('admin');
- $wanted1 = array( 'user1' => array($id1,$id2), 'user2' => array($id2, $id3) );
- $wanted2 = array( 'user2' => array($id1) );
-
- $this->assertEqual($access1, $wanted1);
- $this->assertEqual($access2, $wanted2);
-
- // Test getUsersWithSiteAccess
- $users = Piwik_UsersManager_API::getInstance()->getUsersWithSiteAccess($id1, $access = 'view');
- $this->assertTrue(count($users) == 1 && $users[0]['login'] == 'user1');
- $users = Piwik_UsersManager_API::getInstance()->getUsersWithSiteAccess($id2, $access = 'view');
- $this->assertTrue(count($users) == 2);
- $users = Piwik_UsersManager_API::getInstance()->getUsersWithSiteAccess($id1, $access = 'admin');
- $this->assertTrue(count($users) == 1 && $users[0]['login'] == 'user2');
- $users = Piwik_UsersManager_API::getInstance()->getUsersWithSiteAccess($id3, $access = 'admin');
- $this->assertTrue(count($users) == 0);
- }
-
- /**
- * we set access for one user for one site several times and check that it is updated
- */
- function test_setUserAccess_multipleCallOverwriteSingleUserOneSite()
- {
- Piwik_UsersManager_API::getInstance()->addUser("user1", "geqgegagae", "tegst@tesgt.com", "alias");
-
- $id1=Piwik_SitesManager_API::getInstance()->addSite("test1",array("http://piwik.net","http://piwik.com/test/"));
- $id2=Piwik_SitesManager_API::getInstance()->addSite("test2",array("http://piwik.net","http://piwik.com/test/"));
-
- Piwik_UsersManager_API::getInstance()->setUserAccess("user1", "view", array($id1,$id2));
- Piwik_UsersManager_API::getInstance()->setUserAccess("user1", "admin", array($id1));
-
- $access1 = Piwik_UsersManager_API::getInstance()->getSitesAccessFromUser("user1");
- $access1 = $this->_flatten($access1);
- $wanted1 = array( $id1 => 'admin', $id2 => 'view', );
-
- $this->assertEqual($access1, $wanted1);
-
- }
-
-
- /**
- * wrong user =>exception
- */
- function test_getSitesAccessFromUser_wrongUser()
- {
- try {
- $access1 = Piwik_UsersManager_API::getInstance()->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::getInstance()->getUsersAccessFromSite(1);
- }
- catch (Exception $expected) {
- return;
- }
- $this->fail("Exception not raised.");
- }
-
- /**
- * wrong access =>exception
- */
- function test_getUsersSitesFromAccess_wrongSite()
- {
- try {
- $access1 = Piwik_UsersManager_API::getInstance()->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::getInstance()->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::getInstance()->addUser($user['login'],$user['password'] ,$user['email'] ,$user['alias'] );
-
- Piwik_UsersManager_API::getInstance()->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::getInstance()->addUser($user['login'],$user['password'] ,$user['email'] ,$user['alias'] );
-
- Piwik_UsersManager_API::getInstance()->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::getInstance()->addUser($user['login'],$user['password'] ,$user['email'] ,$user['alias'] );
-
- Piwik_UsersManager_API::getInstance()->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::getInstance()->addUser($user['login'],$user['password'] ,$user['email'] ,$user['alias'] );
-
- Piwik_UsersManager_API::getInstance()->updateUser( $login, "passowordOK", "email@geaga.com", "NEW ALIAS");
-
- $this->_checkUserHasNotChanged($user, "passowordOK", "email@geaga.com", "NEW ALIAS");
- }
-
-}