Merge pull request #228 from nextcloud/show-updater-all-the-time

Revert "[stable9] Don't show the updater if updater is incompatible"
This commit is contained in:
Marius Blüm 2016-06-27 06:53:20 +02:00 committed by GitHub
commit efc4a1b3bf
3 changed files with 13 additions and 108 deletions

View File

@ -79,33 +79,6 @@ class AdminController extends Controller {
$this->dateTimeFormatter = $dateTimeFormatter;
}
/**
* Whether the instance is compatible with the updater
*
* @return bool
*/
protected function isCompatibleWithUpdater() {
$updaterCompatible = true;
if(!function_exists('proc_open') || !function_exists('shell_exec')) {
$updaterCompatible = false;
} else {
$whichUnzip = shell_exec('command -v unzip');
if(!class_exists('ZipArchive') && empty($whichUnzip)) {
$updaterCompatible = false;
}
$whichPhp = shell_exec('command -v php');
if(empty($whichPhp)) {
$updaterCompatible = false;
}
}
if(!function_exists('curl_exec')) {
$updaterCompatible = false;
}
return $updaterCompatible;
}
/**
* @return TemplateResponse
*/
@ -121,6 +94,7 @@ class AdminController extends Controller {
'production',
];
$currentChannel = \OCP\Util::getChannel();
// Remove the currently used channel from the channels list
if(($key = array_search($currentChannel, $channels)) !== false) {
unset($channels[$key]);
@ -132,7 +106,6 @@ class AdminController extends Controller {
'currentChannel' => $currentChannel,
'channels' => $channels,
'newVersionString' => ($updateState === []) ? '' : $updateState['updateVersion'],
'updaterRequirementsFulfilled' => $this->isCompatibleWithUpdater(),
];
return new TemplateResponse($this->appName, 'admin', $params, '');

View File

@ -12,19 +12,13 @@
$channels = $_['channels'];
/** @var string $currentChannel */
$currentChannel = $_['currentChannel'];
/** @var bool $updaterRequirementsFulfilled */
$updaterRequirementsFulfilled = $_['updaterRequirementsFulfilled'];
?>
<form id="oca_updatenotification_section" class="section">
<h2><?php p($l->t('Updater')); ?></h2>
<?php if($isNewVersionAvailable === true): ?>
<strong><?php p($l->t('A new version is available: %s', [$newVersionString])); ?></strong>
<?php if($updaterRequirementsFulfilled === true): ?>
<input type="button" id="oca_updatenotification_button" value="<?php p($l->t('Open updater')) ?>">
<?php else: ?>
<br/><?php p($l->t('At the moment only manual updates are supported on your environment. This is very likely the case because functions such as shell_exec are not available.')); ?>
<?php endif; ?>
<input type="button" id="oca_updatenotification_button" value="<?php p($l->t('Open updater')) ?>">
<?php else: ?>
<strong><?php print_unescaped($l->t('Your version is up to date.')); ?></strong>
<span class="icon-info svg" title="<?php p($l->t('Checked on %s', [$lastCheckedDate])) ?>"></span>

View File

@ -67,23 +67,17 @@ class AdminControllerTest extends TestCase {
->disableOriginalConstructor()->getMock();
$this->dateTimeFormatter = $this->getMock('\\OCP\\IDateTimeFormatter');
$this->adminController = $this->getMockBuilder('\OCA\UpdateNotification\Controller\AdminController')
->setConstructorArgs(
[
'updatenotification',
$this->request,
$this->jobList,
$this->secureRandom,
$this->config,
$this->timeFactory,
$this->l10n,
$this->updateChecker,
$this->dateTimeFormatter,
]
)
->setMethods(['isCompatibleWithUpdater'])
->getMock()
;
$this->adminController = new AdminController(
'updatenotification',
$this->request,
$this->jobList,
$this->secureRandom,
$this->config,
$this->timeFactory,
$this->l10n,
$this->updateChecker,
$this->dateTimeFormatter
);
}
public function testDisplayPanelWithUpdate() {
@ -114,10 +108,6 @@ class AdminControllerTest extends TestCase {
->expects($this->once())
->method('getUpdateState')
->willReturn(['updateVersion' => '8.1.2']);
$this->adminController
->expects($this->once())
->method('isCompatibleWithUpdater')
->willReturn(true);
$params = [
'isNewVersionAvailable' => true,
@ -125,53 +115,6 @@ class AdminControllerTest extends TestCase {
'currentChannel' => \OCP\Util::getChannel(),
'channels' => $channels,
'newVersionString' => '8.1.2',
'updaterRequirementsFulfilled' => true,
];
$expected = new TemplateResponse('updatenotification', 'admin', $params, '');
$this->assertEquals($expected, $this->adminController->displayPanel());
}
public function testDisplayPanelWithUpdateAndIncompatibleUpdaterApp() {
$channels = [
'daily',
'beta',
'stable',
'production',
];
$currentChannel = \OCP\Util::getChannel();
// Remove the currently used channel from the channels list
if(($key = array_search($currentChannel, $channels)) !== false) {
unset($channels[$key]);
}
$this->config
->expects($this->once())
->method('getAppValue')
->with('core', 'lastupdatedat')
->willReturn('12345');
$this->dateTimeFormatter
->expects($this->once())
->method('formatDateTime')
->with('12345')
->willReturn('LastCheckedReturnValue');
$this->updateChecker
->expects($this->once())
->method('getUpdateState')
->willReturn(['updateVersion' => '8.1.2']);
$this->adminController
->expects($this->once())
->method('isCompatibleWithUpdater')
->willReturn(false);
$params = [
'isNewVersionAvailable' => true,
'lastChecked' => 'LastCheckedReturnValue',
'currentChannel' => \OCP\Util::getChannel(),
'channels' => $channels,
'newVersionString' => '8.1.2',
'updaterRequirementsFulfilled' => false,
];
$expected = new TemplateResponse('updatenotification', 'admin', $params, '');
@ -206,10 +149,6 @@ class AdminControllerTest extends TestCase {
->expects($this->once())
->method('getUpdateState')
->willReturn([]);
$this->adminController
->expects($this->once())
->method('isCompatibleWithUpdater')
->willReturn(true);
$params = [
'isNewVersionAvailable' => false,
@ -217,7 +156,6 @@ class AdminControllerTest extends TestCase {
'currentChannel' => \OCP\Util::getChannel(),
'channels' => $channels,
'newVersionString' => '',
'updaterRequirementsFulfilled' => true,
];
$expected = new TemplateResponse('updatenotification', 'admin', $params, '');