appdb/ include/maintainer.php unit_test/test_m ...

WineHQ wineowner at wine.codeweavers.com
Mon Apr 16 18:19:44 CDT 2007


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



More information about the wine-cvs mailing list