Sets a cache instance
public setCache ( BrowscapPHP\Cache\BrowscapCacheInterface | WurflCache\Adapter\AdapterInterface $cache ) : |
||
$cache | BrowscapPHP\Cache\BrowscapCacheInterface | WurflCache\Adapter\AdapterInterface | |
return |
/** * This method is called before the first test of this test class is run. */ public static function setUpBeforeClass() { // First, generate the INI files $buildNumber = time(); $resourceFolder = __DIR__ . '/../../resources/'; self::$buildFolder = __DIR__ . '/../../build/browscap-ua-test-' . $buildNumber . '/build/'; $cacheFolder = __DIR__ . '/../../build/browscap-ua-test-' . $buildNumber . '/cache/'; // create build folder if it does not exist if (!file_exists(self::$buildFolder)) { mkdir(self::$buildFolder, 0777, true); } if (!file_exists($cacheFolder)) { mkdir($cacheFolder, 0777, true); } $logger = new Logger('browscap'); $logger->pushHandler(new NullHandler(Logger::DEBUG)); $buildGenerator = new BuildGenerator($resourceFolder, self::$buildFolder); $writerCollectionFactory = new PhpWriterFactory(); $writerCollection = $writerCollectionFactory->createCollection($logger, self::$buildFolder); $buildGenerator->setLogger($logger)->setCollectionCreator(new CollectionCreator())->setWriterCollection($writerCollection); $buildGenerator->run($buildNumber, false); $cache = new File([File::DIR => $cacheFolder]); self::$browscap = new Browscap(); self::$browscap->setCache($cache)->setLogger($logger); self::$browscapUpdater = new BrowscapUpdater(); self::$browscapUpdater->setCache($cache)->setLogger($logger); self::$propertyHolder = new PropertyHolder(); }
/** * This method is called before the first test of this test class is run. * * @since Method available since Release 3.4.0 */ public static function setUpBeforeClass() { $objectIniPath = ini_get('browscap'); if (!is_file($objectIniPath)) { self::markTestSkipped('browscap not defined in php.ini'); } // Now, load an INI file into BrowscapPHP\Browscap for testing the UAs self::$object = new Browscap(); $cacheAdapter = new Memory(); $cache = new BrowscapCache($cacheAdapter); $cache->flush(); self::$object->setCache($cache)->convertFile($objectIniPath); }
protected function getParserWithColdCache($type) { $filename = 'php_browscap.ini'; if ($type != '') { $filename = $type . '_' . $filename; } $cache = new \WurflCache\Adapter\Memory(); $browscap = new Browscap(); $browscap->setCache($cache); return $browscap; }
/** * Register browscap. * * @author Morten Rugaard <*****@*****.**> * * @return void */ protected function registerBrowscap() { $this->app->singleton(Browscap::class, function ($app) { $browscap = new Browscap(); // Cache for 90 days $browscap->setCache(new BrowscapCache(new CacheFile([CacheFile::DIR => storage_path('framework/browscap')])), 7776000); // Automatically check for updates $browscap->update(); return $browscap; }); }
/** * */ public function testGetBrowserWithDefaultResult() { $formatter = $this->getMockBuilder(\BrowscapPHP\Formatter\PhpGetBrowser::class)->disableOriginalConstructor()->setMethods(['getData'])->getMock(); $formatter->expects(self::once())->method('getData')->will(self::returnValue(null)); $parser = $this->getMockBuilder(\BrowscapPHP\Parser\Ini::class)->disableOriginalConstructor()->setMethods(['getBrowser'])->getMock(); $parser->expects(self::once())->method('getBrowser')->will(self::returnValue(null)); $cache = $this->getMockBuilder(\BrowscapPHP\Cache\BrowscapCache::class)->disableOriginalConstructor()->setMethods(['getVersion'])->getMock(); $cache->expects(self::once())->method('getVersion')->will(self::returnValue(1)); $this->object->setFormatter($formatter); $this->object->setParser($parser); $this->object->setCache($cache); $result = $this->object->getBrowser('Mozilla/5.0 (compatible; Ask Jeeves/Teoma)'); self::assertNull($result); }
/** * */ public function testCheckUpdateWithNewerVersion() { $logger = $this->getMock('\\Monolog\\Logger', array(), array(), '', false); $this->object->setLogger($logger); $loader = $this->getMock('\\BrowscapPHP\\Helper\\IniLoader', array('setRemoteFilename', 'setOptions', 'setLogger', 'load', 'getRemoteVersion'), array(), '', false); $loader->expects(self::once())->method('setRemoteFilename')->will(self::returnSelf()); $loader->expects(self::once())->method('setOptions')->will(self::returnSelf()); $loader->expects(self::once())->method('setLogger')->will(self::returnSelf()); $loader->expects(self::never())->method('load')->will(self::returnValue(false)); $loader->expects(self::once())->method('getRemoteVersion')->will(self::returnValue(6001)); $this->object->setLoader($loader); $map = array(array('browscap.time', false, null, null), array('browscap.version', false, null, 6000)); $cache = $this->getMock('\\BrowscapPHP\\Cache\\BrowscapCache', array('getItem', 'hasItem', 'setItem'), array(), '', false); $cache->expects(self::any())->method('getItem')->will(self::returnValueMap($map)); $cache->expects(self::any())->method('hasItem')->will(self::returnValue(true)); $cache->expects(self::never())->method('setItem')->will(self::returnValue(false)); $this->object->setCache($cache); self::assertSame(6000, $this->object->checkUpdate()); }
/** * @expectedException \BrowscapPHP\Exception\FetcherException * @expectedExceptionMessage Could not fetch HTTP resource "http://browscap.org/stream?q=PHP_BrowscapINI": */ public function testUpdate() { if (class_exists('\\Browscap\\Browscap')) { self::markTestSkipped('if the \\Browscap\\Browscap class is available the browscap.ini file is not updated from a remote ' . 'location'); } $logger = $this->getMock('\\Monolog\\Logger', array(), array(), '', false); $this->object->setLogger($logger); $loader = $this->getMock('\\BrowscapPHP\\Helper\\IniLoader', array('setRemoteFilename', 'setOptions', 'setLogger', 'load'), array(), '', false); $loader->expects(self::once())->method('setRemoteFilename')->will(self::returnSelf()); $loader->expects(self::once())->method('setOptions')->will(self::returnSelf()); $loader->expects(self::once())->method('setLogger')->will(self::returnSelf()); $loader->expects(self::once())->method('load')->will(self::returnValue(false)); $this->object->setLoader($loader); $this->object->setLoader($loader); $map = array(array('browscap.time', false, null, null), array('browscap.version', false, null, null)); $cache = $this->getMock('\\WurflCache\\Adapter\\Memory', array('getItem'), array(), '', false); $cache->expects(self::any())->method('getItem')->will(self::returnValueMap($map)); $this->object->setCache($cache); $this->object->update(); }
use BrowscapPHP\Browscap; use BrowscapPHP\Helper\IniLoader; use WurflCache\Adapter\File; /* * Browscap cache init */ include 'bootstrap.php'; /* * Full */ echo '.'; $cache = new File([File::DIR => '../myCache/.tmp/browscap/full']); $bc = new Browscap(); $bc->setCache($cache); $bc->convertFile('data/full_php_browscap.ini'); /* * Lite */ echo '.'; $cache = new File([File::DIR => '../myCache/.tmp/browscap/lite']); $bc = new Browscap(); $bc->setCache($cache); $bc->convertFile('data/lite_php_browscap.ini'); /* * PHP */ echo '.'; $cache = new File([File::DIR => '../myCache/.tmp/browscap/php']); $bc = new Browscap(); $bc->setCache($cache); $bc->convertFile('data/php_browscap.ini');
/** * Generate a build for build number specified * * @param string $buildNumber * @param \Composer\IO\IOInterface $io * @param bool $debug */ public static function createBuild($buildNumber, IOInterface $io = null, $debug = false) { $buildFolder = 'build/build-' . $buildNumber . '/'; $resourceFolder = 'vendor/browscap/browscap/resources/'; if (!file_exists($buildFolder)) { if ($io) { $io->write(' - Creating build folder'); } mkdir($buildFolder, 0775, true); } // Create a logger if ($io) { $io->write(' - Setting up logging'); } $loggerHelper = new LoggerHelper(); $logger = $loggerHelper->create($debug); $collectionCreator = new CollectionCreator(); if ($io) { $io->write(' - Creating writer collection'); } $writerCollectionFactory = new FullCollectionFactory(); $writerCollection = $writerCollectionFactory->createCollection($logger, $buildFolder); // Generate the actual browscap.ini files if ($io) { $io->write(' - Creating actual build'); } $buildGenerator = new BuildGenerator($resourceFolder, $buildFolder); $buildGenerator->setLogger($logger); $buildGenerator->setCollectionCreator($collectionCreator); $buildGenerator->setWriterCollection($writerCollection); $buildGenerator->run($buildNumber, false); if ($io) { $io->write(' - Creating cache'); } $iniFile = $buildFolder . 'full_php_browscap.ini'; $cache = new File(array(File::DIR => 'cache/')); $browscap = new Browscap(); $browscap->setCache($cache)->setLogger($logger); $browscap->convertFile($iniFile); }