Merge pull request #488 from marc1706/ticket/477
[ticket/477] Expect version_helper to throw RuntimeException
This commit is contained in:
@@ -41,6 +41,12 @@ class version_check
|
||||
*/
|
||||
protected $current_version;
|
||||
|
||||
/** @var array Update data */
|
||||
protected $update_data;
|
||||
|
||||
/** @var array Template data */
|
||||
protected $template_data;
|
||||
|
||||
/**
|
||||
* Construct a version_check object
|
||||
*
|
||||
@@ -65,7 +71,7 @@ class version_check
|
||||
* returning current version
|
||||
*
|
||||
* @param bool $return_version Yes if current version should be returned
|
||||
* @return string Current version if $return_version is set to true
|
||||
* @return string|bool Current version if $return_version is set to true, false if not
|
||||
*/
|
||||
public function check($return_version = false)
|
||||
{
|
||||
@@ -76,7 +82,15 @@ class version_check
|
||||
|
||||
$this->version_helper->force_stability(($this->config['extension_force_unstable'] || !$this->version_helper->is_stable($this->current_version)) ? 'unstable' : null);
|
||||
|
||||
$updates = $this->version_helper->get_suggested_updates(true);
|
||||
// Expect version_helper to throw RuntimeExceptions
|
||||
try
|
||||
{
|
||||
$this->update_data = $this->version_helper->get_suggested_updates(true);
|
||||
}
|
||||
catch (\RuntimeException $e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
// Return version if $return_version is set to true
|
||||
if ($return_version)
|
||||
@@ -84,9 +98,9 @@ class version_check
|
||||
return $this->current_version;
|
||||
}
|
||||
|
||||
$version_up_to_date = empty($updates);
|
||||
$version_up_to_date = empty($this->update_data);
|
||||
|
||||
$template_data = array(
|
||||
$this->template_data = array(
|
||||
'AUTHOR' => $this->version_data['author'],
|
||||
'CURRENT_VERSION' => $this->current_version,
|
||||
'UP_TO_DATE' => sprintf((!$version_up_to_date) ? $this->user->lang['NOT_UP_TO_DATE'] : $this->user->lang['UP_TO_DATE'], $this->version_data['title']),
|
||||
@@ -96,15 +110,25 @@ class version_check
|
||||
'LATEST_VERSION' => $this->current_version,
|
||||
);
|
||||
|
||||
if (!$version_up_to_date)
|
||||
$this->display_update_information();
|
||||
$this->template->assign_block_vars('mods', $this->template_data);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display update information if updates exist
|
||||
*/
|
||||
protected function display_update_information()
|
||||
{
|
||||
if (!empty($this->update_data))
|
||||
{
|
||||
$updates = array_shift($updates);
|
||||
$template_data = array_merge($template_data, array(
|
||||
'ANNOUNCEMENT' => (string) $updates['announcement'],
|
||||
'DOWNLOAD' => (string) $updates['download'],
|
||||
'LATEST_VERSION' => $updates['current'],
|
||||
$update = array_shift($this->update_data);
|
||||
$this->template_data = array_merge($this->template_data, array(
|
||||
'ANNOUNCEMENT' => (string) $update['announcement'],
|
||||
'DOWNLOAD' => (string) $update['download'],
|
||||
'LATEST_VERSION' => $update['current'],
|
||||
));
|
||||
}
|
||||
$this->template->assign_block_vars('mods', $template_data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ class phpbb_functions_version_check_test extends \board3\portal\tests\testframew
|
||||
{
|
||||
$this->get_version_helper($version);
|
||||
$this->assertEquals($version, $this->version_check->check(true));
|
||||
$this->assertNull($this->version_check->check());
|
||||
$this->assertFalse($this->version_check->check());
|
||||
$this->template->assert_equals($template_data, 'mods');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user