ChangeSet ID: 31045 CVSROOT: /opt/cvs-commit Module name: appdb Changes by: wineowner@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@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) {