diff --git a/composer.json b/composer.json
index 722f1fa..32902ef 100644
--- a/composer.json
+++ b/composer.json
@@ -28,7 +28,8 @@
     "zendframework/zend-feed": "2.3.*",
     "mikey179/vfsStream": "1.*",
     "stack/builder": "1.0.*",
-    "egulias/email-validator": "1.2.*"
+    "egulias/email-validator": "1.2.*",
+    "phpunit/phpunit-dom-assertions": "1.0.*@dev"
   },
   "autoload": {
     "psr-4": {
diff --git a/composer.lock b/composer.lock
index fe5dc0a..92f4d79 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "461047a83f0f5554064bfe97e2a673fb",
+    "hash": "727832d70cecdf01882aaf39bb183300",
     "packages": [
         {
             "name": "doctrine/annotations",
@@ -1088,6 +1088,63 @@
             "time": "2014-07-18 07:15:58"
         },
         {
+            "name": "phpunit/phpunit-dom-assertions",
+            "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpunit/phpunit-dom-assertions.git",
+                "reference": "4e43c66e35fb5e30a0eeb535c861455540c0d9fb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpunit/phpunit-dom-assertions/zipball/4e43c66e35fb5e30a0eeb535c861455540c0d9fb",
+                "reference": "4e43c66e35fb5e30a0eeb535c861455540c0d9fb",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3",
+                "phpunit/phpunit": "~4.0",
+                "symfony/css-selector": "~2.0",
+                "symfony/dom-crawler": "~2.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "DOM assertions for PHPUnit",
+            "homepage": "http://github.com/phpunit/phpunit-dom-assertions",
+            "keywords": [
+                "Xpath",
+                "assertions",
+                "css",
+                "dom",
+                "phpunit",
+                "tests"
+            ],
+            "time": "2014-08-27 18:14:08"
+        },
+        {
             "name": "phpunit/phpunit-mock-objects",
             "version": "dev-master",
             "source": {
@@ -1860,6 +1917,59 @@
             "time": "2014-12-03 09:22:11"
         },
         {
+            "name": "symfony/dom-crawler",
+            "version": "v2.6.1",
+            "target-dir": "Symfony/Component/DomCrawler",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/DomCrawler.git",
+                "reference": "300d449f79d74ac62b06edd05214e8dd2e635840"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/300d449f79d74ac62b06edd05214e8dd2e635840",
+                "reference": "300d449f79d74ac62b06edd05214e8dd2e635840",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.3"
+            },
+            "require-dev": {
+                "symfony/css-selector": "~2.0"
+            },
+            "suggest": {
+                "symfony/css-selector": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.6-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Symfony\\Component\\DomCrawler\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Symfony Community",
+                    "homepage": "http://symfony.com/contributors"
+                },
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                }
+            ],
+            "description": "Symfony DomCrawler Component",
+            "homepage": "http://symfony.com",
+            "time": "2014-12-02 20:19:20"
+        },
+        {
             "name": "symfony/event-dispatcher",
             "version": "v2.6.1",
             "target-dir": "Symfony/Component/EventDispatcher",
@@ -2594,7 +2704,8 @@
     "minimum-stability": "stable",
     "stability-flags": {
         "doctrine/common": 20,
-        "phpunit/phpunit-mock-objects": 20
+        "phpunit/phpunit-mock-objects": 20,
+        "phpunit/phpunit-dom-assertions": 20
     },
     "prefer-stable": false,
     "prefer-lowest": false,
diff --git a/core/tests/Drupal/Tests/UnitTestCase.php b/core/tests/Drupal/Tests/UnitTestCase.php
index 43748e8..b17ea87 100644
--- a/core/tests/Drupal/Tests/UnitTestCase.php
+++ b/core/tests/Drupal/Tests/UnitTestCase.php
@@ -17,7 +17,7 @@
  *
  * @ingroup testing
  */
-abstract class UnitTestCase extends \PHPUnit_Framework_TestCase {
+abstract class UnitTestCase extends \PHPUnit_Framework_DOMTestCase {
 
   /**
    * The random generator.
diff --git a/core/vendor/composer/autoload_classmap.php b/core/vendor/composer/autoload_classmap.php
index 670145c..1c53039 100644
--- a/core/vendor/composer/autoload_classmap.php
+++ b/core/vendor/composer/autoload_classmap.php
@@ -59,6 +59,7 @@
     'PHPUnit_Framework_Constraint_TraversableContains' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContains.php',
     'PHPUnit_Framework_Constraint_TraversableContainsOnly' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/TraversableContainsOnly.php',
     'PHPUnit_Framework_Constraint_Xor' => $vendorDir . '/phpunit/phpunit/src/Framework/Constraint/Xor.php',
+    'PHPUnit_Framework_DOMTestCase' => $vendorDir . '/phpunit/phpunit-dom-assertions/src/DOMTestCase.php',
     'PHPUnit_Framework_Error' => $vendorDir . '/phpunit/phpunit/src/Framework/Error.php',
     'PHPUnit_Framework_Error_Deprecated' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Deprecated.php',
     'PHPUnit_Framework_Error_Notice' => $vendorDir . '/phpunit/phpunit/src/Framework/Error/Notice.php',
diff --git a/core/vendor/composer/autoload_namespaces.php b/core/vendor/composer/autoload_namespaces.php
index 54e2998..3093c9b 100644
--- a/core/vendor/composer/autoload_namespaces.php
+++ b/core/vendor/composer/autoload_namespaces.php
@@ -20,6 +20,7 @@
     'Symfony\\Component\\HttpKernel\\' => array($vendorDir . '/symfony/http-kernel'),
     'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'),
     'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'),
+    'Symfony\\Component\\DomCrawler\\' => array($vendorDir . '/symfony/dom-crawler'),
     'Symfony\\Component\\DependencyInjection\\' => array($vendorDir . '/symfony/dependency-injection'),
     'Symfony\\Component\\Debug\\' => array($vendorDir . '/symfony/debug'),
     'Symfony\\Component\\CssSelector\\' => array($vendorDir . '/symfony/css-selector'),
diff --git a/core/vendor/composer/installed.json b/core/vendor/composer/installed.json
index 6104e35..b996381 100644
--- a/core/vendor/composer/installed.json
+++ b/core/vendor/composer/installed.json
@@ -2674,5 +2674,119 @@
             "feed",
             "zf2"
         ]
+    },
+    {
+        "name": "symfony/dom-crawler",
+        "version": "v2.6.1",
+        "version_normalized": "2.6.1.0",
+        "target-dir": "Symfony/Component/DomCrawler",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/symfony/DomCrawler.git",
+            "reference": "300d449f79d74ac62b06edd05214e8dd2e635840"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/300d449f79d74ac62b06edd05214e8dd2e635840",
+            "reference": "300d449f79d74ac62b06edd05214e8dd2e635840",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3"
+        },
+        "require-dev": {
+            "symfony/css-selector": "~2.0"
+        },
+        "suggest": {
+            "symfony/css-selector": ""
+        },
+        "time": "2014-12-02 20:19:20",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "2.6-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "psr-0": {
+                "Symfony\\Component\\DomCrawler\\": ""
+            }
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Symfony Community",
+                "homepage": "http://symfony.com/contributors"
+            },
+            {
+                "name": "Fabien Potencier",
+                "email": "fabien@symfony.com"
+            }
+        ],
+        "description": "Symfony DomCrawler Component",
+        "homepage": "http://symfony.com"
+    },
+    {
+        "name": "phpunit/phpunit-dom-assertions",
+        "version": "dev-master",
+        "version_normalized": "9999999-dev",
+        "source": {
+            "type": "git",
+            "url": "https://github.com/phpunit/phpunit-dom-assertions.git",
+            "reference": "4e43c66e35fb5e30a0eeb535c861455540c0d9fb"
+        },
+        "dist": {
+            "type": "zip",
+            "url": "https://api.github.com/repos/phpunit/phpunit-dom-assertions/zipball/4e43c66e35fb5e30a0eeb535c861455540c0d9fb",
+            "reference": "4e43c66e35fb5e30a0eeb535c861455540c0d9fb",
+            "shasum": ""
+        },
+        "require": {
+            "php": ">=5.3.3",
+            "phpunit/phpunit": "~4.0",
+            "symfony/css-selector": "~2.0",
+            "symfony/dom-crawler": "~2.0"
+        },
+        "time": "2014-08-27 18:14:08",
+        "type": "library",
+        "extra": {
+            "branch-alias": {
+                "dev-master": "1.0.x-dev"
+            }
+        },
+        "installation-source": "dist",
+        "autoload": {
+            "classmap": [
+                "src/"
+            ]
+        },
+        "notification-url": "https://packagist.org/downloads/",
+        "license": [
+            "MIT"
+        ],
+        "authors": [
+            {
+                "name": "Jeff Welch",
+                "email": "whatthejeff@gmail.com"
+            },
+            {
+                "name": "Sebastian Bergmann",
+                "email": "sebastian@phpunit.de"
+            }
+        ],
+        "description": "DOM assertions for PHPUnit",
+        "homepage": "http://github.com/phpunit/phpunit-dom-assertions",
+        "keywords": [
+            "Xpath",
+            "assertions",
+            "css",
+            "dom",
+            "phpunit",
+            "tests"
+        ]
     }
 ]
