Skip to content

Commit 9062121

Browse files
Merge branch '6.4' into 7.3
* 6.4: Replace backtick operator, deprecated in PHP 8.5, with shell_exec() [DependencyInjection] Add test case to ensure XML parse exception message includes filename and position [Serializer] Fix normalizing objects with accessors having the same name as a property [SecurityBundle] Prevent accessing the tracked token storage when collecting data
2 parents d7f3d6b + 4716256 commit 9062121

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

Tests/Fixtures/xml/services31.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
3+
<services>
4+
<service id="invalid_service" class="App\Foo">
5+
<bogusTag />
6+
</service>
7+
</services>
8+
</container>

Tests/Loader/XmlFileLoaderTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1362,4 +1362,20 @@ public function testLoadServicesWithEnvironment()
13621362

13631363
self::assertInstanceOf(RemoteCallerSocket::class, $container->get(RemoteCaller::class));
13641364
}
1365+
1366+
public function testXmlParseExceptionIncludesFilenameAndPosition()
1367+
{
1368+
$container = new ContainerBuilder();
1369+
$loader = new XmlFileLoader(
1370+
$container,
1371+
new FileLocator(__DIR__.'/../Fixtures/xml')
1372+
);
1373+
1374+
$invalidXMLFileName = 'services31.xml';
1375+
1376+
$this->expectException(InvalidArgumentException::class);
1377+
$this->expectExceptionMessageMatches('/Unable to parse file .*services31\.xml.*bogusTag.*This element is not expected.*line 5, column 0/');
1378+
1379+
$loader->load($invalidXMLFileName);
1380+
}
13651381
}

0 commit comments

Comments
 (0)