diff --git a/includes/microdata.form_alter.inc b/includes/microdata.form_alter.inc
old mode 100644
new mode 100755
diff --git a/microdata.admin.inc b/microdata.admin.inc
old mode 100644
new mode 100755
diff --git a/microdata.api.php b/microdata.api.php
old mode 100644
new mode 100755
diff --git a/microdata.features.inc b/microdata.features.inc
old mode 100644
new mode 100755
diff --git a/microdata.info b/microdata.info
old mode 100644
new mode 100755
index 1befcd1..fc14aed
--- a/microdata.info
+++ b/microdata.info
@@ -6,3 +6,5 @@ dependencies[] = ctools
 dependencies[] = entity
 files[] = microdata.features.inc
 files[] = microdata.test
+; integration test for contrib modules
+files[] = modules/email/email.test
diff --git a/microdata.install b/microdata.install
old mode 100644
new mode 100755
diff --git a/microdata.module b/microdata.module
old mode 100644
new mode 100755
diff --git a/microdata.pages.inc b/microdata.pages.inc
old mode 100644
new mode 100755
diff --git a/microdata.test b/microdata.test
old mode 100644
new mode 100755
index 5e6d5e2..3b7e1ca
--- a/microdata.test
+++ b/microdata.test
@@ -852,3 +852,100 @@ class MicrodataCompoundFieldsUITestCase extends MicrodataCompoundFieldsTestCase
     $this->assertTrue($this->xpath("//input[@name='$itemtype_formfield_name' and @value='']"), "Itemtype removed from mapping after toggle.");
   }
 }
+
+// class EmailTestCase extends MicrodataFieldTestCase {
+
+//   public static function getInfo() {
+//     return array(
+//       'name' => 'Microdata markup - email field',
+//       'description' => 'Microdata field test for the email module.',
+//       'group' => 'Microdata Field Integration',
+//     );
+//   }
+
+//   public function setUp() {
+//     $this->fieldFormatterTypes =  array(
+//       'email_default',
+//       'email_contact',
+//       'email_plain',
+//       'email_spamspan',
+//     );
+//     parent::setUp(array('email'));
+//   }
+
+//   /**
+//    * Implements MicrodataFieldTestCase::getFields().
+//    */
+//   protected function getFields() {
+//     // Create fields for the field collection and for the field group.
+//     $fields = array();
+//     foreach ($this->fieldFormatterTypes as $type) {
+//       $fields[] = array(
+//         'field_name' => $type,
+//         'type' => 'email',
+//       );
+//     }
+
+//     return $fields;
+//   }
+
+//   /**
+//    * Implements MicrodataFieldTestCase::getInstances().
+//    */
+//   protected function getInstances() {
+//     // Create instances for the field collection and for the field group.
+//     $instances = array();
+//     foreach ($this->fieldFormatterTypes as $type) {
+//       $instances[] = array(
+//         'field_name' => $type,
+//         'entity_type' => $this->entityType,
+//         'bundle' => $this->bundleType,
+//         'display' => array(
+//           'default' => array(
+//             'label' => 'hidden',
+//             'type' => $type,
+//           ),
+//         ),
+//       );
+//     }
+
+//     return $instances;
+//   }
+
+//   /**
+//    * Implements MicrodataFieldTestCase::getMapping().
+//    */
+//   protected function getMapping() {
+//     foreach ($this->fieldFormatterTypes as $type) {
+//       $mapping[$this->entityType][$this->bundleType][$type] = array(
+//         '#itemprop' => array($type),
+//       );
+//     }
+
+//     return $mapping;
+//   }
+  
+//   public function testMarkup() {
+//     $text = "example@test.org";
+
+//     $node = $this->drupalCreateNode(array('type' => $this->bundleType, 'promote' => 1));
+//     foreach ($this->fieldFormatterTypes as $type) {
+//       $edit["{$type}[und][0][email]"] = $text;
+//     }
+//     $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
+
+//     // Get the microdata result for the page.
+//     $md = $this->parseMicrodata();
+
+//     // Get the entity as a microdata item.
+//     $item = $md->items[0];
+
+//     // Test text field.
+//     foreach ($this->fieldFormatterTypes as $type) {
+//       $text_itemprop = $type;
+//       $this->assertEqual($text, $item->properties[$text_itemprop][0], "Itemprop is placed on $type");
+//     }
+//   }
+
+// }
+
