[ticket/14968] Update docblock and ensure method returns array

PHPBB3-14968
This commit is contained in:
Marc Alexander 2017-01-22 16:56:14 +01:00
parent a620ce0713
commit 20a4d095de
No known key found for this signature in database
GPG key ID: 50E0D2423696F995
2 changed files with 10 additions and 6 deletions

View file

@ -201,11 +201,14 @@ class version_helper
} }
/** /**
* Gets the latest version for the current branch the user is on * Gets the latest update for the current branch the user is on
* Will suggest versions from newer branches when EoL has been reached
* and/or version from newer branch is needed for having all known security
* issues fixed.
* *
* @param bool $force_update Ignores cached data. Defaults to false. * @param bool $force_update Ignores cached data. Defaults to false.
* @param bool $force_cache Force the use of the cache. Override $force_update. * @param bool $force_cache Force the use of the cache. Override $force_update.
* @return string * @return array Version info or empty array if there are no updates
* @throws \RuntimeException * @throws \RuntimeException
*/ */
public function get_update_on_branch($force_update = false, $force_cache = false) public function get_update_on_branch($force_update = false, $force_cache = false)
@ -221,10 +224,9 @@ class version_helper
}); });
// Get the lowest version from the previous list. // Get the lowest version from the previous list.
return array_reduce($versions, function($value, $data) use ($self, $current_version) { $update_info = array_reduce($versions, function($value, $data) use ($self, $current_version) {
if ($value === null && $self->compare($data['current'], $current_version, '>=')) if ($value === null && $self->compare($data['current'], $current_version, '>='))
{ {
if (!$data['eol'] && (!$data['security'] || $self->compare($data['security'], $data['current'], '<='))) if (!$data['eol'] && (!$data['security'] || $self->compare($data['security'], $data['current'], '<=')))
{ {
return ($self->compare($data['current'], $current_version, '>')) ? $data : array(); return ($self->compare($data['current'], $current_version, '>')) ? $data : array();
@ -237,6 +239,8 @@ class version_helper
return $value; return $value;
}); });
return $update_info === null ? array() : $update_info;
} }
/** /**

View file

@ -419,7 +419,7 @@ class phpbb_version_helper_test extends phpbb_test_case
array( array(
'1.1.0', '1.1.0',
array(), array(),
null, array(),
), ),
// Latest safe release is 1.0.1 // Latest safe release is 1.0.1
array( array(
@ -500,7 +500,7 @@ class phpbb_version_helper_test extends phpbb_test_case
'eol' => true, 'eol' => true,
), ),
), ),
null, array(),
), ),
); );
} }