public function testExtensionInPhar() { if (\
extension_loaded('suhosin'
) && !
str_contains(\
ini_get('suhosin.executor.include.whitelist'
), 'phar'
)) { $this->
markTestSkipped('To run this test, add "phar" to the "suhosin.executor.include.whitelist" settings in your php.ini file.'
);
} require_once self::
$fixturesPath.'/includes/ProjectWithXsdExtensionInPhar.phar';
// extension with an XSD in PHAR archive
$container =
new ContainerBuilder();
$container->
registerExtension(new \
ProjectWithXsdExtensionInPhar());
$loader =
new XmlFileLoader($container,
new FileLocator(self::
$fixturesPath.'/xml'
));
$loader->
load('extensions/services6.xml'
);
// extension with an XSD in PHAR archive (does not validate)
try { $loader->
load('extensions/services7.xml'
);
$this->
fail('->load() throws an InvalidArgumentException if the configuration does not validate the XSD'
);
} catch (\Exception
$e) { $this->
assertInstanceOf(InvalidArgumentException::
class,
$e, '->load() throws an InvalidArgumentException if the configuration does not validate the XSD'
);
$this->
assertMatchesRegularExpression(sprintf('#^Unable to parse file ".+%s": .+.$#', 'services7.xml'
),
$e->
getMessage(), '->load() throws an InvalidArgumentException if the configuration does not validate the XSD'
);