diff --git a/message_subscribe_email/message_subscribe_email.info b/message_subscribe_email/message_subscribe_email.info
index b3e2cc2..da296e7 100644
--- a/message_subscribe_email/message_subscribe_email.info
+++ b/message_subscribe_email/message_subscribe_email.info
@@ -7,3 +7,5 @@ dependencies[] = flag
 dependencies[] = list
 dependencies[] = message_subscribe_ui
 dependencies[] = views
+
+files[] = message_subscribe_email.test
diff --git a/message_subscribe_email/message_subscribe_email.test b/message_subscribe_email/message_subscribe_email.test
new file mode 100644
index 0000000..d3599db
--- /dev/null
+++ b/message_subscribe_email/message_subscribe_email.test
@@ -0,0 +1,130 @@
+<?php
+
+/**
+ * @file
+ * Test for the Message subscribe email module.
+ */
+
+/**
+ * Test getting email subscribes from context.
+ */
+class MessageSubscribeEmailSubscribersTest extends DrupalWebTestCase {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Get email subscribers',
+      'description' => 'Get email subscribers from content.',
+      'group' => 'Message subscribe email',
+    );
+  }
+
+  function setUp() {
+    parent::setUp('message_subscribe_email', 'message_subscribe', 'flag');
+
+    // Create node-type.
+    $node_type = 'article';
+
+    // Enable flags.
+    $flags = flag_get_default_flags(TRUE);
+
+    $flag = $flags['subscribe_node'];
+    $flag->types[] = $node_type;
+    $flag->save();
+    $flag->enable();
+
+    $flag = $flags['email_node'];
+    $flag->types[] = $node_type;
+    $flag->save();
+    $flag->enable();
+
+    $flag = $flags['email_user'];
+    $flag->save();
+    $flag->enable();
+
+    // Reset our cache so our permissions show up.
+    drupal_static_reset('flag_get_flags');
+
+    // Reset permissions so that permissions for this flag are available.
+    $this->checkPermissions(array(), TRUE);
+
+    $user1 = $this->drupalCreateUser(array(
+      'flag subscribe_node',
+      'unflag subscribe_node',
+      'flag email_node',
+      'unflag email_node',
+    ));
+    $user2 = $this->drupalCreateUser(array(
+      'flag subscribe_node',
+      'unflag subscribe_node',
+      'flag email_user',
+      'unflag email_user',
+    ));
+
+    // Create node.
+    $settings = array();
+    $settings['type'] = $node_type;
+    $settings['uid'] = $user1->uid;
+    $node = $this->drupalCreateNode($settings);
+
+    // User1 and User2 put a subscribe flag node1.
+    flag('flag', 'subscribe_node', $node->nid, $user1);
+    flag('flag', 'subscribe_node', $node->nid, $user2);
+
+    // User1 puts an email flag on node1 and User2 puts an email flag on User1.
+    flag('flag', 'email_node', $node->nid, $user1);
+    flag('flag', 'email_user', $user1->uid, $user2);
+
+    // Create a dummy message-type.
+    $message_type = message_type_create('foo', array('message_text' => array(LANGUAGE_NONE => array(array('value' => 'Example text.')))));
+    $message_type->save();
+
+    $this->node = $node;
+    $this->user1 = $user1;
+    $this->user2 = $user2;
+
+    // Override default notifiers.
+    variable_set('message_subscribe_default_notifiers', array());
+  }
+
+  /**
+   * Test getting the subscribers list.
+   */
+  function testGetSubscribers() {
+    $message = message_create('foo', array());
+
+    $node = $this->node;
+    $user1 = $this->user1;
+    $user2 = $this->user2;
+
+    $uids = message_subscribe_get_subscribers('node', $node, $message);
+
+    // Assert subscribers data.
+    $expected_uids = array(
+      $user1->uid => array(
+        'notifiers' => array(
+          'email' => 'email',
+        ),
+        'flags' => array(
+          'subscribe_node',
+        ),
+      ),
+      $user2->uid => array(
+        'notifiers' => array(),
+        'flags' => array(
+          'subscribe_node',
+        ),
+      ),
+    );
+
+    $this->assertEqual($uids, $expected_uids, 'All expected subscribers were fetched.');
+
+    $subscribe_options = array(
+      'uids' => $uids,
+    );
+    message_subscribe_send_message('node', $node, $message, array(), $subscribe_options);
+
+    // Assert sent emails.
+    $emailCount = count(variable_get('drupal_test_email_collector', array()));
+    $this->assertEqual($emailCount, 1, 'Only one user was sent an email.');
+  }
+}
