metatag_opengraph.tags.test 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <?php
  2. /**
  3. * Tests that each of the Metatag OpenGraph tags work correctly.
  4. */
  5. class MetatagOpenGraphTagsTest extends MetatagTagsTestBase {
  6. /**
  7. * {@inheritdoc}
  8. */
  9. public static function getInfo() {
  10. return array(
  11. 'name' => 'Metatag tags: OpenGraph',
  12. 'description' => 'Test the OpenGraph meta tags.',
  13. 'group' => 'Metatag',
  14. );
  15. }
  16. /**
  17. * {@inheritdoc}
  18. */
  19. public $tags = array(
  20. 'article:author',
  21. 'article:expiration_time',
  22. 'article:modified_time',
  23. 'article:published_time',
  24. 'article:publisher',
  25. 'article:section',
  26. 'article:tag',
  27. 'book:author',
  28. 'book:isbn',
  29. 'book:release_date',
  30. 'book:tag',
  31. 'og:audio',
  32. 'og:audio:secure_url',
  33. 'og:audio:type',
  34. 'og:country_name',
  35. 'og:description',
  36. 'og:determiner',
  37. 'og:email',
  38. 'og:fax_number',
  39. 'og:image',
  40. 'og:image:height',
  41. 'og:image:secure_url',
  42. 'og:image:type',
  43. 'og:image:url',
  44. 'og:image:width',
  45. 'og:latitude',
  46. 'og:locale',
  47. 'og:locale:alternate',
  48. 'og:locality',
  49. 'og:longitude',
  50. 'og:phone_number',
  51. 'og:postal_code',
  52. 'og:region',
  53. 'og:see_also',
  54. 'og:site_name',
  55. 'og:street_address',
  56. 'og:title',
  57. 'og:type',
  58. 'og:updated_time',
  59. 'og:url',
  60. 'og:video:height',
  61. 'og:video:secure_url',
  62. 'og:video:type',
  63. 'og:video:url',
  64. 'og:video:width',
  65. 'profile:first_name',
  66. 'profile:gender',
  67. 'profile:last_name',
  68. 'profile:username',
  69. 'video:actor',
  70. 'video:actor:role',
  71. 'video:director',
  72. 'video:duration',
  73. 'video:release_date',
  74. 'video:series',
  75. 'video:tag',
  76. 'video:writer',
  77. );
  78. /**
  79. * {@inheritdoc}
  80. */
  81. function setUp(array $modules = array()) {
  82. $modules[] = 'metatag_opengraph';
  83. parent::setUp($modules);
  84. }
  85. /**
  86. * {@inheritdoc}
  87. */
  88. public $test_name_attribute = 'property';
  89. /**
  90. * {@inheritdoc}
  91. */
  92. public function getTestTagName($tag_name) {
  93. // All OG tags use colons to separate levels.
  94. $tag_name = str_replace('_', ':', $tag_name);
  95. // Fix a few specific tags.
  96. $tag_name = str_replace('secure:url', 'secure_url', $tag_name);
  97. $tag_name = str_replace(':time', '_time', $tag_name);
  98. $tag_name = str_replace(':date', '_date', $tag_name);
  99. $tag_name = str_replace(':name', '_name', $tag_name);
  100. $tag_name = str_replace(':address', '_address', $tag_name);
  101. $tag_name = str_replace('see:also', 'see_also', $tag_name);
  102. $tag_name = str_replace(':number', '_number', $tag_name);
  103. $tag_name = str_replace(':code', '_code', $tag_name);
  104. return $tag_name;
  105. }
  106. /**
  107. * Implements {meta_tag_name}_test_key() for 'og:type'.
  108. */
  109. public function og_type_test_key() {
  110. return 'metatags[und][og:type][value]';
  111. }
  112. /**
  113. * Implements {meta_tag_name}_test_value() for 'og:type'.
  114. */
  115. public function og_type_test_value() {
  116. return 'article';
  117. }
  118. /**
  119. * Implements {meta_tag_name}_test_field_xpath() for 'og:type'.
  120. */
  121. public function og_type_test_field_xpath() {
  122. return "//select[@name='metatags[und][og:type][value]']";
  123. }
  124. /**
  125. * Implements {meta_tag_name}_test_key() for 'og:determiner'.
  126. */
  127. public function og_determiner_test_key() {
  128. return 'metatags[und][og:determiner][value]';
  129. }
  130. /**
  131. * Implements {meta_tag_name}_test_value() for 'og:determiner'.
  132. */
  133. public function og_determiner_test_value() {
  134. return 'a';
  135. }
  136. /**
  137. * Implements {meta_tag_name}_test_field_xpath() for 'og:determiner'.
  138. */
  139. public function og_determiner_test_field_xpath() {
  140. return "//select[@name='metatags[und][og:determiner][value]']";
  141. }
  142. /**
  143. * Implements {meta_tag_name}_test_value() for 'og:image'.
  144. */
  145. public function og_image_test_value() {
  146. return $this->randomImageUrl();
  147. }
  148. /**
  149. * Implements {meta_tag_name}_test_value() for 'og:image:url'.
  150. */
  151. public function og_image_url_test_value() {
  152. return $this->randomImageUrl();
  153. }
  154. /**
  155. * Implements {meta_tag_name}_test_value() for 'og:image:secure_url'.
  156. */
  157. public function og_image_secure_url_test_value() {
  158. return str_replace('http://', 'https://', $this->randomImageUrl());
  159. }
  160. }