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)
|
||||
{
|
||||
$hResult = query_parameters("SELECT appData.TYPE, appData.appId,
|
||||
appData.versionId, appData.description, appData.submitTime,
|
||||
appFamily.appName, appVersion.versionName FROM appData,
|
||||
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
|
||||
$hResult = query_parameters("SELECT * FROM appData WHERE
|
||||
appData.submitterId = '?'
|
||||
AND
|
||||
appData.queued = '?'
|
||||
ORDER BY appData.id",
|
||||
"false", "false", $iUserId, $bQueued ? "true" : "false");
|
||||
$iUserId, $bQueued ? "true" : "false");
|
||||
|
||||
if(!$hResult || !mysql_num_rows($hResult))
|
||||
return false;
|
||||
|
||||
$sReturn .= html_table_begin("width=\"100%\" align=\"center\"");
|
||||
$sReturn = html_table_begin("width=\"100%\" align=\"center\"");
|
||||
$sReturn .= html_tr(array(
|
||||
"Version",
|
||||
"Type",
|
||||
@@ -64,13 +59,19 @@ class appData
|
||||
|
||||
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(
|
||||
$oRow->versionId ?
|
||||
"<a href=\"".BASE."appview.php?iVersionId=$oRow->versionId\">".
|
||||
"$oRow->appName: $oRow->versionName</a>" :
|
||||
"<a href=\"".BASE."appview.php?iAppId=$oRow->appId\">".
|
||||
"$oRow->appName</a>",
|
||||
$oRow->TYPE,
|
||||
$sLink,
|
||||
$oRow->type,
|
||||
$oRow->description,
|
||||
print_date(mysqltimestamp_to_unixtimestamp($oRow->submitTime))),
|
||||
($i % 2) ? "color0" : "color1");
|
||||
@@ -79,6 +80,7 @@ class appData
|
||||
$sReturn .= html_table_end("");
|
||||
|
||||
return $sReturn;
|
||||
|
||||
}
|
||||
|
||||
/* Get appData for a given version/application, optionally filter by type */
|
||||
|
||||
@@ -1133,9 +1133,14 @@ class Version {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
function objectMakeUrl()
|
||||
{
|
||||
return BASE."appview.php?iVersionId=$this->iVersionId";
|
||||
}
|
||||
|
||||
function objectMakeLink()
|
||||
{
|
||||
$sLink = "<a href=\"".BASE."appview.php?iVersionId=$this->iVersionId\">".
|
||||
$sLink = "<a href=\"".$this->objectMakeUrl()."\">".
|
||||
$this->sName."</a>";
|
||||
return $sLink;
|
||||
}
|
||||
|
||||
@@ -26,4 +26,6 @@ echo "\n";
|
||||
include_once("test_url.php");
|
||||
echo "\n";
|
||||
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