ChangeSet ID: 28390 CVSROOT: /opt/cvs-commit Module name: appdb Changes by: wineowner@winehq.org 2006/09/29 20:31:04
Modified files: include : application.php unit_test : test_application.php
Log message: "EA Durbin" ead1234@hotmail.com Application::countWithRating() and getWithRating() should avoid queued applications. Add unit test to ensure that we don't include queued applications
Patch: http://cvs.winehq.org/patch.py?id=28390
Old revision New revision Changes Path 1.73 1.74 +3 -1 appdb/include/application.php 1.2 1.3 +45 -1 appdb/unit_test/test_application.php
Index: appdb/include/application.php diff -u -p appdb/include/application.php:1.73 appdb/include/application.php:1.74 --- appdb/include/application.php:1.73 30 Sep 2006 1:31: 4 -0000 +++ appdb/include/application.php 30 Sep 2006 1:31: 4 -0000 @@ -371,7 +371,8 @@ class Application { { $sQuery = "SELECT DISTINCT count(appId) as total FROM appVersion - WHERE maintainer_rating = '?'"; + WHERE maintainer_rating = '?' + AND queued='false'";
if($hResult = query_parameters($sQuery, $sRating)) { @@ -386,6 +387,7 @@ class Application { $sQuery = "SELECT DISTINCT appId FROM appVersion WHERE maintainer_rating = '?' + AND queued = 'false' ORDER BY appId ASC LIMIT ?, ?";
if($hResult = query_parameters($sQuery, $sRating, $iOffset, $iItemsPerPage)) Index: appdb/unit_test/test_application.php diff -u -p appdb/unit_test/test_application.php:1.2 appdb/unit_test/test_application.php:1.3 --- appdb/unit_test/test_application.php:1.2 30 Sep 2006 1:31: 4 -0000 +++ appdb/unit_test/test_application.php 30 Sep 2006 1:31: 4 -0000 @@ -153,6 +153,50 @@ function test_application_getWithRating(
delete_app_and_user($oApp, $oUser);
+ + //test to ensure getWithRating doesn't return applications that are queued + + if(!$oUser = create_and_login_user()) //create user without admin priveliges + return false; + + + $oApp = new Application(); + $oApp->sName = "Some application"; + $oApp->sDescription = "some description"; + $oApp->submitterId = $oUser->iUserId; + if(!$oApp->create()) + { + $oUser->delete(); /* clean up the user we created prior to exiting */ + echo "Failed to create application!\n"; + return false; + } + + $iAppId = $oApp->iAppId; /* use the iAppId of the application we just created */ + + $oVersion = new Version(); + $oVersion->versionName = "Some Version".$iVersionIdIndex; + $oVersion->description = "Some Version description".$iVersionIdIndex; + $oVersion->iAppId = $oApp->iAppId; + $oVersion->sTestedRating = "Bronze"; + $oVersion->sQueued = "True"; + + if(!$oVersion->create()) + { + delete_app_and_user($oApp, $oUser); + echo "Failed to create version!\n"; + return false; + } + + + $aApps=Application::getWithRating($sRating, $iOffset, $iItemsPerPage); + + if ( in_array($iAppId, $aApps )) //if the appId is in our test results fail queued test + { + delete_app_and_user($oApp, $oUser); + echo "getWithRating failed to return a unique result set\n"; + return false; + } + return true; }
@@ -197,7 +241,7 @@ function create_and_login_user() echo "Got '".$retval."' instead of SUCCESS(".SUCCESS.")\n"; return false; } - + return $oUser;
}