@@ -239,22 +239,59 @@ public function testRelBookmarkUrl() {
239239 }
240240
241241
242+ /**
243+ * @see http://microformats.org/wiki/microformats2-parsing-issues#any_h-_root_class_name_overrides_and_stops_backcompat_root
244+ */
245+ public function testMf2RootStopsBackcompatRoot () {
246+ $ input = '<div class="adr h-adr">
247+ <div class="locality">MF1 adr locality</div>
248+ <div class="p-locality">MF2 adr locality</div>
249+ </div> ' ;
250+ $ parser = new Parser ($ input );
251+ $ result = $ parser ->parse ();
252+
253+ $ this ->assertCount (1 , $ result ['items ' ][0 ]['type ' ]);
254+ $ this ->assertEquals ('h-adr ' , $ result ['items ' ][0 ]['type ' ][0 ]);
255+ $ this ->assertCount (1 , $ result ['items ' ][0 ]['properties ' ]['locality ' ]);
256+ $ this ->assertEquals ('MF2 adr locality ' , $ result ['items ' ][0 ]['properties ' ]['locality ' ][0 ]);
257+ }
258+
259+
260+ /**
261+ * @see http://microformats.org/wiki/microformats2-parsing-issues#any_h-_root_class_name_overrides_and_stops_backcompat_root
262+ */
263+ public function testMf2CustomRootStopsBackcompatRoot () {
264+ $ input = '<div class="adr h-acme-address">
265+ <div class="locality">MF1 acme locality</div>
266+ <div class="p-locality">MF2 acme locality</div>
267+ </div> ' ;
268+ $ parser = new Parser ($ input );
269+ $ result = $ parser ->parse ();
270+
271+ $ this ->assertCount (1 , $ result ['items ' ][0 ]['type ' ]);
272+ $ this ->assertEquals ('h-acme-address ' , $ result ['items ' ][0 ]['type ' ][0 ]);
273+ $ this ->assertCount (1 , $ result ['items ' ][0 ]['properties ' ]['locality ' ]);
274+ $ this ->assertEquals ('MF2 acme locality ' , $ result ['items ' ][0 ]['properties ' ]['locality ' ][0 ]);
275+ }
276+
277+
242278 /**
243279 * @see http://microformats.org/wiki/microformats2-parsing-issues#uf2_children_on_backcompat_properties
244280 */
245- public function testMf2ChildrenOnBackcompatProperties ()
246- {
281+ public function testMf2ChildrenOnBackcompatProperties () {
247282 $ input = '<div class="vcard">
248- <div class="adr h-custom ">
249- <div class="locality">MF1</div>
250- <div class="p-locality">MF2</div>
283+ <div class="adr h-acme-some-acme-object ">
284+ <div class="locality">MF1 some acme locality </div>
285+ <div class="p-locality">MF2 some acme locality </div>
251286 </div>
252287</div> ' ;
253288 $ parser = new Parser ($ input );
254289 $ result = $ parser ->parse ();
255290
291+ $ this ->assertCount (1 , $ result ['items ' ][0 ]['properties ' ]['adr ' ][0 ]['type ' ]);
292+ $ this ->assertEquals ('h-acme-some-acme-object ' , $ result ['items ' ][0 ]['properties ' ]['adr ' ][0 ]['type ' ][0 ]);
256293 $ this ->assertCount (1 , $ result ['items ' ][0 ]['properties ' ]['adr ' ][0 ]['properties ' ]['locality ' ]);
257- $ this ->assertEquals ('MF2 ' , $ result ['items ' ][0 ]['properties ' ]['adr ' ][0 ]['properties ' ]['locality ' ][0 ]);
294+ $ this ->assertEquals ('MF2 some acme locality ' , $ result ['items ' ][0 ]['properties ' ]['adr ' ][0 ]['properties ' ]['locality ' ][0 ]);
258295 }
259296
260297
0 commit comments