text: /**
   * Test Harness for CodeMirror
   * JS-unit compatible tests here.  The two available assertions are
   * assertEquals (strict equality) and assertEquivalent (looser equivalency).
   *
   * 'editor' is a global object for the CodeMirror editor shared between all
   * tests.  After manipulating it in each test, try to restore it to
   * approximately its original state.
   */
  
  function testSetGet() {
    var code = 'It was the best of times.\nIt was the worst of times.';
    editor.setCode(code);
    assertEquals(code, editor.getCode());
    editor.setCode('');
    assertEquals('', editor.getCode());
  }
  
  function testSetStylesheet() {
    function cssStatus() {
      // Returns a list of tuples, for each CSS link return the filename and
      // whether it is enabled.
      links = editor.win.document.getElementsByTagName('link');
      css = [];
      for (var x = 0, link; link = links[x]; x++) {
        if (link.rel.indexOf("stylesheet") !== -1) {
          css.push([link.href.substring(link.href.lastIndexOf('/') + 1),
                   !link.disabled])
        }
      }
      return css;
    }
    assertEquivalent([], cssStatus());
    editor.setStylesheet('style/jscolors.css');
    assertEquivalent([['jscolors.css', true]], cssStatus());
    editor.setStylesheet(['style/csscolors.css', 'style/xmlcolors.css']);
    assertEquivalent([['jscolors.css', false], ['csscolors.css', true], ['xmlcolors.css', true]], cssStatus());
    editor.setStylesheet([]);
    assertEquivalent([['jscolors.css', false], ['csscolors.css', false], ['xmlcolors.css', false]], cssStatus());
  }
  
  // Update this list of tests as new ones are added.
  var tests = ['testSetGet', 'testSetStylesheet'];
  
  