diff --git a/config/schema/simplenews.schema.yml b/config/schema/simplenews.schema.yml
index 5f949e2..24f6c6a 100644
--- a/config/schema/simplenews.schema.yml
+++ b/config/schema/simplenews.schema.yml
@@ -232,6 +232,16 @@ field.value.simplenews_subscription:
 block.settings.simplenews_subscription_block:
   type: block_settings
   mapping:
+    cache:
+      type: mapping
+      label: Cache
+      mapping:
+        max-age:
+          type: integer
+          label: Maximum Age
+        contexts:
+          type: sequence
+          label: Contexts
     newsletters:
       type: sequence
       label: Newsletters
diff --git a/modules/simplenews_demo/config/install/block.block.simplenewssubscription.yml b/modules/simplenews_demo/config/install/block.block.simplenewssubscription.yml
index 5c6e329..505e3b1 100644
--- a/modules/simplenews_demo/config/install/block.block.simplenewssubscription.yml
+++ b/modules/simplenews_demo/config/install/block.block.simplenewssubscription.yml
@@ -3,8 +3,8 @@ status: true
 dependencies:
   module:
     - simplenews
-  theme:
-    - bartik
+#  theme:
+#    - bartik
 id: simplenewssubscription
 theme: bartik
 region: sidebar_first
@@ -20,7 +20,7 @@ settings:
     max_age: 0
     contexts: {  }
   newsletters:
-    default: default
+    default: 'default'
   message: 'Stay informed - subscribe to our newsletter.'
   unique_id: dbbcae7b-bb10-4cf8-8c3d-61e4990109b5
 visibility: {  }
diff --git a/modules/simplenews_demo/config/install/block.block.simplenewssubscription_all.yml b/modules/simplenews_demo/config/install/block.block.simplenewssubscription_all.yml
index ffc1423..7c551a0 100644
--- a/modules/simplenews_demo/config/install/block.block.simplenewssubscription_all.yml
+++ b/modules/simplenews_demo/config/install/block.block.simplenewssubscription_all.yml
@@ -3,8 +3,8 @@ status: true
 dependencies:
   module:
     - simplenews
-  theme:
-    - bartik
+#  theme:
+#    - bartik
 id: simplenewssubscription_all
 theme: bartik
 region: sidebar_first
diff --git a/modules/simplenews_demo/config/install/simplenews.newsletter.press_releases.yml b/modules/simplenews_demo/config/install/simplenews.newsletter.press_releases.yml
index 9584d31..8a9f037 100644
--- a/modules/simplenews_demo/config/install/simplenews.newsletter.press_releases.yml
+++ b/modules/simplenews_demo/config/install/simplenews.newsletter.press_releases.yml
@@ -3,11 +3,11 @@ name: 'Press releases'
 description: 'This is the press release.'
 format: plain
 priority: 0
-receipt: 0
+receipt: false
 from_name: ''
 subject: '[[simplenews-newsletter:name]] [node:title]'
 from_address: 'replace@example.org'
-hyperlinks: 1
+hyperlinks: true
 new_account: none
 opt_inout: double
 weight: 0
diff --git a/modules/simplenews_demo/config/install/simplenews.newsletter.special_offers.yml b/modules/simplenews_demo/config/install/simplenews.newsletter.special_offers.yml
index f05e7b4..b51fcd8 100644
--- a/modules/simplenews_demo/config/install/simplenews.newsletter.special_offers.yml
+++ b/modules/simplenews_demo/config/install/simplenews.newsletter.special_offers.yml
@@ -3,11 +3,11 @@ name: 'Special offers'
 description: 'Special offers newsletter.'
 format: plain
 priority: 0
-receipt: 0
+receipt: false
 from_name: ''
 subject: '[[simplenews-newsletter:name]] [node:title]'
 from_address: 'replace@example.org'
-hyperlinks: 1
+hyperlinks: true
 new_account: none
 opt_inout: double
 weight: 0
diff --git a/modules/simplenews_demo/config/install/simplenews.newsletter.weekly_content.yml b/modules/simplenews_demo/config/install/simplenews.newsletter.weekly_content.yml
index 8f07cb2..e0c6f7e 100644
--- a/modules/simplenews_demo/config/install/simplenews.newsletter.weekly_content.yml
+++ b/modules/simplenews_demo/config/install/simplenews.newsletter.weekly_content.yml
@@ -3,11 +3,11 @@ name: 'Weekly content update'
 description: 'Weekly content update newsletter.'
 format: plain
 priority: 0
