@@ -25,7 +25,31 @@ public function testParseUHandlesA() {
2525 $ this ->assertArrayHasKey ('url ' , $ output ['items ' ][0 ]['properties ' ]);
2626 $ this ->assertEquals ('http://example.com ' , $ output ['items ' ][0 ]['properties ' ]['url ' ][0 ]);
2727 }
28-
28+
29+ /**
30+ * @group parseU
31+ */
32+ public function testParseUHandlesEmptyHrefAttribute () {
33+ $ input = '<div class="h-card"><a class="u-url" href="">Awesome example website</a></div> ' ;
34+ $ parser = new Parser ($ input , "http://example.com/ " );
35+ $ output = $ parser ->parse ();
36+
37+ $ this ->assertArrayHasKey ('url ' , $ output ['items ' ][0 ]['properties ' ]);
38+ $ this ->assertEquals ('http://example.com/ ' , $ output ['items ' ][0 ]['properties ' ]['url ' ][0 ]);
39+ }
40+
41+ /**
42+ * @group parseU
43+ */
44+ public function testParseUHandlesMissingHrefAttribute () {
45+ $ input = '<div class="h-card"><a class="u-url">Awesome example website</a></div> ' ;
46+ $ parser = new Parser ($ input , "http://example.com/ " );
47+ $ output = $ parser ->parse ();
48+
49+ $ this ->assertArrayHasKey ('url ' , $ output ['items ' ][0 ]['properties ' ]);
50+ $ this ->assertEquals ('Awesome example website ' , $ output ['items ' ][0 ]['properties ' ]['url ' ][0 ]);
51+ }
52+
2953 /**
3054 * @group parseU
3155 */
@@ -73,6 +97,18 @@ public function testParseUHandlesAbbr() {
7397 $ this ->assertArrayHasKey ('photo ' , $ output ['items ' ][0 ]['properties ' ]);
7498 $ this ->assertEquals ('http://example.com/someimage.png ' , $ output ['items ' ][0 ]['properties ' ]['photo ' ][0 ]);
7599 }
100+
101+ /**
102+ * @group parseU
103+ */
104+ public function testParseUHandlesAbbrNoTitle () {
105+ $ input = '<div class="h-card"><abbr class="u-photo">no title attribute</abbr></div> ' ;
106+ $ parser = new Parser ($ input );
107+ $ output = $ parser ->parse ();
108+
109+ $ this ->assertArrayHasKey ('photo ' , $ output ['items ' ][0 ]['properties ' ]);
110+ $ this ->assertEquals ('no title attribute ' , $ output ['items ' ][0 ]['properties ' ]['photo ' ][0 ]);
111+ }
76112
77113 /**
78114 * @group parseU
@@ -161,6 +197,17 @@ public function testParseUHandlesVideo() {
161197 $ this ->assertEquals ('http://example.com/video.mp4 ' , $ output ['items ' ][0 ]['properties ' ]['video ' ][0 ]);
162198 }
163199
200+ /**
201+ * @group parseU
202+ */
203+ public function testParseUHandlesVideoNoSrc () {
204+ $ input = '<div class="h-entry"><video class="u-video">no video support</video></div> ' ;
205+ $ parser = new Parser ($ input );
206+ $ output = $ parser ->parse ();
207+
208+ $ this ->assertArrayHasKey ('video ' , $ output ['items ' ][0 ]['properties ' ]);
209+ $ this ->assertEquals ('no video support ' , $ output ['items ' ][0 ]['properties ' ]['video ' ][0 ]);
210+ }
164211
165212 /**
166213 * @group parseU
@@ -175,6 +222,19 @@ public function testParseUHandlesSource() {
175222 $ this ->assertEquals ('http://example.com/video.ogg ' , $ output ['items ' ][0 ]['properties ' ]['video ' ][1 ]);
176223 }
177224
225+ /**
226+ * @group parseU
227+ */
228+ public function testParseUHandlesVideoPoster () {
229+ $ input = '<div class="h-entry"><video class="u-photo" poster="http://example.com/posterimage.jpg"><source class="u-video" src="http://example.com/video.mp4" type="video/mp4"></video></div> ' ;
230+ $ parser = new Parser ($ input );
231+ $ output = $ parser ->parse ();
232+
233+ $ this ->assertArrayHasKey ('video ' , $ output ['items ' ][0 ]['properties ' ]);
234+ $ this ->assertEquals ('http://example.com/video.mp4 ' , $ output ['items ' ][0 ]['properties ' ]['video ' ][0 ]);
235+ $ this ->assertEquals ('http://example.com/posterimage.jpg ' , $ output ['items ' ][0 ]['properties ' ]['photo ' ][0 ]);
236+ }
237+
178238 /**
179239 * @group parseU
180240 */
0 commit comments