Skip to content

Commit 3ccb057

Browse files
committed
Merge pull request #533 from magento-ogre/PR_Branch
[Ogres] Bug Fixes
2 parents f53c16c + 7289b10 commit 3ccb057

30 files changed

+541
-284
lines changed

dev/tests/integration/testsuite/Magento/Framework/Composer/ComposerInformationTest.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,4 +209,30 @@ public function testIsPackageInComposerJson()
209209
$packageName = 'magento/wrong-module-name';
210210
$this->assertFalse($composerInfo->isPackageInComposerJson($packageName));
211211
}
212+
213+
/**
214+
* @param $composerDir string Directory under _files that contains composer files
215+
*
216+
* @dataProvider getRequiredPhpVersionDataProvider
217+
*/
218+
public function testGetRootRepositories($composerDir)
219+
{
220+
$this->setupDirectory($composerDir);
221+
222+
/** @var \Magento\Framework\Composer\ComposerInformation $composerInfo */
223+
$composerInfo = $this->objectManager->create(
224+
'Magento\Framework\Composer\ComposerInformation',
225+
[
226+
'applicationFactory' => new MagentoComposerApplicationFactory(
227+
$this->composerJsonFinder,
228+
$this->directoryList
229+
)
230+
]
231+
);
232+
if ($composerDir === 'testFromCreateProject') {
233+
$this->assertEquals(['https://repo.magento.com/'], $composerInfo->getRootRepositories());
234+
} else {
235+
$this->assertEquals([], $composerInfo->getRootRepositories());
236+
}
237+
}
212238
}

dev/tests/integration/testsuite/Magento/Framework/Composer/_files/testFromCreateProject/composer.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@
1010
"require": {
1111
"magento/product-community-edition": "0.74.0-beta9"
1212
},
13+
"repositories": [
14+
{
15+
"type": "composer",
16+
"url": "https://repo.magento.com/"
17+
}
18+
],
1319
"require-dev": {
1420
"phpunit/phpunit": "4.1.0",
1521
"squizlabs/php_codesniffer": "1.5.3",

dev/tests/integration/testsuite/Magento/Setup/Model/UpdatePackagesCacheTest.php

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
use Magento\TestFramework\Helper\Bootstrap;
1010
use Magento\Framework\Composer\ComposerJsonFinder;
1111
use Magento\Framework\Composer\MagentoComposerApplicationFactory;
12-
use Magento\Setup\Model\UpdatePackagesCache;
1312

1413
/**
1514
* Tests Magento\Framework\ComposerInformation
@@ -81,12 +80,6 @@ public function testGetPackagesForUpdate()
8180

8281
$this->setupDirectory('testSkeleton');
8382

84-
$objectManagerProvider = $this->getMock('Magento\Setup\Model\ObjectManagerProvider', [], [], '', false);
85-
$objectManagerProvider
86-
->expects($this->any())
87-
->method('get')
88-
->willReturn($this->objectManager);
89-
9083
/** @var UpdatePackagesCache $updatePackagesCache|\PHPUnit_Framework_MockObject_MockObject */
9184
$updatePackagesCache = $this->getMock('Magento\Setup\Model\UpdatePackagesCache', [], [], '', false);
9285

dev/tests/static/testsuite/Magento/Test/Php/LiveCodeTest.php

Lines changed: 0 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -247,117 +247,4 @@ public function testCopyPaste()
247247
"PHP Copy/Paste Detector has found error(s):" . PHP_EOL . $output
248248
);
249249
}
250-
251-
public function testDeadCode()
252-
{
253-
if (!class_exists('SebastianBergmann\PHPDCD\Analyser')) {
254-
$this->markTestSkipped('PHP Dead Code Detector is not available.');
255-
}
256-
$analyser = new \SebastianBergmann\PHPDCD\Analyser();
257-
$declared = [];
258-
$called = [];
259-
$collectedFiles = Files::init()->getPhpFiles(
260-
Files::INCLUDE_APP_CODE
261-
| Files::INCLUDE_PUB_CODE
262-
| Files::INCLUDE_LIBS
263-
| Files::INCLUDE_TEMPLATES
264-
| Files::INCLUDE_TESTS
265-
| Files::AS_DATA_SET
266-
| Files::INCLUDE_NON_CLASSES
267-
);
268-
foreach ($collectedFiles as $file) {
269-
$file = array_pop($file);
270-
$analyser->analyseFile($file);
271-
foreach ($analyser->getFunctionDeclarations() as $function => $declaration) {
272-
$declaration = $declaration; //avoid "unused local variable" error and non-effective array_keys call
273-
if (strpos($function, '::') === false) {
274-
$method = $function;
275-
} else {
276-
list($class, $method) = explode('::', $function);
277-
}
278-
$declared[$method] = $function;
279-
}
280-
foreach ($analyser->getFunctionCalls() as $function => $usages) {
281-
$usages = $usages; //avoid "unused local variable" error and non-effective array_keys call
282-
if (strpos($function, '::') === false) {
283-
$method = $function;
284-
} else {
285-
list($class, $method) = explode('::', $function);
286-
}
287-
$called[$method] = 1;
288-
}
289-
}
290-
291-
foreach ($called as $method => $value) {
292-
$value = $value; //avoid "unused local variable" error and non-effective array_keys call
293-
unset($declared[$method]);
294-
}
295-
$declared = $this->filterUsedObserverMethods($declared);
296-
$declared = $this->filterUsedPersistentObserverMethods($declared);
297-
$declared = $this->filterUsedCrontabObserverMethods($declared);
298-
if ($declared) {
299-
$this->fail('Dead code detected:' . PHP_EOL . implode(PHP_EOL, $declared));
300-
}
301-
}
302-
303-
/**
304-
* @param string[] $methods
305-
* @return string[]
306-
* @throws \Exception
307-
*/
308-
private function filterUsedObserverMethods($methods)
309-
{
310-
foreach (Files::init()->getConfigFiles('{*/events.xml,events.xml}') as $file) {
311-
$file = array_pop($file);
312-
313-
$doc = new \DOMDocument();
314-
$doc->load($file);
315-
foreach ($doc->getElementsByTagName('observer') as $observer) {
316-
/** @var \DOMElement $observer */
317-
$method = $observer->getAttribute('method');
318-
unset($methods[$method]);
319-
}
320-
}
321-
return $methods;
322-
}
323-
324-
/**
325-
* @param string[] $methods
326-
* @return string[]
327-
* @throws \Exception
328-
*/
329-
private function filterUsedPersistentObserverMethods($methods)
330-
{
331-
foreach (Files::init()->getConfigFiles('{*/persistent.xml,persistent.xml}') as $file) {
332-
$file = array_pop($file);
333-
334-
$doc = new \DOMDocument();
335-
$doc->load($file);
336-
foreach ($doc->getElementsByTagName('method') as $method) {
337-
/** @var \DOMElement $method */
338-
unset($methods[$method->textContent]);
339-
}
340-
}
341-
return $methods;
342-
}
343-
344-
/**
345-
* @param string[] $methods
346-
* @return string[]
347-
* @throws \Exception
348-
*/
349-
private function filterUsedCrontabObserverMethods($methods)
350-
{
351-
foreach (Files::init()->getConfigFiles('{*/crontab.xml,crontab.xml}') as $file) {
352-
$file = array_pop($file);
353-
354-
$doc = new \DOMDocument();
355-
$doc->load($file);
356-
foreach ($doc->getElementsByTagName('job') as $job) {
357-
/** @var \DOMElement $job */
358-
unset($methods[$job->getAttribute('method')]);
359-
}
360-
}
361-
return $methods;
362-
}
363250
}

