testSavedCaretRange() {
    let def = $('def-1');
    let jkl = $('jkl-1');

    const range = Range.createFromNodes(def.firstChild, 1, jkl.firstChild, 2);
    range.select();

    const saved = editorRange.saveUsingNormalizedCarets(range);
    assertHTMLEquals(
        'd<span id="' + saved.startCaretId_ + '"></span>ef', def.innerHTML);
    assertHTMLEquals(
        'jk<span id="' + saved.endCaretId_ + '"></span>l', jkl.innerHTML);

    clearSelectionAndRestoreSaved(saved);

    const selection = Range.createFromWindow(window);
    def = $('def-1');
    jkl = $('jkl-1');
    assertHTMLEquals('def', def.innerHTML);
    assertHTMLEquals('jkl', jkl.innerHTML);

    // Check that everything was normalized ok.
    assertEquals(1, def.childNodes.length);
    assertEquals(1, jkl.childNodes.length);
    testingDom.assertRangeEquals(
        def.firstChild, 1, jkl.firstChild, 2, selection);
  }
Branched from the tests for dom.SavedCaretRange.
@suppress {visibility} suppression added to enable type checking