test('failing to delete will not trigger deleting hooks', (assert) => {
  assert.expect(0);
  editor = new Editor({mobiledoc: mobileDocWith2Sections});
  editor.willDelete(() => {
    assert.ok(false, 'willDelete should not be triggered');
  });
  editor.didDelete(() => {
    assert.ok(false, 'didDelete should not be triggered');
  });

  editor.render(editorElement);
  editor.disableEditing();
  Helpers.dom.triggerDelete(editor);
});
test('deleting chracter triggers deleting hooks', (assert) => {
  assert.expect(9);
  let lifeCycles = [];

  editor = new Editor({mobiledoc: mobileDocWith2Sections});
  editor.willDelete((range, direction, unit) => {
    assert.ok(range, 'range is not empty');
    assert.equal(direction, -1, 'direction defaults to -1');
    assert.equal(unit, 'char', 'unit defaults to char');
    assert.ok(true, 'willDelete is triggered');
    lifeCycles.push('willDelete');
  });
  editor.didDelete((range, direction, unit) => {
    assert.ok(range, 'range is not empty');
    assert.equal(direction, -1, 'direction defaults to -1');
    assert.equal(unit, 'char', 'unit defaults to char');
    assert.ok(true, 'didDelete is triggered');
    lifeCycles.push('didDelete');
  });
  editor.render(editorElement);

  Helpers.dom.triggerDelete(editor);
  assert.deepEqual(lifeCycles, ['willDelete', 'didDelete'], 'hooks are triggered in order');
});