Skip to content

Commit e0d726a

Browse files
committed
Merge remote-tracking branch 'ogresCE/MAGETWO-48650-no-upgrades-available' into PR_Branch
2 parents 9b026f0 + aa851e1 commit e0d726a

File tree

4 files changed

+68
-32
lines changed

4 files changed

+68
-32
lines changed

setup/pub/magento/setup/select-version.js

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55

66
'use strict';
77
angular.module('select-version', ['ngStorage'])
8-
.controller('selectVersionController', ['$scope', '$http', '$localStorage', function ($scope, $http, $localStorage) {
8+
.controller('selectVersionController', ['$scope', '$http', '$localStorage', '$sce', function ($scope, $http, $localStorage, $sce) {
99
$scope.packages = [{
1010
name: '',
1111
version: ''
1212
}];
1313
$scope.upgradeReadyForNext = false;
1414
$scope.upgradeProcessed = false;
1515
$scope.upgradeProcessError = false;
16+
$scope.upgradeProcessErrorMessage = '';
1617
$scope.componentsReadyForNext = true;
1718
$scope.componentsProcessed = false;
1819
$scope.componentsProcessError = false;
@@ -27,33 +28,39 @@ angular.module('select-version', ['ngStorage'])
2728
$http.get('index.php/select-version/systemPackage', {'responseType' : 'json'})
2829
.success(function (data) {
2930
if (data.responseType != 'error') {
30-
$scope.selectedOption = [];
31-
$scope.versions = [];
32-
for (var i = 0; i < data.packages.length; i++) {
33-
angular.forEach(data.packages[i].versions, function (value, key) {
34-
$scope.versions.push({
35-
'versionInfo': angular.toJson({
36-
'package': data.packages[i].package,
37-
'version': value
38-
}), 'version': value
31+
if (data.packages.length <= 1) {
32+
$scope.upgradeProcessError = true;
33+
$scope.upgradeProcessErrorMessage = "You're already using the latest version, there's nothing for us to do.";
34+
} else {
35+
$scope.selectedOption = [];
36+
$scope.versions = [];
37+
for (var i = 0; i < data.packages.length; i++) {
38+
angular.forEach(data.packages[i].versions, function (value, key) {
39+
$scope.versions.push({
40+
'versionInfo': angular.toJson({
41+
'package': data.packages[i].package,
42+
'version': value
43+
}), 'version': value
44+
});
3945
});
46+
}
47+
48+
$scope.versions = $scope.versions.sort(function (a, b) {
49+
if (a.version.id < b.version.id) {
50+
return 1;
51+
}
52+
if (a.version.id > b.version.id) {
53+
return -1;
54+
}
55+
return 0;
4056
});
57+
$scope.selectedOption = $scope.versions[0].versionInfo;
58+
$scope.upgradeReadyForNext = true;
4159
}
4260

43-
$scope.versions = $scope.versions.sort(function (a, b) {
44-
if (a.version.id < b.version.id) {
45-
return 1;
46-
}
47-
if (a.version.id > b.version.id) {
48-
return -1;
49-
}
50-
return 0;
51-
});
52-
$scope.selectedOption = $scope.versions[0].versionInfo;
53-
$scope.upgradeReadyForNext = true;
54-
5561
} else {
5662
$scope.upgradeProcessError = true;
63+
$scope.upgradeProcessErrorMessage = $sce.trustAsHtml(data.error);
5764
}
5865
$scope.upgradeProcessed = true;
5966
})

setup/src/Magento/Setup/Model/SystemPackage.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,19 @@ public function getPackageVersions()
5959
$systemPackages = [];
6060
$systemPackages = $this->getInstalledSystemPackages($systemPackages);
6161
if (empty($systemPackages)) {
62-
throw new \RuntimeException('System packages not found');
62+
// git cloned Magento does not include system package
63+
throw new \RuntimeException(
64+
'We\'re sorry, no components are available because you cloned the Magento 2 GitHub repository. ' .
65+
'You must manually update components as discussed in the ' .
66+
'<a href="http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/dev_options.html">' .
67+
'Installation Guide</a>.'
68+
);
6369
}
6470
foreach ($systemPackages as $systemPackage) {
6571
$versions = [];
6672
$systemPackageInfo = $this->infoCommand->run($systemPackage);
6773
if (!$systemPackageInfo) {
68-
throw new \RuntimeException('System package not found');
74+
throw new \RuntimeException("We cannot retrieve information on $systemPackage.");
6975
}
7076

7177
$versions = $this->getSystemPackageVersions($systemPackageInfo, $versions);

setup/src/Magento/Setup/Test/Unit/Model/SystemPackageTest.php

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,36 @@ public function testGetPackageVersions()
178178

179179
/**
180180
* @expectedException \RuntimeException
181-
* @expectedExceptionMessage System package not found
181+
* @expectedExceptionMessage no components are available because you cloned the Magento 2 GitHub repository
182+
*/
183+
public function testGetPackageVersionGitCloned()
184+
{
185+
$package = $this->getMock('\Composer\Package\Package', [], [], '', false);
186+
$this->repository
187+
->expects($this->once())
188+
->method('getPackages')
189+
->willReturn([$package]);
190+
191+
$this->locker->expects($this->once())->method('getLockedRepository')->willReturn($this->repository);
192+
$this->composerInformation->expects($this->any())->method('isSystemPackage')->willReturn(false);
193+
$this->composer->expects($this->once())->method('getLocker')->willReturn($this->locker);
194+
$this->magentoComposerApp->expects($this->once())->method('createComposer')->willReturn($this->composer);
195+
196+
$this->composerAppFactory->expects($this->once())
197+
->method('create')
198+
->willReturn($this->magentoComposerApp);
199+
200+
$this->composerAppFactory->expects($this->once())
201+
->method('createInfoCommand')
202+
->willReturn($this->infoCommand);
203+
204+
$this->systemPackage = new SystemPackage($this->composerAppFactory, $this->composerInformation);
205+
$this->systemPackage->getPackageVersions();
206+
}
207+
208+
/**
209+
* @expectedException \RuntimeException
210+
* @expectedExceptionMessage We cannot retrieve information on magento/product-community-edition.
182211
*/
183212
public function testGetPackageVersionsFailed()
184213
{
@@ -200,10 +229,6 @@ public function testGetPackageVersionsFailed()
200229
$this->composer->expects($this->once())->method('getLocker')->willReturn($this->locker);
201230
$this->magentoComposerApp->expects($this->once())->method('createComposer')->willReturn($this->composer);
202231

203-
$this->composerAppFactory->expects($this->once())
204-
->method('createInfoCommand')
205-
->willReturn($this->infoCommand);
206-
207232
$this->composerAppFactory->expects($this->once())
208233
->method('create')
209234
->willReturn($this->magentoComposerApp);

setup/view/magento/setup/select-version.phtml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,7 @@
3939
<span class="message-text">Checking for a new version...</span>
4040
</div>
4141
<div class="message message-error" ng-show="upgradeProcessError">
42-
<span class="message-text">
43-
Sorry, we can't take that action right now.
44-
</span>
42+
<span class="message-text" ng-bind-html="upgradeProcessErrorMessage"></span>
4543
</div>
4644
<div class="row" ng-show="upgradeProcessed && !upgradeProcessError">
4745
<div class="col-m-3">

0 commit comments

Comments
 (0)