diff --git a/metatag.test b/metatag.test
index bc44e15..53e5291 100644
--- a/metatag.test
+++ b/metatag.test
@@ -25,13 +25,31 @@ class MetaTagsUnitTest extends MetaTagsTestHelper {
   public function testConfigLoadDefaults() {
     $defaults = metatag_config_load_with_defaults('test:foo');
     $this->assertEqual($defaults, array(
+      // Basic meta tags.
+      'title' => array('value' => 'Test altered title'),
       'description' => array('value' => 'Test foo description'),
       'abstract' => array('value' => 'Test foo abstract'),
-      'title' => array('value' => 'Test altered title'),
-      'test:foo' => array('value' => 'foobar'),
+      // 'keywords' => array('value' => ''),
+
+      // Advanced meta tags.
+      // 'robots' => array('value' => ''),
+      // 'news_keywords' => array('value' => ''),
+      // 'standout' => array('value' => ''),
+      // 'robots' => array('value' => ''),
+      // 'standout' => array('value' => ''),
       'generator' => array('value' => 'Drupal 7 (http://drupal.org)'),
+      // 'standout' => array('value' => ''),
+      // 'image_src' => array('value' => ''),
       'canonical' => array('value' => '[current-page:url:absolute]'),
       'shortlink' => array('value' => '[current-page:url:unaliased]'),
+      // 'publisher' => array('value' => ''),
+      // 'author' => array('value' => ''),
+      // 'original-source' => array('value' => ''),
+      // 'revisit-after' => array('value' => ''),
+      // 'content-language' => array('value' => ''),
+
+      // Fake meta tag.
+      'test:foo' => array('value' => 'foobar'),
     ));
   }
 
@@ -39,7 +57,9 @@ class MetaTagsUnitTest extends MetaTagsTestHelper {
     $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[4] = array('type' => 'node', 'bundle' => 'invalid-bundle', 'expected' => FALSE);
+    $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->assertMetatagEntityHasMetatags($test_case['type'], $test_case['bundle'], $test_case['expected']);
@@ -52,6 +72,7 @@ class MetaTagsUnitTest extends MetaTagsTestHelper {
 
     $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->assertMetatagEntityHasMetatags($test_case['type'], $test_case['bundle'], $test_case['expected']);
@@ -95,6 +116,93 @@ class MetaTagsUnitTest extends MetaTagsTestHelper {
   }
 }
 
+class MetaTagsUITest extends MetaTagsTestHelper {
+
+  /**
+   * Admin user.
+   *
+   * @var \StdClass
+   */
+  protected $adminUser;
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'Meta tag UI tests',
+      'description' => 'Test meta tags UI functionality.',
+      'group' => 'Metatag',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp(array $modules = array()) {
+    $modules[] = 'metatag_dc';
+    parent::setUp($modules);
+  }
+
+  /**
+   * Tests filtering of values using metatag_filter_values_from_defaults()
+   */
+  public function testMetatagFilterValuesFromDefaults() {
+    $this->drupalCreateContentType(array(
+      'type' => 'metatag_test',
+      'name' => 'Test',
+    ));
+    $this->adminUser = $this->drupalCreateUser(array(
+      'administer meta tags',
+      'edit meta tags',
+      'create metatag_test content',
+      'delete any metatag_test content',
+      'edit any metatag_test content',
+    ));
+    $this->drupalLogin($this->adminUser);
+
+    $this->drupalGet('admin/config/search/metatags/config/add');
+    $this->drupalPost(NULL, array(
+      'instance' => 'node:metatag_test',
+    ), t('Add and configure'));
+    $this->drupalPost(NULL, array(
+      'metatags[und][dcterms.title][value]' => '[node:title]',
+      'metatags[und][dcterms.creator][value]' => '[node:author]',
+      'metatags[und][dcterms.date][value]' => '[node:created:custom:Y-m-d\TH:iP]',
+      'metatags[und][dcterms.format][value]' => 'text/html',
+      'metatags[und][dcterms.identifier][value]' => '[current-page:url:absolute]',
+      'metatags[und][dcterms.language][value]' => '[node:language]',
+    ), t('Save'));
+    $this->drupalGet('node/add/metatag-test');
+    $this->drupalPost(NULL, array(
+      'metatags[und][dcterms.title][value]' => '[node:title] ponies',
+      'title' => 'Who likes magic',
+    ), t('Save'));
+    $this->assertText(t('Test Who likes magic has been created.'));
+    $matches = array();
+    if (preg_match('@node/(\d+)$@', $this->getUrl(), $matches)) {
+      $nid = end($matches);
+      $node = node_load($nid);
+      // Only the non-default values are stored.
+      $expected = array(
+        'und' => array(
+          'dcterms.title' => array(
+            'value' => '[node:title] ponies',
+          ),
+        ),
+      );
+      $this->assertEqual($expected, $node->metatags);
+    }
+    else {
+      $this->fail('Could not determine node ID for created node.');
+    }
+    $xpath = $this->xpath("//meta[@name='dcterms.title']");
+    $this->assertEqual(count($xpath), 1);
+    $this->assertEqual($xpath[0]['content'], "Who likes magic ponies");
+  }
+
+}
+
 
 // TODO: Test each meta tag.
 // TODO: Scenarios.
