Skip to content

Commit

Permalink
refs matomo-org#4564 some more tests, also grepped for different supe…
Browse files Browse the repository at this point in the history
…ruser terms and updated some test names
  • Loading branch information
tsteur committed Jan 23, 2014
1 parent 67202fc commit 91defb4
Show file tree
Hide file tree
Showing 9 changed files with 60 additions and 134 deletions.
13 changes: 11 additions & 2 deletions core/Access.php
Expand Up @@ -167,7 +167,7 @@ public function reloadAccess(Auth $auth = null)
return $this->reloadAccessSuperUser();
}
// in case multiple calls to API using different tokens, we ensure we reset it as not SU
$this->setSuperUser(false);
$this->setSuperUserAccess(false);

// we join with site in case there are rows in access for an idsite that doesn't exist anymore
// (backward compatibility ; before we deleted the site without deleting rows in _access table)
Expand Down Expand Up @@ -226,7 +226,7 @@ protected function reloadAccessSuperUser()
*
* @param bool $bool
*/
public function setSuperUser($bool = true)
public function setSuperUserAccess($bool = true)
{
if ($bool) {
$this->reloadAccessSuperUser();
Expand All @@ -236,6 +236,15 @@ public function setSuperUser($bool = true)
}
}

/**
* @see Access::setSuperUserAccess()
* @deprecated deprecated since version 2.0.4
*/
public function setSuperUser($bool = true)
{
self::setSuperUserAccess($bool);
}

/**
* Returns true if the current user is logged in as the super user
*
Expand Down
9 changes: 5 additions & 4 deletions core/Piwik.php
Expand Up @@ -332,7 +332,8 @@ static public function checkUserHasSuperUserAccessOrIsTheUser($theUser)
}

/**
* Check whether the given user has superuser access.
* Check whether the given user has superuser access. Note: This method will return false if current user
* has not superuser access.
*
* @param string $theUser A username.
* @return bool
Expand All @@ -349,10 +350,10 @@ static public function hasTheUserSuperUserAccess($theUser)
}

try {
// TODO method will always return false if current user has not superuser access
$superUserLogins = APIUsersManager::getInstance()->getUsersLoginHavingSuperUserAccess();
} catch (\Exception $e) {
$superUserLogins = array();
// not allowed to request user logins
return false;
}

return in_array($theUser, $superUserLogins);
Expand Down Expand Up @@ -420,7 +421,7 @@ static public function checkUserIsNotAnonymous()
*/
static public function setUserHasSuperUserAccess($bool = true)
{
Access::getInstance()->setSuperUser($bool);
Access::getInstance()->setSuperUserAccess($bool);
}

/**
Expand Down
1 change: 1 addition & 0 deletions tests/PHPUnit/Core/DeprecatedMethodsTest.php
Expand Up @@ -32,6 +32,7 @@ public function test_version2_0_4()
$this->assertDeprecatedMethodIsRemoved('\Piwik\Access', 'isSuperUser', $validTill);
$this->assertDeprecatedMethodIsRemoved('\Piwik\Access', 'checksUserIsSuperUser', $validTill);
$this->assertDeprecatedMethodIsRemoved('\Piwik\Access', 'getSuperUserLogin', $validTill);
$this->assertDeprecatedMethodIsRemoved('\Piwik\Access', 'setSuperUser', $validTill);
$this->assertDeprecatedMethodIsRemoved('\FakeAccess', 'checksUserIsSuperUser', $validTill);
$this->assertDeprecatedMethodIsRemoved('\FakeAccess', 'setSuperUser', $validTill);
$this->assertDeprecatedMethodIsRemoved('\FakeAccess', 'getSuperUserLogin', $validTill);
Expand Down
109 changes: 13 additions & 96 deletions tests/PHPUnit/Integration/Core/AccessTest.php
Expand Up @@ -21,114 +21,80 @@ public function setUp()
Access::setSingletonInstance(null);
}

/**
* @group Core
*/
public function testGetListAccess()
{
$accessList = Access::getListAccess();
$shouldBe = array('noaccess', 'view', 'admin', 'superuser');
$this->assertEquals($shouldBe, $accessList);
}

