diff --git a/rdfx.features.inc b/rdfx.features.inc
index ee3e4f0..d32e060 100644
--- a/rdfx.features.inc
+++ b/rdfx.features.inc
@@ -10,8 +10,8 @@ function rdf_mappings_features_export($data, &$export, $module_name = '') {
   $export['dependencies']['rdf'] = 'rdf';
   $export['dependencies']['rdfx'] = 'rdfx';
 
-  foreach ($data as $key => $value) {
-    $parts = explode('-', $key);
+  foreach ($data as $name) {
+    $parts = explode('-', $name);
     $entity_type = $parts[0];
     $bundle_name = $parts[1];
 
diff --git a/rdfx.test b/rdfx.test
index 1e0d654..4ebd178 100644
--- a/rdfx.test
+++ b/rdfx.test
@@ -133,3 +133,38 @@ class RdfxNodeSerializationTestCase extends DrupalWebTestCase {
   }
 
 }
+
+/**
+ * Test the RDF serialization functionality for nodes.
+ */
+class RdfxFeaturesIntegrationTestCase extends DrupalWebTestCase {
+  public static function getInfo() {
+    return array(
+      'name' => 'RDF Features integration',
+      'description' => 'Enables a feature and check whether the RDF mappings defined by the feature have been saved. (REQUIRES FEATURES)',
+      'group' => 'RDFx',
+    );
+  }
+
+  function setUp() {
+    parent::setUp('rdfx', 'features');
+  }
+
+  /**
+   * Create a "Article" node and ensure it serialized properly.
+   */
+  function testFeaturesEnable() {
+    // Check initial Article RDF mappings.
+    $mappings = rdf_mapping_load('node', 'article');
+    $this->assertTrue($mappings['rdftype'] == array('sioc:Item', 'foaf:Document'), t('Initial RDF type set properly.'));
+    $this->assertTrue($mappings['title']['predicates'] == array('dc:title'), t('Initial property for title set properly.'));
+    $this->assertTrue($mappings['field_tags']['predicates'] == array('dc:subject'), t('Initial property for tags field set properly.'));
+
+    module_enable(array('rdfx_test'));
+    features_revert(array('rdfx_test' => array('rdf_mappings')));
+    $mappings = rdf_mapping_load('node', 'article');
+    $this->assertTrue($mappings['rdftype'] == array('sioc:Post'), t('sioc:num_replies value found in ARC2 index.'));
+    $this->assertTrue($mappings['title']['predicates'] == array('rdfs:label'), t('sioc:num_replies value found in ARC2 index.'));
+    $this->assertTrue($mappings['field_tags']['predicates'] == array('dc:subject'), t('Initial property for tags field set properly.'));
+  }
+}
diff --git a/tests/rdfx_test/rdfx_test.features.inc b/tests/rdfx_test/rdfx_test.features.inc
new file mode 100644
index 0000000..6c79b2d
--- /dev/null
+++ b/tests/rdfx_test/rdfx_test.features.inc
@@ -0,0 +1,85 @@
+<?php
+/**
+ * @file
+ * rdfx_test.features.inc
+ */
+
+/**
+ * Implements hook_rdf_default_mappings().
+ */
+function rdfx_test_rdf_default_mappings() {
+  $rdf_mappings = array();
+
+  // Exported RDF mapping: article
+  $rdf_mappings['node']['article'] = array(
+    'field_image' => array(
+      'predicates' => array(
+        0 => 'og:image',
+        1 => 'rdfs:seeAlso',
+      ),
+      'type' => 'rel',
+    ),
+    'field_tags' => array(
+      'predicates' => array(
+        0 => 'dc:subject',
+      ),
+      'type' => 'rel',
+    ),
+    'rdftype' => array(
+      0 => 'sioc:Post',
+    ),
+    'title' => array(
+      'predicates' => array(
+        0 => 'rdfs:label',
+      ),
+      'type' => 'property',
+    ),
+    'created' => array(
+      'predicates' => array(
+        0 => 'dc:date',
+        1 => 'dc:created',
+      ),
+      'datatype' => 'xsd:dateTime',
+      'callback' => 'date_iso8601',
+    ),
+    'changed' => array(
+      'predicates' => array(
+        0 => 'dc:modified',
+      ),
+      'datatype' => 'xsd:dateTime',
+      'callback' => 'date_iso8601',
+    ),
+    'body' => array(
+      'predicates' => array(
+        0 => 'content:encoded',
+      ),
+      'type' => 'property',
+    ),
+    'uid' => array(
+      'predicates' => array(
+        0 => 'sioc:has_creator',
+      ),
+      'type' => 'rel',
+    ),
+    'name' => array(
+      'predicates' => array(
+        0 => 'foaf:name',
+      ),
+    ),
+    'comment_count' => array(
+      'predicates' => array(
+        0 => 'sioc:num_replies',
+      ),
+      'datatype' => 'xsd:integer',
+    ),
+    'last_activity' => array(
+      'predicates' => array(
+        0 => 'sioc:last_activity_date',
+      ),
+      'datatype' => 'xsd:dateTime',
+      'callback' => 'date_iso8601',
+    ),
+  );
+
+  return $rdf_mappings;
+}
diff --git a/tests/rdfx_test/rdfx_test.info b/tests/rdfx_test/rdfx_test.info
new file mode 100644
index 0000000..62b14bf
--- /dev/null
+++ b/tests/rdfx_test/rdfx_test.info
@@ -0,0 +1,8 @@
+name = "rdfx_test"
+description = "A dummy module for testing rdfx.module"
+core = "7.x"
+package = "Features"
+dependencies[] = "rdf"
+dependencies[] = "rdfx"
+features[rdf_mappings][] = "node-article"
+hidden = TRUE
diff --git a/tests/rdfx_test/rdfx_test.module b/tests/rdfx_test/rdfx_test.module
new file mode 100644
index 0000000..79a8960
--- /dev/null
+++ b/tests/rdfx_test/rdfx_test.module
@@ -0,0 +1,7 @@
+<?php
+/**
+ * @file
+ * Code for the rdfx_test feature.
+ */
+
+include_once('rdfx_test.features.inc');
