Files
w4rpservices/vendor/ua-parser/uap-php/tests/AbstractParserTest.php
2019-12-26 05:03:41 +00:00

72 lines
1.9 KiB
PHP

<?php
/**
* ua-parser
*
* Copyright (c) 2011-2012 Dave Olsen, http://dmolsen.com
*
* Released under the MIT license
*/
namespace UAParser\Test;
use UAParser\AbstractParser;
abstract class AbstractParserTest extends AbstractTestCase
{
public function testCreateDefault()
{
$parserClassName = $this->getParserClassName();
$this->assertInstanceOf($parserClassName, $parserClassName::create());
}
public function testCreateCustom()
{
$parserClassName = $this->getParserClassName();
$this->assertInstanceOf(
$parserClassName,
$parserClassName::create(__DIR__ . '/../resources/regexes.php')
);
}
public function testCreateCustomWithInvalidFile()
{
$parserClassName = $this->getParserClassName();
$this->setExpectedException(
'UAParser\Exception\FileNotFoundException',
'ua-parser cannot find the custom regexes file you supplied ("foo.php"). Please make sure you have the correct path.'
);
$parserClassName::create('foo.php');
}
public function testExceptionOnFileNotFoundInvalidDefault()
{
$parserClassName = $this->getParserClassName();
$this->setExpectedException(
'UAParser\Exception\FileNotFoundException',
'Please download the "invalidFile" file before using ua-parser by running "php bin/uaparser ua-parser:update"'
);
$parserClassName::$defaultFile = 'invalidFile';
$parserClassName::create();
}
public function testDefaultFileIsAbsolute()
{
$class = new \ReflectionClass('UAParser\AbstractParser');
$method = $class->getMethod('getDefaultFile');
$method->setAccessible(true);
$this->assertNotContains('..', $method->invoke(null));
}
public function tearDown()
{
AbstractParser::$defaultFile = null;
}
abstract protected function getParserClassName();
}