/**
* @group Core
*/
public function testGetTokenAuthWithEmptyAccess()
{
$access = new Access();
$this->assertNull($access->getTokenAuth());
}

/**
* @group Core
*/
public function testGetLoginWithEmptyAccess()
{
$access = new Access();
$this->assertNull($access->getLogin());
}

/**
* @group Core
*/
public function testIsSuperUserWithEmptyAccess()
public function testHasSuperUserAccessWithEmptyAccess()
{
$access = new Access();
$this->assertFalse($access->hasSuperUserAccess());
}

/**
* @group Core
*/
public function testIsSuperUserWithSuperUserAccess()
public function testHasSuperUserAccessWithSuperUserAccess()
{
$access = Access::getInstance();
$access->setSuperUser(true);
$access->setSuperUserAccess(true);
$this->assertTrue($access->hasSuperUserAccess());
}

/**
* @group Core
*/
public function testIsSuperUserWithNoSuperUserAccess()
public function testHasSuperUserAccessWithNoSuperUserAccess()
{
$access = Access::getInstance();
$access->setSuperUser(false);
$access->setSuperUserAccess(false);
$this->assertFalse($access->hasSuperUserAccess());
}

/**
* @group Core
*/
public function testGetSitesIdWithAtLeastViewAccessWithEmptyAccess()
{
$access = new Access();
$this->assertEmpty($access->getSitesIdWithAtLeastViewAccess());
}

/**
* @group Core
*/
public function testGetSitesIdWithAdminAccessWithEmptyAccess()
{
$access = new Access();
$this->assertEmpty($access->getSitesIdWithAdminAccess());
}

/**
* @group Core
*/
public function testGetSitesIdWithViewAccessWithEmptyAccess()
{
$access = new Access();
$this->assertEmpty($access->getSitesIdWithViewAccess());
}

/**
* @group Core
*
* @expectedException Piwik\NoAccessException
*/
public function testCheckUserIsSuperUserWithEmptyAccess()
public function testCheckUserHasSuperUserAccessWithEmptyAccess()
{
$access = new Access();
$access->checkUserHasSuperUserAccess();
}

/**
* @group Core
*/
public function testCheckUserIsSuperUserWithSuperUserAccess()
public function testCheckUserHasSuperUserAccessWithSuperUserAccess()
{
$access = Access::getInstance();
$access->setSuperUser(true);
$access->setSuperUserAccess(true);
$access->checkUserHasSuperUserAccess();
}

/**
* @group Core
*
* @expectedException Piwik\NoAccessException
*/
public function testCheckUserHasSomeAdminAccessWithEmptyAccess()
Expand All @@ -137,19 +103,13 @@ public function testCheckUserHasSomeAdminAccessWithEmptyAccess()
$access->checkUserHasSomeAdminAccess();
}

/**
* @group Core
*/
public function testCheckUserHasSomeAdminAccessWithSuperUserAccess()
{
$access = Access::getInstance();
$access->setSuperUser(true);
$access->setSuperUserAccess(true);
$access->checkUserHasSomeAdminAccess();
}

/**
* @group Core
*/
public function testCheckUserHasSomeAdminAccessWithSomeAccess()
{
$mock = $this->getMock(
Expand All @@ -165,8 +125,6 @@ public function testCheckUserHasSomeAdminAccessWithSomeAccess()
}

/**
* @group Core
*
* @expectedException Piwik\NoAccessException
*/
public function testCheckUserHasSomeViewAccessWithEmptyAccess()
Expand All @@ -175,19 +133,13 @@ public function testCheckUserHasSomeViewAccessWithEmptyAccess()
$access->checkUserHasSomeViewAccess();
}

/**
* @group Core
*/
public function testCheckUserHasSomeViewAccessWithSuperUserAccess()
{
$access = Access::getInstance();
$access->setSuperUser(true);
$access->setSuperUserAccess(true);
$access->checkUserHasSomeViewAccess();
}

