testTableDataIsNotRemoved() {
    setUpTableTests();
    if (userAgent.IE) {
      // IE returns an "unspecified error" which seems to be beyond
      // ExpectedFailures' ability to catch.
      return;
    }

    expectedFailures.expectFailureFor(
        userAgent.WEBKIT || userAgent.EDGE,
        'The content moves out of the table in WebKit and Edge.');

    if (userAgent.IE) {
      // Not used since we bail out early for IE, but this is there so that
      // developers can easily reproduce IE error.
      Range.createFromNodeContents(document.getElementById('outerTr2'))
          .select();
    } else {
      const selection = window.getSelection();
      if (selection.rangeCount > 0) selection.removeAllRanges();
      let range = document.createRange();
      range.selectNode(document.getElementById('cell1'));
      selection.addRange(range);
      range = document.createRange();
      range.selectNode(document.getElementById('cell2'));
      selection.addRange(range);
    }

    expectedFailures
        .run(/**
                @suppress {visibility} suppression added to enable type
                checking
              */
             () => {
               FORMATTER.removeFormatting_();

               let span = document.getElementById('outerTr2');
               assertEquals(
                   'Table data should not be removed',
                   '<td id="cell1">seven</td><td id="cell2">eight foo</td>',
                   span.innerHTML);
             });
  }
We select two cells from the table and then make sure that there is no
data loss and basic formatting is removed from each cell.