@@ -101,6 +101,50 @@ public function mock_http_request( $preempt, $r, $url ) {
101101 ];
102102 }
103103
104+ /**
105+ * data provider for $this->test_sanitize_raw_embeds()
106+ *
107+ * @return string[][]
108+ */
109+ public function sanitize_raw_embeds_data_provider () {
110+
111+ return [
112+ 'youtube-embed ' => [
113+ 'source ' => '<iframe src="https://www.youtube.com/embed/q4xKvHANqjk?controls=0&autoplay=1&loop=1&modestbranding=1" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" width="560" height="315" frameborder="0"></iframe> ' ,
114+ 'expected ' => '<amp-youtube data-videoid="q4xKvHANqjk" layout="responsive" width="560" height="315" title="YouTube video player" data-param-controls="0" data-param-modestbranding="1" autoplay="1" loop="1"></amp-youtube> ' ,
115+ ],
116+ 'short-url ' => [
117+ 'source ' => '<iframe src="https://youtu.be/kfVsfOSbJY0?controls=0&autoplay=1&loop=1&modestbranding=1" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" width="560" height="315" frameborder="0"></iframe> ' ,
118+ 'expected ' => '<amp-youtube data-videoid="kfVsfOSbJY0" layout="responsive" width="560" height="315" title="YouTube video player" data-param-controls="0" data-param-modestbranding="1" autoplay="1" loop="1"></amp-youtube> ' ,
119+ ],
120+ 'none-youtube ' => [
121+ 'source ' => '<iframe src="https://amp-wp.org/" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" width="560" height="315" frameborder="0"></iframe> ' ,
122+ 'expected ' => '<iframe src="https://amp-wp.org/" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" width="560" height="315" frameborder="0"></iframe> ' ,
123+ ],
124+ ];
125+ }
126+
127+ /**
128+ * @dataProvider sanitize_raw_embeds_data_provider
129+ *
130+ * @covers AMP_YouTube_Embed_Handler::sanitize_raw_embeds
131+ */
132+ public function test_sanitize_raw_embeds ( $ source , $ expected ) {
133+
134+ $ embed = new AMP_YouTube_Embed_Handler ();
135+ $ embed ->register_embed ();
136+
137+ $ dom = AMP_DOM_Utils::get_dom_from_content ( $ source );
138+ $ embed ->sanitize_raw_embeds ( $ dom );
139+
140+ $ layout_sanitizer = new AMP_Layout_Sanitizer ( $ dom );
141+ $ layout_sanitizer ->sanitize ();
142+
143+ $ content = AMP_DOM_Utils::get_content_from_dom ( $ dom );
144+
145+ $ this ->assertEquals ( $ expected , trim ( $ content ) );
146+ }
147+
104148 /**
105149 * Test video_override().
106150 *
@@ -160,7 +204,7 @@ public function get_conversion_data() {
160204
161205 'url_with_querystring ' => [
162206 'http://www.youtube.com/watch?v=kfVsfOSbJY0&hl=en&fs=1&w=425&h=349 ' . PHP_EOL ,
163- '<p><amp-youtube data-videoid="kfVsfOSbJY0" layout="responsive" width="500" height="281" title="Rebecca Black - Friday"><a placeholder href="http://www.youtube.com/watch?v=kfVsfOSbJY0&hl=en&fs=1&w=425&h=349"><img src="https://i.ytimg.com/vi/kfVsfOSbJY0/hqdefault.jpg" layout="fill" object-fit="cover" alt="Rebecca Black - Friday"></img></a></amp-youtube></p> ' . PHP_EOL ,
207+ '<p><amp-youtube data-videoid="kfVsfOSbJY0" layout="responsive" width="500" height="281" title="Rebecca Black - Friday" data-param-fs="1" data-param-hl="en" ><a placeholder href="http://www.youtube.com/watch?v=kfVsfOSbJY0&hl=en&fs=1&w=425&h=349"><img src="https://i.ytimg.com/vi/kfVsfOSbJY0/hqdefault.jpg" layout="fill" object-fit="cover" alt="Rebecca Black - Friday"></img></a></amp-youtube></p> ' . PHP_EOL ,
164208 '<p><amp-youtube data-videoid="kfVsfOSbJY0" layout="responsive" width="500" height="281"><a placeholder href="http://www.youtube.com/watch?v=kfVsfOSbJY0&hl=en&fs=1&w=425&h=349"><img src="https://i.ytimg.com/vi/kfVsfOSbJY0/hqdefault.jpg" layout="fill" object-fit="cover"></img></a></amp-youtube></p> ' . PHP_EOL ,
165209 ],
166210
0 commit comments