@@ -26,7 +26,8 @@ public function testHtmlLangOnly()
2626 $ parser ->lang = true ;
2727 $ result = $ parser ->parse ();
2828
29- $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['properties ' ]['html-lang ' ]);
29+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]);
30+ $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['lang ' ]);
3031 } # end method testHtmlLangOnly()
3132
3233 /**
@@ -39,7 +40,8 @@ public function testHEntryLangOnly()
3940 $ parser ->lang = true ;
4041 $ result = $ parser ->parse ();
4142
42- $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['properties ' ]['html-lang ' ]);
43+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]);
44+ $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['lang ' ]);
4345 } # end method testHEntryLangOnly()
4446
4547 /**
@@ -52,7 +54,8 @@ public function testHtmlAndHEntryLang()
5254 $ parser ->lang = true ;
5355 $ result = $ parser ->parse ();
5456
55- $ this ->assertEquals ('es ' , $ result ['items ' ][0 ]['properties ' ]['html-lang ' ]);
57+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]);
58+ $ this ->assertEquals ('es ' , $ result ['items ' ][0 ]['lang ' ]);
5659 } # end method testHtmlAndHEntryLang()
5760
5861 /**
@@ -65,7 +68,8 @@ public function testFragmentHEntryLangOnly()
6568 $ parser ->lang = true ;
6669 $ result = $ parser ->parse ();
6770
68- $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['properties ' ]['html-lang ' ]);
71+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]);
72+ $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['lang ' ]);
6973 } # end method testFragmentHEntryLangOnly()
7074
7175 /**
@@ -78,7 +82,7 @@ public function testFragmentHEntryNoLang()
7882 $ parser ->lang = true ;
7983 $ result = $ parser ->parse ();
8084
81- $ this ->assertFalse ( isset ( $ result ['items ' ][0 ][ ' properties ' ][ ' html-lang ' ]) );
85+ $ this ->assertArrayNotHasKey ( ' lang ' , $ result ['items ' ][0 ]);
8286 } # end method testFragmentHEntryNoLang()
8387
8488 /**
@@ -91,7 +95,7 @@ public function testFragmentHEntryNoLangXML()
9195 $ parser = new Parser ($ input );
9296 $ result = $ parser ->parse ();
9397
94- $ this ->assertFalse ( isset ( $ result ['items ' ][0 ][ ' properties ' ][ ' html-lang ' ]) );
98+ $ this ->assertArrayNotHasKey ( ' lang ' , $ result ['items ' ][0 ]);
9599 } # end method testFragmentHEntryNoLangXML()
96100
97101 /**
@@ -105,8 +109,10 @@ public function testMultiLanguageInheritance()
105109 $ parser ->lang = true ;
106110 $ result = $ parser ->parse ();
107111
108- $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['properties ' ]['html-lang ' ]);
109- $ this ->assertEquals ('es ' , $ result ['items ' ][1 ]['properties ' ]['html-lang ' ]);
112+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]);
113+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][1 ]);
114+ $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['lang ' ]);
115+ $ this ->assertEquals ('es ' , $ result ['items ' ][1 ]['lang ' ]);
110116 } # end method testMultiLanguageInheritance()
111117
112118 /**
@@ -120,10 +126,17 @@ public function testMultiLanguageFeed()
120126 $ parser ->lang = true ;
121127 $ result = $ parser ->parse ();
122128
123- $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['properties ' ]['html-lang ' ]);
124- $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['children ' ][0 ]['properties ' ]['html-lang ' ]);
125- $ this ->assertEquals ('es ' , $ result ['items ' ][0 ]['children ' ][1 ]['properties ' ]['html-lang ' ]);
126- $ this ->assertEquals ('fr ' , $ result ['items ' ][0 ]['children ' ][2 ]['properties ' ]['html-lang ' ]);
129+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]);
130+ $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['lang ' ]);
131+
132+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]['children ' ][0 ]);
133+ $ this ->assertEquals ('en ' , $ result ['items ' ][0 ]['children ' ][0 ]['lang ' ]);
134+
135+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]['children ' ][1 ]);
136+ $ this ->assertEquals ('es ' , $ result ['items ' ][0 ]['children ' ][1 ]['lang ' ]);
137+
138+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]['children ' ][2 ]);
139+ $ this ->assertEquals ('fr ' , $ result ['items ' ][0 ]['children ' ][2 ]['lang ' ]);
127140 } # end method testMultiLanguageFeed()
128141
129142 /**
@@ -136,7 +149,8 @@ public function testMetaContentLanguage()
136149 $ parser ->lang = true ;
137150 $ result = $ parser ->parse ();
138151
139- $ this ->assertEquals ('es ' , $ result ['items ' ][0 ]['properties ' ]['html-lang ' ]);
152+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]);
153+ $ this ->assertEquals ('es ' , $ result ['items ' ][0 ]['lang ' ]);
140154 } # end method testMetaContentLanguage()
141155
142156 /**
@@ -230,7 +244,26 @@ public function testVoxpelliCom()
230244 $ parser ->lang = true ;
231245 $ result = $ parser ->parse ();
232246
233- $ this ->assertEquals ('sv ' , $ result ['items ' ][0 ]['properties ' ]['html-lang ' ]);
247+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]);
248+ $ this ->assertEquals ('sv ' , $ result ['items ' ][0 ]['lang ' ]);
234249 } # end method testVoxpelliCom()
235250
251+
252+ /**
253+ * @see https://github.com/indieweb/php-mf2/issues/96#issuecomment-304457341
254+ */
255+ public function testNoLangInParsedProperties () {
256+ $ input = '<div class="h-entry" lang="sv" id="postfrag123">
257+ <h1 class="p-name">En svensk titel</h1>
258+ <div class="e-content" lang="en">With an <em>english</em> summary</div>
259+ <div class="e-content">Och <em>svensk</em> huvudtext</div>
260+ </div> ' ;
261+ $ parser = new Parser ($ input );
262+ $ parser ->lang = true ;
263+ $ result = $ parser ->parse ();
264+
265+ $ this ->assertArrayNotHasKey ('lang ' , $ result ['items ' ][0 ]['properties ' ]);
266+ $ this ->assertArrayHasKey ('lang ' , $ result ['items ' ][0 ]);
267+ }
268+
236269}
0 commit comments