This tests to see if position:sticky gets converted to position:static upon copy/paste

first test - before:
| <html>
|   <head>
|     "\n"
|     <meta>
|       content="text/html; charset=utf-8"
|       http-equiv="Content-type"
|     "\n"
|     <script>
|       src="../../resources/dump-as-markup.js"
|       type="text/javascript"
|     "\n"
|   "\n"
|   <body>
|     "\nabc"
|     <div>
|       style="position: sticky; left: 0px; top: 0px;"
|       "def"
|     "ghi\n"
|     <br>
|     "\n\n"
|     <script>
|       "\n\nMarkup.description('This tests to see if position:sticky gets converted to position:static upon copy/paste');\n\ndocument.designMode = 'on';\n\nif (window.internals)\n    window.internals.settings.setShouldConvertPositionStyleOnCopy(true);\n\nvar s = window.getSelection();\n\nMarkup.dump('test1', 'first test - before');\ndocument.execCommand("SelectAll");\ndocument.execCommand("Cut");\ndocument.execCommand("Paste");\nMarkup.dump('test1', 'first test - after');\n\n"

first test - after:
| <html>
|   <head>
|     "\n"
|     <meta>
|       content="text/html; charset=utf-8"
|       http-equiv="Content-type"
|     "\n"
|     <script>
|       src="../../resources/dump-as-markup.js"
|       type="text/javascript"
|     "\n"
|   "\n"
|   <body>
|     "abc"
|     <div>
|       style="position: static; left: 0px; top: 0px;"
|       "def"
|     "ghi <#selection-caret>\n\n"
|     <script>
|       "\n\nMarkup.description('This tests to see if position:sticky gets converted to position:static upon copy/paste');\n\ndocument.designMode = 'on';\n\nif (window.internals)\n    window.internals.settings.setShouldConvertPositionStyleOnCopy(true);\n\nvar s = window.getSelection();\n\nMarkup.dump('test1', 'first test - before');\ndocument.execCommand("SelectAll");\ndocument.execCommand("Cut");\ndocument.execCommand("Paste");\nMarkup.dump('test1', 'first test - after');\n\n"
