public function testCreateRequest() { $userAgent = 'testUA'; $header = array(Constants::HEADER_HTTP_USERAGENT => $userAgent); $expected = new GenericRequest($header, $userAgent, null, false); $result = $this->object->createRequest($header, false); self::assertInstanceOf('\\Wurfl\\Request\\GenericRequest', $result); self::assertEquals($expected, $result); }
/** * @param string|array|\Wurfl\Request\GenericRequest $request * * @return \Wurfl\Request\GenericRequest */ public function initRequest($request) { if (null === $request) { throw new \UnexpectedValueException('You have to call this function with the useragent parameter'); } $requestFactory = new GenericRequestFactory(); if (is_string($request)) { $request = $requestFactory->createRequestForUserAgent($request); } elseif (is_array($request)) { $request = $requestFactory->createRequest($request); } if (!$request instanceof GenericRequest) { throw new \UnexpectedValueException('the useragent parameter has to be a string, an array or an instance of \\Wurfl\\Request\\GenericRequest'); } return $request; }
/** * @dataProvider loadData * * @param string $expected * @param array $serverData */ public function testCreateRequest($expected, array $serverData) { $requestFactory = new GenericRequestFactory(); $request = $requestFactory->createRequest($serverData); self::assertEquals($expected, $request->getUserAgent()); }
/** * Return a device for the given http request(user-agent..) * * @param array $httpRequest HTTP Request array (normally $_SERVER) * @param bool $override_sideloaded_browser_ua * * @throws Exception if $httpRequest is not set * * @return \Wurfl\CustomDevice device */ public function getDeviceForHttpRequest(array $httpRequest = array(), $override_sideloaded_browser_ua = true) { if (!isset($httpRequest)) { throw new Exception('The $httpRequest parameter must be set.'); } $requestFactory = new Request\GenericRequestFactory(); $request = $requestFactory->createRequest($httpRequest, $override_sideloaded_browser_ua); return $this->getDeviceForRequest($request); }