From 1c98bd8bcd69e8aa87fbc57cfe449cccae8a8336 Mon Sep 17 00:00:00 2001 From: Anup Dugar Date: Fri, 16 Jan 2015 11:46:26 -0800 Subject: [PATCH] MAGETWO-32767: [GITHUB] https://github.com/magento/magento2/pull/963 - Added default accept if no Accept header passed - Added api functional tests --- .../Magento/Webapi/Controller/Rest/Request.php | 4 +++- .../_files/Magento/TestModule1/etc/webapi.xml | 6 ++++++ .../Magento/Webapi/Routing/CoreRoutingTest.php | 15 +++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Webapi/Controller/Rest/Request.php b/app/code/Magento/Webapi/Controller/Rest/Request.php index bb7c316fd35ad..ca4e3164635c6 100644 --- a/app/code/Magento/Webapi/Controller/Rest/Request.php +++ b/app/code/Magento/Webapi/Controller/Rest/Request.php @@ -18,6 +18,8 @@ class Request extends \Magento\Webapi\Controller\Request */ const REQUEST_CHARSET = 'utf-8'; + const DEFAULT_ACCEPT = '*/*'; + /** @var string */ protected $_serviceName; @@ -101,7 +103,7 @@ public function getAcceptTypes() foreach ($qualityToTypes as $typeList) { $orderedTypes += $typeList; } - return array_keys($orderedTypes); + return empty($orderedTypes) ? self::DEFAULT_ACCEPT : array_keys($orderedTypes); } /** diff --git a/dev/tests/api-functional/_files/Magento/TestModule1/etc/webapi.xml b/dev/tests/api-functional/_files/Magento/TestModule1/etc/webapi.xml index 730cf6b892aaf..c73e035fdac15 100644 --- a/dev/tests/api-functional/_files/Magento/TestModule1/etc/webapi.xml +++ b/dev/tests/api-functional/_files/Magento/TestModule1/etc/webapi.xml @@ -52,6 +52,12 @@ + + + + + + diff --git a/dev/tests/api-functional/testsuite/Magento/Webapi/Routing/CoreRoutingTest.php b/dev/tests/api-functional/testsuite/Magento/Webapi/Routing/CoreRoutingTest.php index 978ceab1c9689..7a05ee6be2567 100644 --- a/dev/tests/api-functional/testsuite/Magento/Webapi/Routing/CoreRoutingTest.php +++ b/dev/tests/api-functional/testsuite/Magento/Webapi/Routing/CoreRoutingTest.php @@ -9,6 +9,10 @@ */ namespace Magento\Webapi\Routing; + +use Magento\TestFramework\Helper\Bootstrap; +use Magento\TestFramework\TestCase\Webapi\Adapter\Rest\CurlClient; + class CoreRoutingTest extends \Magento\Webapi\Routing\BaseService { public function testBasicRoutingExplicitPath() @@ -73,4 +77,15 @@ public function testExceptionSoapInternalError() $this->setExpectedException('SoapFault', 'Generic service exception'); $this->_webApiCall($serviceInfo); } + + public function testRestNoAcceptHeader() + { + $this->_markTestAsRestOnly(); + /** @var $curlClient CurlClient */ + $curlClient = Bootstrap::getObjectManager()->get( + 'Magento\TestFramework\TestCase\Webapi\Adapter\Rest\CurlClient' + ); + $response = $curlClient->get('/V1/testmodule1/resource1/1', [], ['Accept:']); + $this->assertEquals('testProduct1', $response['name'], "Empty Accept header failed to return response."); + } }