chromium/third_party/blink/web_tests/editing/execCommand/switch-list-type.html

<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
test(() => assert_selection(
    [
        '<div contenteditable>',
            '<ol>',
                '<li>item-1</li>',
                '|one-1<br>',
                '<br>',
                'one-2',
                '<li>item-2</li>',
            '</ol>',
        '</div>',
    ].join(''),
    'insertUnorderedList',
    [
        '<div contenteditable>',
            '<ol>',
                '<li>item-1</li>',
            '</ol>',
            '<ul>',
                '<li>|one-1</li>',
            '</ul>',
            '<ol>',
                '<br>',
                'one-2',
                '<li>item-2</li>',
            '</ol>',
        '</div>',
    ].join('')),
    '1 switch list type on text outside LI with BR');

test(() => assert_selection(
    [
        '<div contenteditable>',
            '<ul>',
                '<li>one-1</li>',
            '</ul>',
            '<ol>',
                '<br>',
                'one-2',
                '<li>item-2</li>',
                '|two-1',
            '</ol>',
        '</div>',
    ].join(''),
    'insertUnorderedList',
    [
        '<div contenteditable>',
            '<ul>',
                '<li>one-1</li>',
            '</ul>',
            '<ol>',
                '<br>',
                'one-2',
                '<li>item-2</li>',
            '</ol>',
            '<ul>',
                '<li>|two-1</li>',
            '</ul>',
        '</div>',
    ].join('')),
    '2 switch list type on text outside LI');

test(() => assert_selection(
    [
        '<div contenteditable>',
            '<ol>',
                '<li>|item-1</li>',
                '<li>item-2</li>',
            '</ol>',
        '</div>',
    ].join(''),
    'insertUnorderedList',
    [
        '<div contenteditable>',
            '<ul>',
                '<li>|item-1</li>',
            '</ul>',
            '<ol>',
                '<li>item-2</li>',
            '</ol>',
        '</div>',
    ].join('')),
    '3 switch list type on text in LI');

test(() => assert_selection(
    [
        '<div contenteditable>',
            '<ol>',
                '<li>item-1</li>',
            '</ol>',
            'item-2',
            '<li>|item-3</li>',
        '</div>',
    ].join(''),
    'insertOrderedList',
    [
        '<div contenteditable>',
            '<ol>',
                '<li>item-1</li>',
            '</ol>',
            'item-2<br>',
            '<ol>',
                '<li>|item-3</li>',
            '</ol>',
        '</div>',
    ].join('')),
    '4 insertOrderedList on LI outside list');

test(() => assert_selection(
    [
        '<div contenteditable>',
            '<ol>',
                '<li>item-1</li>',
            '</ol>',
            'item-2',
            '<li>|item-3</li>',
        '</div>',
    ].join(''),
    'insertUnorderedList',
    [
        '<div contenteditable>',
            '<ol>',
                '<li>item-1</li>',
            '</ol>',
            'item-2<br>',
            '|item-3',  // remove LI
        '</div>',
    ].join('')),
    '5 insertUnorderedList on LI outside list');
</script>