jenkins-bot has submitted this change and it was merged.

Change subject: Revert "Revert "Respect existing X-Analytics header, if set""
......................................................................


Revert "Revert "Respect existing X-Analytics header, if set""

This reverts commit d5a73c0c10e9286d68db7967a4dc2033c956718a.

As of I569b2ebbc, WebResponse has a 'getHeader' method. The change has been
cherry-picked into both production branches, but I added a method_exists()
check for back-compat.

Change-Id: I213a48c69e5982b654044a17bdb144d31b0c8080
---
M includes/MobileContext.php
M tests/phpunit/MobileContextTest.php
2 files changed, 18 insertions(+), 2 deletions(-)

Approvals:
  MaxSem: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/includes/MobileContext.php b/includes/MobileContext.php
index 2615b63..6345051 100644
--- a/includes/MobileContext.php
+++ b/includes/MobileContext.php
@@ -1021,7 +1021,11 @@
         * @return string|bool
         */
        public function getXAnalyticsHeader() {
-               $logItems = $this->getAnalyticsLogItems();
+               $response = $this->getRequest()->response();
+               $currentHeader = method_exists( $response, 'getHeader' ) ?
+                       $response->getHeader( 'X-Analytics' ) : '';
+               parse_str( preg_replace( '/; */', '&', $currentHeader ), 
$logItems );
+               $logItems += $this->getAnalyticsLogItems();
                if ( count( $logItems ) ) {
                        $xanalytics_items = array();
                        foreach ( $logItems as $key => $val ) {
diff --git a/tests/phpunit/MobileContextTest.php 
b/tests/phpunit/MobileContextTest.php
index f8a5f3d..f8c2b77 100644
--- a/tests/phpunit/MobileContextTest.php
+++ b/tests/phpunit/MobileContextTest.php
@@ -399,10 +399,13 @@
        /**
         * @dataProvider getXAnalyticsHeaderProvider
         */
-       public function testGetXAnalyticsHeader( $logItems, $expectedHeader ) {
+       public function testGetXAnalyticsHeader( $existingHeader, $logItems, 
$expectedHeader ) {
                $context = $this->makeContext();
                foreach ( $logItems as $key => $val ) {
                        $context->addAnalyticsLogItem( $key, $val );
+               }
+               if ( $existingHeader ) {
+                       $context->getRequest()->response()->header( 
'X-Analytics: ' . $existingHeader, true );
                }
                $this->assertEquals( $context->getXAnalyticsHeader(), 
$expectedHeader );
        }
@@ -410,19 +413,28 @@
        public function getXAnalyticsHeaderProvider() {
                return array(
                        array(
+                               null,
                                array( 'mf-m' => 'a', 'zero' => '502-13' ),
                                'X-Analytics: mf-m=a;zero=502-13',
                        ),
                        // check key/val trimming
                        array(
+                               null,
                                array( '  foo' => '  bar  ', 'baz' => ' blat ' 
),
                                'X-Analytics: foo=bar;baz=blat'
                        ),
                        // check urlencoding key/val pairs
                        array(
+                               null,
                                array( 'foo' => 'bar baz', 'blat' => '$blammo' 
),
                                'X-Analytics: foo=bar+baz;blat=%24blammo'
                        ),
+                       // check handling of existing header value
+                       array(
+                               'existing=value; another=item',
+                               array( 'mf-m' => 'a', 'zero' => '502-13' ),
+                               'X-Analytics: 
existing=value;another=item;mf-m=a;zero=502-13',
+                       ),
                );
        }
 

-- 
To view, visit https://gerrit.wikimedia.org/r/171891
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I213a48c69e5982b654044a17bdb144d31b0c8080
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>
Gerrit-Reviewer: Awjrichards <[email protected]>
Gerrit-Reviewer: MaxSem <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to