示例#1
0
 /**
  * Test that removeCookie does not remove non-mp cookies
  *
  * @runInSeparateProcess
  * @covers Mixpanel\DataStorage\Cookie::storeState
  * @covers Mixpanel\DataStorage\Cookie::setHeader
  * @covers Mixpanel\DataStorage\Cookie::getState
  * @covers Mixpanel\DataStorage\Cookie::getStorageKey
  * @covers Mixpanel\DataStorage\Cookie::getLifetime
  * @covers Mixpanel\DataStorage\Cookie::getCookiePath
  * @covers Mixpanel\DataStorage\Cookie::getCookieDomain
  * @covers Mixpanel\DataStorage\Cookie::getHeaderList
  * @covers Mixpanel\DataStorage\Cookie::removeHeader
  * @covers Mixpanel\DataStorage\Cookie::removeCookie
  */
 public function testRemoveCookieDoesNotRemoveNonMpCookies()
 {
     $setHeader = new ReflectionMethod('Mixpanel\\DataStorage\\Cookie', 'setHeader');
     $setHeader->setAccessible(true);
     $setHeader->invoke($this->cookie, 'Set-Cookie: some=cookie');
     $this->cookie->set('key', 'value');
     $this->assertEquals($this->cookie, $this->cookie->storeState());
     $this->cookie->set('foo', 'bar');
     $this->cookie->set('mix', 'panel');
     $this->assertEquals($this->cookie, $this->cookie->storeState());
     $getHeaderList = new ReflectionMethod('Mixpanel\\DataStorage\\Cookie', 'getHeaderList');
     $getHeaderList->setAccessible(true);
     $headers = $getHeaderList->invoke($this->cookie);
     $mpCookies = 0;
     $nonMpCookies = 0;
     foreach ($headers as $header) {
         if (preg_match('#^Set-Cookie:\\s*' . preg_quote($this->cookieName) . '=#', $header)) {
             $mpCookies++;
         } else {
             if (preg_match('#^Set-Cookie:#', $header)) {
                 $nonMpCookies++;
             }
         }
     }
     $this->assertSame(1, $mpCookies);
     $this->assertSame(1, $nonMpCookies);
 }