Last updated 9 April 2013.

The following is a test plan for manual testing of Drupal 8's JavaScript functionality. In time, we hope to build automation around these tests, but for now this is a script that contributors can follow to verify Drupal 8 JS-affecting patches.

Existing tests can be found in the Front-end Automated Tests module. Contributions to this project are highly encouraged!

This list comes from the original 6.x testing checklist at and will need lots of updating.

Path Test description
(home page, as user 1) Verify that hovering over the search block results in an edit icon.
(home page, as user 1) Verify that clicking the edit icon shows a drop-down to Configure block.
Path Test description
(node/add/article, as user 1) Assert that CKEditor is present on the body field. Enter something in the title and body fields. Save & publish. You are now redirected to node/1.
(node/1, as user 1) Assert that a "Quick edit" action is listed in the contextual links for the node. Click it. A blue outline should appear around the body field. Click the body field. Assert that an in-place editing widget with CKEditor appears. Now modify the body field's value in this CKEditor instance. Assert that the "Save" button becomes blue. Now click the "Save" button. Assert that the rerendered body field matches what you entered. Finally, reload the page and assert that the body field still matches what you entered.
(admin/config/regional/date-time/formats/add, as user 1) Verify that the ajax preview of the date format is displayed and updated on keypress.
(admin/config/development/performance, as user 1) Verify that checkbox to cache page for anonymous users show the "compress cached page" checkbox.
(install, as user 1) Verify that administrator email value is copied in the user email field on blur.
admin/structure/types/manage/article/display/teaser Verify that dragging a field (with mouse or keyboard) under the Hidden row changes the select value for this field to hidden.
(home page, as user 1) Verify that clicking 'Configure block' fires up the Overlay.
(home page, as user 1) Verify that clicking X on overlay closes it.
Views UI filter checkboxes Create a node view, add a filter for type. Check that using 'select all' check all types, then test that unchecking a type also unchecks the 'select all' option
Views UI filter checkboxes Now check all nodetypes, select all should be enabled.
On update.php as User 1 Assert that if there are pending updates, the fieldset for pending updates is expandable.
On /admin/content as User 1 Assert that at a screen size of 400px or less, the th.priority-low elements have a style property display value of hidden.
On /admin/content as User 1 Assert that at a screen size of 400px or less, the element .tableresponsive-toggle exists and has a style display property value of block.
On /admin/content as User 1 Assert that at a screen size of 400px or less, the element .tableresponsive-toggle exists when clicked, causes th.helpful and th.advisable column headers to toggle from a style display property value of none to a style display property value of block or table-cell.
node/add/story Check if the autocomplete form fields (e.g. "Authored by") work.
node/add/story Check if the teaser splitter works.
node/#/outline With book.module enabled: Check if the parent selector works.
node/add/story With upload.module enabled: Test attaching a new file.
any Check if logging in with OpenID works.
admin/content/node Check if a row gets highlighted when selected.
Check if you can select multiple rows with shift+click.
Check if you can select all rows by clicking at the checkbox in the table header.
admin/user/access Scroll down the page. The table header should keep floating at the top of the viewport.
admin/build/themes/settings/garland Check if the color picker works.
admin/user/user/create Check if the password strength indicator and password match indicator works.
admin/settings/clean-urls See if it detects clean urls.
admin/build/menu-customize/navigation Test drag & drop behavior for a complex menu.
admin/build/block Move blocks by drag and drop. Check with drop down menus too.
admin/content/taxonomy/# Drag & drop hierarchy of terms within a vocabulary. This tests taxonomy.js
any Run the following snippet:
var params = {
  "!foo": "foo",
  "!bar": "bar",
  "!foobar": "banana"
alert(Drupal.t('!foobar !foobar !foobar', params));

The result should be "banana banana banana"

Test matchmedia.js Add this using the console matchMedia('screen and (min-width: 28em)').addListener(function (mql) {console.log(mql);console.log( + ': ' + mql.matches)}); and resize your browser.