| asynctest(
  'browser.tinymce.core.InsertListTest',
  [
    'ephox.agar.api.Pipeline',
    'ephox.mcagar.api.LegacyUnit',
    'tinymce.core.dom.DOMUtils',
    'tinymce.core.html.DomParser',
    'tinymce.core.html.Node',
    'tinymce.core.html.Schema',
    'tinymce.core.InsertList'
  ],
  function (Pipeline, LegacyUnit, DOMUtils, DomParser, Node, Schema, InsertList) {
    var success = arguments[arguments.length - 2];
    var failure = arguments[arguments.length - 1];
    var suite = LegacyUnit.createSuite();
    var schema = new Schema({});
    var createFragment = function (html) {
      var parser = new DomParser({ validate: false });
      var fragment = parser.parse(html);
      return fragment;
    };
    var createDomFragment = function (html) {
      return DOMUtils.DOM.createFragment(html);
    };
    suite.test('isListFragment', function () {
      LegacyUnit.equal(InsertList.isListFragment(schema, createFragment('<ul><li>x</li></ul>')), true);
      LegacyUnit.equal(InsertList.isListFragment(schema, createFragment('<ol><li>x</li></ol>')), true);
      LegacyUnit.equal(InsertList.isListFragment(schema, createFragment('<meta><ul><li>x</li></ul>')), true);
      LegacyUnit.equal(InsertList.isListFragment(schema, createFragment('<ul><li>x</li></ul><span id="mce_marker"></span>')), true);
      LegacyUnit.equal(InsertList.isListFragment(schema, createFragment('<ul><li>x</li></ul><p><br></p>')), true);
      LegacyUnit.equal(InsertList.isListFragment(schema, createFragment('<ul><li>x</li></ul><p></p>')), true);
      LegacyUnit.equal(InsertList.isListFragment(schema, createFragment('<ul><li>x</li></ul><p>\u00a0</p>')), true);
      LegacyUnit.equal(InsertList.isListFragment(schema, createFragment('<ul><li>x</li></ul><p>x</p>')), false);
      LegacyUnit.equal(InsertList.isListFragment(schema, createFragment('<div></div>')), false);
    });
    suite.test('listItems', function () {
      var list = createDomFragment('<ul><li>a</li><li>b</li><li>c</li></ul>').firstChild;
      LegacyUnit.equal(InsertList.listItems(list).length, 3);
      LegacyUnit.equal(InsertList.listItems(list)[0].nodeName, 'LI');
    });
    suite.test('trimListItems', function () {
      var list = createDomFragment('<ul><li>a</li><li>b</li><li></li></ul>').firstChild;
      LegacyUnit.equal(InsertList.listItems(list).length, 3);
      LegacyUnit.equal(InsertList.trimListItems(InsertList.listItems(list)).length, 2);
    });
    Pipeline.async({}, suite.toSteps({}), function () {
      success();
    }, failure);
  }
);
 |