Ejegg has uploaded a new change for review. https://gerrit.wikimedia.org/r/312063
Change subject: Use booleans in function signatures ...................................................................... Use booleans in function signatures Only cast to int just before dropping stuff in the db. TODO: cast to boolean immediately after reading from db. Change-Id: Ided377e93e43a569496ed3840ebc255c9c09f768 --- M includes/Banner.php M includes/Campaign.php M special/SpecialCentralNotice.php M special/SpecialCentralNoticeBanners.php M tests/CentralNoticeTest.php M tests/CentralNoticeTestFixtures.php 6 files changed, 39 insertions(+), 43 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/CentralNotice refs/changes/63/312063/1 diff --git a/includes/Banner.php b/includes/Banner.php index 52477b8..550a8b4 100644 --- a/includes/Banner.php +++ b/includes/Banner.php @@ -1309,17 +1309,18 @@ * @param $name string name of banner * @param $body string content of banner * @param $user User causing the change - * @param $displayAnon integer flag for display to anonymous users - * @param $displayAccount integer flag for display to logged in users - * @param $fundraising integer flag for fundraising banner (optional) + * @param $displayAnon boolean flag for display to anonymous users + * @param $displayAccount boolean flag for display to logged in users + * @param $fundraising boolean flag for fundraising banner (optional) * @param $mixins array list of mixins (optional) * @param $priorityLangs array Array of priority languages for the translate extension * @param $devices array Array of device names this banner is targeted at + * @param $summary string|null Optional summary of changes for logging * * @return bool true or false depending on whether banner was successfully added */ static function addTemplate( $name, $body, $user, $displayAnon, - $displayAccount, $fundraising = 0, + $displayAccount, $fundraising = false, $mixins = array(), $priorityLangs = array(), $devices = null, $summary = null ) { @@ -1339,7 +1340,7 @@ } $banner->setAllocation( $displayAnon, $displayAccount ); - $banner->setCategory( ( $fundraising == 1 ) ? 'fundraising' : '{{{campaign}}}' ); + $banner->setCategory( $fundraising ? 'fundraising' : '{{{campaign}}}' ); $banner->setDevices( $devices ); $banner->setPriorityLanguages( $priorityLangs ); $banner->setBodyContent( $body ); diff --git a/includes/Campaign.php b/includes/Campaign.php index cac71ac..85532ad 100644 --- a/includes/Campaign.php +++ b/includes/Campaign.php @@ -812,11 +812,11 @@ * Add a new campaign to the database * * @param $noticeName string: Name of the campaign - * @param $enabled int: Boolean setting, 0 or 1 + * @param $enabled bool: Boolean setting, true or false * @param $startTs string: Campaign start in UTC * @param $projects array: Targeted project types (wikipedia, wikibooks, etc.) * @param $project_languages array: Targeted project languages (en, de, etc.) - * @param $geotargeted int: Boolean setting, 0 or 1 + * @param $geotargeted bool: Boolean setting, true or false * @param $geo_countries array: Targeted countries * @param $throttle int: limit allocations, 0 - 100 * @param $priority int: priority level, LOW_PRIORITY - EMERGENCY_PRIORITY @@ -851,10 +851,10 @@ $dbw->insert( 'cn_notices', array( 'not_name' => $noticeName, - 'not_enabled' => $enabled, + 'not_enabled' => (int)$enabled, 'not_start' => $dbw->timestamp( $startTs ), 'not_end' => $dbw->timestamp( $endTs ), - 'not_geo' => $geotargeted, + 'not_geo' => (int)$geotargeted, 'not_throttle' => $throttle, 'not_preferred' => $priority, ) @@ -898,10 +898,10 @@ 'countries' => implode( ", ", $geo_countries ), 'start' => $dbw->timestamp( $startTs ), 'end' => $dbw->timestamp( $endTs ), - 'enabled' => $enabled, + 'enabled' => (int)$enabled, 'preferred' => 0, 'locked' => 0, - 'geo' => $geotargeted, + 'geo' => (int)$geotargeted, 'throttle' => $throttle, ); Campaign::logCampaignChange( 'created', $not_id, $user, @@ -1121,7 +1121,7 @@ * * @param $noticeName string: Name of the campaign * @param $settingName string: Name of a boolean setting (enabled, locked, or geo) - * @param $settingValue int: Value to use for the setting, 0 or 1 + * @param $settingValue bool: Value to use for the setting, true or false */ static function setBooleanCampaignSetting( $noticeName, $settingName, $settingValue ) { if ( !Campaign::campaignExists( $noticeName ) ) { @@ -1131,7 +1131,7 @@ $settingName = strtolower( $settingName ); $dbw = CNDatabase::getDb( DB_MASTER ); $dbw->update( 'cn_notices', - array( 'not_' . $settingName => $settingValue ), + array( 'not_' . $settingName => (int)$settingValue ), array( 'not_name' => $noticeName ) ); } diff --git a/special/SpecialCentralNotice.php b/special/SpecialCentralNotice.php index a2da1d9..3f3c89e 100644 --- a/special/SpecialCentralNotice.php +++ b/special/SpecialCentralNotice.php @@ -150,19 +150,19 @@ if ( isset( $campaignChanges['archived'] ) ) { Campaign::setBooleanCampaignSetting( $campaignName, 'archived', - $campaignChanges['archived'] ? 1 : 0 ); + $campaignChanges['archived'] ); } if ( isset( $campaignChanges['locked'] ) ) { Campaign::setBooleanCampaignSetting( $campaignName, 'locked', - $campaignChanges['locked'] ? 1 : 0 ); + $campaignChanges['locked'] ); } if ( isset( $campaignChanges['enabled'] ) ) { Campaign::setBooleanCampaignSetting( $campaignName, 'enabled', - $campaignChanges['enabled'] ? 1 : 0 ); + $campaignChanges['enabled'] ); } if ( isset( $campaignChanges['priority'] ) ) { @@ -432,7 +432,7 @@ if ( $noticeName == '' ) { $this->showError( 'centralnotice-null-string' ); } else { - $result = Campaign::addCampaign( $noticeName, '0', $start, $projects, + $result = Campaign::addCampaign( $noticeName, false, $start, $projects, $project_languages, $geotargeted, $geo_countries, 100, CentralNotice::NORMAL_PRIORITY, $this->getUser(), $this->getSummaryFromRequest( $request ) ); @@ -578,24 +578,20 @@ // Handle removing campaign if ( $request->getVal( 'archive' ) ) { - Campaign::setBooleanCampaignSetting( $notice, 'archived', 1 ); + Campaign::setBooleanCampaignSetting( $notice, 'archived', true ); } $initialCampaignSettings = Campaign::getCampaignSettings( $notice ); // Handle locking/unlocking campaign - if ( $request->getCheck( 'locked' ) ) { - Campaign::setBooleanCampaignSetting( $notice, 'locked', 1 ); - } else { - Campaign::setBooleanCampaignSetting( $notice, 'locked', 0 ); - } + Campaign::setBooleanCampaignSetting( + $notice, 'locked', $request->getCheck( 'locked' ) + ); // Handle enabling/disabling campaign - if ( $request->getCheck( 'enabled' ) ) { - Campaign::setBooleanCampaignSetting( $notice, 'enabled', 1 ); - } else { - Campaign::setBooleanCampaignSetting( $notice, 'enabled', 0 ); - } + Campaign::setBooleanCampaignSetting( + $notice, 'enabled', $request->getCheck( 'enabled' ) + ); // Set campaign traffic throttle if ( $request->getCheck( 'throttle-enabled' ) ) { @@ -628,13 +624,13 @@ // Handle updating geotargeting if ( $request->getCheck( 'geotargeted' ) ) { - Campaign::setBooleanCampaignSetting( $notice, 'geo', 1 ); + Campaign::setBooleanCampaignSetting( $notice, 'geo', true ); $countries = $request->getArray( 'geo_countries' ); if ( $countries ) { Campaign::updateCountries( $notice, $countries ); } } else { - Campaign::setBooleanCampaignSetting( $notice, 'geo', 0 ); + Campaign::setBooleanCampaignSetting( $notice, 'geo', false ); } // Handle updating the start and end settings diff --git a/special/SpecialCentralNoticeBanners.php b/special/SpecialCentralNoticeBanners.php index f8359a9..b868194 100755 --- a/special/SpecialCentralNoticeBanners.php +++ b/special/SpecialCentralNoticeBanners.php @@ -264,7 +264,7 @@ false, false, // Default values of a zillion parameters... - 0, array(), array(), null, + false, array(), array(), null, $formData['newBannerEditSummary'] ); diff --git a/tests/CentralNoticeTest.php b/tests/CentralNoticeTest.php index b7ecc8d..5a9a759 100644 --- a/tests/CentralNoticeTest.php +++ b/tests/CentralNoticeTest.php @@ -27,13 +27,13 @@ parent::setUp(); self::$centralNotice = new CentralNotice; $noticeName = 'PHPUnitTestCampaign'; - $enabled = 0; + $enabled = false; $startTs = '20110718' . '235500'; $projects = array( 'wikipedia', 'wikibooks' ); $languages = array( 'en', 'de' ); - $geotargeted = 1; + $geotargeted = true; $countries = array( 'US', 'AF' ); - $preferred = 1; + $priority = 1; $this->fixture = new CentralNoticeTestFixtures(); $this->fixture->setupTestCaseWithDefaults( @@ -65,17 +65,16 @@ } Campaign::addCampaign( $noticeName, $enabled, $startTs, $projects, $languages, $geotargeted, $countries, - 100, $preferred, $this->userUser ); + 100, $priority, $this->userUser ); $this->campaignId = Campaign::getNoticeId( 'PHPUnitTestCampaign' ); self::$noticeTemplate = new SpecialNoticeTemplate; $bannerName = 'PHPUnitTestBanner'; $body = 'testing'; - $displayAnon = 1; - $displayAccount = 1; - $fundraising = 1; - $campaign_z_index = 1; + $displayAnon = true; + $displayAccount = true; + $fundraising = true; $this->campaignBannersJson = '[{"name":"PHPUnitTestBanner","weight":25,"display_anon":1,"display_account":1,"fundraising":1,"device":"desktop","campaign":"PHPUnitTestCampaign","campaign_z_index":"1","campaign_num_buckets":1,"campaign_throttle":100,"bucket":0}]'; diff --git a/tests/CentralNoticeTestFixtures.php b/tests/CentralNoticeTestFixtures.php index 33e4c1d..221dbe8 100644 --- a/tests/CentralNoticeTestFixtures.php +++ b/tests/CentralNoticeTestFixtures.php @@ -230,14 +230,14 @@ $campaign['id'] = Campaign::addCampaign( $campaign['name'], - (int)$campaign['enabled'], + $campaign['enabled'], $campaign['startTs'], $campaign['projects'], $campaign['languages'], - (int)$campaign['geotargeted'], + $campaign['geotargeted'], $campaign['countries'], $campaign['throttle'], - (int)$campaign['preferred'], + $campaign['preferred'], $this->user ); @@ -273,7 +273,7 @@ Campaign::setBooleanCampaignSetting( $campaign['name'], 'archived', - (int)$campaign['archived'] + $campaign['archived'] ); } -- To view, visit https://gerrit.wikimedia.org/r/312063 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ided377e93e43a569496ed3840ebc255c9c09f768 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/CentralNotice Gerrit-Branch: master Gerrit-Owner: Ejegg <eeggles...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits