Move getAppsFromUserId() to user::getAppsMaintained(). Also implement a unit test for
user::getAppsMaintained()
This commit is contained in:
@@ -113,7 +113,8 @@ if ($aClean['sSub'])
|
|||||||
echo '<tr valign="top"><td class="color0"><b>This user also maintains these apps:</b></td>',"\n";
|
echo '<tr valign="top"><td class="color0"><b>This user also maintains these apps:</b></td>',"\n";
|
||||||
|
|
||||||
$firstDisplay = true;
|
$firstDisplay = true;
|
||||||
$other_apps = getAppsFromUserId($oRow->userId);
|
$oUser = new User($oRow->userId);
|
||||||
|
$other_apps = $oUser->getAppsMaintained();
|
||||||
if($other_apps)
|
if($other_apps)
|
||||||
{
|
{
|
||||||
while(list($index, list($appIdOther, $versionIdOther, $superMaintainerOther)) = each($other_apps))
|
while(list($index, list($appIdOther, $versionIdOther, $superMaintainerOther)) = each($other_apps))
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ require_once(BASE."include/version.php");
|
|||||||
require_once(BASE."include/vendor.php");
|
require_once(BASE."include/vendor.php");
|
||||||
require_once(BASE."include/url.php");
|
require_once(BASE."include/url.php");
|
||||||
require_once(BASE."include/util.php");
|
require_once(BASE."include/util.php");
|
||||||
|
require_once(BASE."include/mail.php");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Application class for handling applications.
|
* Application class for handling applications.
|
||||||
|
|||||||
@@ -3,29 +3,6 @@
|
|||||||
/* functions for maintainers */
|
/* functions for maintainers */
|
||||||
/*****************************/
|
/*****************************/
|
||||||
|
|
||||||
/**
|
|
||||||
* get the applications and versions that this userId maintains
|
|
||||||
*/
|
|
||||||
function getAppsFromUserId($userId)
|
|
||||||
{
|
|
||||||
/* retrieve the list of application and order them by application name */
|
|
||||||
$hResult = query_parameters("SELECT appMaintainers.appId, versionId, superMaintainer, appName FROM ".
|
|
||||||
"appFamily, appMaintainers WHERE appFamily.appId = appMaintainers.appId ".
|
|
||||||
"AND userId = '?' ORDER BY appName", $userId);
|
|
||||||
if(!$hResult || mysql_num_rows($hResult) == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
$retval = array();
|
|
||||||
$c = 0;
|
|
||||||
while($oRow = mysql_fetch_object($hResult))
|
|
||||||
{
|
|
||||||
$retval[$c] = array($oRow->appId, $oRow->versionId, $oRow->superMaintainer);
|
|
||||||
$c++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* get the userIds of maintainers for a versionId
|
* get the userIds of maintainers for a versionId
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ function global_sidebar_login() {
|
|||||||
|
|
||||||
/* if this user maintains any applications list them */
|
/* if this user maintains any applications list them */
|
||||||
/* in their sidebar */
|
/* in their sidebar */
|
||||||
$apps_user_maintains = getAppsFromUserId($_SESSION['current']->iUserId);
|
$apps_user_maintains = $_SESSION['current']->getAppsMaintained();
|
||||||
if($apps_user_maintains)
|
if($apps_user_maintains)
|
||||||
{
|
{
|
||||||
$g->addmisc("");
|
$g->addmisc("");
|
||||||
|
|||||||
@@ -296,6 +296,29 @@ class User {
|
|||||||
return mysql_num_rows($hResult);
|
return mysql_num_rows($hResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get the applications and versions that this user maintains
|
||||||
|
*/
|
||||||
|
function getAppsMaintained()
|
||||||
|
{
|
||||||
|
/* retrieve the list of application and order them by application name */
|
||||||
|
$hResult = query_parameters("SELECT appMaintainers.appId, versionId, superMaintainer, appName FROM ".
|
||||||
|
"appFamily, appMaintainers WHERE appFamily.appId = appMaintainers.appId ".
|
||||||
|
"AND userId = '?' ORDER BY appName", $this->iUserId);
|
||||||
|
if(!$hResult || mysql_num_rows($hResult) == 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
$aAppsMaintained = array();
|
||||||
|
$c = 0;
|
||||||
|
while($oRow = mysql_fetch_object($hResult))
|
||||||
|
{
|
||||||
|
$aAppsMaintained[$c] = array($oRow->appId, $oRow->versionId, $oRow->superMaintainer);
|
||||||
|
$c++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $aAppsMaintained;
|
||||||
|
}
|
||||||
|
|
||||||
function getMaintainerCount($bSuperMaintainer)
|
function getMaintainerCount($bSuperMaintainer)
|
||||||
{
|
{
|
||||||
if(!$this->isLoggedIn()) return 0;
|
if(!$this->isLoggedIn()) return 0;
|
||||||
|
|||||||
@@ -353,6 +353,83 @@ function test_user_getMaintainerCount()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_user_getAppsMaintained()
|
||||||
|
{
|
||||||
|
test_start(__FUNCTION__);
|
||||||
|
|
||||||
|
global $test_email, $test_password;
|
||||||
|
|
||||||
|
/* login the user */
|
||||||
|
$oUser = new User();
|
||||||
|
$retval = $oUser->login($test_email, $test_password);
|
||||||
|
if($retval != SUCCESS)
|
||||||
|
{
|
||||||
|
echo "Got '".$retval."' instead of SUCCESS(".SUCCESS.")\n";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* make this user an admin so we can create applications without having them queued */
|
||||||
|
$hResult = query_parameters("INSERT into user_privs values ('?', '?')",
|
||||||
|
$oUser->iUserId, "admin");
|
||||||
|
|
||||||
|
/* create a application so we have a valid appFamily for the call to user::getAppsMaintained() */
|
||||||
|
$oApp = new Application();
|
||||||
|
$oApp->sName = "Some application";
|
||||||
|
$oApp->sDescription = "some description";
|
||||||
|
$oApp->submitterId = $oUser->iUserId;
|
||||||
|
if(!$oApp->create())
|
||||||
|
{
|
||||||
|
echo "Failed to create application!\n";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* make the user a super maintatiner
|
||||||
|
*/
|
||||||
|
$iAppId = $oApp->iAppId; /* use the iAppId of the application we just created */
|
||||||
|
$iVersionId = 655200;
|
||||||
|
$iQueueId = 655300;
|
||||||
|
$bSuperMaintainer = TRUE;
|
||||||
|
$statusMessage = $oUser->addAsMaintainer($iAppId, $iVersionId, $bSuperMaintainer, $iQueueId);
|
||||||
|
|
||||||
|
/* get an array of the apps maintained */
|
||||||
|
$aAppsMaintained = $oUser->getAppsMaintained();
|
||||||
|
|
||||||
|
if(!$aAppsMaintained)
|
||||||
|
{
|
||||||
|
echo "aAppsMaintained is null, we expected a non-null return value!\n";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* get only the first entry from the array of applications maintained */
|
||||||
|
/* we only added the user as a maintainer of a single application */
|
||||||
|
list($iAppId1, $iVersionId1, $bSuperMaintainer1) = $aAppsMaintained[0];
|
||||||
|
|
||||||
|
/* make sure all parameters match what we added as maintainer information */
|
||||||
|
if($iAppId1 != $iAppId)
|
||||||
|
{
|
||||||
|
echo "Expected iAppid of ".$iAppId." but got ".$iAppId1."\n";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($iVersionId1 != $iVersionId)
|
||||||
|
{
|
||||||
|
echo "Expected iVersionId of ".$iVersionId." but got ".$iVersionId1."\n";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($bSuperMaintainer1 != $bSuperMaintainer)
|
||||||
|
{
|
||||||
|
echo "Expected bSuperMaintainer of ".$bSuperMaintainer." but got ".$bSuperMaintainer1."\n";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* remove maintainership for this user */
|
||||||
|
$oUser->deleteMaintainer($iAppId);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*************************/
|
/*************************/
|
||||||
/* Main testing routines */
|
/* Main testing routines */
|
||||||
@@ -392,6 +469,11 @@ if(!test_user_getMaintainerCount())
|
|||||||
else
|
else
|
||||||
echo "test_user_getMaintainerCount() passed\n";
|
echo "test_user_getMaintainerCount() passed\n";
|
||||||
|
|
||||||
|
if(!test_user_getAppsMaintained())
|
||||||
|
echo "test_user_getAppsMaintained() failed!\n";
|
||||||
|
else
|
||||||
|
echo "test_user_getAppsMaintained() passed\n";
|
||||||
|
|
||||||
/* TODO: the rest of the user member functions we don't currently test */
|
/* TODO: the rest of the user member functions we don't currently test */
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user