ChangeSet ID: 31045
CVSROOT: /opt/cvs-commit
Module name: appdb
Changes by: wineowner(a)winehq.org 2007/04/16 18:19:44
Modified files:
include : maintainer.php
unit_test : test_maintainer.php
Log message:
Alexander Nicolaysen Sørnes <alex(a)thehandofagony.com>
Fix maintainer listing for versions. getMaintainersForAppIdVersionId() did not check that
additional entries had a superMaintainer = 1 so a maintainer of one version would be listed
as the maintainer for all versions of the application. Correct that issue and update the
unit test.
Patch: http://cvs.winehq.org/patch.py?id=31045
Old revision New revision Changes Path
1.38 1.39 +13 -3 appdb/include/maintainer.php
1.9 1.10 +15 -2 appdb/unit_test/test_maintainer.php
Index: appdb/include/maintainer.php
diff -u -p appdb/include/maintainer.php:1.38 appdb/include/maintainer.php:1.39
--- appdb/include/maintainer.php:1.38 16 Apr 2007 23:19:44 -0000
+++ appdb/include/maintainer.php 16 Apr 2007 23:19:44 -0000
@@ -396,9 +396,19 @@ class maintainer
if($iVersionId)
{
$hResult = query_parameters("SELECT userId from appMaintainers, appVersion
- WHERE appMaintainers.queued = 'false' AND appVersion.versionId = '?'
- AND ((appMaintainers.versionId = appVersion.versionId) OR
- (appMaintainers.appId = appVersion.appId))", $iVersionId);
+ WHERE
+ appMaintainers.queued = 'false'
+ AND
+ appVersion.versionId = '?'
+ AND
+ (
+ appMaintainers.versionId = appVersion.versionId
+ OR
+ (
+ appMaintainers.appId = appVersion.appId
+ AND superMaintainer = '1'
+ )
+ )", $iVersionId);
}
/*
* If versionId was not supplied we fetch supermaintainers of application and maintainer of all versions.
Index: appdb/unit_test/test_maintainer.php
diff -u -p appdb/unit_test/test_maintainer.php:1.9 appdb/unit_test/test_maintainer.php:1.10
--- appdb/unit_test/test_maintainer.php:1.9 16 Apr 2007 23:19:44 -0000
+++ appdb/unit_test/test_maintainer.php 16 Apr 2007 23:19:44 -0000
@@ -461,6 +461,10 @@ function test_maintainer_getMaintainersF
$oUser->addPriv("admin");
+ $oSecondUser = new user();
+ $oSecondUser->iUserId = $oUser->iUserId + 1;
+ $oSecondUser->addPriv("admin");
+
$oApp = new application();
$oApp->create();
$oFirstVersion = new version();
@@ -519,6 +523,15 @@ function test_maintainer_getMaintainersF
$oFirstVersionMaintainer->iUserId = $oUser->iUserId;
$oFirstVersionMaintainer->create();
+ /* Become a maintainer for the other version */
+ $oSecondVersionMaintainer = new maintainer();
+ $oSecondVersionMaintainer->sMaintainReason = "I need it";
+ $oSecondVersionMaintainer->iVersionId = $oSecondVersion->iVersionId;
+ $oSecondVersionMaintainer->iAppId = $oFirstVersion->iAppId;
+ $oSecondVersionMaintainer->bSuperMaintainer = FALSE;
+ $oSecondVersionMaintainer->iUserId = $oSecondUser->iUserId;
+ $oSecondVersionMaintainer->create();
+
if(!$hResult = maintainer::getMaintainersForAppIdVersionId(null,
$oFirstVersion->iVersionId))
{
@@ -542,8 +555,8 @@ function test_maintainer_getMaintainersF
return FALSE;
}
- /* The second version should not have any maintainers */
- $iExpected = 0;
+ /* The second version should have 1 maintainer */
+ $iExpected = 1;
$iReceived = mysql_num_rows($hResult);
if($iExpected != $iReceived)
{