123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- <?php
- /**
- * Unit tests for the Metatag module.
- *
- * @todo These aren't really unit tests, we might need to fix that.
- */
- class MetatagCoreUnitTest extends MetatagTestHelper {
- /**
- * {@inheritdoc}
- */
- public static function getInfo() {
- return array(
- 'name' => 'Metatag unit tests',
- 'description' => 'Test basic meta tag functionality for entities.',
- 'group' => 'Metatag',
- 'dependencies' => array('ctools', 'token'),
- );
- }
- /**
- * Test the metatag_config_load_with_defaults() function.
- */
- public function testConfigLoadDefaults() {
- // Load the global defaults, inc the fake entity.
- $defaults = metatag_config_load_with_defaults('test:foo');
- // Load the example values and verify they're the same as the globals.
- $extra_tags = array(
- // Fake meta tag.
- 'test:foo' => array('value' => 'foobar'),
- );
- $new_values = array_merge($extra_tags, $this->getTestDefaults());
- // Confirm that the values are equal.
- $this->assertEqual($defaults, $new_values);
- }
- /**
- * Test the basic entity handling.
- */
- public function testEntitySupport() {
- $test_cases[1] = array('type' => 'node', 'bundle' => 'article', 'expected' => TRUE);
- $test_cases[2] = array('type' => 'node', 'bundle' => 'page', 'expected' => TRUE);
- $test_cases[3] = array('type' => 'node', 'bundle' => 'invalid-bundle', 'expected' => FALSE);
- $test_cases[4] = array('type' => 'user', 'expected' => TRUE);
- $test_cases[5] = array('type' => 'taxonomy_term', 'bundle' => 'tags', 'expected' => TRUE);
- $test_cases[6] = array('type' => 'taxonomy_term', 'bundle' => 'invalid-bundle', 'expected' => FALSE);
- foreach ($test_cases as $test_case) {
- $test_case += array('bundle' => NULL);
- $this->assertMetatagEntitySupportsMetatags($test_case['type'], $test_case['bundle'], $test_case['expected']);
- }
- // Disable meta tags for these.
- metatag_entity_type_disable('node', 'page');
- metatag_entity_type_disable('user');
- $test_cases[2]['expected'] = FALSE;
- $test_cases[4]['expected'] = FALSE;
- $test_cases[6]['expected'] = FALSE;
- foreach ($test_cases as $test_case) {
- $test_case += array('bundle' => NULL);
- $this->assertMetatagEntitySupportsMetatags($test_case['type'], $test_case['bundle'], $test_case['expected']);
- }
- }
- /**
- * Confirm an entity supports meta tags.
- *
- * @param string $entity_type
- * The name of the entity type to test.
- * @param string $bundle
- * The name of the entity bundle to test.
- * @param array $expected
- * The expected results.
- *
- * @return object
- * An assertion.
- */
- function assertMetatagEntitySupportsMetatags($entity_type, $bundle, $expected) {
- $entity = entity_create_stub_entity($entity_type, array(0, NULL, $bundle));
- return $this->assertEqual(
- metatag_entity_supports_metatags($entity_type, $bundle),
- $expected,
- t("metatag_entity_supports_metatags(:type, :bundle) is :expected", array(
- ':type' => var_export($entity_type, TRUE),
- ':bundle' => var_export($bundle, TRUE),
- ':expected' => var_export($expected, TRUE),
- ))
- );
- }
- /**
- * 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 (c)',
- 'node:b' => 'Node: Unknown (b)',
- 'node:b:c' => 'Node: Unknown (b): Unknown (c)',
- 'a' => 'Unknown (a)',
- 'a:b' => 'Unknown (a): Unknown (b)',
- 'a:b:c' => 'Unknown (a): Unknown (b): Unknown (c)',
- 'a:b:c:d' => 'Unknown (a): Unknown (b): Unknown (c): Unknown (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);
- }
- }
- /**
- * Test the _metatag_config_instance_sort() function.
- */
- public function testConfigInstanceSort() {
- $input = array(
- 'node:article',
- 'global:frontpage',
- 'file',
- 'node:page',
- 'global',
- 'node',
- 'global:404',
- );
- usort($input, '_metatag_config_instance_sort');
- $this->assertIdentical($input, array(
- 'global',
- 'global:404',
- 'global:frontpage',
- 'file',
- 'node',
- 'node:article',
- 'node:page',
- ));
- }
- }
|