/**
* @group Core
*/
public function testCheckUserHasSomeViewAccessWithSomeAccess()
{
$mock = $this->getMock(
Expand All @@ -203,8 +155,6 @@ public function testCheckUserHasSomeViewAccessWithSomeAccess()
}

/**
* @group Core
*
* @expectedException Piwik\NoAccessException
*/
public function testCheckUserHasViewAccessWithEmptyAccessNoSiteIdsGiven()
Expand All @@ -213,19 +163,13 @@ public function testCheckUserHasViewAccessWithEmptyAccessNoSiteIdsGiven()
$access->checkUserHasViewAccess(array());
}

/**
* @group Core
*/
public function testCheckUserHasViewAccessWithSuperUserAccess()
{
$access = Access::getInstance();
$access->setSuperUser(true);
$access->setSuperUserAccess(true);
$access->checkUserHasViewAccess(array());
}

/**
* @group Core
*/
public function testCheckUserHasViewAccessWithSomeAccessSuccessIdSitesAsString()
{
$mock = $this->getMock(
Expand All @@ -240,9 +184,6 @@ public function testCheckUserHasViewAccessWithSomeAccessSuccessIdSitesAsString()
$mock->checkUserHasViewAccess('1,3');
}

/**
* @group Core
*/
public function testCheckUserHasViewAccessWithSomeAccessSuccessAllSites()
{
$mock = $this->getMock(
Expand All @@ -258,8 +199,6 @@ public function testCheckUserHasViewAccessWithSomeAccessSuccessAllSites()
}

/**
* @group Core
*
* @expectedException Piwik\NoAccessException
*/
public function testCheckUserHasViewAccessWithSomeAccessFailure()
Expand All @@ -276,19 +215,14 @@ public function testCheckUserHasViewAccessWithSomeAccessFailure()
$mock->checkUserHasViewAccess(array(1, 5));
}

/**
* @group Core
*/
public function testCheckUserHasAdminAccessWithSuperUserAccess()
{
$access = Access::getInstance();
$access->setSuperUser(true);
$access->setSuperUserAccess(true);
$access->checkUserHasAdminAccess(array());
}

/**
* @group Core
*
* @expectedException Piwik\NoAccessException
*/
public function testCheckUserHasAdminAccessWithEmptyAccessNoSiteIdsGiven()
Expand All @@ -297,9 +231,6 @@ public function testCheckUserHasAdminAccessWithEmptyAccessNoSiteIdsGiven()
$access->checkUserHasViewAccess(array());
}

/**
* @group Core
*/
public function testCheckUserHasAdminAccessWithSomeAccessSuccessIdSitesAsString()
{
$mock = $this->getMock(
Expand All @@ -314,9 +245,6 @@ public function testCheckUserHasAdminAccessWithSomeAccessSuccessIdSitesAsString(
$mock->checkUserHasAdminAccess('1,3');
}

/**
* @group Core
*/
public function testCheckUserHasAdminAccessWithSomeAccessSuccessAllSites()
{
$mock = $this->getMock(
Expand All @@ -336,8 +264,6 @@ public function testCheckUserHasAdminAccessWithSomeAccessSuccessAllSites()
}

/**
* @group Core
*
* @expectedException Piwik\NoAccessException
*/
public function testCheckUserHasAdminAccessWithSomeAccessFailure()
Expand All @@ -354,28 +280,19 @@ public function testCheckUserHasAdminAccessWithSomeAccessFailure()
$mock->checkUserHasAdminAccess(array(1, 5));
}

/**
* @group Core
*/
public function testReloadAccessWithEmptyAuth()
{
$access = new Access();
$this->assertFalse($access->reloadAccess(null));
}

/**
* @group Core
*/
public function testReloadAccessWithEmptyAuthSuperUser()
{
$access = Access::getInstance();
$access->setSuperUser(true);
$access->setSuperUserAccess(true);
$this->assertTrue($access->reloadAccess(null));
}

/**
* @group Core
*/
public function testReloadAccessWithMockedAuthValid()
{
$mock = $this->getMock('\\Piwik\\Auth', array('authenticate', 'getName', 'initSession'));
Expand Down

0 comments on commit 91defb4

Please sign in to comment.