lib/internal/Magento/Framework/Composer/ComposerInformation.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ class ComposerInformation
4444
*/
4545
const COMPONENT_PACKAGE_TYPE = 'magento2-component';
4646

47+
/**
48+
* Default composer repository key
49+
*/
50+
const COMPOSER_DEFAULT_REPO_KEY = 'packagist';
51+
4752
/**#@+
4853
* Composer command
4954
*/
@@ -286,4 +291,22 @@ public function getPackageRequirements($name, $version)
286291
$package = $this->composer->getRepositoryManager()->findPackage($name, $version);
287292
return $package->getRequires();
288293
}
294+
295+
/**
296+
* Returns all repository URLs, except local and packagists.
297+
*
298+
* @return string[]
299+
*/
300+
public function getRootRepositories()
301+
{
302+
$repositoryUrls = [];
303+
304+
foreach ($this->composer->getConfig()->getRepositories() as $key => $repository) {
305+
if ($key !== self::COMPOSER_DEFAULT_REPO_KEY) {
306+
$repositoryUrls[] = $repository['url'];
307+
}
308+
}
309+
310+
return $repositoryUrls;
311+
}
289312
}

lib/internal/Magento/Framework/ObjectManager/ObjectManager.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class ObjectManager implements \Magento\Framework\ObjectManagerInterface
2727
protected $_sharedInstances = [];
2828

2929
/**
30-
* @var Config\Config
30+
* @var ConfigInterface
3131
*/
3232
protected $_config;
3333

setup/src/Magento/Setup/Controller/BackupActionItems.php

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99
use Magento\Framework\Backup\Factory;
1010
use Magento\Framework\Backup\Filesystem;
1111
use Magento\Framework\Setup\BackupRollback;
12-
use Magento\Setup\Model\ObjectManagerProvider;
13-
use Magento\Setup\Model\WebLogger;
1412
use Zend\Json\Json;
1513
use Zend\Mvc\Controller\AbstractActionController;
1614
use Zend\View\Model\JsonModel;
@@ -21,47 +19,61 @@ class BackupActionItems extends AbstractActionController
2119
/**
2220
* Handler for BackupRollback
2321
*
24-
* @var BackupRollback
22+
* @var \Magento\Framework\Setup\BackupRollback
2523
*/
2624
private $backupHandler;
25+
2726
/**
2827
* Filesystem
2928
*
30-
* @var Filesystem
29+
* @var \Magento\Framework\Backup\Filesystem
3130
*/
3231
private $fileSystem;
3332

