/** * */ public function testFetchSanitizeOK() { $logger = $this->getMockBuilder(\Monolog\Logger::class)->disableOriginalConstructor()->getMock(); $this->object->setLogger($logger); $content = ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Browscap Version [GJK_Browscap_Version] Version=5031\'?><?php Released=Mon, 30 Jun 2014 17:55:58 +0200\'?><?= exit(\'test\'); ?> Format=ASP\'?><% exit(\'test\'); %> Type=\'?><?php exit(\'\'); ?> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DefaultProperties [DefaultProperties] Comment=DefaultProperties Browser=DefaultProperties Version=0.0 MajorVer=0 MinorVer=0 Platform=unknown Platform_Version=unknown Alpha=false Beta=false Win16=false Win32=false Win64=false Frames=false IFrames=false Tables=false Cookies=false BackgroundSounds=false JavaScript=false VBScript=false JavaApplets=false ActiveXControls=false isMobileDevice=false isTablet=false isSyndicationReader=false Crawler=false CssVersion=0 AolVersion=0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ask [Ask] Parent=DefaultProperties Comment=Ask Browser=Ask Frames=1 IFrames=1 Tables=1 Crawler=1 Version=0.0 MajorVer=0 MinorVer=0 Platform=unknown Platform_Version=unknown Alpha= Beta= Win16= Win32= Win64= Cookies= BackgroundSounds= JavaScript= VBScript= JavaApplets= ActiveXControls= isMobileDevice= isTablet= isSyndicationReader= CssVersion=0 AolVersion=0 [Mozilla/?.0 (compatible; Ask Jeeves/Teoma*)] Parent=Ask Browser=Teoma Comment=Ask Version=0.0 MajorVer=0 MinorVer=0 Platform=unknown Platform_Version=unknown Alpha= Beta= Win16= Win32= Win64= Frames=1 IFrames=1 Tables=1 Cookies= BackgroundSounds= JavaScript= VBScript= JavaApplets= ActiveXControls= isMobileDevice= isTablet= isSyndicationReader= Crawler=1 CssVersion=0 AolVersion=0 '; $expected = ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Browscap Version [GJK_Browscap_Version] Version=5031\'php Released=Mon, 30 Jun 2014 17:55:58 +0200\' Format=ASP\' Type=\' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DefaultProperties [DefaultProperties] Comment=DefaultProperties Browser=DefaultProperties Version=0.0 MajorVer=0 MinorVer=0 Platform=unknown Platform_Version=unknown Alpha=false Beta=false Win16=false Win32=false Win64=false Frames=false IFrames=false Tables=false Cookies=false BackgroundSounds=false JavaScript=false VBScript=false JavaApplets=false ActiveXControls=false isMobileDevice=false isTablet=false isSyndicationReader=false Crawler=false CssVersion=0 AolVersion=0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ask [Ask] Parent=DefaultProperties Comment=Ask Browser=Ask Frames=1 IFrames=1 Tables=1 Crawler=1 Version=0.0 MajorVer=0 MinorVer=0 Platform=unknown Platform_Version=unknown Alpha= Beta= Win16= Win32= Win64= Cookies= BackgroundSounds= JavaScript= VBScript= JavaApplets= ActiveXControls= isMobileDevice= isTablet= isSyndicationReader= CssVersion=0 AolVersion=0 [Mozilla/?.0 (compatible; Ask Jeeves/Teoma*)] Parent=Ask Browser=Teoma Comment=Ask Version=0.0 MajorVer=0 MinorVer=0 Platform=unknown Platform_Version=unknown Alpha= Beta= Win16= Win32= Win64= Frames=1 IFrames=1 Tables=1 Cookies= BackgroundSounds= JavaScript= VBScript= JavaApplets= ActiveXControls= isMobileDevice= isTablet= isSyndicationReader= Crawler=1 CssVersion=0 AolVersion=0 '; $body = $this->getMockBuilder(\GuzzleHttp\Psr7\Stream::class)->disableOriginalConstructor()->setMethods(['getContents'])->getMock(); $body->expects(self::once())->method('getContents')->will(self::returnValue($content)); $response = $this->getMockBuilder(\GuzzleHttp\Psr7\Response::class)->disableOriginalConstructor()->setMethods(['getStatusCode', 'getBody'])->getMock(); $response->expects(self::once())->method('getStatusCode')->will(self::returnValue(200)); $response->expects(self::once())->method('getBody')->will(self::returnValue($body)); $client = $this->getMockBuilder(\GuzzleHttp\Client::class)->disableOriginalConstructor()->setMethods(['get'])->getMock(); $client->expects(self::once())->method('get')->will(self::returnValue($response)); $this->object->setClient($client); $map = [['browscap.time', false, null, null], ['browscap.version', false, null, null]]; $cache = $this->getMockBuilder(\BrowscapPHP\Cache\BrowscapCache::class)->disableOriginalConstructor()->setMethods(['getItem', 'setItem'])->getMock(); $cache->expects(self::once())->method('getItem')->will(self::returnValueMap($map)); $cache->expects(self::never())->method('setItem')->will(self::returnValue(false)); $this->object->setCache($cache); $this->object->fetch(IniLoader::PHP_INI); self::assertSame($expected, file_get_contents(IniLoader::PHP_INI)); }