function createHtml(
    title, pathToBootstrap, pathToDeps, js, testDom, pathToBase) {
  // Use parse5 to parse and reserialize the test dom. This generates any
  // optional tags (html, body, head) if missing. Meaning test doms can specify
  // these tags, if needed.
  return parse5.serialize(parse5.parse(`<!DOCTYPE html>
<!-- DO NOT EDIT. This file auto-generated by generate_closure_unit_tests.js -->
<!--
Copyright 2017 The Closure Library Authors. All Rights Reserved.

Use of this source code is governed by the Apache License, Version 2.0.
See the COPYING file for details.
-->
<meta charset="UTF-8" />
${pathToBootstrap ? `<script src=${pathToBootstrap}></script>` : ''}
<script src="${pathToBase}"></script>
${pathToDeps ? `<script src=${pathToDeps}></script>` : ''}
<script>${js}</script>
<title>${title}</title>` + testDom));
}
@param {string} title Title of the test.
@param {string} pathToBootstrap Path to a bootstrap javascript file to run
    first, if any. Generally this file will contain closure defines.
@param {string} pathToDeps Path to a custom deps file, if any.
@param {string} js Script content of the test.
@param {string} testDom Any test DOM related to the test or the empty string
    if none.
@param {string} pathToBase Path to the base.js file.
@return {string} The text content of the test HTML file.