소스 검색

Anomalie #771: Url youtu.be

Sevajol Bastien 11 년 전
부모
커밋
8268e9aef0
2개의 변경된 파일30개의 추가작업 그리고 3개의 파일을 삭제
  1. 4 3
      src/Muzich/CoreBundle/Factory/UrlMatchs.php
  2. 26 0
      src/Muzich/CoreBundle/Tests/ElementFactory/UrlAnalyzerTest.php

+ 4 - 3
src/Muzich/CoreBundle/Factory/UrlMatchs.php 파일 보기

@@ -89,15 +89,16 @@ class UrlMatchs
89 89
   public static $youtu = array(
90 90
     Element::TYPE_OTHER => array(
91 91
       // http://youtu.be/2-5xt9MrI9w
92
-      "#\/([a-zA-Z0-9_]+)#" => 1
92
+      "#\/([a-zA-Z0-9_-]+)#" => 1
93 93
     )
94 94
   );
95 95
   
96 96
   public static $youtube = array(
97 97
     Element::TYPE_OTHER => array(
98 98
       // https://www.youtube.com/watch?v=2-5xt9MrI9w
99
-      "#(v\/|watch\?v=)([\w\-]+)#" => 2,
100
-      "#(v=|watch\?v=)([\w\-]+)#" => 2
99
+      // https://www.youtube.com/watch?feature=player_detailpage&v=M9PkADawUKU#t=73s
100
+      "#\/(watch|)(\?|)feature\=player_detailpage\&v=([a-zA-Z0-9_-]+)([.\w\W\d]*)#" => 3,
101
+      "#\/(watch|)(\?|)v=([a-zA-Z0-9_-]+)#" => 3
101 102
     )
102 103
   );
103 104
 }

+ 26 - 0
src/Muzich/CoreBundle/Tests/ElementFactory/UrlAnalyzerTest.php 파일 보기

@@ -64,4 +64,30 @@ class UrlAnalyzerTest extends \PHPUnit_Framework_TestCase
64 64
     $this->assertFalse($url_analyzer->haveMatch());
65 65
   }
66 66
   
67
+  public function testYoutu()
68
+  {
69
+    $url_analyzer = new UrlAnalyzer($this->getNewElement('youtu.be', 'http://youtu.be/hPglbKE-byg'), UrlMatchs::$youtu);
70
+    $this->assertTrue($url_analyzer->haveMatch());
71
+    $this->assertEquals(Element::TYPE_OTHER, $url_analyzer->getType());
72
+    $this->assertEquals('hPglbKE-byg', $url_analyzer->getRefId());
73
+    
74
+    $url_analyzer = new UrlAnalyzer($this->getNewElement('youtu.be', 'http://youtu.be/M9PkADawUKU'), UrlMatchs::$youtu);
75
+    $this->assertTrue($url_analyzer->haveMatch());
76
+    $this->assertEquals(Element::TYPE_OTHER, $url_analyzer->getType());
77
+    $this->assertEquals('M9PkADawUKU', $url_analyzer->getRefId());
78
+  }
79
+  
80
+  public function testYoutube()
81
+  {
82
+    $url_analyzer = new UrlAnalyzer($this->getNewElement('youtube.com', 'https://www.youtube.com/watch?v=M9PkADawUKU'), UrlMatchs::$youtube);
83
+    $this->assertTrue($url_analyzer->haveMatch());
84
+    $this->assertEquals(Element::TYPE_OTHER, $url_analyzer->getType());
85
+    $this->assertEquals('M9PkADawUKU', $url_analyzer->getRefId());
86
+    
87
+    $url_analyzer = new UrlAnalyzer($this->getNewElement('youtube.com', 'https://www.youtube.com/watch?feature=player_detailpage&v=M9PkADawUKU#t=73s'), UrlMatchs::$youtube);
88
+    $this->assertTrue($url_analyzer->haveMatch());
89
+    $this->assertEquals(Element::TYPE_OTHER, $url_analyzer->getType());
90
+    $this->assertEquals('M9PkADawUKU', $url_analyzer->getRefId());
91
+  }
92
+  
67 93
 }