/** * @param Browser $client * @param ListenerInterface $listener * * @return bool */ protected function hasListener(Browser $client, ListenerInterface $listener) { /** @var ListenerInterface $listenerClient */ if (!($listenerClient = $client->getListener())) { return false; } if (!$listenerClient instanceof ListenerChain) { return $listenerClient instanceof $listener; } /** @var ListenerChain $listenerBrowser */ /** @var ListenerInterface $listenerItem */ foreach ($listenerClient->getListeners() as $listenerItem) { if ($listenerItem instanceof $listener) { return true; } } return false; }
/** * Add UserAuth Cookie to the local storage * for later requests. * It needs to be prepended otherwise only the incorrect AUTH Cookie from the original request will be send * * @see self::initContaoRequestHeaders() * @param Browser $browser */ protected function prependAuthCookie(Browser $browser) { // Append the FE_USER_AUTH Cookie to the current request, so followed request like loadlayout don't have // to run through the autologin / 303 process foreach ($browser->getListener()->getCookies() as $cookie) { if ($cookie->getName() == 'FE_USER_AUTH' && !$cookie->isExpired()) { $this->cookieAppendix = 'FE_USER_AUTH=' . $cookie->getValue() . '; '; } } }
/** * Create Sahi API Connection with custom SID. * * @param string $sid sahi id * @param Browser $browser * @param boolean $correct add correct responses to browser Queue for browser creation * * @return Connection */ protected function createConnection($sid, Browser $browser, $correct = false) { if ($correct) { $browser->getClient()->sendToQueue($this->createResponse('1.0 200 OK', 'true')); $browser->getClient()->sendToQueue($this->createResponse('1.0 200 OK')); } $connection = new Connection($sid, 'localhost', 9999, $browser); if ($correct) { $browser->getListener()->getJournal()->clear(); } return $connection; }