<script src="../../resources/dump-as-markup.js"></script>
<p>This tests removing style attribute after removing CSS property. Undo should bring back the CSS property we removed.</p>
<div id="test" contenteditable><span style="font-weight: 900;">test</span></div>
<script>

Markup.description('This tests removing style attribute after removing CSS property. Undo should bring back the CSS property we removed.');

Markup.dump('test', 'Initially "test" should be bold wrapped with a span');
window.getSelection().selectAllChildren(test);
document.execCommand('bold', false, null);
Markup.dump('test', 'Unbolding should remove the CSS style and also remove the span');

document.execCommand('undo', false, null);
Markup.dump('test', 'Undo should bring back both the span and style attribute so that "test" is once again bold');

document.execCommand('redo', false, null);
Markup.dump('test', 'Redo should unbold "test" and there should be no span');

document.execCommand('undo', false, null);
Markup.dump('test', 'Undo once more');

document.getElementById('test').innerHTML = '<span style="font-weight: 900;">test</span>';
var span = document.getElementById('test').firstChild;
span.id = 'test_span';
span.title = 'hello, world';
window.getSelection().selectAllChildren(test);
Markup.dump('test', 'Reset, and added id and title');

document.execCommand('bold', false, null);
Markup.dump('test', 'Unbolding should remove the CSS style but shouldn\'t remove the span');

document.execCommand('undo', false, null);
Markup.dump('test', 'Undo should restore the style attribute and "test" should be bold');

document.execCommand('redo', false, null);
Markup.dump('test', 'Redo should remove the style attribute again');

document.getElementById('test').innerHTML = '<span style="font-weight: 900;">test</span>';
var span = document.getElementById('test').firstChild;
span.style.color = 'blue';
window.getSelection().selectAllChildren(test);
Markup.dump('test', 'Reset, and added color:blue');

document.execCommand('bold', false, null);
Markup.dump('test', 'Unbolding should remove the font-weight but shouldn\'t remove the style attribute');

document.execCommand('undo', false, null);
Markup.dump('test', 'Undo should reset the style attribute so that "test" is both bold and blue');

document.execCommand('redo', false, null);
Markup.dump('test', 'Redo should only remove font-weight and leave "test" blue');

document.execCommand('foreColor', false, "#000000");
Markup.dump('test', 'Setting the forecolor to black should remove both the style attribute and the span');

document.execCommand('undo', false, null);
Markup.dump('test', 'Undo should make "test" blue again');

</script>