-receipt: 0
+receipt: false
 from_name: ''
 subject: '[[simplenews-newsletter:name]] [node:title]'
 from_address: 'replace@example.org'
-hyperlinks: 1
+hyperlinks: true
 new_account: none
 opt_inout: double
 weight: 0
diff --git a/modules/simplenews_demo/simplenews_demo.info.yml b/modules/simplenews_demo/simplenews_demo.info.yml
index 80e2519..eb00adf 100644
--- a/modules/simplenews_demo/simplenews_demo.info.yml
+++ b/modules/simplenews_demo/simplenews_demo.info.yml
@@ -1,6 +1,8 @@
 description: Demo module for simplenews.
 core: 8.x
 dependencies:
+  - block
+  - views
   - simplenews
   - simplenews_scheduler
 hidden: false
diff --git a/modules/simplenews_demo/src/Tests/SimplenewsDemoTest.php b/modules/simplenews_demo/src/Tests/SimplenewsDemoTest.php
new file mode 100644
index 0000000..65f8cb9
--- /dev/null
+++ b/modules/simplenews_demo/src/Tests/SimplenewsDemoTest.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * @file
+ * Contains \Drupal\simplenews_demo\Tests\SimplenewsDemoTest.
+ */
+
+namespace Drupal\simplenews_demo\Tests;
+
+use Drupal\search_api\Tests\WebTestBase;
+
+/**
+ * Tests the demo module for Simplenews.
+ *
+ * @group simplenews
+ */
+class SimplenewsDemoTest extends WebTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var string[]
+   */
+  public static $modules = array('simplenews_demo');
+
+  /**
+   * {@inheritdoc}
+   */
+  function setUp() {
+    parent::setUp();
+
+    $this->drupalLogin($this->drupalCreateUser(['administer simplenews subscriptions', 'send newsletter', 'administer newsletters', 'administer simplenews settings']));
+  }
+
+  /**
+   * Asserts the demo instructions on the frontpage.
+   */
+  protected function testInstalled() {
+    $this->drupalGet('/admin/config/services/simplenews');
+    $this->clickLink(t('Edit'));
+    // Assert default Description is present.
+    $this->assertEqual('This is an example newsletter. Change it.', (string) $this->xpath('//textarea[@id="edit-description"]')[0]);
+    $from_name = $this->xpath('//input[@id="edit-from-name"]')[0];
+    $from_address = $this->xpath('//input[@id="edit-from-address"]')[0];
+    $this->assertEqual('Drupal', (string) $from_name['value']);
+    $this->assertEqual('simpletest@example.com', (string) $from_address['value']);
+    // Assert demo newsletters.
+    $this->drupalGet('/admin/config/services/simplenews');
+    $this->assertText(t('Press releases'));
+    $this->assertText(t('Special offers'));
+    $this->assertText(t('Weekly content update'));
+    // Assert demo newsletters sent.
+    $this->drupalGet('/admin/content/simplenews');
+    $this->assertRaw(t('Newsletter issue sent to 2 subscribers.'));
+    $this->assertRaw(t('Newsletter issue is pending, mails sent out of 3.'));
+    $this->assertRaw(t('Newsletter issue is pending, mails sent out of 1.'));
+    // Assert demo subscribers.
+    $this->drupalGet('/admin/people/simplenews');
+    $this->assertText('a@example.com');
+    $this->assertText('b@example.com');
+    $this->assertText('demouser1@example.com');
+  }
+
+}
diff --git a/src/Tests/SimplenewsTestSubscriptionOutput.php b/src/Tests/SimplenewsTestSubscriptionOutput.php
index 2018d3d..a1c4f56 100644
--- a/src/Tests/SimplenewsTestSubscriptionOutput.php
+++ b/src/Tests/SimplenewsTestSubscriptionOutput.php
@@ -15,6 +15,13 @@ namespace Drupal\simplenews\Tests;
 class SimplenewsTestSubscriptionOutput extends SimplenewsTestBase {
 
   /**
+   * Modules to enable.
+   *
+   * @var string[]
+   */
+  public static $modules = array('simplenews', 'simplenews_scheduler', 'simplenews_demo');
+
+  /**
    * Test subscription output visibility for different users.
    */
   public function testSubscriptionVisiblity() {
