File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -93,4 +93,34 @@ public function testComposeReturnsEmptyArrayWhenReaderIsExhausted(): void
9393 self ::assertSame ([], HierarchyComposer::compose ($ reader ));
9494 $ reader ->close ();
9595 }
96+
97+ public function testComposeMovesReaderPastTopLevelEmptyElement (): void
98+ {
99+ $ reader = XmlFixture::readerFromFixture ('empty-elements.xml ' );
100+
101+ while ($ reader ->read ()) {
102+ if (
103+ $ reader ->nodeType === \XMLReader::ELEMENT
104+ && $ reader ->name === 'root '
105+ ) {
106+ break ;
107+ }
108+ }
109+
110+ self ::assertSame (
111+ [
112+ 'n ' => 'root ' ,
113+ 'a ' => [
114+ 'attr ' => '1 ' ,
115+ ],
116+ ],
117+ HierarchyComposer::compose ($ reader )
118+ );
119+
120+ while ($ reader ->nodeType !== \XMLReader::ELEMENT && $ reader ->read ()) {
121+ }
122+
123+ self ::assertSame ('next ' , $ reader ->name );
124+ $ reader ->close ();
125+ }
96126}
Original file line number Diff line number Diff line change @@ -74,6 +74,37 @@ public function testComposeReturnsEmptyArrayWhenReaderIsExhausted(): void
7474 $ reader ->close ();
7575 }
7676
77+ public function testComposeMovesReaderPastTopLevelEmptyElement (): void
78+ {
79+ $ reader = XmlFixture::readerFromFixture ('empty-elements.xml ' );
80+
81+ while ($ reader ->read ()) {
82+ if (
83+ $ reader ->nodeType === \XMLReader::ELEMENT
84+ && $ reader ->name === 'root '
85+ ) {
86+ break ;
87+ }
88+ }
89+
90+ self ::assertSame (
91+ [
92+ 'root ' => [
93+ '@attributes ' => [
94+ 'attr ' => '1 ' ,
95+ ],
96+ ],
97+ ],
98+ PrettyPrintComposer::compose ($ reader )
99+ );
100+
101+ while ($ reader ->nodeType !== \XMLReader::ELEMENT && $ reader ->read ()) {
102+ }
103+
104+ self ::assertSame ('next ' , $ reader ->name );
105+ $ reader ->close ();
106+ }
107+
77108 public function testComposePreservesMixedContentWithAttributesAndChild (): void
78109 {
79110 $ reader = XmlFixture::readerFromFixture ('mixed-content.xml ' );
You can’t perform that action at this time.
0 commit comments