3433
/**
3534
* Filesystem Directory List
3635
*
37-
* @var DirectoryList
36+
* @var \Magento\Framework\App\Filesystem\DirectoryList
3837
*/
3938
private $directoryList;
4039

4140
/**
4241
* Constructor
4342
*
44-
* @param ObjectManagerProvider $objectManagerProvider
45-
* @param WebLogger $logger
46-
* @param DirectoryList $directoryList
47-
* @param Filesystem $fileSystem
43+
* @param \Magento\Setup\Model\ObjectManagerProvider $objectManagerProvider
44+
* @param \Magento\Setup\Model\WebLogger $logger
45+
* @param \Magento\Framework\App\Filesystem\DirectoryList $directoryList
46+
* @param \Magento\Framework\Backup\Filesystem $fileSystem
4847
*/
4948
public function __construct(
50-
ObjectManagerProvider $objectManagerProvider,
51-
WebLogger $logger,
52-
DirectoryList $directoryList,
53-
Filesystem $fileSystem
49+
\Magento\Setup\Model\ObjectManagerProvider $objectManagerProvider,
50+
\Magento\Setup\Model\WebLogger $logger,
51+
\Magento\Framework\App\Filesystem\DirectoryList $directoryList,
52+
\Magento\Framework\Backup\Filesystem $fileSystem
5453
) {
5554
$objectManager = $objectManagerProvider->get();
5655
$this->backupHandler = $objectManager->create('Magento\Framework\Setup\BackupRollback', ['log' => $logger]);
5756
$this->directoryList = $directoryList;
5857
$this->fileSystem = $fileSystem;
5958
}
6059

60+
/**
61+
* No index action, return 404 error page
62+
*
63+
* @return \Zend\View\Model\ViewModel
64+
*/
65+
public function indexAction()
66+
{
67+
$view = new \Zend\View\Model\ViewModel;
68+
$view->setTemplate('/error/404.phtml');
69+
$this->getResponse()->setStatusCode(\Zend\Http\Response::STATUS_CODE_404);
70+
return $view;
71+
}
72+
6173
/**
6274
* Checks disk space availability
6375
*
64-
* @return JsonModel
76+
* @return \Zend\View\Model\JsonModel
6577
*/
6678
public function checkAction()
6779
{
@@ -99,7 +111,7 @@ public function checkAction()
99111
/**
100112
* Takes backup for code, media or DB
101113
*
102-
* @return JsonModel
114+
* @return \Zend\View\Model\JsonModel
103115
*/
104116
public function createAction()
105117
{

setup/src/Magento/Setup/Controller/ComponentGrid.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
namespace Magento\Setup\Controller;
88

9+
use Magento\Setup\Model\DateTime\TimezoneProvider;
10+
911
/**
1012
* Controller for component grid tasks
1113
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
@@ -54,14 +56,16 @@ class ComponentGrid extends \Zend\Mvc\Controller\AbstractActionController
5456
/**
5557
* @param \Magento\Framework\Composer\ComposerInformation $composerInformation
5658
* @param \Magento\Setup\Model\ObjectManagerProvider $objectManagerProvider
57-
* @param \Magento\Setup\Model\MarketplaceManager $marketplaceManager
5859
* @param \Magento\Setup\Model\UpdatePackagesCache $updatePackagesCache
60+
* @param \Magento\Setup\Model\MarketplaceManager $marketplaceManager
61+
* @param TimezoneProvider $tzProvider
5962
*/
6063
public function __construct(
6164
\Magento\Framework\Composer\ComposerInformation $composerInformation,
6265
\Magento\Setup\Model\ObjectManagerProvider $objectManagerProvider,
6366
\Magento\Setup\Model\UpdatePackagesCache $updatePackagesCache,
64-
\Magento\Setup\Model\MarketplaceManager $marketplaceManager
67+
\Magento\Setup\Model\MarketplaceManager $marketplaceManager,
68+
TimezoneProvider $tzProvider
6569
) {
6670
$this->composerInformation = $composerInformation;
6771
$objectManager = $objectManagerProvider->get();
@@ -70,7 +74,7 @@ public function __construct(
7074
$this->packageInfo = $objectManager->get('Magento\Framework\Module\PackageInfoFactory')->create();
7175
$this->marketplaceManager = $marketplaceManager;
7276
$this->updatePackagesCache = $updatePackagesCache;
73-
$this->timezone = $objectManager->get('Magento\Framework\Stdlib\DateTime\TimezoneInterface');
77+
$this->timezone = $tzProvider->get();
7478
}
7579

7680
/**

0 commit comments

Comments
 (0)