diff --git a/metatag.module b/metatag.module index c21e311..b42ab2e 100644 --- a/metatag.module +++ b/metatag.module @@ -1087,7 +1087,7 @@ function metatag_page_build(&$page) { drupal_alter('metatag_page_cache_cid_parts', $cid_parts); $cid = "output:{$instance}:" . hash('sha256', serialize($cid_parts)); - + if ($cache = cache_get($cid, 'cache_metatag')) { $metatags = $cache->data; } @@ -1095,7 +1095,7 @@ function metatag_page_build(&$page) { $metatags = metatag_metatags_view($instance, array()); cache_set($cid, $metatags, 'cache_metatag'); } - + $page['content']['metatags'][$instance] = $metatags; } @@ -1471,11 +1471,11 @@ function metatag_config_instance_label($instance) { if (!isset($labels[$instance])) { $context = metatag_config_instance_info($instance); - $labels[$instance] = isset($context['label']) ? $context['label'] : t('Unknown'); + $labels[$instance] = isset($context['label']) ? $context['label'] : t('Unknown (@instance)', array('@instance' => $instance)); $parents = metatag_config_get_parent_instances($instance, FALSE); array_shift($parents); if (!empty($parents)) { - $labels[$instance] = metatag_config_instance_label(implode(':', $parents)) . ': ' . $labels[$instance]; + $labels[$instance] = metatag_config_instance_label($parents[0]) . ': ' . $labels[$instance]; } } diff --git a/metatag.test b/metatag.test index 49f6743..a943dea 100644 --- a/metatag.test +++ b/metatag.test @@ -71,4 +71,26 @@ class MetaTagsUnitTest extends MetaTagsTestHelper { ); } + /** + * Test the metatag_config_instance_label() function. + */ + public function testConfigLabels() { + $test_cases = array( + 'node' => 'Node', + 'node:article' => 'Node: Article', + 'node:article:c' => 'Node: Article: Unknown (node:article:a)', + 'node:b' => 'Node: Unknown (node:b)', + 'node:b:c' => 'Node: Unknown (node:b): Unknown (node:b:c)', + 'a' => 'Unknown (a)', + 'a:b' => 'Unknown (a): Unknown (a:b)', + 'a:b:c' => 'Unknown (a): Unknown (a:b): Unknown (a:b:c)', + 'a:b:c:d' => 'Unknown (a): Unknown (a:b): Unknown (a:b:c): Unknown (a:b:c:d)', + ); + + foreach ($test_cases as $input => $expected_output) { + drupal_static_reset('metatag_config_instance_label'); + $actual_output = metatag_config_instance_label($input); + $this->assertEqual($actual_output, $expected_output); + } + } }