Fix appData::listSubmittedBy() to run faster. Add a unit test for appData::listSubmittedBy()
This commit is contained in:
committed by
WineHQ
parent
9ef6268fa6
commit
fef587a60e
@@ -39,22 +39,17 @@ class appData
|
|||||||
|
|
||||||
function listSubmittedBy($iUserId, $bQueued = true)
|
function listSubmittedBy($iUserId, $bQueued = true)
|
||||||
{
|
{
|
||||||
$hResult = query_parameters("SELECT appData.TYPE, appData.appId,
|
$hResult = query_parameters("SELECT * FROM appData WHERE
|
||||||
appData.versionId, appData.description, appData.submitTime,
|
appData.submitterId = '?'
|
||||||
appFamily.appName, appVersion.versionName FROM appData,
|
AND
|
||||||
appFamily, appVersion
|
|
||||||
WHERE (appFamily.appId = appData.appId OR
|
|
||||||
(appData.versionId = appVersion.versionId AND appFamily.appId =
|
|
||||||
appVersion.appId)) AND (appFamily.queued = '?' OR
|
|
||||||
appVersion.queued = '?') AND appData.submitterId = '?' AND
|
|
||||||
appData.queued = '?'
|
appData.queued = '?'
|
||||||
ORDER BY appData.id",
|
ORDER BY appData.id",
|
||||||
"false", "false", $iUserId, $bQueued ? "true" : "false");
|
$iUserId, $bQueued ? "true" : "false");
|
||||||
|
|
||||||
if(!$hResult || !mysql_num_rows($hResult))
|
if(!$hResult || !mysql_num_rows($hResult))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
$sReturn .= html_table_begin("width=\"100%\" align=\"center\"");
|
$sReturn = html_table_begin("width=\"100%\" align=\"center\"");
|
||||||
$sReturn .= html_tr(array(
|
$sReturn .= html_tr(array(
|
||||||
"Version",
|
"Version",
|
||||||
"Type",
|
"Type",
|
||||||
@@ -64,13 +59,19 @@ class appData
|
|||||||
|
|
||||||
for($i = 1; $oRow = mysql_fetch_object($hResult); $i++)
|
for($i = 1; $oRow = mysql_fetch_object($hResult); $i++)
|
||||||
{
|
{
|
||||||
|
if($oRow->versionId)
|
||||||
|
{
|
||||||
|
$oVersion = new version($oRow->versionId);
|
||||||
|
$sLink = "<a href=\"".$oVersion->objectMakeUrl()."\">".
|
||||||
|
$oVersion->fullName($oVersion->iVersionId)."</a>";
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
$oApp = new application($this->appId);
|
||||||
|
$sLink = $oApp->objectMakeLink();
|
||||||
|
}
|
||||||
$sReturn .= html_tr(array(
|
$sReturn .= html_tr(array(
|
||||||
$oRow->versionId ?
|
$sLink,
|
||||||
"<a href=\"".BASE."appview.php?iVersionId=$oRow->versionId\">".
|
$oRow->type,
|
||||||
"$oRow->appName: $oRow->versionName</a>" :
|
|
||||||
"<a href=\"".BASE."appview.php?iAppId=$oRow->appId\">".
|
|
||||||
"$oRow->appName</a>",
|
|
||||||
$oRow->TYPE,
|
|
||||||
$oRow->description,
|
$oRow->description,
|
||||||
print_date(mysqltimestamp_to_unixtimestamp($oRow->submitTime))),
|
print_date(mysqltimestamp_to_unixtimestamp($oRow->submitTime))),
|
||||||
($i % 2) ? "color0" : "color1");
|
($i % 2) ? "color0" : "color1");
|
||||||
@@ -79,6 +80,7 @@ class appData
|
|||||||
$sReturn .= html_table_end("");
|
$sReturn .= html_table_end("");
|
||||||
|
|
||||||
return $sReturn;
|
return $sReturn;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get appData for a given version/application, optionally filter by type */
|
/* Get appData for a given version/application, optionally filter by type */
|
||||||
|
|||||||
@@ -1133,9 +1133,14 @@ class Version {
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function objectMakeUrl()
|
||||||
|
{
|
||||||
|
return BASE."appview.php?iVersionId=$this->iVersionId";
|
||||||
|
}
|
||||||
|
|
||||||
function objectMakeLink()
|
function objectMakeLink()
|
||||||
{
|
{
|
||||||
$sLink = "<a href=\"".BASE."appview.php?iVersionId=$this->iVersionId\">".
|
$sLink = "<a href=\"".$this->objectMakeUrl()."\">".
|
||||||
$this->sName."</a>";
|
$this->sName."</a>";
|
||||||
return $sLink;
|
return $sLink;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,4 +26,6 @@ echo "\n";
|
|||||||
include_once("test_url.php");
|
include_once("test_url.php");
|
||||||
echo "\n";
|
echo "\n";
|
||||||
include_once("test_om_objects.php");
|
include_once("test_om_objects.php");
|
||||||
|
echo "\n";
|
||||||
|
include_once("test_appData.php");
|
||||||
?>
|
?>
|
||||||
|
|||||||
51
unit_test/test_appData.php
Normal file
51
unit_test/test_appData.php
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require_once("path.php");
|
||||||
|
require_once("test_common.php");
|
||||||
|
require_once(BASE."include/appData.php");
|
||||||
|
require_once(BASE."include/downloadurl.php");
|
||||||
|
|
||||||
|
function test_appData_listSubmittedBy()
|
||||||
|
{
|
||||||
|
test_start(__FUNCTION__);
|
||||||
|
|
||||||
|
global $test_email, $test_password;
|
||||||
|
if(!$oUser = create_and_login_user())
|
||||||
|
{
|
||||||
|
echo "Failed to create and log in user\n";
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Create a queued appData entry */
|
||||||
|
$oDownloadUrl = new downloadurl;
|
||||||
|
|
||||||
|
$oDownloadUrl->sUrl = "http://www.microsoft.com/windowsmedia";
|
||||||
|
$oDownloadUrl->sDescription = "Download Meida Player";
|
||||||
|
$oDownloadUrl->iVersionId = 1;
|
||||||
|
|
||||||
|
$oDownloadUrl->create();
|
||||||
|
|
||||||
|
$shReturn = appData::listSubmittedBy($oUser->iUserId, true);
|
||||||
|
|
||||||
|
/* There should be two lines; one header and one for the downloadurl */
|
||||||
|
$iExpected = 2;
|
||||||
|
$iReceived = substr_count($shReturn, "</tr>");
|
||||||
|
if($iExpected != $iReceived)
|
||||||
|
{
|
||||||
|
echo "Got $iReceived rows instead of $iExpected.\n";
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Clean up */
|
||||||
|
$oDownloadUrl->delete();
|
||||||
|
$oUser->delete();
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!test_appData_listSubmittedBy())
|
||||||
|
echo "test_appData_listSubmittedBy() failed!\n";
|
||||||
|
else
|
||||||
|
echo "test_appData_listSubmittedBy() passed\n";
|
||||||
|
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user