summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/old-tests
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/old-tests
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/old-tests')
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html47
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html47
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html52
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html44
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html56
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html50
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_checkvalidity.html44
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_labels.html48
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_setcustomvalidity.html43
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validationmessage.html40
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validity.html40
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_willvalidate.html40
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_checkvalidity.html45
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_setcustomvalidity.html44
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validationmessage.html41
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validity.html41
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_willvalidate.html41
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_action.html43
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_checkvalidity.html47
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_length.html38
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_submit.html51
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_checkvalidity.html44
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_height.html42
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_labels.html49
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_setcustomvalidity.html43
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepdown.html44
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepup.html45
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validationmessage.html40
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validity.html40
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_value_invalidstateerr.html41
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasdate_invalidstateerr.html41
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasnumber_invalidstateerr.html39
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_width.html42
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_willvalidate.html40
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html44
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html48
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Session_History/contents/Session_History/css/result.css12
-rw-r--r--testing/web-platform/tests/old-tests/submission/Infraware/Session_History/contents/Session_History/index.html63
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_000-manual.htm62
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_001-manual.htm62
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_002-manual.htm64
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_003-manual.htm67
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_004-manual.htm19
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_005-manual.htm19
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_006-manual.htm19
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_007-manual.htm19
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_008-manual.htm19
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_009-manual.htm66
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_010-manual.htm64
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_011-manual.htm62
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_012-manual.htm64
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_013-manual.htm76
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_014-manual.htm81
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_015-manual.htm78
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_016-manual.htm72
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_support.js9
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_002.html47
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_007.html8
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_012.html33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_014.html98
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_015.html53
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/history/404.html1
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/history/history_000.htm329
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/images/blue-area.pngbin0 -> 1469 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/images/blue-border.pngbin0 -> 1823 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/images/blue.pngbin0 -> 485 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/images/fail.gifbin0 -> 24480 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/images/movie_300_frame_0.pngbin0 -> 11493 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/images/poster.pngbin0 -> 83058 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_blue.pngbin0 -> 5316 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_green.pngbin0 -> 5130 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_red.pngbin0 -> 4605 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/images/rect.svg4
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_001.htm11
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_002.htm21
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_003.htm12
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_004.htm10
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_006.htm12
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_007.htm12
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_008.htm9
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_009.htm9
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_010.htm9
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_012.htm13
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_020.htm28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_020a.htm13
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_021.htm28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_021a.htm13
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_022.htm11
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_023.htm15
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_024.htm13
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_026.htm12
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_027.htm21
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_028.htm20
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_029.htm19
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_031.htm19
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_032.htm27
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox.pdfbin0 -> 80990 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_001.htm33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_002.htm25
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_003-manual.htm32
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_004-manual.htm33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_005.htm33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_006-manual.htm37
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_007-manual.htm37
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_008-manual.htm37
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_009-manual.htm37
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_010-manual.htm37
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_011.htm65
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_012.htm36
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_013.htm38
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_014.htm36
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_015.htm36
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_016.htm35
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_017.htm36
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_018.htm36
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_019.htm36
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_020-manual.htm34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_021-manual.htm44
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_022-manual.htm38
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_023.htm34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_024.htm33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_025.htm32
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_026.htm33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_027.htm33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_028.htm34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_029.htm33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_030.htm33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_031.htm33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_032.htm33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_helper.js14
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-fail.htm9
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-iframe-content.htm9
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-pass.htm9
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/RemoveElementContainingSelection.htm40
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/addRange.htm72
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapse.htm73
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapseToEnd.htm75
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapseToStart.htm75
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/deleteFromDocument.htm80
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/getRangeAt.htm59
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/insertNodeIntoSelection.htm41
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/removeAllRanges.htm73
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/removeRange.htm72
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/select.htm72
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/selectAllChildren.htm32
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/selectionStartEnd.htm74
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/selection/setSelectionRange.htm73
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/structuredclone/echo.js1
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/structuredclone/structuredclone_0.html400
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/xhtml5/colgroup_valign_bottom.xhtmlbin0 -> 1246 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Microsoft/xhtml5/colgroup_valign_top.xhtmlbin0 -> 1202 bytes
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/001.html27
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/002.html27
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/003.html27
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/004.html25
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/005.html27
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/006.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/007.html27
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/008.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/009.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/010.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/011.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/012.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/013.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/014.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/015.html34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/015a.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/016.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/017.html33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/018.html35
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/019.html31
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/020.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/021.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/022.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/023.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/024.html32
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/025.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/026.html33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/027.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/028.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/029.html37
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/030.html39
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/031.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/032.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/033.html35
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/034.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/035.html35
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/036.html34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/037.html33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/038.html34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/039.html36
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/040.html34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/041.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/042.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/043.html31
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/044.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/045.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/046.html27
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/047.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/048.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/049.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/050.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/051.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/052.html26
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/053.html31
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/054.html33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/055.html32
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/056.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/057.html31
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/058.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/059.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/060.html32
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/061.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/062.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/063.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/064.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/065.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/066.html31
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/067.html38
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/068.html31
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/069.html33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/070.html48
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/071.html55
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/072.html50
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/073.html52
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/074.html49
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/075.html42
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/076.html32
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/077.html41
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/078.html43
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/079.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/080.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/081.html31
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/082.html34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/083.html48
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/084.html47
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/085.html24
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/086.html24
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/087.html24
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/088.html24
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/089.html34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/090.html34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/091.html31
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/092.html26
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/094.html23
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/095.html24
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/096.html24
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/097.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/098.html25
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/099.html19
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/100.html19
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/101.html35
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/102.html24
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/103.html39
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/104.html39
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/105.html31
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/106-import.html20
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/106-noimport.html20
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/107-import.html21
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/107-noimport.html21
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/108.html25
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/109.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/110.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/111.html32
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/112.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/113.html31
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/114.html26
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/115.html26
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/116.html24
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/117.html26
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/118.html26
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/119.html32
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/120.html17
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/121.html17
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/122.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/123.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/124.html25
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/125.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/126.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/127.html34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/128.html34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/129.html40
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/130.html34
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/131.html22
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/132.html22
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/133.html29
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/134.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/135.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/136.html33
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/137.html21
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/138.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/139.html30
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/140.html24
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/141.html26
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/142.html27
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/143.html31
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/144.html28
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/145.html24
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/146.html22
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/147.html40
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/148.html40
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/149.html59
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/css/background.css1
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/css/import.css1
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/pages/helloworld-postMessage.html19
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/pages/helloworld.html15
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/count-script-tags.js1
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/find-body.js2
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/find-foo.js2
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-1.js1
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-10.js1
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-11.js4
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-12.js4
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-2.js1
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-3.js3
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-4.js3
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-5.js7
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-6.js6
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-7.js1
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-8.js4
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-9.js2
-rw-r--r--testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/testlib/testlib.js43
-rw-r--r--testing/web-platform/tests/old-tests/submission/migration.txt26
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/README.md38
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/base_test.py60
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/command_contexts/__init__.py0
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/command_contexts/open_and_close_window_test.py64
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/command_contexts/res/first-page.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/command_contexts/res/other-page.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/command_contexts/window_handle_test.py33
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/command_contexts/window_size_test.py35
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/cookie/__init__.py0
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/cookie/cookie_test.py57
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/cookie/res/cookie_container.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/ecmascript/ecmascript_test.py17
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/ecmascript/res/ecmascript_test.html2
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_location/__init__.py0
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_location/element_location_test.py60
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_location/res/elements.html10
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/__init__.py0
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/method_test.py107
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/properties.py17
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/0x0-pixels.html12
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/1x1-pixels.html12
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/a-with-href-attribute.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/absolute-children-ancestor-hidden-overflow.html16
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/body_empty.html4
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/body_implicit.html3
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/body_overflow_hidden.html4
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/body_visibility_hidden.html4
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/display-block.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child-link.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child-paragraph.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-dynamic.html10
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-parent-presedence-visibility.html15
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-parent-presedence.html14
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-dynamically-moved-outside-viewport.html15
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-hidden-by-other-element.html20
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-hidden-by-z-index.html29
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-moved-behind-other-element-by-transform.html31
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-moved-outside-viewport-by-transform.html15
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-outside-viewport.html13
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-partially-hidden-by-other-element.html23
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-selected.html89
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-color-style-attribute.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-custom-attribute.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-id-attribute.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-same-color-as-background.html10
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-same-color-as-parent-background.html18
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-style-attribute.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/element-without-attribute.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/elements_text.html10
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/get-element-attribute-extended.html72
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden-input-type-checkbox-untogglable.html9
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden-input-type-text-writing.html9
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/img-with-src-attribute.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/input-morphs-into-hidden.html10
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/input-type-hidden-unclickable.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/input-type-hidden.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/input-with-checked-attribute.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/input-without-checked-attribute.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/option-with-value-attribute.html7
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/option-without-value-attribute.html7
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-matching-color-and-background.html14
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-same-color-as-background.html12
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-same-color-as-parent-background.html14
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-link.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-paragraph.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-presedence.html12
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-hidden.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-visible.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/x-auto-y-hidden.html30
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-auto.html30
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-hidden.html30
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-scroll.html30
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/x-scroll-y-hidden.html30
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/res/zero-sized-element-with-sizable-decendant.html14
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/selected_test.py210
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/element_state/visibility_test.py324
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/javascript/__init__.py0
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/javascript/execute_script_test.py129
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/javascript/res/execute_script_test.html2
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/javascript/res/return_array_of_dom_elements.html3
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/javascript/res/return_document_body.html2
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/javascript/res/return_node_list.html3
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/modal/__init__.py0
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/modal/alerts_quit_test.py26
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/modal/alerts_test.py148
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/modal/res/alerts.html53
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/__init__.py0
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/auth_tests.py42
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/forward.py24
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/forwardToNothing.py20
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/get_from_http_test.py60
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/invalid_cert_test.py28
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/refresh-page.py27
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/refresh_page.py27
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/res/1s-meta-redirect.html4
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/res/60s-meta-redirect.html4
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/res/authenticated.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/res/empty.html4
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/res/forwardNext.html6
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/res/forwardStart.html6
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/res/fragment.html9
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/res/instant-meta-redirect.html4
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/res/refreshPageDynamic.html10
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/res/refreshPageStatic.html6
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/navigation/res/self-signed.key28
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/network.py30
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/runtests.py14
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/runtests_p0.py42
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/screenshot/__init__.py1
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/screenshot/res/screenshot.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/screenshot/take_screenshot.py15
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/timeouts/__init__.py0
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/timeouts/implicit_waits_tests.py64
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/timeouts/page_load_timeouts_tests.py26
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/timeouts/res/implicit_waits_tests.html38
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/timeouts/res/page_load_timeouts_tests.html12
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/__init__.py0
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/clear_test.py53
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/click_test.py349
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/res/click.html45
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_contenteditable_page.html13
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_disabled_input_page.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_disabled_textarea_page.html13
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_readonly_input_page.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_readonly_textarea_page.html13
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_writable_input_page.html11
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_writable_textarea_page.html13
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/res/text-form-landing.html8
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/res/text-form.html25
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/user_input/sendkeys_test.py96
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/webdriver.cfg35
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/windows/__init__.py1
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/windows/res/win1.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/windows/res/win2.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/windows/res/win3.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/windows/res/win4.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/windows/res/win5.html5
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/windows/tabbing.py30
-rw-r--r--testing/web-platform/tests/old-tests/webdriver/windows/window_manipulation.py43
466 files changed, 14395 insertions, 0 deletions
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html
new file mode 100644
index 000000000..531cb374f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_autocomplete.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_autocomplete</h3>
+ </p>
+
+ <li>input text in textbox and press enter key.</li>
+ <li>When you input same text, you can see hint text.</li>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><input type='text' id='input_text'></p>
+ </form>
+
+ <script>
+
+ var input_text = document.getElementById("input_text");
+ input_text.autocomplete = 'on';
+
+ if (typeof(input_text.autocomplete) == "string") {
+ if (input_text.autocomplete != "on") {
+ test(function() {
+ assert_true(false, "autocomplete attribute is not correct.");
+ });
+ }
+ } else {
+ test(function() {
+ assert_unreached("autocomplete attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html
new file mode 100644
index 000000000..0056839db
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_list.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_list</h3>
+ </p>
+ <li>List is showed list when click the input control.</li>
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ name="input_form">
+ <p><input type='text' id='input_url' list="urls"></p>
+ <datalist id="urls">
+ <option value="http://www.google.com/" label="Google">
+ <option value="http://www.reddit.com/" label="Reddit">
+ </datalist>
+ </form>
+
+ <script>
+
+ var input_url = document.getElementById("input_url");
+ var ele = input_url.list;
+
+ if (typeof(ele) != "object") {
+ if (typeof(ele) == "null") {
+ test(function() {
+ assert_unreached("list attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("list attribute is not exist.");
+ });
+ }
+ }
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html
new file mode 100644
index 000000000..c9002f042
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasdate.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_valueAsDate</h3>
+ </p>
+ <li>Date is showed in input when window is loaded.</li>
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ name="input_form">
+ <p><input type='date' id='input_date'></p>
+ </form>
+
+ <script>
+
+ var input_date = document.getElementById("input_date");
+ // Setting
+ try {
+ input_date.valueAsDate = new Date();
+ } catch(e) {
+ test(function() {
+ assert_unreached("Failed to set valueAsDate attribute.");
+ });
+ }
+
+ // Getting
+ if (input_date.valueAsDate != null) {
+ if (typeof(input_date.valueAsDate) != "object") {
+ test(function() {
+ assert_true(false, "valueAsDate attribute is not correct.");
+ });
+ }
+ } else {
+ test(function() {
+ assert_unreached("Failed to get valueAsDate attribute.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html
new file mode 100644
index 000000000..6c24f1e4a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/input_valueasnumber.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_valueAsNumber</h3>
+ </p>
+ <li>Number 5 is showed in input when window is loaded.</li>
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ name="input_form">
+ <p><input type='number' id='input_number'></p>
+ </form>
+
+ <script>
+
+ var input_number = document.getElementById("input_number");
+ input_number.valueAsNumber = 5;
+
+ if (typeof(input_number.valueAsNumber) == "number") {
+ if (input_number.value != 5) {
+ test(function() {
+ assert_true(false, "valueAsNumber attribute is not correct.");
+ });
+ }
+ } else {
+ test(function() {
+ assert_unreached("valueAsNumber attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html
new file mode 100644
index 000000000..6c0864a08
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_length.html
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>select_length</h3>
+ </p>
+
+ <li>In select control there is only 3 items.</li>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p>
+ <label for="unittype">Select unit type:</label>
+ <select id="unittype" name="unittype">
+ <option value="1"> Miner </option>
+ <option value="2"> Puffer </option>
+ <option value="3" selected> Snipey </option>
+ <option value="4"> Max </option>
+ <option value="5"> Firebot </option>
+ </select>
+ </p>
+ </form>
+
+ <script>
+
+ var select = document.getElementById("unittype");
+ var length = select.length;
+ select.length = 3;
+
+ if (typeof(length) == "number") {
+ if (length != 5) {
+ test(function() {
+ assert_true(false, "length attribute is not correct.");
+ });
+ }
+ } else {
+ test(function() {
+ assert_unreached("length attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html
new file mode 100644
index 000000000..99fb65a3c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/Not_Use/select_selectedindex.html
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>select_selectedIndex</h3>
+ </p>
+
+ <li>In select control second item is selected.</li>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p>
+ <label for="unittype">Select unit type:</label>
+ <select id="unittype" name="unittype">
+ <option value="1"> Miner </option>
+ <option value="2"> Puffer </option>
+ <option value="3" selected> Snipey </option>
+ <option value="4"> Max </option>
+ <option value="5"> Firebot </option>
+ </select>
+ </p>
+ </form>
+
+ <script>
+
+ var select = document.getElementById("unittype");
+ var selectedindex = select.selectedIndex;
+
+ if (selectedindex != 2) {
+ test(function() {
+ assert_true(false, "selectedindex attribute is not correct.");
+ });
+ }
+
+ select.selectedIndex = 1;
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_checkvalidity.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_checkvalidity.html
new file mode 100644
index 000000000..0d15e1083
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_checkvalidity.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>button_checkValidity</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><button id='button_id'>button</button></p>
+ </form>
+ <script>
+
+ var button = document.getElementById("button_id");
+
+ try
+ {
+ var ret = button.checkValidity();
+
+ test(function() {
+ assert_equals(ret, true, "calling of checkValidity method is failed.");
+ });
+ }
+ catch (e) {
+ test(function() {
+ assert_unreached("autofocus attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_labels.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_labels.html
new file mode 100644
index 000000000..312fb7e81
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_labels.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>button_labels</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><label>Full name:<label>(name)<button id='button_id1'>button1</button><small>Format: First Last</small></label></label></p>
+ <p><label>Age: <button id='button_id2'>button2</button></label></p>
+ </form>
+ <script>
+
+ var button1 = document.getElementById("button_id1");
+ var button2 = document.getElementById("button_id2");
+
+ if (typeof(button1.labels) == "object") {
+ if (button1.labels.length == 2 && button2.labels.length == 1) {
+ test(function() {
+ assert_true(true, "labels attribute is correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("labels attribute is not correct.");
+ });
+ }
+ } else {
+ test(function() {
+ assert_unreached("labels attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_setcustomvalidity.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_setcustomvalidity.html
new file mode 100644
index 000000000..6f012335f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_setcustomvalidity.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>button_setCustomValidity</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><button id='button_id'>button</button></p>
+ </form>
+ <script>
+
+ var button = document.getElementById("button_id");
+
+ try
+ {
+ button.setCustomValidity("custom error");
+ test(function() {
+ assert_true(true, "calling of setCustomValidity method is successed.");
+ });
+ }
+ catch (e) {
+ test(function() {
+ assert_unreached("Error is raised.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validationmessage.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validationmessage.html
new file mode 100644
index 000000000..44364aec5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validationmessage.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>button_validationMessage</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><button id='button_id'>button</button></p>
+ </form>
+ <script>
+
+ var button = document.getElementById("button_id");
+
+ if (typeof(button.validationMessage) == "string") {
+ test(function() {
+ assert_equals(button.validationMessage, "", "validationMessage attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("validationMessage attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validity.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validity.html
new file mode 100644
index 000000000..00d022119
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_validity.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>button_validity</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><button id='button_id'>button</button></p>
+ </form>
+ <script>
+
+ var button = document.getElementById("button_id");
+
+ if (typeof(button.validity) == "object") {
+ test(function() {
+ assert_equals(button.validity.valueMissing, false, "validity attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("validity attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_willvalidate.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_willvalidate.html
new file mode 100644
index 000000000..067b38f89
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/button_willvalidate.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>button_willValidate</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><button id='button_id'>button</button></p>
+ </form>
+ <script>
+
+ var button = document.getElementById("button_id");
+
+ if (typeof(button.willValidate) == "boolean") {
+ test(function() {
+ assert_equals(button.willValidate, true, "willValidate attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("willValidate attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_checkvalidity.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_checkvalidity.html
new file mode 100644
index 000000000..ab4d9601f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_checkvalidity.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>FieldSet_checkValidity</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <fieldset id="input_field">
+ </fieldset>
+ </form>
+ <script>
+
+ var field = document.getElementById("input_field");
+
+ try
+ {
+ var ret = field.checkValidity();
+
+ test(function() {
+ assert_equals(ret, true, "calling of checkValidity method is failed.");
+ });
+ }
+ catch (e) {
+ test(function() {
+ assert_unreached("Error is raised.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_setcustomvalidity.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_setcustomvalidity.html
new file mode 100644
index 000000000..bca7d6f97
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_setcustomvalidity.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>FieldSet_setCustomValidity</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <fieldset id="input_field">
+ </fieldset>
+ </form>
+ <script>
+
+ var field = document.getElementById("input_field");
+
+ try
+ {
+ field.setCustomValidity("custom error");
+ test(function() {
+ assert_true(true, "calling of setCustomValidity method is successed.");
+ });
+ }
+ catch (e) {
+ test(function() {
+ assert_unreached("Error is raised.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validationmessage.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validationmessage.html
new file mode 100644
index 000000000..8c3457d42
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validationmessage.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>FieldSet_validationMessage</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <fieldset id="input_field">
+ </fieldset>
+ </form>
+ <script>
+
+ var field = document.getElementById("input_field");
+
+ if (typeof(field.validationMessage) == "string") {
+ test(function() {
+ assert_equals(field.validationMessage, "", "validationMessage attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("validationMessage attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validity.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validity.html
new file mode 100644
index 000000000..e0622bf38
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_validity.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>FieldSet_validity</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <fieldset id="input_field">
+ </fieldset>
+ </form>
+ <script>
+
+ var field = document.getElementById("input_field");
+
+ if (typeof(field.validity) == "object") {
+ test(function() {
+ assert_equals(field.validity.valueMissing, false, "validity attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("validity attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_willvalidate.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_willvalidate.html
new file mode 100644
index 000000000..802968cd7
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/fieldset_willvalidate.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>FieldSet_willValidate</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <fieldset id="input_field">
+ </fieldset>
+ </form>
+ <script>
+
+ var field = document.getElementById("input_field");
+
+ if (typeof(field.willValidate) == "boolean") {
+ test(function() {
+ assert_equals(field.willValidate, false, "willValidate attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("willValidate attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_action.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_action.html
new file mode 100644
index 000000000..f925a62ff
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_action.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>Form_action</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action="http://www.google.com/"
+ id="input_form">
+ <p><input type=hidden name="custname"></p>
+ <p><input type=hidden name="custtel"></p>
+ <p><input type=hidden name="custemail"></p>
+
+ </form>
+ <script>
+
+ var form = document.getElementById("input_form");
+
+ if (typeof(form.action) == "string") {
+ test(function() {
+ assert_equals(form.action, "http://www.google.com/", "action attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("action attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_checkvalidity.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_checkvalidity.html
new file mode 100644
index 000000000..83d53da0d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_checkvalidity.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>Form_checkValidity</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><input type=hidden name="custname"></p>
+ <p><input type=hidden name="custtel"></p>
+ <p><input type=hidden name="custemail"></p>
+
+ </form>
+ <script>
+
+ var form = document.getElementById("input_form");
+
+ try
+ {
+ var ret = form.checkValidity();
+
+ test(function() {
+ assert_equals(ret, true, "calling of checkValidity method is failed.");
+ });
+ }
+ catch (e) {
+ test(function() {
+ assert_unreached("Error is raised.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_length.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_length.html
new file mode 100644
index 000000000..2fae73be1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_length.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>Form_length</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><input type=hidden name="custname"></p>
+ <p><input type=hidden name="custtel"></p>
+ <p><input type=hidden name="custemail"></p>
+
+ </form>
+ <script>
+
+ var form = document.getElementById("input_form");
+ var len = form.length;
+
+ test(function() {
+ assert_equals(len, 3, "length attribute is not correct.");
+ });
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_submit.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_submit.html
new file mode 100644
index 000000000..788769049
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/form_submit.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>Form_submit</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action="?x=1"
+ id="input_form">
+ <p><input type=hidden name="custname"></p>
+ <p><input type=hidden name="custtel"></p>
+ <p><input type=hidden name="custemail"></p>
+
+ </form>
+ <script>
+
+ var form = document.getElementById("input_form");
+
+ try
+ {
+ var url = location.href;
+ pos = url.lastIndexOf("?x=1");
+ if (pos == -1) {
+ form.submit();
+ } else {
+ test(function() {
+ assert_true(true, "calling of submit method is successed.");
+ });
+ }
+ }
+ catch (e) {
+ test(function() {
+ assert_unreached("Error is raised.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_checkvalidity.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_checkvalidity.html
new file mode 100644
index 000000000..c46499638
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_checkvalidity.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_checkValidity</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><input type='hidden' id='input_text'></p>
+ </form>
+ <script>
+
+ var input = document.getElementById("input_text");
+
+ try
+ {
+ var ret = input.checkValidity();
+
+ test(function() {
+ assert_equals(ret, true, "calling of checkValidity method is failed.");
+ });
+ }
+ catch (e) {
+ test(function() {
+ assert_unreached("Error is raised.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_height.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_height.html
new file mode 100644
index 000000000..edf362490
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_height.html
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_height</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ name="input_form">
+ <p><input type='image' id='input_text'></p>
+ </form>
+
+ <script>
+
+ var input_text = document.getElementById("input_text");
+ input_text.height = 30;
+
+ if (typeof(input_text.height) == "number") {
+ test(function() {
+ assert_equals(input_text.height, 30, "formTarget attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("height attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_labels.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_labels.html
new file mode 100644
index 000000000..b37b719e1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_labels.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_labels</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><label>Full name:<label>(name)<input name=fn id='input_text1'> <small>Format: First Last</small></label></label></p>
+ <p><label>Age: <input name=age type=number min=0 id='input_text2'></label></p>
+ <p><label>Post code: <input name=pc> <small>Format: AB12 3CD</small></label></p>
+ </form>
+ <script>
+
+ var input1 = document.getElementById("input_text1");
+ var input2 = document.getElementById("input_text2");
+
+ if (typeof(input1.labels) == "object") {
+ if (input1.labels.length == 2 && input2.labels.length == 1) {
+ test(function() {
+ assert_true(true, "labels attribute is correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("labels attribute is not correct.");
+ });
+ }
+ } else {
+ test(function() {
+ assert_unreached("labels attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_setcustomvalidity.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_setcustomvalidity.html
new file mode 100644
index 000000000..455dce2f0
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_setcustomvalidity.html
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_setCustomValidity</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><input type='hidden' id='input_text'></p>
+ </form>
+ <script>
+
+ var input = document.getElementById("input_text");
+
+ try
+ {
+ input.setCustomValidity("custom error");
+ test(function() {
+ assert_true(true, "calling of setCustomValidity method is successed.");
+ });
+ }
+ catch (e) {
+ test(function() {
+ assert_unreached("Error is raised.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepdown.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepdown.html
new file mode 100644
index 000000000..abe31f595
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepdown.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_stepDown</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ name="input_form">
+ <p><input type='number' id='input_number'></p>
+ </form>
+
+ <script>
+ var input_number = document.getElementById("input_number");
+ input_number.max = "30";
+ input_number.step = "3";
+ input_number.value = "30";
+ input_number.stepDown(5);
+
+ if (typeof(input_number.stepDown) == "function") {
+ test(function() {
+ assert_equals(input_number.value, "15", "call of stepDown method is failed.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("stepDown attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepup.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepup.html
new file mode 100644
index 000000000..39474b93d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_stepup.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_stepUp</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ name="input_form">
+ <p><input type='number' id='input_number'></p>
+ </form>
+
+ <script>
+
+ var input_number = document.getElementById("input_number");
+ input_number.max = "30";
+ input_number.step = "3";
+ input_number.value = "0";
+ input_number.stepUp(5);
+
+ if (typeof(input_number.stepUp) == "function") {
+ test(function() {
+ assert_equals(input_number.value, "15", "call of stepUp method is failed.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("stepUp attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validationmessage.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validationmessage.html
new file mode 100644
index 000000000..785b4e79b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validationmessage.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_validationMessage</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><input type='hidden' id='input_text'></p>
+ </form>
+ <script>
+
+ var input = document.getElementById("input_text");
+
+ if (typeof(input.validationMessage) == "string") {
+ test(function() {
+ assert_equals(input.validationMessage, "", "validationMessage attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("validationMessage attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validity.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validity.html
new file mode 100644
index 000000000..f46bd0b4c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_validity.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_validity</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><input type='hidden' id='input_text'></p>
+ </form>
+ <script>
+
+ var input = document.getElementById("input_text");
+
+ if (typeof(input.validity) == "object") {
+ test(function() {
+ assert_equals(input.validity.valueMissing, false, "validity attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("validity attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_value_invalidstateerr.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_value_invalidstateerr.html
new file mode 100644
index 000000000..9ddf62acf
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_value_invalidstateerr.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_value_INVALID_STATE_ERR</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ name="input_form">
+ <p><input type='file' id='input_file'></p>
+ </form>
+
+ <script>
+
+ var input_file = document.getElementById("input_file");
+ try {
+ input_file.value = "val";
+ test(function() {
+ assert_unreached("INVALID_STATE_ERR error is not raised.");
+ });
+ } catch (e) {
+ test(function() {
+ assert_equals(e.code, e["INVALID_STATE_ERR"], "INVALID_STATE_ERR error is not raised.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasdate_invalidstateerr.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasdate_invalidstateerr.html
new file mode 100644
index 000000000..6df4f74c5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasdate_invalidstateerr.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_valueAsDate_INVALID_STATE_ERR</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ name="input_form">
+ <p><input type='checkbox' id='input_checkbox'></p>
+ </form>
+
+ <script>
+ var input_checkbox = document.getElementById("input_checkbox");
+ try {
+ input_checkbox.valueAsDate = new Date('2011-11-01');
+ test(function() {
+ assert_reached("INVALID_STATE_ERR error is not raised.");
+ });
+ }
+ catch (e) {
+ test(function() {
+ assert_equals(e.code, e["INVALID_STATE_ERR"], "INVALID_STATE_ERR error is not raised.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasnumber_invalidstateerr.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasnumber_invalidstateerr.html
new file mode 100644
index 000000000..8444d3fdc
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_valueasnumber_invalidstateerr.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_valueAsNumber_INVALID_STATE_ERR</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ name="input_form">
+ <p><input type='checkbox' id='input_checkbox'></p>
+ </form>
+
+ <script>
+
+ var input_checkbox = document.getElementById("input_checkbox");
+ try {
+ input_checkbox.valueAsNumber = 5;
+ }
+ catch (e) {
+ test(function() {
+ assert_equals(e.code, e["INVALID_STATE_ERR"], "INVALID_STATE_ERR error is not raised.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_width.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_width.html
new file mode 100644
index 000000000..7cbda113a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_width.html
@@ -0,0 +1,42 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_width</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ name="input_form">
+ <p><input type='image' id='input_text'></p>
+ </form>
+
+ <script>
+
+ var input_text = document.getElementById("input_text");
+ input_text.width = 30;
+
+ if (typeof(input_text.width) == "number") {
+ test(function() {
+ assert_equals(input_text.width, 30, "width attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("width attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_willvalidate.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_willvalidate.html
new file mode 100644
index 000000000..612fd004a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/input_willvalidate.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>input_willValidate</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><input type='hidden' id='input_text'></p>
+ </form>
+ <script>
+
+ var input = document.getElementById("input_text");
+
+ if (typeof(input.willValidate) == "boolean") {
+ test(function() {
+ assert_equals(input.willValidate, false, "willValidate attribute is not correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("willValidate attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html
new file mode 100644
index 000000000..d7dcd13b3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_checkvalidity.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>keygen_checkValidity</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <keygen name='key' id='keygen_id'></keygen>
+ </form>
+ <script>
+
+ var keygen = document.getElementById("keygen_id");
+
+ try
+ {
+ var ret = keygen.checkValidity();
+
+ test(function() {
+ assert_equals(ret, true, "calling of checkValidity method is failed.");
+ });
+ }
+ catch (e) {
+ test(function() {
+ assert_unreached("Error is raised.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html
new file mode 100644
index 000000000..ca9600933
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Forms/contents/Forms/keygen_labels.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title>Forms</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <p>
+ <h3>keygen_labels</h3>
+ </p>
+
+ <hr>
+
+ <div id="log"></div>
+
+ <form method="post"
+ enctype="application/x-www-form-urlencoded"
+ action=""
+ id="input_form">
+ <p><label>Full name<label>(name):<keygen name='key1' id='keygen_id1'></keygen></label></label></p>
+ <p><label>Age:<keygen name='key2' id='keygen_id2'></keygen></label></p>
+ </form>
+ <script>
+
+ var keygen1 = document.getElementById("keygen_id1");
+ var keygen2 = document.getElementById("keygen_id2");
+
+ if (typeof(keygen1.labels) == "object") {
+ if (keygen1.labels.length == 2 && keygen2.labels.length == 1) {
+ test(function() {
+ assert_true(true, "labels attribute is correct.");
+ });
+ } else {
+ test(function() {
+ assert_unreached("labels attribute is not correct.");
+ });
+ }
+ } else {
+ test(function() {
+ assert_unreached("labels attribute is not exist.");
+ });
+ }
+
+ </script>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Session_History/contents/Session_History/css/result.css b/testing/web-platform/tests/old-tests/submission/Infraware/Session_History/contents/Session_History/css/result.css
new file mode 100644
index 000000000..7bbc51730
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Session_History/contents/Session_History/css/result.css
@@ -0,0 +1,12 @@
+.pass {
+ color: green;
+}
+.fail {
+ color: red;
+}
+.manualpass {
+ color: green;
+}
+.manualfail {
+ color: red;
+} \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Infraware/Session_History/contents/Session_History/index.html b/testing/web-platform/tests/old-tests/submission/Infraware/Session_History/contents/Session_History/index.html
new file mode 100644
index 000000000..7c5564102
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Infraware/Session_History/contents/Session_History/index.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=3.0, user-scalable=yes" />
+ <title>Session History</title>
+
+ <script type="text/javascript">
+ </script>
+ </head>
+
+ <body>
+ <p>
+ <b>Session History&nbsp;</b><br/>
+ <hr/>
+ <ol type="1">
+ <font size="2">
+ <!-- <li><a href="history_length.html">history_length</a></li> -->
+ <li><a href="history_state.html">history_state</a></li>
+
+ <li><a href="history_pushstate.html">history_pushState</a></li>
+ <li><a href="history_pushstate_nooptionalparam.html">history_pushState_NoOptionalParam</a></li>
+ <li><a href="history_pushstate_err.html">history_pushState SECURITY_ERR</a></li>
+ <li><a href="history_replacestate.html">history_replaceState</a></li>
+ <li><a href="history_replacestate_nooptionalparam.html">history_replaceStateNoOptionalParam</a></li>
+ <li><a href="history_replacestate_err.html">history_replaceState SECURITY_ERR</a></li>
+
+ <li><a href="history_back.html">history_back</a></li>
+ <li><a href="history_forward.html">history_forward</a></li>
+
+ <li><a href="history_go_minus.html">history_go_minus</a></li>
+ <li><a href="history_go_plus.html">history_go_plus</a></li>
+ <!-- <li><a href="history_go_zero.html">history_go_zero</a></li> -->
+
+ <!-- <li><a href="history_go_under.html">history_go_under</a></li> -->
+ <!-- <li><a href="history_go_over.html">history_go_over</a></li> -->
+
+ <li><a href="location_href.html">location_href</a></li>
+ <li><a href="location_assign.html">location_assign</a></li>
+ <li><a href="location_replace.html">location_replace</a></li>
+ <!-- <li><a href="location_reload.html">location_reload</a></li> -->
+ <li><a href="location_protocol.html">location_protocol</a></li>
+ <li><a href="location_host.html">location_host</a></li>
+ <li><a href="location_hostname.html">location_hostname</a></li>
+ <li><a href="location_port.html">location_port</a></li>
+ <li><a href="location_pathname.html">location_pathname</a></li>
+ <li><a href="location_search.html">location_search</a></li>
+ <li><a href="location_hash.html">location_hash</a></li>
+
+ <li><a href="combination_history_001.html">combination_history_001</a></li>
+ <li><a href="combination_history_002.html">combination_history_002</a></li>
+ <li><a href="combination_history_003.html">combination_history_003</a></li>
+ <li><a href="combination_history_004.html">combination_history_004</a></li>
+ <li><a href="combination_history_005.html">combination_history_005</a></li>
+ <li><a href="combination_history_006.html">combination_history_006</a></li>
+ <li><a href="combination_history_007.html">combination_history_007</a></li>
+
+ </font>
+ </ol>
+ <hr/>
+ <p>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_000-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_000-manual.htm
new file mode 100644
index 000000000..278157644
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_000-manual.htm
@@ -0,0 +1,62 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Fire drag event during the drag and drop processing</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model"/>
+ <meta name="assert" content="Fire drag event during the drag and drop processing"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var EVENT, TARGET;
+
+ function DragEvent(evt)
+ {
+ if ((TARGET == evt.target) && (EVENT == evt.type))
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+
+ EVENT = "drag";
+
+ window.onload = function()
+ {
+ TARGET = document.getElementById("target");
+ AddEventListenersForElement(EVENT, DragEvent, false, TARGET);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: Fire drag event during the drag and drop processing</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Click and drag the blue image
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model
+ </p>
+ <p>
+ If the user agent is still performing the previous iteration of the sequence (if any) when the next iteration becomes due, abort these steps for this iteration (effectively "skipping missed frames" of the drag-and-drop operation).
+ Fire a DND event named drag event at the source node. If this event is canceled, the user agent must set the current drag operation to "none" (no drag operation).
+ </p>
+ <img src="../images/blue.png" style="width:200px; height:100px" draggable="true" id="target"/>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_001-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_001-manual.htm
new file mode 100644
index 000000000..3514f2193
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_001-manual.htm
@@ -0,0 +1,62 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Fire drag event when dragging a div element</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model"/>
+ <meta name="assert" content="Fire drag event when dragging a div element"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var EVENT, TARGET;
+
+ function DragEvent(evt)
+ {
+ if ((TARGET == evt.target) && (EVENT == evt.type))
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+
+ EVENT = "drag";
+
+ window.onload = function()
+ {
+ TARGET = document.getElementById("target");
+ AddEventListenersForElement(EVENT, DragEvent, false, TARGET);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: Fire drag event when dragging a div element</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Click and drag the red box
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model
+ </p>
+ <p>
+ If the user agent is still performing the previous iteration of the sequence (if any) when the next iteration becomes due, abort these steps for this iteration (effectively "skipping missed frames" of the drag-and-drop operation).
+ Fire a DND event named drag event at the source node. If this event is canceled, the user agent must set the current drag operation to "none" (no drag operation).
+ </p>
+ <div id="target" style="border:2px red solid; width:200px; height:50px" draggable="true"></div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_002-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_002-manual.htm
new file mode 100644
index 000000000..fdd40b577
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_002-manual.htm
@@ -0,0 +1,64 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Fire dragend event during the drag and drop processing</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model"/>
+ <meta name="assert" content="Fire dragend event during the drag and drop processing"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var EVENT, TARGET;
+
+ function DragendEvent(evt)
+ {
+ if ((TARGET == evt.target) && (EVENT == evt.type))
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+
+ EVENT = "dragend";
+
+ window.onload = function()
+ {
+ TARGET = document.getElementById("target");
+ AddEventListenersForElement(EVENT, DragendEvent, false, TARGET);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: Fire dragend event during the drag and drop processing</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Drag the blue image
+ <li> Drop it on the green box
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model
+ </p>
+ <p>
+ If the drag operation failed or succeeded, fire a DND event named dragend at the source node.
+ </p>
+ <img src="../images/blue.png" style="width:200px; height:100px" draggable="true" id="target"/>
+ <br /><br />
+ <input type="text" style="border:2px green solid; width:200px; height:50px"></input>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_003-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_003-manual.htm
new file mode 100644
index 000000000..bde48b9cc
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_003-manual.htm
@@ -0,0 +1,67 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Fire dragenter event during the drag and drop processing</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model"/>
+ <meta name="assert" content="Fire dragenter event during the drag and drop processing"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var EVENT, TARGET;
+
+ function DragenterEvent(evt)
+ {
+ if ((TARGET == evt.target) && (EVENT == evt.type))
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+
+ EVENT = "dragenter";
+
+ window.onload = function()
+ {
+ TARGET = document.getElementById("target");
+ AddEventListenersForElement(EVENT, DragenterEvent, false, TARGET);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: Fire dragenter event during the drag and drop processing</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Select the text inside the red box
+ <li> Drag it and enter the green box
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model
+ </p>
+ <p>
+ If the user is indicating a different immediate user selection than during the last iteration (or if this is the first iteration), and if this immediate user selection is not the same as the current target element, then update the current target element as follows:
+ - If the new immediate user selection is null, Set the current target element to null also.
+ - If the new immediate user selection is in a non-DOM document or application, Set the current target element to the immediate user selection.
+ - Otherwise, Fire a DND event named dragenter at the immediate user selection.
+ </p>
+ <div style="border:2px red solid; width:200px; height:50px">SampleText</div>
+ <br /><br />
+ <input type="text" id="target" style="border:2px green solid; width:200px; height:50px"></input>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_004-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_004-manual.htm
new file mode 100644
index 000000000..c97cc7dbf
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_004-manual.htm
@@ -0,0 +1,19 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Auto state of draggable attribute for 'a' element</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#the-draggable-attribute"/>
+ <meta name="assert" content="Auto state of draggable attribute for 'a' element"/>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <div id=log></div>
+ <a href="#" style="display:none" id="target">Drag this</a>
+ <script type="text/javascript">
+ test(function() {assert_true(document.getElementById("target").draggable)}, "Auto state of draggable attribute for 'a' element");
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_005-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_005-manual.htm
new file mode 100644
index 000000000..28305cd26
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_005-manual.htm
@@ -0,0 +1,19 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Auto state of draggable attribute for div element</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#the-draggable-attribute"/>
+ <meta name="assert" content="Auto state of draggable attribute for div element"/>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <div id=log></div>
+ <div style="border:2px red solid; width:200px; height:50px; display:none;" id="target">SampleText</div>
+ <script type="text/javascript">
+ test(function() {assert_false(document.getElementById("target").draggable)}, "Auto state of draggable attribute for div element");
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_006-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_006-manual.htm
new file mode 100644
index 000000000..4d8432b07
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_006-manual.htm
@@ -0,0 +1,19 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Auto state of draggable attribute for img element</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#the-draggable-attribute"/>
+ <meta name="assert" content="Auto state of draggable attribute for img element"/>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <div id=log></div>
+ <img style="width:200px; height:100px; display:none;" id="target"/>
+ <script type="text/javascript">
+ test(function() {assert_true(document.getElementById("target").draggable)}, "Auto state of draggable attribute for img element");
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_007-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_007-manual.htm
new file mode 100644
index 000000000..f14c70b39
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_007-manual.htm
@@ -0,0 +1,19 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: False state of draggable attribute</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#the-draggable-attribute"/>
+ <meta name="assert" content="False state of draggable attribute"/>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <div id=log></div>
+ <a href="#" style="display:none" id="target" draggable="false">Drag this</a>
+ <script type="text/javascript">
+ test(function() {assert_false(document.getElementById("target").draggable)}, "False state of draggable attribute");
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_008-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_008-manual.htm
new file mode 100644
index 000000000..4716e5188
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_008-manual.htm
@@ -0,0 +1,19 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: True state of draggable attribute</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#the-draggable-attribute"/>
+ <meta name="assert" content="True state of draggable attribute"/>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+ <body>
+ <div id=log></div>
+ <a href="#" style="display:none" id="target" draggable="true">Drag this</a>
+ <script type="text/javascript">
+ test(function() {assert_true(document.getElementById("target").draggable)}, "True state of draggable attribute");
+ </script>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_009-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_009-manual.htm
new file mode 100644
index 000000000..781a58476
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_009-manual.htm
@@ -0,0 +1,66 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Fire dragleave event during the drag and drop processing</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model"/>
+ <meta name="assert" content="Fire dragleave event during the drag and drop processing"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var EVENT, TARGET;
+
+ function DragleaveEvent(evt)
+ {
+ if ((TARGET == evt.target) && (EVENT == evt.type))
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+
+ EVENT = "dragleave";
+
+ window.onload = function()
+ {
+ TARGET = document.getElementById("target");
+ AddEventListenersForElement(EVENT, DragleaveEvent, false, TARGET);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: Fire dragleave event during the drag and drop processing</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Select the text inside the red box
+ <li> Drag it over the blue box and drop it on the green box
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model
+ </p>
+ <p>
+ If there is a change in the current target element, and if the previous target element was not null or a part of a non-DOM document, then fire a DND event named dragleave at the previous target element.
+ </p>
+ <div style="border:2px red solid; width:100px">SampleText</div>
+ <br />
+ <div id="target" style="border:2px blue solid; width:200px; height:50px"></div>
+ <br />
+ <input type="text" style="border:2px green solid; width:200px; height:50px"></input>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_010-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_010-manual.htm
new file mode 100644
index 000000000..08e0a071e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_010-manual.htm
@@ -0,0 +1,64 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Fire dragover event during the drag and drop processing</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model"/>
+ <meta name="assert" content="Fire dragover event during the drag and drop processing"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var EVENT, TARGET;
+
+ function DragoverEvent(evt)
+ {
+ if ((TARGET == evt.target) && (EVENT == evt.type))
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+
+ EVENT = "dragover";
+
+ window.onload = function()
+ {
+ TARGET = document.getElementById("target");
+ AddEventListenersForElement(EVENT, DragoverEvent, false, TARGET);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: Fire dragover event during the drag and drop processing</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Select the text inside the red box.
+ <li> Drag it, hover over the green box and then release the mouse
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model
+ </p>
+ <p>
+ If the current target element is a DOM element, then fire a DND event named dragover at this current target element
+ </p>
+ <div style="border:2px red solid; width:100px">SampleText</div>
+ <br /><br />
+ <div id="target" style="border:2px green solid; width:200px; height:100px"></div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_011-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_011-manual.htm
new file mode 100644
index 000000000..dcd7c9c9d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_011-manual.htm
@@ -0,0 +1,62 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Fire dragstart event during the drag and drop processing</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model"/>
+ <meta name="assert" content="Fire dragstart event during the drag and drop processing"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var EVENT, TARGET;
+
+ function DragstartEvent(evt)
+ {
+ if ((TARGET == evt.target) && (EVENT == evt.type))
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+
+ EVENT = "dragstart";
+
+ window.onload = function()
+ {
+ TARGET = document.getElementById("target");
+ AddEventListenersForElement(EVENT, DragstartEvent, false, TARGET);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: Fire dragstart event during the drag and drop processing</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Click and drag the red box
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model
+ </p>
+ <p>
+ If it is an element that is being dragged, then set the drag data store elements list to contain just the source node.
+ Fire a DND event named dragstart at the source node.
+ </p>
+ <div id="target" style="border:2px red solid; width:200px; height:50px" draggable="true"></div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_012-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_012-manual.htm
new file mode 100644
index 000000000..b1df40a70
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_012-manual.htm
@@ -0,0 +1,64 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Fire drop event during the drag and drop processing</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model"/>
+ <meta name="assert" content="Fire drop event during the drag and drop processing"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var EVENT, TARGET;
+
+ function DropEvent(evt)
+ {
+ if ((TARGET == evt.target) && (EVENT == evt.type))
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+
+ EVENT = "drop";
+
+ window.onload = function()
+ {
+ TARGET = document.getElementById("target");
+ AddEventListenersForElement(EVENT, DropEvent, false, TARGET);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: Fire drop event during the drag and drop processing</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Select the text inside the red box
+ <li> Drag it and drop it on the green box
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#drag-and-drop-processing-model
+ </p>
+ <p>
+ If the drag operation was a success, if the current target element is a DOM element, fire a DND event named drop at it.
+ </p>
+ <div style="border:2px red solid; width:100px">SampleText</div>
+ <br /><br />
+ <input type="text" id="target" style="border:2px green solid; width:200px; height:50px"></input>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_013-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_013-manual.htm
new file mode 100644
index 000000000..6c2c88afc
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_013-manual.htm
@@ -0,0 +1,76 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Set a value to effectAllowed attribute</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#datatransfer"/>
+ <meta name="assert" content="Set a value to effectAllowed attribute"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var TARGETEVENT1, TARGETEVENT2, TARGET1, TARGET2;
+
+ function DragstartEvent(evt)
+ {
+ if ((TARGET1 == evt.target) && (TARGETEVENT1 == evt.type))
+ {
+ evt.dataTransfer.effectAllowed = "move";
+ }
+ }
+ function DragenterEvent(evt)
+ {
+ if ((TARGET2 == evt.target) && (TARGETEVENT2 == evt.type))
+ {
+ if("move" == evt.dataTransfer.effectAllowed)
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+ }
+
+ TARGETEVENT1 = "dragstart";
+ TARGETEVENT2 = "dragenter";
+
+ window.onload = function()
+ {
+ TARGET1 = document.getElementById("target1");
+ TARGET2 = document.getElementById("target2");
+ AddEventListenersForElement(TARGETEVENT1, DragstartEvent, false, TARGET1);
+ AddEventListenersForElement(TARGETEVENT2, DragenterEvent, false, TARGET2);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: Set a value to effectAllowed attribute</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Drag the blue image and enter the green box
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#datatransfer
+ </p>
+ <p>
+ On setting, if the new value is one of "none", "copy", "copyLink", "copyMove", "link", "linkMove", "move", "all", or "uninitialized", then the attribute's current value must be set to the new value.
+ </p>
+ <img src="../images/blue.png" style="width:200px; height:100px" draggable="true" id="target1"/>
+ <br /><br />
+ <input type="text" id="target2" style="border:2px green solid; width:200px; height:50px"></input>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_014-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_014-manual.htm
new file mode 100644
index 000000000..3959cd2ee
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_014-manual.htm
@@ -0,0 +1,81 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: files attribute returns a FileList</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#datatransfer"/>
+ <meta name="assert" content="files attribute returns a FileList"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var EVENT, TARGET;
+
+ function DropEvent(evt)
+ {
+ if ((TARGET == evt.target) && (EVENT == evt.type))
+ {
+ var files = evt.dataTransfer.files;
+ if(('[object FileList]' == files))
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+
+ function DragenterEvent(evt)
+ {
+ evt.preventDefault();
+ }
+
+ function DragoverEvent(evt)
+ {
+ evt.preventDefault();
+ }
+
+ EVENT = "drop";
+
+ window.onload = function()
+ {
+ TARGET = document.getElementById("target");
+ AddEventListenersForElement(EVENT, DropEvent, false, TARGET);
+ AddEventListenersForElement("dragenter", DragenterEvent, false, TARGET);
+ AddEventListenersForElement("dragover", DragoverEvent, false, TARGET);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: files attribute returns a FileList</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Drag a file and drop it in the green box
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#datatransfer
+ </p>
+ <p>
+ The files attribute must return a live FileList sequence consisting of File objects representing the files.
+ </p>
+ <textarea type="text" id="target" style="border:2px green solid; width:200px; height:50px"></textarea>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_015-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_015-manual.htm
new file mode 100644
index 000000000..1cd64d945
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_015-manual.htm
@@ -0,0 +1,78 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: Add an item to the drag data store item list whose data is the string given by setData method's second argument</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#datatransfer"/>
+ <meta name="assert" content="Add an item to the drag data store item list whose data is the string given by setData method's second argument"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var TARGETEVENT1, TARGETEVENT2, TARGET1, TARGET2;
+
+ function DragstartEvent(evt)
+ {
+ if ((TARGET1 == evt.target) && (TARGETEVENT1 == evt.type))
+ {
+ evt.dataTransfer.setData("text", "SetText");
+ }
+ }
+ function DropEvent(evt)
+ {
+ if ((TARGET2 == evt.target) && (TARGETEVENT2 == evt.type))
+ {
+ if("SetText" == evt.dataTransfer.getData("text"))
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+ }
+
+ TARGETEVENT1 = "dragstart";
+ TARGETEVENT2 = "drop";
+
+ window.onload = function()
+ {
+ TARGET1 = document.getElementById("target1");
+ TARGET2 = document.getElementById("target2");
+ AddEventListenersForElement(TARGETEVENT1, DragstartEvent, false, TARGET1);
+ AddEventListenersForElement(TARGETEVENT2, DropEvent, false, TARGET2);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: Add an item to the drag data store item list whose data is the string given by setData method's second argument</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Drag the blue image and drop it in the green box
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#datatransfer
+ </p>
+ <p>
+ If format equals "text", change it to "text/plain".
+ Remove the item in the drag data store item list whose kind is Plain Unicode string and whose type string is equal to format, if there is one.
+ Add an item to the drag data store item list whose kind is Plain Unicode string, whose type string is equal to format, and whose data is the string given by the method's second argument.
+ </p>
+ <img src="../images/blue.png" style="width:200px; height:100px" draggable="customValue2" id="target1"/>
+ <br /><br />
+ <input type="text" id="target2" style="border:2px green solid; width:200px; height:50px"></input>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_016-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_016-manual.htm
new file mode 100644
index 000000000..26b3317c3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_016-manual.htm
@@ -0,0 +1,72 @@
+<!doctype html>
+<html>
+ <head>
+ <title>HTML5 Drag and Drop: types attribute returns a DOMStringList</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/"/>
+ <link rel="help" href="http://dev.w3.org/html5/spec/dnd.html#datatransfer"/>
+ <meta name="assert" content="types attribute returns a DOMStringList"/>
+ <script src="dragdrop_support.js" type="text/javascript"></script>
+ <script type="text/javascript">
+ var EVENT, TARGET;
+
+ function DropEvent(evt)
+ {
+ if ((TARGET == evt.target) && (EVENT == evt.type))
+ {
+ var types = evt.dataTransfer.types;
+ if(('[object DOMStringList]' == types))
+ {
+ LogTestResult("PASS");
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+ else
+ {
+ LogTestResult("FAIL");
+ }
+ }
+
+ EVENT = "drop";
+
+ window.onload = function()
+ {
+ TARGET = document.getElementById("target");
+ AddEventListenersForElement(EVENT, DropEvent, false, TARGET);
+ }
+ </script>
+ </head>
+ <body>
+ <pre>Description: types attribute returns a DOMStringList</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_result'>Manual</td>
+ <td id='test_assertion'>Test passes if if the word "PASS" appears to the left after following the steps below.
+ <div id="manualsteps">
+ Steps:
+ <ol>
+ <li> Select the text inside the red box
+ <li> Drag and drop it in the green box
+ </ol>
+ </div>
+ </td>
+ </tr>
+ </table>
+ <p>
+ http://dev.w3.org/html5/spec/dnd.html#datatransfer
+ </p>
+ <p>
+ The types attribute must return a live DOMStringList.
+ </p>
+ <div style="border:2px red solid; width:200px; height:50px">SampleText</div>
+ <br /><br />
+ <input type="text" id="target" style="border:2px green solid; width:200px; height:50px"></input>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_support.js b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_support.js
new file mode 100644
index 000000000..f5a1d6417
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/dragdrop/dragdrop_support.js
@@ -0,0 +1,9 @@
+function AddEventListenersForElement(evt, callback, capture, element)
+{
+ element.addEventListener(evt, callback, capture);
+}
+
+function LogTestResult(result)
+{
+ document.getElementById("test_result").firstChild.data = result;
+}
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_002.html b/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_002.html
new file mode 100644
index 000000000..47acacfe7
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_002.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html >
+<html>
+ <head>
+ <title>HTML 5 Foreign Content SVG in HTML </title>
+ <meta description="Test to verify SVG inside HTML I element parses correctly" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <script type="text/javascript">
+
+ function RunTest()
+ {
+ try
+ {
+
+ if(document.getElementsByTagName("i")[0].childNodes[1].localName=="svg")
+ {
+ var svgNamespace = "http://www.w3.org/2000/svg";
+ var textElem = document.createElementNS(svgNamespace, "text");
+
+ var textContent = document.createTextNode("FillerText");
+ textElem.appendChild(textContent);
+
+ var container = document.getElementById("svg1");
+ container.appendChild(textElem);
+
+ }
+ }
+ catch(ex)
+ {
+ }
+ }
+ </script>
+ </head>
+
+ <body onLoad="RunTest()">
+
+ <div class="testdata">
+ <p id="instructions">Test passes if 'FillerText' is rendered as italic.</p>
+ </div>
+ <div>
+ <i>
+ <svg id="svg1" width="100px" height="100px">
+ </svg>
+ </i>
+ </div>
+
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_007.html b/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_007.html
new file mode 100644
index 000000000..f1ba496bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_007.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<svg width="100px" height="100px" >
+ <rect width="100px" height="100px" fill="green" />
+</svg>
+
+<div>
+ <p> Test passes if a green rectangle is visible on the page above this line. </p>
+</div>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_012.html b/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_012.html
new file mode 100644
index 000000000..09e99e41a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_012.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>HTML 5 Foreign Content SVG in HTML </title>
+ <meta description="Test to verify SVG elements are styled using SCRIPT and STYLE element" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+
+ <style>
+ svg
+ {
+ display: block;
+ fill: black;
+ }
+ </style>
+ <script>
+ function ChangeColor()
+ {
+ document.getElementById("rect1").style.fill = "green";
+ }
+ </script>
+ </head>
+
+ <body onload="ChangeColor()">
+
+ <div class="testdata">
+ <p id="instructions">Test passes if a green square appears above a black square. </p>
+ </div>
+ <svg width="200px" height="200px">
+ <rect id="rect1" x="0" y="0" width="100px" height="100px" />
+ <rect id="rect2" x="0" y="150" width="100px" height="100px" />
+ </svg>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_014.html b/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_014.html
new file mode 100644
index 000000000..d92c14dfa
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_014.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>HTML 5 Foreign Content SVG in HTML </title>
+ <meta description="Test to verify SVG elements inside SVG namespace are camelCased" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+
+ <script type="text/javascript">
+
+ function RunTest()
+ {
+ try
+ {
+ var bResult = "FAIL";
+ var parentNode = document.getElementById("svg1");
+
+ for(var i=1;i<parentNode.childNodes.length;i=i+2)
+ {
+ var idName = parentNode.childNodes[i].id;
+ var tagName = parentNode.childNodes[i].localName;
+ if(idName!=tagName)
+ {
+ bResult = "FAIL";
+ break;
+ }
+ else
+ {
+ bResult = "PASS"
+ }
+ }
+ }
+ catch(ex)
+ {
+ bResult = "PASS";
+ }
+
+ document.getElementById("testresult").innerHTML = bResult;
+ }
+ </script>
+ </head>
+
+ <body onload="RunTest()">
+
+ <div class="testdata">
+ <p id="instructions"> Test passes if the word "PASS" appears below </p>
+ <p> Test Result : </p>
+ <p id="testresult"> RUNNING </div>
+ </div>
+ <svg id="svg1">
+
+ <altglyph id="altGlyph" />
+ <ALTGLYPHDEF id="altGlyphDef" />
+ <AltGlyphItem id="altGlyphItem" />
+ <animatecolor id="animateColor" />
+ <animatemotion id="animateMotion" />
+ <animatetransform id="animateTransform" />
+ <clippath id="clipPath" />
+ <feblend id="feBlend" />
+ <fecolormatrix id="feColorMatrix" />
+
+ <fecomponenttransfer id="feComponentTransfer" />
+ <fecomposite id="feComposite" />
+ <feconvolvematrix id="feConvolveMatrix" />
+ <fediffuselighting id="feDiffuseLighting" />
+ <fedisplacementmap id="feDisplacementMap" />
+ <fedistantlight id="feDistantLight" />
+ <feflood id="feFlood" />
+ <fefunca id="feFuncA" />
+ <fefuncb id="feFuncB" />
+
+ <fefuncg id="feFuncG" />
+ <fefuncr id="feFuncR" />
+ <fegaussianblur id="feGaussianBlur" />
+ <feimage id="feImage" />
+ <femerge id="feMerge" />
+ <femergenode id="feMergeNode" />
+ <femorphology id="feMorphology" />
+ <feoffset id="feOffset" />
+ <fepointlight id="fePointLight" />
+
+ <fespecularlighting id="feSpecularLighting" />
+ <fespotlight id="feSpotLight" />
+ <fetile id="feTile" />
+ <feturbulence id="feTurbulence" />
+ <foreignobject id="foreignObject" />
+ <glyphref id="glyphRef" />
+ <lineargradient id="linearGradient" />
+ <radialgradient id="radialGradient" />
+ <textpath id="textPath" />
+
+ </svg>
+
+
+
+ </body>
+
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_015.html b/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_015.html
new file mode 100644
index 000000000..a4d27873a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/foreigncontent/foreign_content_015.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>HTML 5 Foreign Content SVG in HTML </title>
+ <meta description="Test to verify SVG Elements outside SVG namespace are camelCased" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+
+ <script type="text/javascript">
+
+ function RunTest()
+ {
+ try
+ {
+
+ var parentNode = document.getElementById("div1");
+
+ for(var i=0;i<parentNode.childNodes.length;i++)
+ {
+ var idName = parentNode.childNodes[i].id;
+ var tagName = parentNode.childNodes[i].localName;
+ if(idName==tagName)
+ {
+ document.getElementById("testresult").innerHTML = "FAIL";
+ break;
+ }
+ else
+ {
+ document.getElementById("testresult").innerHTML = "PASS";
+ }
+ }
+ }
+ catch(ex)
+ {
+ document.getElementById("testresult").innerHTML = "FAIL";
+ }
+ }
+ </script>
+ </head>
+
+ <body onload="RunTest()">
+
+ <div id="div1">
+ <AlTglYph id="altGlyph" />
+ </div>
+ <p id="instructions"> Test passes if the word "PASS" appears below </p>
+ <p> Test Result : </p>
+ <div id="testresult"> RUNNING </div>
+
+
+ </body>
+
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/history/404.html b/testing/web-platform/tests/old-tests/submission/Microsoft/history/404.html
new file mode 100644
index 000000000..e28f5c575
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/history/404.html
@@ -0,0 +1 @@
+Page Not Found \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/history/history_000.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/history/history_000.htm
new file mode 100644
index 000000000..03a36bd5f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/history/history_000.htm
@@ -0,0 +1,329 @@
+<!doctype html>
+<html>
+ <head>
+ <meta content="text/html; charset=utf-8" http-equiv="content-type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/history.html" />
+ <title>HTML5 History Test Cases</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ </head>
+<body>
+ <div id="log"></div>
+
+ <!-- Use this iframe to test url changes so that the base url does not change. Their document does not matter. -->
+ <iframe id="testframe1" style="display:none" src="./404.html"></iframe>
+ <iframe id="testframe2" style="display:none" src="./404.html"></iframe>
+
+ <script type="text/javascript">
+ var testCollection;
+ var testIndex = 0;
+ var testframe1 = document.getElementById("testframe1");
+ var testframe2 = document.getElementById("testframe2");
+
+ setup(function()
+ {
+ testCollection = [
+ function() {
+ test(function() {
+ assert_inherits(window, "onpopstate", "window inherits'onpopstate' event ");
+ }, "onpopstate in window");
+ },
+ function() {
+ test(function() {
+ assert_inherits(window.history, "pushState", "history inherits property 'pushState'");
+ assert_equals(window.history.pushState.constructor, Function, "pushState is a function");
+ }, "history.pushState is present");
+ },
+ function() {
+ test(function() {
+ assert_inherits(window.history, "replaceState", "history inherits property 'replaceState'");
+ assert_equals(window.history.replaceState.constructor, Function, "replaceState is a function");
+ }, "history.replaceState is present");
+ },
+ function() {
+ test(function() {
+ assert_inherits(window.history, "state", "history inherits property 'state'");
+ }, "history.state is present");
+ },
+ function() {
+ test(function() {
+ assert_equals(window.history.state, null, "history.state initialized to null");
+ }, "history.state is initialized to null");
+ },
+
+ function() {
+ test(function() {
+ var length = history.length;
+ history.pushState(null,null);
+ assert_equals(history.length, length+1, "history.length should be incremented by one");
+ }, "history.pushState increments history.length");
+ },
+
+ function() {
+ var t = async_test("history.pushState clears forward entries");
+ t.step(function() {
+ var length = history.length;
+ //push some extra entries into the session history
+ history.pushState(null,null);
+ history.pushState(null, null);
+ history.pushState(null, null);
+
+ //there should now be three extra
+ assert_equals(history.length, length+3, "Three additional travel entries add to history.length");
+
+ //travel back to the entry that the test started on
+ history.back();
+ history.back();
+ history.back();
+
+ //if the back navs are queued, queue verification task after them
+ queue(
+ t.step_func(function() {
+ //once the .back navigations have completed, push again and verify length is one more than starting value
+ history.pushState(null, null);
+ assert_equals(history.length, length+1, "History.length should now only be one more than original value");
+ t.done();
+ })
+ );
+ });
+ },
+
+ function() {
+ test(function() {
+ testframe1.contentWindow.history.pushState(null,null, "test-pushstate-url");
+ assert_equals(getPageName(testframe1.contentWindow.location.href), "test-pushstate-url", "iframe1 has the pushed url");
+ }, "history.pushState accepts a third parameter 'url' and uses it to alter location");
+ },
+ function() {
+ test(function() {
+ var oldurl = testframe1.contentWindow.location.href.toString();
+ var pagename = getPageName(oldurl);
+ //form a new absolute url (with protocol, host, etc) with "absolute-page" as the name of the page
+ var newurl = oldurl.replace(pagename, "absolute-page");
+
+ testframe1.contentWindow.history.pushState(null,null, newurl);
+ assert_equals(testframe1.contentWindow.location.href, newurl, "iframe1 has the pushed url correctly");
+ }, "history.pushState's url parameter can be an absolute url");
+ },
+
+ function() {
+ test(function() {
+ testframe1.contentWindow.history.pushState(null,null, "multiple-pushstate-url1");
+ testframe2.contentWindow.history.pushState(null,null, "multiple-pushstate-url2");
+
+ assert_equals(getPageName(testframe1.contentWindow.location.href), "multiple-pushstate-url1", "iframe1 has the pushed url");
+ assert_equals(getPageName(testframe2.contentWindow.location.href), "multiple-pushstate-url2", "iframe2 has the pushed url");
+ }, "history.pushState can modify location object in multiple frames");
+ },
+
+ function() {
+ test(function() {
+ //trigger a security error by replacing the host of the current url with a fake one that is cross-domain
+ var testurl = testframe1.contentWindow.location.href.toString().replace(testframe1.contentWindow.location.host, "fakelocation-push");
+ assert_throws("SECURITY_ERR", function() { history.pushState(null, null, testurl); }, "Security_Err 18 should be thrown");
+ }, "history.pushState throws DOMException with code SECURITY_ERR (18)");
+ },
+
+ function() {
+ test(function() {
+ //trigger a data clone error by passing invalid SCA data into the function
+ assert_throws("DATA_CLONE_ERR", function() { history.pushState(document.body, null); }, "pushState should throw an exception DATA_CLONE_ERR with code 25");
+ }, "history.pushState throws DATA_CLONE_ERR(25) for bad state parameter");
+ },
+
+ function() {
+ test(function() {
+ var length = history.length;
+ history.replaceState(null,null);
+ assert_equals(history.length, length, "history.length should not change");
+ }, "history.replaceState does not increment history.length");
+ },
+
+ function() {
+ var t = async_test("history.replaceState does not clear forward entries");
+ t.step(function() {
+ var length = history.length;
+ //push some extra entries into the session history
+ history.pushState(null,null);
+ history.pushState(null, null);
+ history.pushState(null, null);
+
+ //there should now be three extra
+ assert_equals(history.length, length+3, "Three additional travel entries add to history.length");
+
+ //travel back two entries to land in the middle
+ history.back();
+ history.back();
+
+ //if the back navs are queued, queue verification task after them
+ queue(
+ t.step_func(function() {
+ //once the .back navigations have fired, push again and verify length has not changed since the last check
+ history.replaceState(null, null);
+ assert_equals(history.length, length+3, "History.length should still be three more than original value");
+ t.done();
+ })
+ );
+ });
+ },
+
+ function() {
+ test(function() {
+ testframe1.contentWindow.history.replaceState(null,null, "test-replaceState-url");
+ assert_equals(getPageName(testframe1.contentWindow.location.href), "test-replaceState-url", "iframe1 has the pushed url");
+ }, "history.replaceState accepts a third parameter 'url' and uses it to alter location");
+ },
+ function() {
+ test(function() {
+ var oldurl = testframe1.contentWindow.location.href.toString();
+ var pagename = getPageName(oldurl);
+ //form a new absolute url (with protocol, host, etc) with "absolute-page" as the name of the page
+ var newurl = oldurl.replace(pagename, "absolute-page");
+
+ testframe1.contentWindow.history.replaceState(null,null, newurl);
+ assert_equals(testframe1.contentWindow.location.href, newurl, "iframe1 has the pushed url correctly");
+ }, "history.replaceState's url parameter can be an absolute url");
+ },
+
+ function() {
+ test(function() {
+ testframe1.contentWindow.history.replaceState(null,null, "multiple-replaceState-url1");
+ testframe2.contentWindow.history.replaceState(null,null, "multiple-replaceState-url2");
+
+ assert_equals(getPageName(testframe1.contentWindow.location.href), "multiple-replaceState-url1", "iframe1 has the pushed url");
+ assert_equals(getPageName(testframe2.contentWindow.location.href), "multiple-replaceState-url2", "iframe2 has the pushed url");
+ }, "history.replaceState can modify location object in multiple frames");
+ },
+
+ function() {
+ test(function() {
+ //trigger a security error by replacing the host of the current url with a fake one that is cross-domain
+ var testurl = testframe1.contentWindow.location.href.toString().replace(testframe1.contentWindow.location.host, "fakelocation-replace");
+ assert_throws("SECURITY_ERR", function() { history.replaceState(null, null, testurl); }, "Security_Err 18 should be thrown");
+ }, "history.replaceState throws DOMException with code SECURITY_ERR (18)");
+ },
+
+ function() {
+ test(function() {
+ //trigger a data clone error by passing invalid SCA data into the function
+ assert_throws("DATA_CLONE_ERR", function() {history.replaceState(document.body, null);}, "replaceState should throw an exception DATA_CLONE_ERR with code 25");
+ }, "history.replaceState throws DATA_CLONE_ERR(25) for bad state parameter");
+ },
+
+ function() {
+ var t = async_test("PopStateEvent fires on Back navigation");
+ t.step(function() {
+ history.pushState(null, null);
+ history.pushState(null, null);
+ //prepare to end the test as soon as popstate fires
+ onpopstate = function(e) {
+ t.done();
+ }
+ //go back to fire the popstate event
+ history.back();
+ });
+ },
+
+ function() {
+ var t = async_test("PopStateEvent fires on Forward navigation");
+ t.step( function() {
+ onpopstate = null;
+ history.pushState(null, null);
+ history.pushState(null, null);
+ history.back();
+ //if the back navigation is queued, set up the rest of the test after it is done
+ queue(
+ t.step_func(function() {
+ //prepare to end the test as soon as popstate fires
+ onpopstate = function(e) {
+ t.done();
+ }
+ //go forward to fire the popstate event
+ history.forward();
+ })
+ );
+ });
+ },
+
+ function() {
+ var t = async_test("PopStateEvent receives state data on Back navigation");
+ t.step(function() {
+ history.pushState("popstate-data", null);
+ history.pushState(null, null);
+ //prepare the popstate event to validate the data
+ onpopstate = t.step_func(function(e) {
+ assert_equals(e.state, "popstate-data", "State data is passed to the event correctly");
+ t.done();
+ });
+ //go back to fire the popstate event
+ history.back();
+ });
+ },
+
+ function() {
+ test(function() {
+ history.pushState("pushstate-data", null);
+ //history.state should be set immediately
+ assert_equals(history.state, "pushstate-data", "State data is set correctly");
+ }, "history.state is set by history.pushState");
+ },
+
+ function() {
+ test(function() {
+ history.replaceState("replacestate-data", null);
+ //history.state should be set immediately
+ assert_equals(history.state, "replacestate-data", "State data is set correctly");
+ }, "history.state is set by history.replaceState");
+ },
+
+ function() {
+ var t = async_test("history.state changes on navigation");
+ t.step(function() {
+ history.pushState("state-back1", null);
+ history.pushState("state-back2", null);
+ //precondition
+ assert_equals(history.state, "state-back2", "Verify that history.state is set to a second value");
+
+ //set up the popstate event to verify that history.state was changed
+ onpopstate = t.step_func(function(e) {
+ assert_equals(e.state, "state-back1", "Verify that history.state reverted to the first value");
+ t.done();
+ });
+ history.back();
+ });
+ },
+ ];
+ }, {explicit_done:true, timeout:8000});
+
+ //used to get the name of a page within a path
+ // to check correctness of url parameter
+ function getPageName(path) {
+ var path = path || location.pathname;
+ var segments = path.split('/');
+ return segments[segments.length-1];
+ }
+
+ //Callback for result_callback
+ //queues the next test in the array testCollection
+ //serves to make test execution sequential despite asynchronous behaviors
+ function testFinished(test) {
+ if(testIndex < testCollection.length - 1) {
+ //queue the function so that stack remains shallow
+ queue(testCollection[++testIndex]);
+ } else {
+ //when the last test has run, explicitly end test suite
+ done();
+ }
+ }
+ function queue(func) {
+ //50 allows adequate time for .back and .forward navigations to queue first
+ setTimeout(func, 50);
+ }
+
+ add_result_callback(testFinished);
+ //start the first test manually
+ queue(testCollection[testIndex]);
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/images/blue-area.png b/testing/web-platform/tests/old-tests/submission/Microsoft/images/blue-area.png
new file mode 100644
index 000000000..570ae0f2b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/images/blue-area.png
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/images/blue-border.png b/testing/web-platform/tests/old-tests/submission/Microsoft/images/blue-border.png
new file mode 100644
index 000000000..8f8e41c3d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/images/blue-border.png
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/images/blue.png b/testing/web-platform/tests/old-tests/submission/Microsoft/images/blue.png
new file mode 100644
index 000000000..4498dd258
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/images/blue.png
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/images/fail.gif b/testing/web-platform/tests/old-tests/submission/Microsoft/images/fail.gif
new file mode 100644
index 000000000..c4addcf00
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/images/fail.gif
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/images/movie_300_frame_0.png b/testing/web-platform/tests/old-tests/submission/Microsoft/images/movie_300_frame_0.png
new file mode 100644
index 000000000..b71282509
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/images/movie_300_frame_0.png
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster.png b/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster.png
new file mode 100644
index 000000000..8873ed678
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster.png
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_blue.png b/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_blue.png
new file mode 100644
index 000000000..69d5a39dc
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_blue.png
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_green.png b/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_green.png
new file mode 100644
index 000000000..cac16ede7
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_green.png
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_red.png b/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_red.png
new file mode 100644
index 000000000..0fb1f252c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/images/poster_red.png
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/images/rect.svg b/testing/web-platform/tests/old-tests/submission/Microsoft/images/rect.svg
new file mode 100644
index 000000000..bb0cf97d9
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/images/rect.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="svg-root" width="100" height="50">
+ <rect width="100" height="50" fill="black" />
+</svg>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_001.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_001.htm
new file mode 100644
index 000000000..24d16cfcc
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_001.htm
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with script</title>
+</head>
+<body>
+ <script type="text/javascript">
+ parent.window.postMessage("script ran", "*");
+ </script>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_002.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_002.htm
new file mode 100644
index 000000000..e63784771
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_002.htm
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 video with autoplay attribute.</title>
+ <script src="/common/media.js"></script>
+</head>
+<body>
+ <script>
+ function do_play(event) {
+ parent.window.postMessage("play event fired", "*");
+ }
+
+ document.write(
+ "<video id='video0' src='" + getVideoURI("/media/green-at-15") + "'" +
+ " autoplay onplay='do_play(event);'>"
+ );
+ </script>
+ Your browser does not support HTML5 video.
+ </video>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_003.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_003.htm
new file mode 100644
index 000000000..621ece79a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_003.htm
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>autofocus on form control</title>
+</head>
+<body>
+ <div>Below form control has autofocus attribute set.</div><br />
+ <form action="">
+ <span>Textbox: </span><input autofocus="autofocus" type="text" name="movie" />
+ </form>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_004.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_004.htm
new file mode 100644
index 000000000..02960d078
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_004.htm
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>object tag</title>
+</head>
+<body>
+ <object width="400" height="600" data="sandbox.pdf">
+ </object>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_006.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_006.htm
new file mode 100644
index 000000000..42542ae14
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_006.htm
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Form submission</title>
+</head>
+<body>
+ <form id="form1" action="standalone-pass.htm">
+ <span>Name: </span><input type="text" name="name" value="browser" /><br />
+ <input id="submitButton" type="submit" value="Submit Form" />
+ </form>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_007.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_007.htm
new file mode 100644
index 000000000..fc01557c7
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_007.htm
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Form submission</title>
+</head>
+<body>
+ <form id="form1" action="standalone-fail.htm">
+ <span>Name: </span><input type="text" name="name" value="browser" /><br />
+ <input id="submitButton" type="submit" value="Submit Form" />
+ </form>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_008.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_008.htm
new file mode 100644
index 000000000..115b97293
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_008.htm
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with hyperlink and target set to self</title>
+</head>
+<body>
+ <a id="hyperlink" href="standalone-pass.htm" target="_self">Click here to perform self navigation</a>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_009.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_009.htm
new file mode 100644
index 000000000..f232dcb7c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_009.htm
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with showModalDialog() API</title>
+</head>
+<body>
+ <button type="button" onclick="javascript:showModalDialog('standalone-fail.htm')">Click here to call showModalDialog() API</button>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_010.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_010.htm
new file mode 100644
index 000000000..d4e81bb96
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_010.htm
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with window.open()</title>
+</head>
+<body>
+ <button type="button" onclick="javascript:window.open('standalone-fail.htm')">Click here to call window.open() API</button>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_012.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_012.htm
new file mode 100644
index 000000000..b1e8f92fb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_012.htm
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with access to document.cookie</title>
+</head>
+<body>
+ <script type="text/javascript">
+ cookie = document.cookie;
+ document.cookie = "name=browser";
+ parent.window.postMessage("cookies are R/W", "*");
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_020.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_020.htm
new file mode 100644
index 000000000..3304ea84b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_020.htm
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with iframes</title>
+</head>
+<body>
+ <table cellpadding="5" cellspacing="10">
+ <tr>
+ <td>
+ <span>child iframe with sandbox="allow-scripts" attribute</span><br />
+ <iframe id="Iframe1" src="iframe_sandbox_020a.htm" sandbox="allow-scripts" style="height: 50px; width: 250px;"></iframe>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span>child iframe with sandbox="" attribute</span><br />
+ <iframe id="Iframe2" src="iframe_sandbox_020a.htm" sandbox="" style="height: 50px; width: 250px;"></iframe>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span>child iframe without sandbox attribute</span><br />
+ <iframe id="Iframe3" src="iframe_sandbox_020a.htm" style="height: 50px; width: 250px;"></iframe>
+ </td>
+ </tr>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_020a.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_020a.htm
new file mode 100644
index 000000000..a419c9413
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_020a.htm
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with script</title>
+</head>
+<body>
+ <div>Script Execution: <span id="scriptExecute" style="Color: Green">Blocked</span></div>
+ <script type="text/javascript">
+ document.getElementById("scriptExecute").innerHTML = "Not Blocked";
+ document.getElementById("scriptExecute").style.color = "Red";
+ </script>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_021.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_021.htm
new file mode 100644
index 000000000..e3041ccef
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_021.htm
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with iframes</title>
+</head>
+<body>
+ <table cellpadding="5" cellspacing="10">
+ <tr>
+ <td>
+ <span>child iframe with sandbox="allow-scripts" attribute</span><br />
+ <iframe id="Iframe1" src="iframe_sandbox_021a.htm" sandbox="allow-scripts" style="height: 50px; width: 250px;"></iframe>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span>child iframe with sandbox="" attribute</span><br />
+ <iframe id="Iframe2" src="iframe_sandbox_020a.htm" sandbox="" style="height: 50px; width: 250px;"></iframe>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span>child iframe without sandbox attribute</span><br />
+ <iframe id="Iframe3" src="iframe_sandbox_021a.htm" style="height: 50px; width: 250px;"></iframe>
+ </td>
+ </tr>
+ </table>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_021a.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_021a.htm
new file mode 100644
index 000000000..4e22a363c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_021a.htm
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with script</title>
+</head>
+<body>
+ <div>Script Execution: <span id="scriptExecute" style="Color: Red">Blocked</span></div>
+ <script type="text/javascript">
+ document.getElementById("scriptExecute").innerHTML = "Allowed";
+ document.getElementById("scriptExecute").style.color = "Green";
+ </script>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_022.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_022.htm
new file mode 100644
index 000000000..11382d1d7
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_022.htm
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>target=_top</title>
+</head>
+<body>
+ <div>hyperlink with target=_top</div>
+ <br />
+ <a href="standalone-pass.htm" target="_top">Open the link in top window</a>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_023.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_023.htm
new file mode 100644
index 000000000..a65db539b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_023.htm
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head><title>Access parent dom</title>
+</head>
+<body>
+ <script type="text/javascript">
+ if (window.parent.document)
+ {
+ parent.window.postMessage("window.parent.document", "*");
+ }else{
+ parent.window.postMessage("!window.parent.document", "*");
+ }
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_024.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_024.htm
new file mode 100644
index 000000000..1b0996e58
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_024.htm
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head><title>Page with access to document.cookie</title>
+</head>
+<body>
+ <div>Cookie Read: <span id="readCookie"></span></div>
+ <script type="text/javascript">
+ cookie = document.cookie;
+ document.cookie = "name=browser";
+ parent.window.postMessage("cookies are R/W", "*");
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_026.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_026.htm
new file mode 100644
index 000000000..5f1a973e1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_026.htm
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head><title>Page with access to localStorage and sessionStorage</title>
+</head>
+<body>
+ <script type="text/javascript">
+ if (window.localStorage && window.sessionStorage) {
+ parent.window.postMessage("access to window.localStorage and window.sessionStorage", "*");
+ }
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_027.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_027.htm
new file mode 100644
index 000000000..366bff6f9
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_027.htm
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head><title>XMLHttpRequest</title>
+</head>
+<body>
+ <script type="text/javascript">
+ xhrRequest = new XMLHttpRequest();
+
+ xhrRequest.onreadystatechange = function () {
+ if (xhrRequest.readyState == 4 && xhrRequest.status == 200) {
+ //xhr successful
+ parent.window.postMessage("access to window.XMLHttpRequest", "*");
+ }
+ }
+
+ xhrRequest.open("GET", "standalone-pass.htm", true);
+ xhrRequest.send();
+
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_028.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_028.htm
new file mode 100644
index 000000000..d7ca76144
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_028.htm
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head><title>Access parent dom</title>
+</head>
+<body>
+ <script type="text/javascript">
+ try
+ {
+ if (window.parent.document)
+ {
+ parent.window.postMessage("window.parent.document", "*");
+ }
+ }
+ catch(e)
+ {
+ parent.window.postMessage("!window.parent.document", "*");
+ }
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_029.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_029.htm
new file mode 100644
index 000000000..5d5c720bd
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_029.htm
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head><title>Page with access to document.cookie</title>
+</head>
+<body>
+ <div>Cookie Read: <span id="readCookie"></span></div>
+ <script type="text/javascript">
+ try
+ {
+ cookie = document.cookie;
+ document.cookie = "name=browser";
+ parent.window.postMessage("cookies are R/W", "*");
+ }catch(e)
+ {
+ parent.window.postMessage("cookies are not R/W", "*");
+ }
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_031.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_031.htm
new file mode 100644
index 000000000..7ec7d7a4e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_031.htm
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head><title>Page with access to localStorage and sessionStorage</title>
+</head>
+<body>
+ <script type="text/javascript">
+ try
+ {
+ if (window.localStorage && window.sessionStorage) {
+ parent.window.postMessage("access to window.localStorage and window.sessionStorage", "*");
+ }
+ }
+ catch(e)
+ {
+ parent.window.postMessage("no access to window.localStorage and window.sessionStorage", "*");
+ }
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_032.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_032.htm
new file mode 100644
index 000000000..abc0370c2
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/iframe_sandbox_032.htm
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head><title>XMLHttpRequest</title>
+</head>
+<body>
+ <script type="text/javascript">
+
+ try
+ {
+ xhrRequest = new XMLHttpRequest();
+
+ xhrRequest.onreadystatechange = function () {
+ if (xhrRequest.readyState == 4 && xhrRequest.status == 200) {
+ //xhr successful
+ parent.window.postMessage("access to window.XMLHttpRequest", "*");
+ }
+ }
+
+ xhrRequest.open("GET", "standalone-pass.htm", true);
+ xhrRequest.send();
+
+ }catch(e){}
+
+ parent.window.postMessage("no access to window.XMLHttpRequest", "*");
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox.pdf b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox.pdf
new file mode 100644
index 000000000..0e16bc8d9
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox.pdf
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_001.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_001.htm
new file mode 100644
index 000000000..53e2172bc
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_001.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Allow script execution inside iframe with sandbox attribute when sandbox="allow-scripts".</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-scripts-browsing-context-flag" />
+ <meta name="assert" content="Allow script execution inside iframe with sandbox attribute when sandbox='allow-scripts'." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("Allow script execution inside iframe with sandbox attribute when sandbox='allow-scripts'.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "script ran");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 8000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <iframe src="iframe_sandbox_001.htm" sandbox="allow-scripts" style="display: none"></iframe>
+ <div id=log></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_002.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_002.htm
new file mode 100644
index 000000000..767518456
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_002.htm
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Allow autoplay for HTML5 Video inside iframe with sandbox attribute if sandbox='allow-scripts'.</title>
+ <meta name=timeout content=long>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script>
+ async_test(function (t) {
+ var callback = t.step_func_done(function(event) {
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "play event fired");
+ });
+
+ window.addEventListener("message", callback, false);
+ }, "Allow autoplay for HTML5 Video inside iframe with sandbox attribute if sandbox='allow-scripts'.");
+ </script>
+ <iframe src="iframe_sandbox_002.htm" sandbox="allow-scripts" style="display: none"></iframe>
+ <div id=log></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_003-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_003-manual.htm
new file mode 100644
index 000000000..21078322b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_003-manual.htm
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Block autofocus on form control inside iframe with sandbox attribute.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-automatic-features-browsing-context-flag" />
+ <meta name="assert" content="Block autofocus on form control inside iframe with sandbox attribute." />
+ <script src="sandbox_helper.js" type="text/javascript"></script>
+</head>
+<body>
+ <pre>Description: Block autofocus on form controls inside iframe with sandbox attribute.</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_0_result'>Manual</td>
+ <td id='test_0_assertion'>Test passes if caret (text cursor) is not on the textbox in the below iframe.</td>
+ </tr>
+ </table>
+ <br />
+ <div id="testframe">
+ <pre>iframe with sandbox</pre>
+ <iframe src="iframe_sandbox_003.htm" sandbox style="height: 100px; width: 400px;"></iframe>
+ </div>
+ <script type="text/javascript">
+ DisableTestForNonSupportingBrowsers();
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_004-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_004-manual.htm
new file mode 100644
index 000000000..21b063aed
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_004-manual.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Block plugins inside iframe with sandbox attribute.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-plugins-browsing-context-flag" />
+ <meta name="assert" content="Block plugins inside iframe with sandbox attribute." />
+ <script src="sandbox_helper.js" type="text/javascript"></script>
+</head>
+<body>
+ <pre>Description: Block plugins inside iframe with sandbox attribute.</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_0_result'>Manual</td>
+ <td id='test_0_assertion'>Test passes if you DO NOT see the 'Sample PDF For Testing' pdf below or 'FAIL'.<br>
+ Test requires that a pdf plugin has been installed!</td>
+ </tr>
+ </table>
+ <br />
+ <div id="testframe">
+ <pre>iframe with sandbox</pre>
+ <iframe sandbox src="iframe_sandbox_004.htm" height="400" width ="600"></iframe>
+ </div>
+ <script type="text/javascript">
+ DisableTestForNonSupportingBrowsers();
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_005.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_005.htm
new file mode 100644
index 000000000..cc5f815c9
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_005.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Block script execution inside iframe with sandbox attribute.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-scripts-browsing-context-flag" />
+ <meta name="assert" content="Block script execution inside iframe with sandbox attribute." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("Block script execution inside iframe with sandbox attribute.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_true(!event);
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <iframe src="iframe_sandbox_001.htm" sandbox style="display: none"></iframe>
+ <div id=log></div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_006-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_006-manual.htm
new file mode 100644
index 000000000..487e8d4cf
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_006-manual.htm
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>HTML5 Sandbox: Allow form submission inside sandbox iframe when sandbox='allow-forms'</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-forms-browsing-context-flag" />
+ <meta name="assert" content="Allow form submission inside sandbox iframe when sandbox='allow-forms'." />
+ <script src="sandbox_helper.js" type="text/javascript"></script>
+</head>
+<body>
+ <pre>Description: Allow form submission inside iframe with sandbox attribute if sandbox='allow-forms'.</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_0_result'>Manual</td>
+ <td id='test_0_assertion'>
+ <div>Steps:</div>
+ <div>1. Click button "Submit Form".</div>
+ <br />
+ <div>Test passes if there is no red on the page and if the word "PASS" appears in the below iframe after following the above steps.</div>
+ </td>
+ </tr>
+ </table>
+ <br />
+ <div id="testframe">
+ <pre>iframe with sandbox="allow-forms"</pre>
+ <iframe src="iframe_sandbox_006.htm" sandbox="allow-forms" style="height: 100px; width: 300px;"></iframe>
+ </div>
+ <script type="text/javascript">
+ DisableTestForNonSupportingBrowsers();
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_007-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_007-manual.htm
new file mode 100644
index 000000000..5caa12a07
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_007-manual.htm
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>HTML5 Sandbox: Block form submission inside sandbox iframe</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-forms-browsing-context-flag" />
+ <meta name="assert" content="Block form submission inside sandbox iframe." />
+ <script src="sandbox_helper.js" type="text/javascript"></script>
+</head>
+<body>
+ <pre>Description: Block form submission inside iframe with sandbox attribute.</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_0_result'>Manual</td>
+ <td id='test_0_assertion'>
+ <div>Steps:</div>
+ <div>1. Click button "Submit Form".</div>
+ <br />
+ <div>Test passes if there is no red on the page and there is no navigation in the below iframe after following the above steps.</div>
+ </td>
+ </tr>
+ </table>
+ <br />
+ <div id="testframe">
+ <pre>iframe with sandbox="allow-scripts allow-same-origin allow-top-navigation"</pre>
+ <iframe src="iframe_sandbox_007.htm" sandbox="allow-scripts allow-same-origin allow-top-navigation" style="height: 100px; width: 300px;"></iframe>
+ </div>
+ <script type="text/javascript">
+ DisableTestForNonSupportingBrowsers();
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_008-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_008-manual.htm
new file mode 100644
index 000000000..dde12ef1d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_008-manual.htm
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Allow sandboxed iframe content to navigate the sandboxed browsing context itself.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-navigation-browsing-context-flag" />
+ <meta name="assert" content="Allow sandboxed iframe content to navigate the sandboxed browsing context itself." />
+ <script src="sandbox_helper.js" type="text/javascript"></script>
+</head>
+<body>
+ <pre>Description: Allow sandboxed iframe content to navigate the sandboxed browsing context itself.</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_0_result'>Manual</td>
+ <td id='test_0_assertion'>
+ <div>Steps:</div>
+ <div>1. Click link "Click here to perform self navigation".</div>
+ <br />
+ <div>Test passes if there is no red on the page and the word "PASS" appears in the below iframe after following the above steps.</div>
+ </td>
+ </tr>
+ </table>
+ <br />
+ <div id="testframe">
+ <pre>iframe with sandbox=""</pre>
+ <iframe id="iframe1" name="iframe1" src="iframe_sandbox_008.htm" sandbox="" style="height: 100px; width: 350px;"></iframe>
+ </div>
+ <script type="text/javascript">
+ DisableTestForNonSupportingBrowsers();
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_009-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_009-manual.htm
new file mode 100644
index 000000000..5cb0d9030
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_009-manual.htm
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Block popup created via showModalDialog() inside iframe with sandbox attribute.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#attr-iframe-sandbox" />
+ <meta name="assert" content="Block popup created via showModalDialog() inside iframe with sandbox attribute." />
+ <script src="sandbox_helper.js" type="text/javascript"></script>
+</head>
+<body>
+ <pre>Description: Block popup created via showModalDialog() inside iframe with sandbox attribute.</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_0_result'>Manual</td>
+ <td id='test_0_assertion'>
+ <div>Steps:</div>
+ <div>1. Click button "Click here to call showModalDialog() API".</div>
+ <br />
+ <div>Test passes if there is no red on the page and no new window opens. The user agent may offer the user the option of allowing a new window to open.</div>
+ </td>
+ </tr>
+ </table>
+ <br />
+ <div id="testframe">
+ <pre>iframe with sandbox="allow-scripts allow-same-origin allow-forms allow-top-navigation"</pre>
+ <iframe src="iframe_sandbox_009.htm" sandbox="allow-scripts allow-same-origin allow-forms allow-top-navigation" style="height: 100px; width: 450px;"></iframe>
+ </div>
+ <script type="text/javascript">
+ DisableTestForNonSupportingBrowsers();
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_010-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_010-manual.htm
new file mode 100644
index 000000000..4341066e1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_010-manual.htm
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Block window.open() API inside iframe with sandbox attribute.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-navigation-browsing-context-flag" />
+ <meta name="assert" content="Block window.open() API inside iframe with sandbox attribute." />
+ <script src="sandbox_helper.js" type="text/javascript"></script>
+</head>
+<body>
+ <pre>Description: Block window.open() API inside iframe with sandbox attribute.</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_0_result'>Manual</td>
+ <td id='test_0_assertion'>
+ <div>Steps:</div>
+ <div>1. Click button "Click here to call window.open() API".</div>
+ <br />
+ <div>Test passes if there is no red on the page and no new window opens. The user agent may offer the user the option of allowing a new window to open.</div>
+ </td>
+ </tr>
+ </table>
+ <br />
+ <div id="testframe">
+ <pre>iframe with sandbox="allow-scripts allow-same-origin allow-forms allow-top-navigation"</pre>
+ <iframe src="iframe_sandbox_010.htm" sandbox="allow-scripts allow-same-origin allow-forms allow-top-navigation" style="height: 100px; width: 450px;"></iframe>
+ </div>
+ <script type="text/javascript">
+ DisableTestForNonSupportingBrowsers();
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_011.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_011.htm
new file mode 100644
index 000000000..ce3ee1a7d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_011.htm
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: iframe sandbox attribute value support DOMTokenList interface.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#the-iframe-element" />
+ <meta name="assert" content="iframe sandbox attribute value support DOMTokenList interface." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id=log></div>
+ <iframe id="iframe1" src="about:blank" sandbox="allow-scripts allow-same-origin allow-forms" style="display : none"></iframe>
+ <script type="text/javascript">
+
+ test(function() {
+ var iframeEle = document.getElementById("iframe1");
+ assert_equals(iframeEle.sandbox.length, 3)
+ }, "DOMTokenList length")
+
+ test(function() {
+ var iframeEle = document.getElementById("iframe1");
+ assert_equals(iframeEle.sandbox.item(1), "allow-same-origin")
+ }, "DOMTokenList item(index)")
+
+ test(function() {
+ var iframeEle = document.getElementById("iframe1");
+ assert_true(iframeEle.sandbox.contains("allow-forms"))
+ }, "DOMTokenList contains(DomString)")
+
+ test(function() {
+ var iframeEle = document.getElementById("iframe1");
+ iframeEle.sandbox.add("ALLOW-SANDBOX");
+ assert_true(iframeEle.sandbox.contains("ALLOW-SANDBOX"))
+ }, "DOMTokenList add(DomString)")
+
+ test(function() {
+ var iframeEle = document.getElementById("iframe1");
+ iframeEle.sandbox.remove("ALLOW-SANDBOX");
+ assert_false(iframeEle.sandbox.contains("ALLOW-SANDBOX"))
+ }, "DOMTokenList remove(DomString)")
+
+ test(function() {
+ var iframeEle = document.getElementById("iframe1");
+ iframeEle.sandbox.remove("ALLOW-SANDBOX");
+ assert_true(
+ iframeEle.sandbox.toggle("allow-top-navigation") && iframeEle.sandbox.contains("allow-top-navigation") &&
+ !iframeEle.sandbox.toggle("allow-top-navigation") && !iframeEle.sandbox.contains("allow-top-navigation")
+ )
+ }, "DOMTokenList toggle(DomString) - Returns true if token is now present (it was added); returns false if it is not (it was removed).")
+
+ test(function() {
+ var iframeEle = document.getElementById("iframe1");
+ assert_equals(iframeEle.sandbox.value, iframeEle.sandbox.toString())
+ }, "DOMTokenList sandbox.toString()")
+
+ test(function() {
+ var iframeEle = document.getElementById("iframe1");
+ iframeEle.sandbox.remove("ALLOW-SANDBOX");
+ assert_true(iframeEle.sandbox.contains("allow-scripts") != iframeEle.sandbox.contains("Allow-SCRIPTS"))
+ }, "DOMTokenList case sensitivity")
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_012.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_012.htm
new file mode 100644
index 000000000..cf99378cd
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_012.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: value of sandbox attribute must be an unordered set of unique space-separated tokens.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#attr-iframe-sandbox" />
+ <meta name="assert" content="value of sandbox attribute must be an unordered set of unique space-separated tokens." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("value of sandbox attribute must be an unordered set of unique space-separated tokens.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "cookies are R/W");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+
+ <iframe style="display:none" src="iframe_sandbox_012.htm" sandbox=" Allow-Scripts Allow-Same-Origin "></iframe>
+
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_013.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_013.htm
new file mode 100644
index 000000000..ab0aea079
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_013.htm
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: value of sandbox attribute must be an unordered set of unique space-separated tokens.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#attr-iframe-sandbox" />
+ <meta name="assert" content="value of sandbox attribute must be an unordered set of unique space-separated tokens." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("value of sandbox attribute must be an unordered set of unique space-separated tokens.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "cookies are R/W");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+
+ <iframe style="display:none" src="iframe_sandbox_012.htm" sandbox="
+ allow-scripts
+ allow-same-origin
+ "></iframe>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_014.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_014.htm
new file mode 100644
index 000000000..774720929
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_014.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: value of sandbox attribute must be an unordered set of unique space-separated tokens.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#attr-iframe-sandbox" />
+ <meta name="assert" content="value of sandbox attribute must be an unordered set of unique space-separated tokens." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("value of sandbox attribute must be an unordered set of unique space-separated tokens.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "cookies are R/W");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+
+ <iframe style="display:none" src="iframe_sandbox_012.htm" sandbox=" allow-scripts allow-same-origin "></iframe>
+
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_015.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_015.htm
new file mode 100644
index 000000000..a34ede4b3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_015.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: value of sandbox attribute must be an unordered set of unique space-separated tokens.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#attr-iframe-sandbox" />
+ <meta name="assert" content="value of sandbox attribute must be an unordered set of unique space-separated tokens." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("value of sandbox attribute must be an unordered set of unique space-separated tokens.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "cookies are R/W");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+
+ <iframe style="display:none" src="iframe_sandbox_012.htm" sandbox="&#32ALLOW-SCRIPTS&#32allow-same-origin&#32"></iframe>
+
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_016.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_016.htm
new file mode 100644
index 000000000..c84e223e1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_016.htm
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: value of sandbox attribute must be an unordered set of unique space-separated tokens.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#attr-iframe-sandbox" />
+ <meta name="assert" content="value of sandbox attribute must be an unordered set of unique space-separated tokens." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("value of sandbox attribute must be an unordered set of unique space-separated tokens.");
+
+ function callback(event)
+ {
+ t.step(function() {
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "cookies are R/W");
+ });
+ t.done();
+ }
+
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+
+ <iframe style="display:none" src="iframe_sandbox_012.htm" sandbox="&#13ALLOW-SCRIPTS&#13allow-same-origin&#13"></iframe>
+
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_017.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_017.htm
new file mode 100644
index 000000000..ade4c8092
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_017.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: value of sandbox attribute must be an unordered set of unique space-separated tokens.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#attr-iframe-sandbox" />
+ <meta name="assert" content="value of sandbox attribute must be an unordered set of unique space-separated tokens." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("value of sandbox attribute must be an unordered set of unique space-separated tokens.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "cookies are R/W");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+
+ <iframe style="display:none" src="iframe_sandbox_012.htm" sandbox="&#12ALLOW-SCRIPTS&#12allow-same-origin&#12"></iframe>
+
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_018.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_018.htm
new file mode 100644
index 000000000..77f10d274
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_018.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: value of sandbox attribute must be an unordered set of unique space-separated tokens.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#attr-iframe-sandbox" />
+ <meta name="assert" content="value of sandbox attribute must be an unordered set of unique space-separated tokens." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("value of sandbox attribute must be an unordered set of unique space-separated tokens.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "cookies are R/W");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+
+ <iframe style="display:none" src="iframe_sandbox_012.htm" sandbox="&#10ALLOW-SCRIPTS&#10allow-same-origin&#10"></iframe>
+
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_019.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_019.htm
new file mode 100644
index 000000000..d91280a60
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_019.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: value of sandbox attribute must be an unordered set of unique space-separated tokens.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#attr-iframe-sandbox" />
+ <meta name="assert" content="value of sandbox attribute must be an unordered set of unique space-separated tokens." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("value of sandbox attribute must be an unordered set of unique space-separated tokens.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "cookies are R/W");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+
+ <iframe style="display:none" src="iframe_sandbox_012.htm" sandbox="&#9ALLOW-SCRIPTS&#9allow-same-origin&#9"></iframe>
+
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_020-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_020-manual.htm
new file mode 100644
index 000000000..751f85863
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_020-manual.htm
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Nested iframes cannot have less sandbox restrictions than their most restrictive ancestor iframe.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#attr-iframe-sandbox" />
+ <meta name="assert" content="Nested iframes cannot have less sandbox restrictions than their most restrictive ancestor iframe." />
+ <script src="sandbox_helper.js" type="text/javascript"></script>
+</head>
+<body>
+ <pre>Description: Nested iframes cannot have less sandbox restrictions than their most restrictive ancestor iframe.</pre>
+ <div>This test is to verify script is blocked inside nested iframes if the top-most sandbox iframe has no 'allow-scripts' token.</div>
+ <br />
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_0_result'>Manual</td>
+ <td id='test_0_assertion'>Test passes if there is no red on the page.</td>
+ </tr>
+ </table>
+ <br />
+ <div id="testframe">
+ <div style="font-weight:bold">Top-most iframe with sandbox=""</div>
+ <iframe id="iframe1" name="iframe1" src="iframe_sandbox_020.htm" sandbox="" style="height: 330px; width: 400px;"></iframe>
+ </div>
+ <script type="text/javascript">
+ DisableTestForNonSupportingBrowsers();
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_021-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_021-manual.htm
new file mode 100644
index 000000000..bbdc21f93
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_021-manual.htm
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Nested iframes cannot have less sandbox restrictions than their most restrictive ancestor iframe.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#attr-iframe-sandbox" />
+ <meta name="assert" content="Nested iframes cannot have less sandbox restrictions than their most restrictive ancestor iframe." />
+ <script src="sandbox_helper.js" type="text/javascript"></script>
+</head>
+<body>
+ <pre>Description: Nested iframes cannot have less sandbox restrictions than their most restrictive ancestor iframe.</pre>
+ <div>This test is to verify script is allowed inside nested iframes if any of the conditions below are true</div>
+ <div>1. both parent sandbox and child sandbox have 'allow-scripts' token.</div>
+ <div>2. parent sandbox has 'allow-scripts' token and nested child iframe has no sandbox attribute.</div>
+ <div>3. parent iframe has no sandbox attribute and child iframe has sandbox='allow-scripts' token.</div>
+ <div>4. both parent and child iframes have no sandbox attribute.</div>
+ <br />
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_0_result'>Manual</td>
+ <td id='test_0_assertion'>Test passes if there is no red on the page.</td>
+ </tr>
+ </table>
+ <br />
+ <div id="testframe">
+ <div style="float: left; border: 1px solid; padding: 5px;">
+ <div style="font-weight: bold">Top-most iframe with sandbox="allow-scripts"</div>
+ <iframe id="iframe1" src="iframe_sandbox_021.htm" sandbox="allow-scripts" style="height: 330px; width: 400px;"></iframe>
+ </div>
+ <div style="float: left; border: 1px solid; padding: 5px; margin-left: 20px;">
+ <div style="font-weight: bold">Top-most iframe without sandbox attribute</div>
+ <iframe id="iframe2" src="iframe_sandbox_021.htm" style="height: 330px; width: 400px;"></iframe>
+ </div>
+ </div>
+ <script type="text/javascript">
+ DisableTestForNonSupportingBrowsers();
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_022-manual.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_022-manual.htm
new file mode 100644
index 000000000..aa08de512
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_022-manual.htm
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: allow sandbox iframe to navigate their top-level browsing context if sandbox="allow-top-navigation".</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-scripts-browsing-context-flag" />
+ <meta name="assert" content="Allow sandbox iframe to navigate their top-level browsing context if sandbox='allow-top-navigation'." />
+ <script src="sandbox_helper.js" type="text/javascript"></script>
+</head>
+<body>
+ <pre>Description: Allow sandbox iframe to navigate its top-level browsing context if sandbox='allow-top-navigation'.</pre>
+ <table id='testtable' border='1'>
+ <tr>
+ <td>Test Result</td>
+ <td>Test Assertion</td>
+ </tr>
+ <tr>
+ <td id='test_0_result'>Manual</td>
+ <td id='test_0_assertion'>
+ <div>Steps:</div>
+ <div>1. Click link "Open the link in top window".</div>
+ <br />
+ <div>Test passes if there is no red on the page and no top-level navigation after following the above steps.</div>
+ </td>
+ </tr>
+ </table>
+ <br />
+ <div id="testframe">
+ <pre>iframe with sandbox="allow-top-navigation"</pre>
+ <iframe src="iframe_sandbox_022.htm" sandbox="allow-top-navigation" style="height: 100px; width: 450px;"></iframe>
+ </div>
+ <script type="text/javascript">
+ DisableTestForNonSupportingBrowsers();
+ </script>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_023.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_023.htm
new file mode 100644
index 000000000..7f8a436b4
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_023.htm
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>HTML5 Sandbox: Allow sandbox iframe to access other content from the same origin if sandbox="allow-same-origin".</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-origin-browsing-context-flag" />
+ <meta name="assert" content=" Allow sandbox iframe to access other content from the same origin if sandbox='allow-same-origin'." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("Allow sandbox iframe to access other content from the same origin if sandbox='allow-same-origin'");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "window.parent.document");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <iframe src="iframe_sandbox_023.htm" sandbox="allow-scripts allow-same-origin" style="display:none"></iframe>
+ <div id=log></div>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_024.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_024.htm
new file mode 100644
index 000000000..935543707
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_024.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>HTML5 Sandbox: document.cookie access is allowed inside iframe with sandbox="allow-same-origin".</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-origin-browsing-context-flag" />
+ <meta name="assert" content="document.cookie access is allowed inside iframe with sandbox='allow-same-origin'." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("document.cookie access is allowed inside iframe with sandbox='allow-same-origin'.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "cookies are R/W");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+ <iframe src="iframe_sandbox_024.htm" sandbox="allow-scripts allow-same-origin" style="display:none"></iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_025.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_025.htm
new file mode 100644
index 000000000..ab291e5ce
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_025.htm
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Allow parent content to access sandbox child iframe content when sandbox='allow-same-origin</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-origin-browsing-context-flag" />
+ <meta name="assert" content="Allow parent content to access sandbox child iframe content when sandbox='allow-same-origin'" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+
+ var t = async_test("Allow parent content to access sandbox child iframe content when sandbox='allow-same-origin'");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(document.getElementById('sandboxIframe').contentDocument.title, "Page with a message");
+ });
+ t.done();
+ }
+ </script>
+ <div id=log></div>
+
+ <iframe id='sandboxIframe' src="standalone-iframe-content.htm" sandbox="allow-same-origin" onload="callback()" style="display : none"></iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_026.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_026.htm
new file mode 100644
index 000000000..49243899e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_026.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>HTML5 Sandbox: Allow localStorage and sessionStorage access inside iframe with sandbox='allow-same-origin allow-scripts'.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-origin-browsing-context-flag" />
+ <meta name="assert" content="Allow localStorage and sessionStorage access inside iframe with sandbox='allow-same-origin allow-scripts'." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("Allow localStorage and sessionStorage access inside iframe with sandbox='allow-same-origin allow-scripts'");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "access to window.localStorage and window.sessionStorage");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+ <iframe src="iframe_sandbox_026.htm" sandbox="allow-scripts allow-same-origin" style="display : none"></iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_027.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_027.htm
new file mode 100644
index 000000000..2b9cba5d2
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_027.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>HTML5 Sandbox: Allow XMLHttpRequest inside iframe with the sandbox attribute if sandbox='allow-same-origin'.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-origin-browsing-context-flag" />
+ <meta name="assert" content="Allow XMLHttpRequest in an iframe with the sandbox attribute if sandbox='allow-same-origin'." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("Allow XMLHttpRequest in an iframe with the sandbox attribute if sandbox='allow-same-origin'.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "access to window.XMLHttpRequest");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+ <iframe src="iframe_sandbox_027.htm" sandbox="allow-scripts allow-same-origin" style="display : none"></iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_028.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_028.htm
new file mode 100644
index 000000000..56dfb6810
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_028.htm
@@ -0,0 +1,34 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>HTML5 Sandbox: Block sandbox iframe from accessing other content from the same origin.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-origin-browsing-context-flag" />
+ <meta name="assert" content="Block sandbox iframe from accessing other content from the same origin." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("Block sandbox iframe from accessing other content from the same origin.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "!window.parent.document");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <iframe src="iframe_sandbox_028.htm" sandbox="allow-scripts" style="display:none"></iframe>
+ <div id=log></div>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_029.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_029.htm
new file mode 100644
index 000000000..b88b74a22
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_029.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>HTML5 Sandbox: Block document.cookie inside iframe with the sandbox attribute.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-origin-browsing-context-flag" />
+ <meta name="assert" content="Block document.cookie inside iframe with the sandbox attribute." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("Block document.cookie inside iframe with the sandbox attribute.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "cookies are not R/W");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+ <iframe src="iframe_sandbox_029.htm" sandbox="allow-scripts" style="display:none"></iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_030.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_030.htm
new file mode 100644
index 000000000..1c3b54cb0
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_030.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>HTML5 Sandbox: Block parent content to access sandbox child iframe content when sandbox attribute exists</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-origin-browsing-context-flag" />
+ <meta name="assert" content="Block parent content to access sandbox child iframe content when sandbox attribute exists" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+
+ var t = async_test("Block parent content to access sandbox child iframe content when sandbox attribute exists");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ try { document.getElementById('sandboxIframe').contentDocument.title; assert_true(false);}
+ catch(e) {assert_true(true);}
+ });
+ t.done();
+ }
+ </script>
+ <div id=log></div>
+
+ <iframe id='sandboxIframe' src="standalone-iframe-content.htm" sandbox onload="callback()" style="display : none"></iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_031.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_031.htm
new file mode 100644
index 000000000..2582fac35
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_031.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>HTML5 Sandbox: Block localStorage and sessionStorage inside iframe with the sandbox attribute.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-origin-browsing-context-flag" />
+ <meta name="assert" content="Block localStorage and sessionStorage inside iframe with the sandbox attribute." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("Block localStorage and sessionStorage inside iframe with the sandbox attribute.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "no access to window.localStorage and window.sessionStorage");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+ <iframe src="iframe_sandbox_031.htm" sandbox="allow-scripts" style="display : none"></iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_032.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_032.htm
new file mode 100644
index 000000000..1c234fcc9
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_032.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>HTML5 Sandbox: Block XMLHttpRequest in an iframe with the sandbox attribute.</title>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
+ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
+ <link rel="help" href="http://dev.w3.org/html5/spec/Overview.html#sandboxed-origin-browsing-context-flag" />
+ <meta name="assert" content="Block XMLHttpRequest inside sandbox iframe." />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script type="text/javascript">
+
+
+ var t = async_test("Block XMLHttpRequest in an iframe with the sandbox attribute.");
+
+ function callback(event)
+ {
+ t.step(function(){
+ assert_true('sandbox' in document.createElement('iframe'));
+ assert_equals(event.data, "no access to window.XMLHttpRequest");
+ });
+ t.done();
+ }
+
+ var timer = setTimeout(callback, 4000);
+ window.addEventListener("message", callback, false);
+ </script>
+ <div id=log></div>
+ <iframe src="iframe_sandbox_032.htm" sandbox="allow-scripts" style="display : none"></iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_helper.js b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_helper.js
new file mode 100644
index 000000000..1472cbf22
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/sandbox_helper.js
@@ -0,0 +1,14 @@
+function IsSandboxSupported() {
+ if ('sandbox' in document.createElement('iframe')) {
+ return true;
+ }
+ return false;
+}
+
+function DisableTestForNonSupportingBrowsers() {
+ //check if sandbox is supported by the browser
+ if (!IsSandboxSupported()) {
+ document.getElementById('testframe').innerHTML = "FAIL: Your browser does not support the sandbox attribute on the iframe element.";
+ document.getElementById('testframe').style.color = "Red";
+ }
+} \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-fail.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-fail.htm
new file mode 100644
index 000000000..1725ef060
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-fail.htm
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with FAIL message</title>
+</head>
+<body>
+ <div style="color: Red">FAIL!!!</div>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-iframe-content.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-iframe-content.htm
new file mode 100644
index 000000000..e543c21d6
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-iframe-content.htm
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with a message</title>
+</head>
+<body>
+ <div>Hello World.</div>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-pass.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-pass.htm
new file mode 100644
index 000000000..0ca822f8d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/sandbox/standalone-pass.htm
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with PASS message</title>
+</head>
+<body>
+ <div style="color: Green">PASS!!!</div>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/RemoveElementContainingSelection.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/RemoveElementContainingSelection.htm
new file mode 100644
index 000000000..69150236e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/RemoveElementContainingSelection.htm
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Remove the element containing the selection</title>
+ <script type="text/javascript">
+ function RunTest()
+ {
+ try
+ {
+ var selection = window.getSelection();
+ var div1 = document.getElementById("div1");
+ var span1 = document.getElementById("span1");
+ var range = document.createRange();
+ range.selectNode(span1);
+ selection.addRange(range);
+
+ document.body.removeChild(div1);
+
+ if ("" == selection.toString())
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <div id="div1">some text
+ <span id="span1">aaaaaaaa</span>
+ </div>
+ <div id="div2">Remove the element containing the selection</div>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/addRange.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/addRange.htm
new file mode 100644
index 000000000..c4b5e9944
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/addRange.htm
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Add a range to the selection</title>
+ <script type="text/javascript">
+ var testPassed = true;
+
+ function checkSelectionAttributes(anchorNode, anchorOffset, focusNode, focusOffset, collapsed, rangeCount)
+ {
+ var selection = window.getSelection();
+ if (anchorNode != selection.anchorNode)
+ {
+ testPassed = false;
+ }
+ if (anchorOffset != selection.anchorOffset)
+ {
+ testPassed = false;
+ }
+ if (focusNode != selection.focusNode)
+ {
+ testPassed = false;
+ }
+ if (focusOffset != selection.focusOffset)
+ {
+ testPassed = false;
+ }
+ if (collapsed != selection.isCollapsed)
+ {
+ testPassed = false;
+ }
+ if (rangeCount != selection.rangeCount)
+ {
+ testPassed = false;
+ }
+ }
+
+ function RunTest()
+ {
+ try
+ {
+ var selection = window.getSelection();
+ var p1 = document.getElementById("p1");
+
+ var range = document.createRange();
+ range.selectNode(p1);
+ selection.addRange(range);
+
+ checkSelectionAttributes(range.startContainer, range.startOffset, range.endContainer, range.endOffset, range.collapsed, 1);
+ if (p1.firstChild.nodeValue != selection.toString())
+ {
+ testPassed = false;
+ }
+
+ if (testPassed)
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <p id="p1">Add a range to the selection</p>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapse.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapse.htm
new file mode 100644
index 000000000..7c2423021
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapse.htm
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Collapse the selection using collapse()</title>
+ <script type="text/javascript">
+ var testPassed = true;
+
+ function checkSelectionAttributes(anchorNode, anchorOffset, focusNode, focusOffset, collapsed, rangeCount)
+ {
+ var selection = window.getSelection();
+ if (anchorNode != selection.anchorNode)
+ {
+ testPassed = false;
+ }
+ if (anchorOffset != selection.anchorOffset)
+ {
+ testPassed = false;
+ }
+ if (focusNode != selection.focusNode)
+ {
+ testPassed = false;
+ }
+ if (focusOffset != selection.focusOffset)
+ {
+ testPassed = false;
+ }
+ if (collapsed != selection.isCollapsed)
+ {
+ testPassed = false;
+ }
+ if (rangeCount != selection.rangeCount)
+ {
+ testPassed = false;
+ }
+ }
+
+ function RunTest()
+ {
+ try
+ {
+ var selection = window.getSelection();
+ var p1 = document.getElementById("p1");
+
+ var range = document.createRange();
+ range.selectNode(p1);
+ selection.addRange(range);
+ selection.collapse(p1, 0);
+
+ checkSelectionAttributes(p1, 0, p1, 0, true, 1);
+ if ("" != selection.toString())
+ {
+ testPassed = false;
+ }
+
+ if (testPassed)
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <p id="p1">Collapse the selection using collapse()</p>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapseToEnd.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapseToEnd.htm
new file mode 100644
index 000000000..2f68ec655
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapseToEnd.htm
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Collapse the selection with collapseToEnd()</title>
+ <script type="text/javascript">
+ var testPassed = true;
+
+ function checkSelectionAttributes(anchorNode, anchorOffset, focusNode, focusOffset, collapsed, rangeCount)
+ {
+ var selection = window.getSelection();
+ if (anchorNode != selection.anchorNode)
+ {
+ testPassed = false;
+ }
+ if (anchorOffset != selection.anchorOffset)
+ {
+ testPassed = false;
+ }
+ if (focusNode != selection.focusNode)
+ {
+ testPassed = false;
+ }
+ if (focusOffset != selection.focusOffset)
+ {
+ testPassed = false;
+ }
+ if (collapsed != selection.isCollapsed)
+ {
+ testPassed = false;
+ }
+ if (rangeCount != selection.rangeCount)
+ {
+ testPassed = false;
+ }
+ }
+
+ function RunTest()
+ {
+ try
+ {
+ var selection = window.getSelection();
+ var p1 = document.getElementById("p1");
+
+ var range = document.createRange();
+ range.selectNode(p1);
+ selection.addRange(range);
+ selection.collapseToEnd();
+
+ range.collapse(false);
+
+ checkSelectionAttributes(range.startContainer, range.startOffset, range.endContainer, range.endOffset, true, 1);
+ if ("" != selection.toString())
+ {
+ testPassed = false;
+ }
+
+ if (testPassed)
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <p id="p1">Collapse the selection with collapseToEnd()</p>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapseToStart.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapseToStart.htm
new file mode 100644
index 000000000..da9676d57
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/collapseToStart.htm
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Collapse the selection with collapseToStart()</title>
+ <script type="text/javascript">
+ var testPassed = true;
+
+ function checkSelectionAttributes(anchorNode, anchorOffset, focusNode, focusOffset, collapsed, rangeCount)
+ {
+ var selection = window.getSelection();
+ if (anchorNode != selection.anchorNode)
+ {
+ testPassed = false;
+ }
+ if (anchorOffset != selection.anchorOffset)
+ {
+ testPassed = false;
+ }
+ if (focusNode != selection.focusNode)
+ {
+ testPassed = false;
+ }
+ if (focusOffset != selection.focusOffset)
+ {
+ testPassed = false;
+ }
+ if (collapsed != selection.isCollapsed)
+ {
+ testPassed = false;
+ }
+ if (rangeCount != selection.rangeCount)
+ {
+ testPassed = false;
+ }
+ }
+
+ function RunTest()
+ {
+ try
+ {
+ var selection = window.getSelection();
+ var p1 = document.getElementById("p1");
+
+ var range = document.createRange();
+ range.selectNode(p1);
+ selection.addRange(range);
+ selection.collapseToStart();
+
+ range.collapse(true);
+
+ checkSelectionAttributes(range.startContainer, range.startOffset, range.endContainer, range.endOffset, true, 1);
+ if ("" != selection.toString())
+ {
+ testPassed = false;
+ }
+
+ if (testPassed)
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <p id="p1">Collapse the selection with collapseToStart()</p>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/deleteFromDocument.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/deleteFromDocument.htm
new file mode 100644
index 000000000..2373939cc
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/deleteFromDocument.htm
@@ -0,0 +1,80 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Delete some text from the document while it is part of a selection</title>
+ <script type="text/javascript">
+ var testPassed = true;
+
+ function checkSelectionAttributes(anchorNode, anchorOffset, focusNode, focusOffset, collapsed, rangeCount)
+ {
+ var selection = window.getSelection();
+ if (anchorNode != selection.anchorNode)
+ {
+ testPassed = false;
+ }
+ if (anchorOffset != selection.anchorOffset)
+ {
+ testPassed = false;
+ }
+ if (focusNode != selection.focusNode)
+ {
+ testPassed = false;
+ }
+ if (focusOffset != selection.focusOffset)
+ {
+ testPassed = false;
+ }
+ if (collapsed != selection.isCollapsed)
+ {
+ testPassed = false;
+ }
+ if (rangeCount != selection.rangeCount)
+ {
+ testPassed = false;
+ }
+ }
+
+ function RunTest()
+ {
+ try
+ {
+ var selection = window.getSelection();
+ var p2 = document.getElementById("p2");
+ var expectedResult = "abcdeuvwxyz";
+
+ var range = document.createRange();
+ range.setStart(p2.firstChild, 5);
+ range.setEnd(p2.firstChild, 20);
+ selection.addRange(range);
+ selection.deleteFromDocument();
+ p2.normalize();
+
+ range.collapse(true);
+
+ checkSelectionAttributes(range.startContainer, range.startOffset, range.endContainer, range.endOffset, true, 1);
+
+ if (expectedResult != p2.firstChild.data)
+ {
+ testPassed = false;
+ }
+
+ if (testPassed)
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <p id="p1">Delete some text from the document while it is part of a selection</p>
+ <p id="p2">abcdefghijklmnopqrstuvwxyz</p>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/getRangeAt.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/getRangeAt.htm
new file mode 100644
index 000000000..a3911e6cd
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/getRangeAt.htm
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Get the range from the selection</title>
+ <script type="text/javascript">
+ function RunTest()
+ {
+ try
+ {
+ var selection = window.getSelection();
+ var p1 = document.getElementById("p1");
+ var testPassed = true;
+
+ var range = document.createRange();
+ range.selectNode(p1);
+ selection.addRange(range);
+
+ var returnedRange = selection.getRangeAt(0);
+
+ if (range.toString() != returnedRange.toString())
+ {
+ testPassed = false;
+ }
+ if (range.startContainer != returnedRange.startContainer)
+ {
+ testPassed = false;
+ }
+ if (range.startOffset != returnedRange.startOffset)
+ {
+ testPassed = false;
+ }
+ if (range.endContainer != returnedRange.endContainer)
+ {
+ testPassed = false;
+ }
+ if (range.endOffset != returnedRange.endOffset)
+ {
+ testPassed = false;
+ }
+
+ if (testPassed)
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <p id="p1">Get the range from the selection</p>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/insertNodeIntoSelection.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/insertNodeIntoSelection.htm
new file mode 100644
index 000000000..4ec0d80f3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/insertNodeIntoSelection.htm
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Insert a new element and text node into an element that is currently selected</title>
+ <script type="text/javascript">
+ function RunTest()
+ {
+ try
+ {
+ var selection = window.getSelection();
+ var expectedText = "some textnew text";
+ var div1 = document.getElementById("div1");
+ var range = document.createRange();
+ range.selectNode(div1);
+ selection.addRange(range);
+
+ var ele = document.createElement("div");
+ var tNode = document.createTextNode("new text");
+ ele.appendChild(tNode);
+ div1.appendChild(ele);
+
+ if (expectedText == selection.toString())
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <p>This test inserts a new element with a text node child into the current selection.</p>
+ <div id="div1">some text</div>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/removeAllRanges.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/removeAllRanges.htm
new file mode 100644
index 000000000..869e5391d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/removeAllRanges.htm
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Call removeAllRanges() to clear the selection</title>
+ <script type="text/javascript">
+ var testPassed = true;
+
+ function checkDefaultSelectionAttributes()
+ {
+ var selection = window.getSelection();
+ if (null != selection.anchorNode)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.anchorOffset)
+ {
+ testPassed = false;
+ }
+ if (null != selection.focusNode)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.focusOffset)
+ {
+ testPassed = false;
+ }
+ if (!selection.isCollapsed)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.rangeCount)
+ {
+ testPassed = false;
+ }
+ }
+
+ function RunTest()
+ {
+ try
+ {
+ var selection = window.getSelection();
+ var p1 = document.getElementById("p1");
+
+ var range = document.createRange();
+ range.selectNode(p1);
+ selection.addRange(range);
+ selection.removeAllRanges();
+
+ checkDefaultSelectionAttributes();
+ if ("" != selection.toString())
+ {
+ testPassed = false;
+ }
+
+ if (testPassed)
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <p id="p1">Call removeAllRanges() to clear the selection</p>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/removeRange.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/removeRange.htm
new file mode 100644
index 000000000..e35047b47
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/removeRange.htm
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Remove the range from the selection</title>
+ <script type="text/javascript">
+ var testPassed = true;
+
+ function checkDefaultSelectionAttributes()
+ {
+ var selection = window.getSelection();
+ if (null != selection.anchorNode)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.anchorOffset)
+ {
+ testPassed = false;
+ }
+ if (null != selection.focusNode)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.focusOffset)
+ {
+ testPassed = false;
+ }
+ if (!selection.isCollapsed)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.rangeCount)
+ {
+ testPassed = false;
+ }
+ }
+
+ function RunTest()
+ {
+ try
+ {
+ var selection = window.getSelection();
+ var p1 = document.getElementById("p1");
+
+ var range = document.createRange();
+ range.selectNode(p1);
+ selection.addRange(range);
+ selection.removeRange(range);
+
+ checkDefaultSelectionAttributes();
+ if ("" != selection.toString())
+ {
+ testPassed = false;
+ }
+ if (testPassed)
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <p id="p1">Remove the range from the selection by calling removeRange()</p>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/select.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/select.htm
new file mode 100644
index 000000000..f6a31f249
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/select.htm
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Call select() on a text field</title>
+ <script type="text/javascript">
+ var testPassed = true;
+
+ function checkDefaultSelectionAttributes()
+ {
+ var selection = window.getSelection();
+ if (null != selection.anchorNode)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.anchorOffset)
+ {
+ testPassed = false;
+ }
+ if (null != selection.focusNode)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.focusOffset)
+ {
+ testPassed = false;
+ }
+ if (!selection.isCollapsed)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.rangeCount)
+ {
+ testPassed = false;
+ }
+ }
+
+ function RunTest()
+ {
+ try
+ {
+ var input1 = document.getElementById("input1");
+
+ input1.select();
+
+ checkDefaultSelectionAttributes();
+
+ var selectionText = input1.value.substring(input1.selectionStart, input1.selectionEnd);
+ if (input1.value != selectionText)
+ {
+ testPassed = false;
+ }
+
+ if (testPassed)
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <input style="WIDTH: 500px" id="input1" value="Some text in an input control" type="text" />
+ <p>Select the text in the input element by calling select()</p>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/selectAllChildren.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/selectAllChildren.htm
new file mode 100644
index 000000000..a3ab4f57d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/selectAllChildren.htm
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Call selectAllChildren() where the parameter is a text node</title>
+ <script type="text/javascript">
+ function RunTest()
+ {
+ try
+ {
+ var selection = window.getSelection();
+ var div1 = document.getElementById("div1");
+ selection.selectAllChildren(div1.firstChild);
+
+ if ("" == selection.toString())
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <div id="div1">Call selectAllChildren() where the parameter is a text node</div>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/selectionStartEnd.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/selectionStartEnd.htm
new file mode 100644
index 000000000..c5b69d570
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/selectionStartEnd.htm
@@ -0,0 +1,74 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Set selectionStart and selectionEnd on a text field</title>
+ <script type="text/javascript">
+ var testPassed = true;
+
+ function checkDefaultSelectionAttributes()
+ {
+ var selection = window.getSelection();
+ if (null != selection.anchorNode)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.anchorOffset)
+ {
+ testPassed = false;
+ }
+ if (null != selection.focusNode)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.focusOffset)
+ {
+ testPassed = false;
+ }
+ if (!selection.isCollapsed)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.rangeCount)
+ {
+ testPassed = false;
+ }
+ }
+
+ function RunTest()
+ {
+ try
+ {
+ var input1 = document.getElementById("input1");
+ var expectedResult = "text";
+
+ input1.selectionStart = 5;
+ input1.selectionEnd = 9;
+
+ checkDefaultSelectionAttributes();
+
+ var selectionText = input1.value.substring(input1.selectionStart, input1.selectionEnd);
+ if (expectedResult != selectionText)
+ {
+ testPassed = false;
+ }
+
+ if (testPassed)
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <input style="WIDTH: 500px" id="input1" value="Some text in an input control" type="text" />
+ <p>Select some text in the input element by setting selectionStart and selectionEnd</p>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/selection/setSelectionRange.htm b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/setSelectionRange.htm
new file mode 100644
index 000000000..a6d7a0f2b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/selection/setSelectionRange.htm
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML>
+<html>
+ <head>
+ <title id="desc">HTML5 Selection: Call setSelectionRange() on a text field</title>
+ <script type="text/javascript">
+ var testPassed = true;
+
+ function checkDefaultSelectionAttributes()
+ {
+ var selection = window.getSelection();
+ if (null != selection.anchorNode)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.anchorOffset)
+ {
+ testPassed = false;
+ }
+ if (null != selection.focusNode)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.focusOffset)
+ {
+ testPassed = false;
+ }
+ if (!selection.isCollapsed)
+ {
+ testPassed = false;
+ }
+ if (0 != selection.rangeCount)
+ {
+ testPassed = false;
+ }
+ }
+
+ function RunTest()
+ {
+ try
+ {
+ var input1 = document.getElementById("input1");
+ var expectedResult = "input";
+
+ input1.setSelectionRange(16, 21);
+
+ checkDefaultSelectionAttributes();
+
+ var selectionText = input1.value.substring(input1.selectionStart, input1.selectionEnd);
+ if (expectedResult != selectionText)
+ {
+ testPassed = false;
+ }
+
+ if (testPassed)
+ {
+ document.getElementById("testresult").firstChild.data = "PASS";
+ }
+ }
+ catch (ex)
+ {
+ document.getElementById("testresult").firstChild.data = "FAIL";
+ }
+ }
+ </script>
+ </head>
+ <body onload="RunTest();">
+ <input style="WIDTH: 500px" id="input1" value="Some text in an input control" type="text" />
+ <p>Call setSelectionRange() on the input element to select some of the text</p>
+ <p>Test passes if the word "PASS" appears below.</p>
+ <div>Test result: </div>
+ <div id="testresult">FAIL</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/structuredclone/echo.js b/testing/web-platform/tests/old-tests/submission/Microsoft/structuredclone/echo.js
new file mode 100644
index 000000000..02184921c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/structuredclone/echo.js
@@ -0,0 +1 @@
+onmessage = function (ev) { postMessage(ev.data); } \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/structuredclone/structuredclone_0.html b/testing/web-platform/tests/old-tests/submission/Microsoft/structuredclone/structuredclone_0.html
new file mode 100644
index 000000000..ed0e35d9a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/structuredclone/structuredclone_0.html
@@ -0,0 +1,400 @@
+<!doctype html>
+<html>
+ <head>
+ <meta content="text/html; charset=utf-8" http-equiv="content-type" />
+ <title>2.8 Common DOM interfaces - Structured Clone Algorithm </title>
+ <link rel="help" href="http://www.w3.org/TR/html5/common-dom-interfaces.html#safe-passing-of-structured-data" />
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="log"></div>
+
+<script type="text/javascript">
+ var worker;
+ var testCollection;
+ setup(function()
+ {
+ //the worker is used for each test in sequence
+ //worker's callback will be set for each test
+ //worker's internal onmessage echoes the data back to this thread through postMessage
+ worker = new Worker("./echo.js");
+ testCollection = [
+ function() {
+ var t = async_test("Primitive string is cloned");
+ t.id = 0;
+ worker.onmessage = t.step_func(function(e) {assert_equals("primitive string", e.data, "\"primitive string\" === event.data"); t.done(); });
+ t.step(function() { worker.postMessage("primitive string");});
+ },
+ function() {
+ var t = async_test("Primitive integer is cloned");
+ t.id = 1;
+ worker.onmessage = t.step_func(function(e) {assert_equals(2000, e.data, "2000 === event.data"); t.done(); });
+ t.step(function() { worker.postMessage(2000);});
+ },
+ function() {
+ var t = async_test("Primitive floating point is cloned");
+ t.id = 2;
+ worker.onmessage = t.step_func(function(e) {assert_equals(111.456, e.data, "111.456 === event.data"); t.done(); });
+ t.step(function() { worker.postMessage(111.456);});
+ },
+ function() {
+ var t = async_test("Primitive floating point (negative) is cloned");
+ t.id = 3;
+ worker.onmessage = t.step_func(function(e) {assert_equals(-111.456, e.data, "-111.456 === event.data"); t.done(); });
+ t.step(function() { worker.postMessage(-111.456);});
+ },
+ function() {
+ var t = async_test("Primitive number (hex) is cloned");
+ t.id = 4;
+ worker.onmessage = t.step_func(function(e) {assert_equals(0xAB25, e.data, "0xAB25 === event.data"); t.done(); });
+ t.step(function() { worker.postMessage(0xAB25);});
+ },
+ function() {
+ var t = async_test("Primitive number (scientific) is cloned");
+ t.id = 5;
+ worker.onmessage = t.step_func(function(e) {assert_equals(15e2, e.data, "15e2 === event.data"); t.done(); });
+ t.step(function() { worker.postMessage(15e2);});
+ },
+ function() {
+ var t = async_test("Primitive boolean is cloned");
+ t.id = 6;
+ worker.onmessage = t.step_func(function(e) {assert_equals(false, e.data, "false === event.data"); t.done(); });
+ t.step(function() { worker.postMessage(false);});
+ },
+ function() {
+ var t = async_test("Instance of Boolean is cloned");
+ t.id = 7;
+ var obj;
+ t.step(function() {obj = new Boolean(false);});
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "Boolean === event.data.constructor");
+ assert_equals(obj.valueOf(), e.data.valueOf(), "(new Boolean(false)).valueof() === event.data.valueOf()");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },function() {
+ var t = async_test("Instance of Number is cloned");
+ t.id = 8;
+ var obj;
+ t.step(function() {obj = new Number(2000);});
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "Number === event.data.constructor");
+ assert_equals(obj.valueOf(), e.data.valueOf(), "(new Number(2000)).valueof() === event.data.valueOf()");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Instance of String is cloned");
+ t.id = 9;
+ var obj;
+ t.step(function() { obj = new String("String Object");});
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "String === event.data.constructor");
+ assert_equals(obj.valueOf(), e.data.valueOf(), "(new String(\"String Object\")).valueof() === event.data.valueOf()");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Instance of Date is cloned");
+ t.id = 10;
+ var obj;
+ t.step(function() { obj= new Date(2011,1,1);});
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "Date === event.data.constructor");
+ assert_equals(obj.valueOf(), e.data.valueOf(), "(new Date(2011,1,1)).valueof() === event.data.valueOf()");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Instance of RegExp is cloned");
+ t.id = 11;
+ var obj;
+ t.step(function() {obj = new RegExp("w3+c","g","i");});
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "RegExp === event.data.constructor");
+ assert_equals(obj.source, e.data.source, "canon.source === event.data.source");
+ assert_equals(obj.multiline, e.data.multiline, "canon.multiline === event.data.multiline");
+ assert_equals(obj.global, e.data.global, "canon.global === event.data.global");
+ assert_equals(obj.ignoreCase, e.data.ignoreCase, "canon.ignoreCase === event.data.ignoreCase");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Value 'null' is cloned");
+ t.id = 12;
+ worker.onmessage = t.step_func(function(e) {assert_equals(null, e.data, "null === event.data"); t.done(); });
+ t.step(function() { worker.postMessage(null);});
+ },
+ function() {
+ var t = async_test("Value 'undefined' is cloned");
+ t.id = 13;
+ worker.onmessage = t.step_func(function(e) {assert_equals(undefined, e.data, "undefined === event.data"); t.done(); });
+ t.step(function() { worker.postMessage(undefined);});
+ },
+ function() {
+ var t = async_test("Object properties are cloned");
+ t.id = 14;
+ var obj;
+ t.step(function() {
+ obj= {};
+ obj.a = "test";
+ obj.b = 2;
+ obj["child"] = 3;
+ });
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "canon.constructor === event.data.constructor");
+ assert_equals(obj.a, e.data.a, "canon.a === event.data.a");
+ assert_equals(obj.b, e.data.b, "canon.b === event.data.b");
+ assert_equals(obj.child, e.data.child, "canon.child === e.data.child");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Prototype chains are not walked.");
+ t.id = 15;
+ function Custom() {
+ this.a = "hello";
+ }
+
+ var obj;
+ t.step(function() {
+ Object.defineProperty(Custom.prototype, "b", { enumerable: true, value: 100 });
+ obj = new Custom();
+ });
+ worker.onmessage = t.step_func(function(e) {
+ assert_not_equals(obj.constructor, e.data.constructor, "canon.constructor !== event.data.constructor");
+ assert_equals(Object, e.data.constructor, "Object === e.data.constructor");
+ assert_equals(obj.a, e.data.a, "canon.a === e.data.a");
+ assert_equals(undefined, e.data.b, "undefined === e.data.b");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Property descriptors of Objects are not cloned");
+ t.id = 16;
+ var obj;
+ t.step(function() {
+ obj = {};
+ Object.defineProperty(obj, "a", { enumerable: true, writable: false, value: 100 });
+ });
+ worker.onmessage = t.step_func(function(e) {
+ var des = Object.getOwnPropertyDescriptor(e.data, "a");
+ assert_equals(obj.constructor, e.data.constructor, "canon.constructor === event.data.constructor");
+ assert_true(des.writable, "Descriptor is writable");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Cycles are preserved in Objects");
+ t.id = 17;
+ var obj;
+ t.step(function() {
+ obj = {};
+ obj.a = obj;
+ });
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "canon.constructor === event.data.constructor");
+ assert_equals(e.data, e.data.a, "cycle is preserved");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Identity of duplicates is preserved");
+ t.id = 18;
+ var ref;
+ var obj;
+ t.step(function() {
+ ref = {};
+ ref.called = 0;
+ Object.defineProperty(ref, "child", {get: function(){this.called++;}, enumerable: true});
+
+ obj = {a:ref, b:ref};
+ });
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "canon.constructor === event.data.constructor");
+ assert_equals(e.data.b.called, 0, "e.data.b.called === 0");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Property order is preserved");
+ t.id = 19;
+ var obj;
+ t.step(function() {
+ obj = { "a": "hello", "b": "w3c", "c": "and world" };
+ obj["a"] = "named1";
+ });
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "canon.constructor === event.data.constructor");
+ var canonNames = Object.getOwnPropertyNames(obj);
+ var testNames = Object.getOwnPropertyNames(e.data);
+ for (var i in canonNames) {
+ assert_equals(canonNames[i], testNames[i], "canonProperty["+i+"] === dataProperty["+i+"]");
+ }
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Enumerable properties of Arrays are cloned");
+ t.id = 20;
+ var obj;
+ t.step(function() {
+ obj = [0,1];
+ obj["a"] = "named1";
+ });
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "canon.constructor === event.data.constructor");
+ assert_equals(e.data["a"], "named1", "e.data[\"a\"] === \"named1\"");
+ assert_equals(e.data[0], 0, "e.data[0] === 0");
+ assert_equals(e.data[1], 1, "e.data[1] === 1");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Property descriptors of Arrays are not cloned");
+ t.id = 21;
+ var obj;
+ t.step(function() {
+ obj = [0, 1];
+ Object.defineProperty(obj, "2", { enumerable: true, writable: false, value: 100 });
+ });
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "canon.constructor === event.data.constructor");
+ assert_equals(e.data[0], 0, "e.data[0] === 0");
+ assert_equals(e.data[1], 1, "e.data[1] === 1");
+ var des = Object.getOwnPropertyDescriptor(e.data, "2");
+ assert_true(des.writable, "Descriptor is writable");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Cycles are preserved in Arrays");
+ t.id = 22;
+ var obj;
+ t.step(function() {
+ obj = [0,1];
+ obj[2] = obj;
+ });
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "canon.constructor === event.data.constructor");
+ assert_equals(e.data[0], 0, "e.data[0] === 0");
+ assert_equals(e.data[1], 1, "e.data[1] === 1");
+ assert_equals(e.data[2], e.data, "e.data[2] === e.data");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+
+ function() {
+ var t = async_test("ImageData object can be cloned");
+ t.id = 23;
+ var obj;
+ t.step(function() {
+ var canvas = document.createElement("canvas");
+ canvas.width = 40;
+ canvas.height = 40;
+ var context = canvas.getContext('2d');
+ obj = context.createImageData(40, 40);
+ assert_true(window.hasOwnProperty("ImageData"), "ImageData constructor must be present");
+ assert_true(obj instanceof ImageData, "ImageData must be returned by .createImageData");
+ });
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "canon.constructor === event.data.constructor");
+ assert_not_equals(obj, e.data, "cloned object should be a new instance of ImageData");
+ assert_equals(obj.width, e.data.width, "canon.width === e.data.width");
+ assert_equals(obj.height, e.data.height, "canon.height === e.data.height");
+ assert_array_equals(obj.data, e.data.data, "data arrays are the same");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("ImageData expandos are not cloned");
+ t.id = 24;
+ var obj;
+ t.step(function() {
+ var canvas = document.createElement("canvas");
+ canvas.width = 40;
+ canvas.height = 40;
+ var context = canvas.getContext('2d');
+ obj = context.createImageData(40, 40);
+ assert_true(window.hasOwnProperty("ImageData"), "ImageData constructor must be present");
+ assert_true(obj instanceof ImageData, "ImageData must be returned by .createImageData");
+ obj.foo = "bar";
+ });
+ worker.onmessage = t.step_func(function(e) {
+ assert_equals(obj.constructor, e.data.constructor, "canon.constructor === event.data.constructor");
+ assert_not_equals(obj, e.data, "cloned object should be a new instance of ImageData");
+ assert_equals(obj.width, e.data.width, "canon.width === e.data.width");
+ assert_equals(obj.height, e.data.height, "canon.height === e.data.height");
+ assert_array_equals(obj.data, e.data.data, "data arrays are the same");
+ assert_equals(undefined, e.data.foo, "Expando is lost (undefined === e.data.foo)");
+ t.done();
+ });
+ t.step(function() { worker.postMessage(obj);});
+ },
+ function() {
+ var t = async_test("Window objects cannot be cloned");
+ t.id = 25;
+ worker.onmessage = function() {}; //no op because exception should be thrown.
+ t.step(function() {
+ assert_true(DOMException.hasOwnProperty('DATA_CLONE_ERR'), "DOMException.DATA_CLONE_ERR is present");
+ assert_equals(DOMException.DATA_CLONE_ERR, 25, "DOMException.DATA_CLONE_ERR === 25");
+ assert_throws('DATA_CLONE_ERR', function() {worker.postMessage(window)});
+ });
+ t.done();
+ },
+ function() {
+ var t = async_test("Document objects cannot be cloned");
+ t.id = 26;
+ worker.onmessage = function() {}; //no op because exception should be thrown.
+ t.step(function() {
+ assert_true(DOMException.hasOwnProperty('DATA_CLONE_ERR'), "DOMException.DATA_CLONE_ERR is present");
+ assert_equals(DOMException.DATA_CLONE_ERR, 25, "DOMException.DATA_CLONE_ERR === 25");
+ assert_throws('DATA_CLONE_ERR', function() {worker.postMessage(document)});
+ });
+ t.done();
+ }
+ ];
+ }, {explicit_done:true});
+
+ //Callback for result_callback
+ //queues the next test in the array testCollection
+ //serves to make test execution sequential from the async worker callbacks
+ //alternatively, we would have to create a worker for each test
+ function testFinished(test) {
+ if(test.id < testCollection.length - 1) {
+ //queue the function so that stack remains shallow
+ queue(testCollection[test.id+1]);
+ } else {
+ //when the last test has run, explicitly end test suite
+ done();
+ }
+ }
+ function queue(func) {
+ setTimeout(func, 10);
+ }
+
+ add_result_callback(testFinished);
+ //start the first test manually
+ queue(testCollection[0]);
+
+
+
+
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/xhtml5/colgroup_valign_bottom.xhtml b/testing/web-platform/tests/old-tests/submission/Microsoft/xhtml5/colgroup_valign_bottom.xhtml
new file mode 100644
index 000000000..84da6dbf6
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/xhtml5/colgroup_valign_bottom.xhtml
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Microsoft/xhtml5/colgroup_valign_top.xhtml b/testing/web-platform/tests/old-tests/submission/Microsoft/xhtml5/colgroup_valign_top.xhtml
new file mode 100644
index 000000000..83b8c62e5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Microsoft/xhtml5/colgroup_valign_top.xhtml
Binary files differ
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/001.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/001.html
new file mode 100644
index 000000000..665019ed0
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/001.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: inline in markup </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');</script>
+ <script>log('inline script #2');</script>
+
+ <script type="text/javascript">
+
+ var t = async_test()
+
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'inline script #2' ]);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/002.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/002.html
new file mode 100644
index 000000000..dcaa163ea
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/002.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: external in markup </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script src="scripts/include-1.js"></script>
+ <script src="scripts/include-2.js"></script>
+
+ <script type="text/javascript">
+
+ var t = async_test()
+
+
+ function test() {
+ assert_array_equals(eventOrder, ['external script #1', 'external script #2' ]);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/003.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/003.html
new file mode 100644
index 000000000..053dd6aca
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/003.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: inline+external in markup </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1')</script>
+ <script src="scripts/include-2.js"></script>
+
+ <script type="text/javascript">
+
+ var t = async_test()
+
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'external script #2' ]);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/004.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/004.html
new file mode 100644
index 000000000..838c2feb7
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/004.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: external+inline in markup </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script src="scripts/include-1.js"></script>
+ <script>log('inline script #2')</script>
+
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['external script #1', 'inline script #2' ]);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/005.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/005.html
new file mode 100644
index 000000000..b0411284a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/005.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write inline in markup </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.write( '<script>log(\'doc write script\')<\/script>' );
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'doc write script', 'end script #1' ]);
+ t.done();
+ }
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/006.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/006.html
new file mode 100644
index 000000000..3f40ef1c1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/006.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write inline - multiple</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.write( '<script>log(\'doc write script 1\')<\/script>' );
+ document.write( '<script>log(\'doc write script 2\')<\/script>' );
+ eval('log(\'eval 1\')');
+ document.write( '<script>log(\'doc write script 3\')<\/script>' );
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'doc write script 1','doc write script 2', 'eval 1','doc write script 3', 'end script #1' ]);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/007.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/007.html
new file mode 100644
index 000000000..ee99bc36e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/007.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write external</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1' ]);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/008.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/008.html
new file mode 100644
index 000000000..9f6b3876e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/008.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write external - multiple</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
+ document.write( '<script src="scripts/include-2.js">log(\'ignore this\')<\/script>' );
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1', 'external script #2' ]);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/009.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/009.html
new file mode 100644
index 000000000..fc62b9d2b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/009.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write external - multiple with doc.write</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
+ document.write( '<script src="scripts/include-3.js">log(\'ignore this\')<\/script>' );
+ document.write( '<script src="scripts/include-2.js">log(\'ignore this\')<\/script>' );
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1', 'external script before doc write', 'document.write external script', 'external script after doc write', 'external script #2' ]);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/010.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/010.html
new file mode 100644
index 000000000..9c5fd849b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/010.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write external + inline - multiple with doc.write</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
+ document.write( '<script>log(\'inline with doc.write #1\')<\/script>' );
+ document.write( '<script src="scripts/include-2.js">log(\'ignore this\')<\/script>' );
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1', 'inline with doc.write #1', 'external script #2']);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/011.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/011.html
new file mode 100644
index 000000000..7bc10995d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/011.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write external + inline - multiple with doc.write + subsequent markup</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
+ document.write( '<script>log(\'inline with doc.write #1\')<\/script>' );
+ document.write( '<script src="scripts/include-2.js">log(\'ignore this\')<\/script>' );
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1', 'inline with doc.write #1', 'external script #2', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/012.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/012.html
new file mode 100644
index 000000000..41c3d066d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/012.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write external and onload events </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.write( '<script src="scripts/include-1.js" onload = "log(\'include-1 load\')">log(\'ignore this\')<\/script>' )
+ document.write( '<script src="scripts/include-3.js" onload = "log(\'include-3 load\')"><\/script>' )
+ document.write( '<script src="scripts/include-2.js" onload = "log(\'include-2 load\')">log(\'ignore this\')<\/script>' )
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1', 'include-1 load', 'external script before doc write', 'document.write external script', 'external script after doc write', 'include-3 load', 'external script #2', 'include-2 load', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/013.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/013.html
new file mode 100644
index 000000000..a3a9b8255
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/013.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added inline script earlier in document</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], false);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'head script #1','end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(function(){setTimeout(t.step_func(test), 100); })
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/014.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/014.html
new file mode 100644
index 000000000..eae7076ac
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/014.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: SCRIPT elements that move themselves in DOM </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.getElementsByTagName('head')[0].appendChild(document.getElementsByTagName('script')[2]);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log('script #2');
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'script #2']);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/015.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/015.html
new file mode 100644
index 000000000..88c28a8bc
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/015.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added inline+external+inline script earlier in document</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], false);
+ var s = testlib.addScript('', { 'src':'scripts/include-1.js' }, document.getElementsByTagName('head')[0], false);
+ testlib.addScript('log(\'head script #2\')', {}, document.getElementsByTagName('head')[0], false);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ ///XXX I think the spec allows this case to race
+ onload = function(){
+ setTimeout(t.step_func(
+ function() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'head script #1', 'head script #2', 'end script #1', 'external script #1', 'inline script #2'],
+ ['inline script #1', 'head script #1', 'head script #2', 'end script #1', 'inline script #2', 'external script #1']]);
+ t.done();
+ }),
+ 100);}
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/015a.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/015a.html
new file mode 100644
index 000000000..05113feb7
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/015a.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added inline+external+inline script earlier in document</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], false);
+ var s = testlib.addScript('', { 'src':'scripts/include-1.js?pipe=trickle(d1)' }, document.getElementsByTagName('head')[0], false);
+ testlib.addScript('log(\'head script #2\')', {}, document.getElementsByTagName('head')[0], false);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'head script #1', 'head script #2', 'end script #1', 'inline script #2', 'external script #1']);
+ t.done();
+ }
+ onload = function(){setTimeout(t.step_func(function() {test.apply(t)}), 2000); }
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/016.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/016.html
new file mode 100644
index 000000000..739560021
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/016.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added inline script later in document</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ testlib.addScript('log(\'body script #1\')', {}, document.body, false);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'body script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(function(){setTimeout(t.step_func(test), 100); })
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/017.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/017.html
new file mode 100644
index 000000000..78a0f7b1a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/017.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: multiple DOM added scripts later in document</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ testlib.addScript('log(\'body script #1\')', {}, document.getElementsByTagName('body')[0], false);
+ testlib.addScript('', { 'src':'scripts/include-1.js' }, document.getElementsByTagName('body')[0], false);
+ testlib.addScript('log(\'body script #2\')', {}, document.getElementsByTagName('body')[0], false);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ //The order of the external script vs the second inline script is undefined because the added script is async by default
+ //But we expect most UAs to have the second order
+ onload = function() {setTimeout(t.step_func(function() {
+ assert_any(assert_array_equals, eventOrder, [
+ ['inline script #1', 'body script #1', 'body script #2', 'end script #1', 'external script #1', 'inline script #2'],
+ ['inline script #1', 'body script #1', 'body script #2', 'end script #1', 'inline script #2', 'external script #1']]);
+ t.done();
+ }), 100);}
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/018.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/018.html
new file mode 100644
index 000000000..793343c43
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/018.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added scripts and doc.write</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ testlib.addScript('', { 'src':'scripts/include-3.js' }, document.getElementsByTagName('head')[0], false);
+ testlib.addScript('log(\'body script #2\')', {}, document.getElementsByTagName('body')[0], true);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ //XXX Need to test this delaying the document after we insert the external script and delaying the external script itself; afaict the spec allows us to race here on whether the document.write
+ //ever actually happens or not according to whether the insertion point is defined at the point at which the script is executed.
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [
+ ['inline script #1', 'body script #2', 'end script #1', 'external script before doc write', 'document.write external script', 'external script after doc write', 'inline script #2'],
+ ['inline script #1', 'body script #2', 'end script #1', 'inline script #2', 'external script before doc write', 'document.write external script', 'external script after doc write'],
+ ['inline script #1', 'body script #2', 'end script #1', 'inline script #2', 'external script before doc write', 'external script after doc write']
+ ]);
+ t.done();
+}
+ onload = t.step_func(function(){setTimeout(test.apply(t), 100); })
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/019.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/019.html
new file mode 100644
index 000000000..30fa63432
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/019.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added scripts and event handling </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script onload="log('inline #1 load')">
+ log('inline script #1');
+ testlib.addScript('', {'src':'scripts/include-1.js', 'onload':function(){log("external #1 load")}}, document.getElementsByTagName('head')[0], false);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'external #1 load', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'inline script #2', 'external script #1', 'external #1 load']
+ ]);
+ t.done();
+}
+ onload = function(){setTimeout(t.step_func(test), 100); }
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/020.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/020.html
new file mode 100644
index 000000000..abbfbf7db
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/020.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added script with data: URL </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <script>log('inline script #1');
+ testlib.addScript('', { 'src':'data:text/javascript,log("data URL script")' }, document.getElementsByTagName('body')[0], true);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'data URL script', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'inline script #2', 'data URL script']]);
+ t.done();
+ }
+ onload = function() {setTimeout( t.step_func(test), 100); }
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/021.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/021.html
new file mode 100644
index 000000000..92b5f0641
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/021.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added script with javascript: URL </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <script>log('inline script #1');
+ testlib.addScript('', { 'src':'javascript:log("JS URL script")' }, document.getElementsByTagName('body')[0], true);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', /*'JS URL script',*/ 'inline script #2']);
+ t.done();
+/* pass condition changed 2010-12-01 due to CT-198 */
+
+ }
+ onload = t.step_func(function(){setTimeout( test, 100); })
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/022.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/022.html
new file mode 100644
index 000000000..f56b43171
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/022.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added script, late .src </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <script>log('inline script #1');
+ var script = testlib.addScript('', { }, document.getElementsByTagName('body')[0], false);
+ script.src='scripts/include-1.js';
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ onload = function() {setTimeout(t.step_func(
+ function() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'inline script #2', 'external script #1']]);
+ t.done()
+ }),
+ 100)}
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/023.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/023.html
new file mode 100644
index 000000000..dc687ffe4
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/023.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added script, even later .src </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <script>log('inline script #1');
+ var script = testlib.addScript('', { }, document.getElementsByTagName('body')[0], false);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2', 'external script #1']);
+ t.done();
+}
+ onload = t.step_func(function(){
+ script.src='scripts/include-1.js';
+ script.onload = t.step_func(test);
+ })
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/024.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/024.html
new file mode 100644
index 000000000..37146f846
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/024.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added script, .src set twice</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <script>log('inline script #1');
+ var script = testlib.addScript('', { }, document.getElementsByTagName('body')[0], false);
+ script.src='scripts/include-1.js';
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'inline script #2', 'external script #1']]);
+ t.done();
+ }
+ onload = t.step_func(function(){
+ script.src='scripts/include-2.js'; // needs to be ignored, script already "is executed"
+ setTimeout(t.step_func(test), 100);
+ })
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/025.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/025.html
new file mode 100644
index 000000000..182be3aef
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/025.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM added script, .src set on script with content</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <script>log('inline script #1');
+ var script = testlib.addScript('log("inline DOM script #1")', { }, document.getElementsByTagName('body')[0], false);
+ script.src='scripts/include-1.js';
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'inline DOM script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(function(){
+ setTimeout(t.step_func(test), 100);
+ })
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/026.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/026.html
new file mode 100644
index 000000000..70fac7c7f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/026.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: doc write added script, .src set later</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <script>log('inline script #1');
+ var t = async_test();
+ document.write('<script><\/script>');
+ var scripts = document.getElementsByTagName('script');
+ scripts[scripts.length - 1].src = 'scripts/include-1.js';
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+
+ onload = function() {
+ setTimeout(
+ t.step_func(function() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'inline script #2', 'external script #1']]);
+ t.done();
+ }),
+ 100);
+ }
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/027.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/027.html
new file mode 100644
index 000000000..d3181d587
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/027.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: doc write added script with content, .src set later</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <script>log('inline script #1');
+ document.write('<script>log(\'doc.write script\')<\/script>');
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ document.getElementsByTagName('script')[4].src='scripts/include-1.js';
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'doc.write script', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(function(){
+ setTimeout(t.step_func(test), 100);
+ })
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/028.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/028.html
new file mode 100644
index 000000000..5d0207d85
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/028.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: javascript: URL</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <script>log('inline script #1');
+ window.location.replace('javascript:log(\'JS URL\')');
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [
+ ['inline script #1', 'end script #1', 'JS URL', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'inline script #2', 'JS URL']]);
+ t.done();
+ }
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/029.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/029.html
new file mode 100644
index 000000000..b3beeaef3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/029.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: javascript: URL in HREF</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <p><a href="javascript:log('JS URL')"></a></p>
+ <script>log('inline script #1');
+ if(document.links[0].click){
+ document.links[0].click();
+ }else{
+ var evt = document.createEvent("MouseEvents");
+ evt.initMouseEvent("click", true, true, window,
+ 0, 0, 0, 0, 0, false, false, false, false, 0, null);
+ document.links[0].dispatchEvent(evt);
+ }
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [
+ ['inline script #1', 'end script #1', 'JS URL', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'inline script #2', 'JS URL']]);
+ t.done();
+ }
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/030.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/030.html
new file mode 100644
index 000000000..9c83b9a26
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/030.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: javascript: URL in HREF, onclick handler</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <p><a href="javascript:log('JS URL')" onclick="log('click event');return true;"></a></p>
+ <script>log('inline script #1');
+ if(document.links[0].click){
+ document.links[0].click();
+ }else{
+ var evt = document.createEvent("MouseEvents");
+ evt.initMouseEvent("click", true, true, window,
+ 0, 0, 0, 0, 0, false, false, false, false, 0, null);
+ document.links[0].dispatchEvent(evt);
+ }
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ var w = window;
+ onload = function() {setTimeout(
+ t.step_func(function() {
+ w.assert_any(w.assert_array_equals, w.eventOrder,
+ [['inline script #1', 'click event', 'end script #1', 'JS URL', 'inline script #2'],
+ ['inline script #1', 'click event', 'end script #1', 'inline script #2', 'JS URL']]);
+ t.done();
+ }), 200);
+ }
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/031.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/031.html
new file mode 100644
index 000000000..166dda475
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/031.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: focus and blur events</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <form><input type="button" onclick="log('click event')" onfocus="log('focus event')" onblur="log('blur event')"><input type="button" onfocus="log('focus el 2 event')" onblur="log('blur event')"></form>
+ <script>log('inline script #1');
+ document.forms[0][0].focus();
+ document.forms[0][1].click();
+ document.forms[0][1].focus();
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log('inline script #2');
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'focus event', 'blur event', 'focus el 2 event', 'end script #1', 'inline script #2']);
+ t.done();
+ }
+ onload = t.step_func(function(){setTimeout(t.step_func(test), 200);})
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/032.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/032.html
new file mode 100644
index 000000000..a012ab29e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/032.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: innerHTML and scripts</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>log('inline script #1');
+ // script added with innerHTML should not run..
+ document.getElementsByTagName('div')[1].innerHTML = '<script>log("innerHTML script runs")<\/script><script src="scripts/include-1.js"><\/script>';
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(function(){setTimeout(t.step_func(test), 200);})
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/033.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/033.html
new file mode 100644
index 000000000..035bf0a23
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/033.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: innerHTML and scripts moved in DOM</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>log('inline script #1');
+ // script added with innerHTML should not run..
+ document.getElementsByTagName('div')[0].innerHTML = '<script>log("innerHTML script runs")<\/script><script src="scripts/include-1.js"><\/script>';
+ try{
+ document.body.appendChild( document.getElementsByTagName('div')[0].firstChild );
+ document.body.appendChild( document.getElementsByTagName('div')[0].firstChild );
+ }catch(e){
+ log('ERROR while testing');
+ }
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(function(){setTimeout(t.step_func(test), 200);})
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/034.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/034.html
new file mode 100644
index 000000000..8dcb4294d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/034.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: innerHTML adding frames with JS in</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>log('inline script #1');
+ document.getElementsByTagName('div')[1].innerHTML = '<iframe src="pages/helloworld.html"></iframe>';
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2', 'frame/popup script']);
+ t.done();
+}
+ onload = t.step_func(function(){setTimeout(t.step_func(test), 200);})
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/035.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/035.html
new file mode 100644
index 000000000..540439e7e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/035.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: innerHTML adding frames with JS in and moving scripts</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>log('inline script #1');
+ document.getElementsByTagName('div')[1].innerHTML = '<iframe src="pages/helloworld.html"></iframe>';
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2', 'frame/popup script']);
+ t.done();
+/*, ['inline script #1', 'end script #1', 'frame/popup script', 'inline script #2'] */
+
+ }
+ onload = t.step_func(function(){
+ try{
+ document.body.appendChild(document.importNode( top.frames[0].document.getElementsByTagName('script')[0], true ));
+ }catch(e){ log('ERROR - tested functionality not supported'); }
+ setTimeout(t.step_func(test), 200);
+ });
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/036.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/036.html
new file mode 100644
index 000000000..0eb4a6eb3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/036.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM cloning</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>log('inline script #1');
+ testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], true);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ try{
+ var script = document.getElementsByTagName('script')[0].cloneNode(true);
+ document.body.appendChild(script);
+ }catch(e){ log('ERROR - tested functionality not supported'); }
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'head script #1', 'end script #1', 'inline script #2' ]);
+ t.done();
+}
+ onload = t.step_func(function(){
+ setTimeout(t.step_func(test), 200);
+ });
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/037.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/037.html
new file mode 100644
index 000000000..aff995b47
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/037.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM movement with appendChild, inline</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>log('inline script #1');
+ var script = testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], true);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ try{
+ document.body.appendChild(script);
+ }catch(e){ log('ERROR - tested functionality not supported'); }
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'head script #1', 'end script #1', 'inline script #2' ]);
+ t.done();
+}
+ onload = t.step_func(function(){
+ setTimeout(t.step_func(test), 200);
+ });
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/038.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/038.html
new file mode 100644
index 000000000..3bbfe4604
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/038.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM movement with appendChild, external</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>log('inline script #1');
+ var script = testlib.addScript('', { 'src':'scripts/include-1.js' }, document.getElementsByTagName('head')[0], true);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ try{
+ document.body.appendChild(script);
+ }catch(e){ log('ERROR - tested functionality not supported'); }
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'inline script #2', 'external script #1']]);
+ t.done();
+}
+ onload = function() {
+ setTimeout(t.step_func(test), 200);
+ };
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/039.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/039.html
new file mode 100644
index 000000000..a0abdf161
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/039.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: IFRAMEs added with DOM</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>log('inline script #1');
+ for( var i=0; i<2; i++ ){
+ var iframe=document.createElement('iframe');
+ document.getElementsByTagName('div')[1].appendChild(iframe);
+ iframe.src='pages/helloworld.html?'+i+'&'+Math.random();
+ }
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [
+ ['inline script #1', 'end script #1', 'inline script #2', 'frame/popup script 0', 'frame/popup script 1'],
+ ['inline script #1', 'end script #1', 'inline script #2', 'frame/popup script 1', 'frame/popup script 0']]);
+ t.done();
+ }
+ onload = t.step_func(function() {
+ setTimeout(t.step_func(test), 200);
+ });
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/040.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/040.html
new file mode 100644
index 000000000..984bc6689
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/040.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: IFRAMEs added with DOM (innerHTML), javascript: URL</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>log('inline script #1');
+ document.getElementsByTagName('div')[1].innerHTML = '<iframe src="javascript:parent.log(\'JS URL\');\'<html><script>parent.log(\\\'frame script\\\')<\/script></html>\'"></iframe>';
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [
+ ['inline script #1', 'end script #1', 'JS URL', 'inline script #2', 'frame script'],
+ /* the following combination seems quite unlikely? */
+ ['inline script #1', 'end script #1', 'JS URL', 'frame script', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'inline script #2', 'JS URL', 'frame script']]);
+ t.done();
+}
+ onload = t.step_func(function(){
+ setTimeout(t.step_func(test), 200);
+ });
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/041.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/041.html
new file mode 100644
index 000000000..c2a0b9bc4
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/041.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write scripts that write scripts</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.write( '<script>log(\'inline with doc.write #1\'); document.write(\'<script src="scripts/include-4.js"><\\\/script>\');log(\'end inline with doc.write\');<\/script>' );
+ document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'inline with doc.write #1', 'end inline with doc.write', 'end script #1', 'include-4 before doc write', 'include-4 after doc write', 'external script before doc write', 'document.write external script', 'external script after doc write', 'external script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/042.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/042.html
new file mode 100644
index 000000000..e91ea116c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/042.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM mutation events when adding scripts: DOMNodeInserted </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.addEventListener( 'DOMNodeInserted', function(){ log('DOMNodeInserted'); }, false );
+ testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], false);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'head script #1', 'DOMNodeInserted', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/043.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/043.html
new file mode 100644
index 000000000..082ca618b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/043.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM mutation events when adding external scripts: DOMNodeInserted </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.addEventListener( 'DOMNodeInserted', function(){ log('DOMNodeInserted'); }, false );
+ testlib.addScript('', { src: 'scripts/include-1.js' }, document.getElementsByTagName('head')[0], false);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'DOMNodeInserted', 'end script #1', 'external script #1', 'inline script #2'],
+ ['inline script #1', 'DOMNodeInserted', 'end script #1', 'inline script #2', 'external script #1']]
+ );
+ t.done();
+ }
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/044.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/044.html
new file mode 100644
index 000000000..a0e1c03b0
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/044.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM mutation events when adding scripts: DOMNodeInsertedIntoDocument </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], false, function(s){s.addEventListener( 'DOMNodeInsertedIntoDocument', function(){ log('DOMNodeInsertedIntoDocument'); }, false ); } );
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'head script #1', 'DOMNodeInsertedIntoDocument', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/045.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/045.html
new file mode 100644
index 000000000..70520d06c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/045.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: DOM mutation events when adding external scripts: DOMNodeInsertedIntoDocument </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ testlib.addScript('', {src:'scripts/include-1.js'}, document.getElementsByTagName('head')[0], false, function(s){s.addEventListener( 'DOMNodeInsertedIntoDocument', function(){ log('DOMNodeInsertedIntoDocument'); }, false);});
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ onload = t.step_func(function() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'DOMNodeInsertedIntoDocument', 'end script #1', 'external script #1', 'inline script #2'],
+ ['inline script #1', 'DOMNodeInsertedIntoDocument', 'end script #1', 'inline script #2', 'external script #1']]);
+ t.done();
+ });
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/046.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/046.html
new file mode 100644
index 000000000..1598234e1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/046.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: no readystatechange events when adding external scripts </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ testlib.addScript('', {src:'scripts/include-1.js', onreadystatechange:function() {log( 'readystatechange '+ this.readyState );}}, document.getElementsByTagName('head')[0], false );
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1']);
+ t.done();
+ }
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/047.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/047.html
new file mode 100644
index 000000000..ab758d2f5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/047.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: adding and removing external script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=testlib.addScript('', {src:'scripts/include-1.js'}, document.getElementsByTagName('head')[0], false );
+ script.parentNode.removeChild(script);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1']);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/048.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/048.html
new file mode 100644
index 000000000..ceb18cae5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/048.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: adding inline script which sets its own .src </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=testlib.addScript('log(\'HEAD script start\');document.getElementsByTagName(\'script\')[0].src=\'scripts/include-1.js\';log(\'HEAD script end\')', {}, document.getElementsByTagName('head')[0], true );
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'HEAD script start', 'HEAD script end', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/049.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/049.html
new file mode 100644
index 000000000..65705bc1f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/049.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: adding external script but removeAttribute( src ) before it runs</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=testlib.addScript('log(\'HEAD script\');', { src:'scripts/include-1.js' }, document.getElementsByTagName('head')[0], false );
+ script.removeAttribute('src');
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1']);
+ t.done();
+ }
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/050.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/050.html
new file mode 100644
index 000000000..c9e990206
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/050.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: adding external script that removes all scripts from document</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=testlib.addScript('', { src:'scripts/include-5.js' }, document.getElementsByTagName('head')[0], false );
+ // caching might affect whether the below script runs or not. Adding Math.random() makes the test a bit more predictable? :-p
+ var script=testlib.addScript('', { src:'scripts/include-1.js?pipe=trickle(d1)&'+Math.random() }, document.getElementsByTagName('head')[0], false );
+ log('end script #1');
+ </script>
+ <script src="scripts/include-2.js?pipe=trickle(d4)"></script>
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'include-5 before removing scripts', 'include-5 after removing scripts', 'external script #1', 'external script #2']),
+ t.done();
+ }
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/051.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/051.html
new file mode 100644
index 000000000..e97c153b1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/051.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: interaction of parsing and script execution - script added through DOM</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ testlib.addScript('', { src: 'scripts/count-script-tags.js' }, document.body, true);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'script tags in DOM: 5', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'inline script #2', 'script tags in DOM: 6']]);
+ t.done();
+ }
+ onload = function(){setTimeout(t.step_func(test), 100); }
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/052.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/052.html
new file mode 100644
index 000000000..1147be247
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/052.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: interaction of parsing and script execution - external script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script src="scripts/count-script-tags.js"></script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['script tags in DOM: 4', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(function(){setTimeout(t.step_func(test), 100); })
+ </script>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/053.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/053.html
new file mode 100644
index 000000000..12ac6101a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/053.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: adding external script that removes itself from document when loading</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=testlib.addScript('', { src:'scripts/include-1.js', onload:function() {this.parentNode.removeChild(this);log('removed ' + this.localName);} }, document.getElementsByTagName('body')[0], true );
+ log('end script #1');
+ </script>
+ <script src="scripts/include-2.js"></script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'removed script', 'external script #2', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'external script #2', 'external script #1', 'removed script', 'inline script #2'],
+ ['inline script #1', 'end script #1', 'external script #2', 'inline script #2', 'external script #1', 'removed script']]
+ );
+ t.done();
+ }
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/054.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/054.html
new file mode 100644
index 000000000..3dc466435
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/054.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: removing newly inserted script from DOMNodeInserted handler - external script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.addEventListener( 'DOMNodeInserted', function listener(e){
+ log('DOMNodeInserted event');
+ e.target.parentNode.removeChild(e.target);
+ document.removeEventListener('DOMNodeInserted', listener);
+ }, false );
+ var script=testlib.addScript('', { src:'scripts/include-1.js?'+Math.random() }, document.getElementsByTagName('body')[0], true );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'DOMNodeInserted event', 'end script #1', 'inline script #2', 'external script #1'],
+ ['inline script #1', 'DOMNodeInserted event', 'end script #1', 'external script #1', 'inline script #2']]);
+ t.done();
+ }
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/055.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/055.html
new file mode 100644
index 000000000..8916d1a8b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/055.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: removing newly inserted script from DOMNodeInserted handler - inline script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ document.addEventListener( 'DOMNodeInserted', function listener(e){
+ log('DOMNodeInserted event');
+ e.target.parentNode.removeChild(e.target);
+ document.removeEventListener('DOMNodeInserted', listener);
+ }, false );
+ var script=testlib.addScript('log(\'added script\')', { }, document.getElementsByTagName('body')[0], true );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'added script', 'DOMNodeInserted event', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/056.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/056.html
new file mode 100644
index 000000000..873fb34d3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/056.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: appending code to initially empty SCRIPT tag in DOM </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=document.getElementsByTagName('script')[3];
+ script.appendChild( document.createTextNode('log("injected script code");') );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ // Test asserts the injected script should run
+ assert_array_equals(eventOrder, ['inline script #1', 'injected script code', 'end script #1', 'inline script #2']);
+ t.done();
+ }
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/057.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/057.html
new file mode 100644
index 000000000..dbec8895f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/057.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: appending code to initially non-empty SCRIPT tag in DOM (whitespace only) </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script>
+ </script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=document.getElementsByTagName('script')[3];
+ script.appendChild( document.createTextNode('log("injected script code");') );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test);
+ </script>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/058.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/058.html
new file mode 100644
index 000000000..730ba456f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/058.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: appending code to initially non-empty SCRIPT tag in DOM (comment only) </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script>/**/</script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=document.getElementsByTagName('script')[3];
+ script.appendChild( document.createTextNode('log("injected script code");') );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/059.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/059.html
new file mode 100644
index 000000000..a3ea560c4
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/059.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: appending code to initially non-empty SCRIPT tag in DOM after removing its initial child </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script>/**/</script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=document.getElementsByTagName('script')[3];
+ script.removeChild(script.firstChild);
+ script.appendChild( document.createTextNode('log("injected script code");') );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+ }
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/060.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/060.html
new file mode 100644
index 000000000..669dd2a74
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/060.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: appending code to initially non-empty SCRIPT tag in DOM after setting textContent/innerHTML</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script>log('HEAD script');</script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=document.getElementsByTagName('script')[3];
+ script.innerHTML='';
+ script.appendChild( document.createTextNode('log("injected script code 1");') );
+ script.textContent='';
+ script.appendChild( document.createTextNode('log("injected script code 2");') );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['HEAD script', 'inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/061.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/061.html
new file mode 100644
index 000000000..df708b7bf
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/061.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: cloneNode and script execution</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script>log('HEAD script');</script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=document.getElementsByTagName('script')[3];
+ document.body.appendChild( script.cloneNode(true) );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['HEAD script', 'inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/062.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/062.html
new file mode 100644
index 000000000..8eda26b71
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/062.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: cloneNode (shallow) and script execution</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script>log('HEAD script');</script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=document.getElementsByTagName('script')[3];
+ document.body.appendChild( script.cloneNode(false) ).appendChild(document.createTextNode('log("clone");'));
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['HEAD script', 'inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/063.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/063.html
new file mode 100644
index 000000000..9b939c4d4
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/063.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: cloneNode (deep) of the currently executing script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script>log('HEAD script');
+ if( !window.already_cloned ){
+ window.already_cloned=true;
+ var script=document.getElementsByTagName('script')[3];
+ document.getElementsByTagName('head')[0].appendChild( script.cloneNode(true) );
+ }
+ </script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['HEAD script', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/064.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/064.html
new file mode 100644
index 000000000..814e62545
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/064.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: cloneNode with external script</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script src="scripts/include-1.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=document.getElementsByTagName('script')[3];
+ document.body.appendChild( script.cloneNode(true) );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['external script #1', 'inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/065.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/065.html
new file mode 100644
index 000000000..92078df04
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/065.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: cloneNode with external script, changed .src</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script src="scripts/include-1.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=document.getElementsByTagName('script')[3].cloneNode(true);
+ script.src='scripts/include-2.js'
+ document.body.appendChild( script );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['external script #1', 'inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/066.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/066.html
new file mode 100644
index 000000000..58560aee0
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/066.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: cloneNode with external script, removing .src and adding content</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script src="scripts/include-1.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=document.getElementsByTagName('script')[3].cloneNode(true);
+ script.removeAttribute('src');
+ script.appendChild(document.createTextNode( 'log("cloned script");' ));
+ document.body.appendChild( script );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['external script #1', 'inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+}
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/067.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/067.html
new file mode 100644
index 000000000..7be0fd0ab
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/067.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: is a script with syntax error marked as "has run"? </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script>setup({allow_uncaught_exception:true})
+ var t = async_test()
+ </script>
+ <script>
+ log(This script will never run..
+ </script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>t.step(function() {
+ log('inline script #1');
+ var script=document.getElementsByTagName('script')[3].cloneNode(true);
+ script.removeChild(script.firstChild);
+ script.appendChild(document.createTextNode( 'log("cloned script");' ));
+ document.body.appendChild( script );
+ log('end script #1');
+ })
+ </script>
+ <script type="text/javascript">
+ t.step(function() {
+ log( 'inline script #2' );
+ });
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
+ t.done();
+ }
+ onload = t.step_func(test);
+</script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/068.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/068.html
new file mode 100644
index 000000000..c584653c8
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/068.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: external script and parsing of markup added with document.write </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>
+ log('inline script #1');
+ document.write('<script src="scripts/find-foo.js">log(\'inline code in external script (not expected to run!!)\')<\/script>' + '<div id="foo"></div>');
+ log('end script #1');
+
+ var t = async_test()
+
+
+ function test() {
+ if(!window.findFooLoaded) {
+ return setTimeout(t.step_func(test),200);
+ }
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'found #foo element: NO']);
+ t.done();
+ }
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/069.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/069.html
new file mode 100644
index 000000000..4d4aed265
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/069.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: external files added through DOM should not block further parsing while loading</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script>
+ testlib.addScript('',{src:'scripts/find-body.js?pipe=trickle(d1)'},document.getElementsByTagName('head')[0], true );
+ </script>
+</head>
+<body>
+ <script>
+ testlib.addScript('', {src:'scripts/find-foo.js?pipe=trickle(d1)'}, document.getElementsByTagName('head')[0], true);
+ </script>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <p><span id="foo"></span></p>
+
+ <script type="text/javascript">
+ var t = async_test()
+
+ function test() {
+ if(!(window.findFooLoaded && window.findBodyLoaded)) {
+ return setTimeout(t.step_func(test), 200);
+ }
+ assert_any(assert_array_equals, eventOrder,
+ [['document.body: <BODY>', 'found #foo element: YES'],
+ ['found #foo element: YES', 'document.body: <BODY>']]);
+ t.done();
+ }
+ onload = t.step_func(test)
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/070.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/070.html
new file mode 100644
index 000000000..45928b873
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/070.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write into IFRAME a script that adds a SCRIPT through DOM</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <iframe></iframe>
+
+ <script type="text/javascript">
+ var doc = document.getElementsByTagName('iframe')[0].contentDocument;
+ doc.open();
+
+ log("calling document.write");
+ doc.write('<script>top.log("inline script #1");'+
+ 'var s=document.createElement("script");'+
+ 's.src="scripts/include-6.js?'+new Date().getTime()+'";'+
+ 'document.getElementsByTagName("head")[0].appendChild(s);'+
+ '<\/script>'+
+ '<div id="foo"></div>'+
+ '<script>top.log("inline script #2");<\/script>'
+ );
+
+ log("calling document.close");
+ doc.close();
+
+ var t = async_test()
+
+
+ function test() {
+ if(!window.include6Loaded) {
+ return setTimeout(t.step_func(test),200);
+ }
+ assert_array_equals(eventOrder, ['calling document.write', 'inline script #1', 'inline script #2', 'calling document.close', 'external script (#foo found? YES)']);
+ t.done();
+}
+
+ onload = t.step_func(test)
+ </script>
+</head>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/071.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/071.html
new file mode 100644
index 000000000..304297494
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/071.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write several scripts into IFRAME </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <iframe style="width:1px;height:1px"></iframe>
+
+ <script type="text/javascript">
+ var doc = document.getElementsByTagName('iframe')[0].contentDocument;
+ doc.open();
+
+ var html = '<html><head><title>test</title></head>'+
+ '<script>top.log("inline script #1");'+
+ '<\/script>'+
+ /* made url unique because Chrome will change
+ order depending on file cached status */
+ '<script src="scripts/include-6.js?'+new Date().getTime()+'"><\/script>'+
+ '</head>'+
+ '<body>'+
+ '<div id="foo"></div>'+
+ '</body></html>'+
+ '<script>top.log("inline script #2");<\/script>';
+ log("calling document.write");
+ doc.write(html);
+
+ log("calling document.close");
+ doc.close();
+
+ var t = async_test()
+
+
+ function test() {
+ if( !window.include6Loaded )return setTimeout(t.step_func(test),200); // try checking again if external script didn't run yet
+ assert_array_equals(eventOrder, ['calling document.write',
+ 'inline script #1',
+ 'calling document.close',
+ 'external script (#foo found? NO)',
+ 'inline script #2'
+ ]);
+ t.done();
+}
+
+ onload = t.step_func(test)
+ </script>
+</head>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/072.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/072.html
new file mode 100644
index 000000000..348381df2
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/072.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write into IFRAME a script that creates new inline script in parent </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <iframe style="width:1px;height:1px"></iframe>
+
+ <script type="text/javascript">
+ var doc = document.getElementsByTagName('iframe')[0].contentDocument;
+ doc.open();
+
+ var html = '<html><head><title>test</title></head>'+
+ '<script>top.log("inline script #1");'+
+ '<\/script>'+
+ '</head>'+
+ '<body>'+
+ '<div id="foo"></div>'+
+ '</body></html>'+
+ '<script>top.testlib.addScript( \'log("inline script added to parent")\', null, top.document.body, true )<\/script>';
+ log("calling document.write");
+ doc.write(html);
+
+ log("calling document.close");
+ doc.close();
+
+ var t = async_test()
+
+
+ function test() {
+ assert_array_equals(eventOrder, ['calling document.write',
+ 'inline script #1',
+ 'inline script added to parent',
+ 'calling document.close',
+ ]);
+ t.done();
+}
+
+ onload = t.step_func(test)
+ </script>
+</head>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/073.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/073.html
new file mode 100644
index 000000000..56dc9180b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/073.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write into IFRAME a script that creates new external script in parent </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <iframe style="width:1px;height:1px"></iframe>
+
+ <script type="text/javascript">
+ var doc = document.getElementsByTagName('iframe')[0].contentDocument;
+ doc.open();
+
+ var html = '<html><head><title>test</title></head>'+
+ '<script>top.log("inline script #1");'+
+ '<\/script>'+
+ '</head>'+
+ '<body>'+
+ '<div id="foo"></div>'+
+ '</body></html>'+
+ '<script>top.testlib.addScript( \'\', { src:\'scripts/include-1.js\' }, top.document.body, true )<\/script>';
+ log("calling document.write");
+ doc.write(html);
+
+ log("calling document.close");
+ doc.close();
+
+ var t = async_test()
+
+
+ function test() {
+
+ assert_array_equals(eventOrder, ['calling document.write',
+ 'inline script #1',
+ 'calling document.close',
+ 'external script #1'
+ ]);
+
+ t.done();
+}
+
+ onload = t.step_func(test)
+ </script>
+</head>
+
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/074.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/074.html
new file mode 100644
index 000000000..6f1baef6b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/074.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: document.write into IFRAME a script that creates new inline script in parent that again adds script to IFRAME </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <iframe style="width:1px;height:1px"></iframe>
+
+ <script type="text/javascript">
+ var doc = document.getElementsByTagName('iframe')[0].contentDocument;
+ doc.open();
+ var str1='';
+ var html = '<html><head><title>test</title></head>'+
+ '<script>top.log("inline script #1");'+
+ '<\/script>'+
+ '</head>'+
+ '<body>'+
+ '<script>top.testlib.addScript( \'top.log("inline script added to parent");top.doc.write( "<script>top.log(\\\\"inline script added to iframe\\\\")<\\\/script>");\', null, top.document.body, true ) <\/script>'+
+ '</body></html>';
+ log("calling document.write");
+ doc.write(html);
+
+ log("calling document.close");
+ doc.close();
+
+ var t = async_test()
+
+
+ function test() {
+ assert_array_equals(eventOrder, ['calling document.write',
+ 'inline script #1',
+ 'inline script added to parent',
+ 'inline script added to iframe',
+ 'calling document.close',
+ ]);
+ t.done();
+}
+
+ onload = t.step_func(test)
+ </script>
+</head>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/075.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/075.html
new file mode 100644
index 000000000..40ec9bbb6
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/075.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>dispatchEvent from child frame during document.write :-o </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ </head>
+ <body onclick="log('click event')">
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <iframe></iframe>
+ <script>
+ var doc = document.getElementsByTagName("iframe")[0].contentDocument;
+ doc.open("text/html");
+ doc.write('<html><head><title>event dispatcher</title></head><body>Before script<script>top.log("inline script before event");var ev = parent.document.createEvent("MouseEvents");ev.initMouseEvent("click", true, false, null, 0, 0, 0, 0, 0, false, false, false, false, 0, null);parent.document.body.dispatchEvent(ev);top.log("inline script after event");</sc'+'ript> After script</body>');
+ log( 'end main script' );
+
+
+ </script>
+
+<script>
+ var t = async_test()
+
+ function test() {
+ if(test.ran)return; test.ran=true;
+
+ assert_array_equals(eventOrder, ['inline script before event',
+ 'click event',
+ 'inline script after event',
+ 'end main script'
+ ]);
+ doc.close();
+ t.done();
+}
+
+ onload = t.step_func(test)
+ /* onload doesn't fire in this test, a fallback.. */
+ setTimeout(t.step_func(test), 800 );
+</script>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/076.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/076.html
new file mode 100644
index 000000000..ad2359019
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/076.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: adding and removing external and inline scripts </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>log('inline script #1');
+ var script=testlib.addScript('', {src:'scripts/include-1.js', onload:function(e){ e.target.parentNode.removeChild(e.target); }}, document.getElementsByTagName('head')[0], false );
+ var script=testlib.addScript( 'log( "dynamically added inline script" )', null, document.getElementsByTagName('head')[0], false );
+ script.parentNode.removeChild(script);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ }
+ onload = t.step_func(function() {
+ assert_any(assert_array_equals, eventOrder, [['inline script #1', 'dynamically added inline script', 'end script #1', 'external script #1', 'inline script #2'],
+ ['inline script #1', 'dynamically added inline script', 'end script #1', 'inline script #2', 'external script #1']]);
+ t.done();
+ })
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/077.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/077.html
new file mode 100644
index 000000000..a7a594212
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/077.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title> adding several types of scripts through the DOM and removing some of them confuses scheduler </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script type="text/javascript">
+ var head = document.getElementsByTagName('head')[0];
+ function createScript(url, contents) {
+ props = {};
+ if (url) {
+ props.src = url;
+ }
+ return testlib.addScript(contents, props, head, false);
+ }
+ var t = async_test()
+
+ function test() {
+ var script = createScript('data:text\/javascript,log("Script #1 ran")');
+ var script2 = createScript('','log("Script #2 ran")');
+ if(script2) {
+ head.removeChild(script2);
+ }
+ var script3 = createScript('data:text\/javascript, log("Script #3 ran"); createScript(\'\', \'log("Script #4 ran")\')');
+ if(script3) {
+ head.removeChild(script3);
+ }
+ setTimeout(t.step_func(function(){
+ assert_array_equals(eventOrder, ['Script #2 ran', 'Script #1 ran', 'Script #3 ran','Script #4 ran']);
+ t.done();
+ }), 400);
+
+ };
+ onload = t.step_func(test)
+ </script>
+ </head>
+ <body>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ </body>
+</html*>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/078.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/078.html
new file mode 100644
index 000000000..556006a24
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/078.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title> adding several types of scripts through the DOM and removing some of them confuses scheduler (slow-loading scripts) </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script type="text/javascript">
+ setup({explicit_done:true});
+ var head=document.getElementsByTagName('head')[0];
+ function createScript(url, contents) {
+ props = {};
+ if (url) {
+ props.src = url;
+ }
+ return testlib.addScript(contents, props, head, false);
+ }
+ var t = async_test(undefined, {timeout:10000})
+
+ function test() {
+ document.getElementById("log").textContent = "Please wait..."
+ var url = 'scripts/include-1.js?pipe=trickle(d1)';
+ var script = createScript(url);
+ var script2 = createScript('', 'log("Script #2 ran")');
+ head.removeChild(script2);
+ var url = 'scripts/include-2.js?pipe=trickle(d2)';
+ var script3 = createScript(url);
+ head.removeChild(script3);
+
+ setTimeout(t.step_func(function() {
+ done();
+ assert_array_equals(eventOrder, ['Script #2 ran', 'external script #1', 'external script #2']);
+ t.done();
+ }), 5500);
+
+ };
+ onload = t.step_func(test)
+ </script>
+ </head>
+ <body>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ </body>
+</html*>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/079.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/079.html
new file mode 100644
index 000000000..8d684cebf
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/079.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title> setting location to javascript URL from event handler </title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="testlib/testlib.js"></script>
+<script type="text/javascript">
+log('inline script #1');
+var t = async_test()
+
+onload = t.step_func(function() {
+ log('onload handler');
+ document.getElementById("log").textContent = 'please wait...';
+ window.location='javascript:log("javascript: URL")';
+ setTimeout(t.step_func(function(){
+ log('timeout');
+ assert_array_equals(eventOrder, ['inline script #1', 'onload handler', 'onload ends', 'javascript: URL', 'timeout']);
+ t.done();
+ }), 200);
+ log('onload ends');
+});
+</script>
+</head>
+<body>
+<div id="log">FAILED (This TC requires JavaScript enabled)</div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/080.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/080.html
new file mode 100644
index 000000000..a55bc24d0
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/080.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: IFRAMEs added with DOM (appendChild), javascript: URL</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>log('inline script #1');
+ var iframe=document.createElement('iframe');
+ iframe.src='javascript:parent.log(\'JS URL\');\'<html><script>parent.log(\\\'frame script\\\')<\/script></html>\'';
+ document.getElementsByTagName('div')[1].appendChild(iframe);
+ log('end script #1');
+ </script>
+
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2', 'JS URL', 'frame script']);
+ t.done();
+ }
+ onload = t.step_func(function(){setTimeout(t.step_func(test), 400);})
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/081.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/081.html
new file mode 100644
index 000000000..94f2be6dd
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/081.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: slow loading external script added with DOM (appendChild)</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>
+ var t = async_test(undefined, {timeout:5000})
+ log('inline script #1');
+ testlib.addScript('', { src:'scripts/include-1.js?pipe=trickle(d1)&'+Math.random() }, document.getElementsByTagName('head')[0], false );
+ log('end script #1');
+ </script>
+ <script src="scripts/include-2.js"></script>
+ <script>
+ log( 'inline script #2' );
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #2', 'inline script #2', 'external script #1']);
+ t.done();
+ }
+ onload = t.step_func(function() {
+ setTimeout(t.step_func(test), 12);
+ });
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/082.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/082.html
new file mode 100644
index 000000000..89f86d4d4
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/082.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: multiple slow loading external scripts added with DOM (appendChild)</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div></div>
+ <script>
+
+ log('inline script #1');
+ function scriptLoadListener(){
+ log( 'load on '+this.src.match( /include-\d\.js/ ) );
+ }
+ var script=testlib.addScript('', { src:'scripts/include-1.js?pipe=trickle(d1)&' + Math.random(), onload:scriptLoadListener }, document.getElementsByTagName('head')[0], false );
+ var script=testlib.addScript('', { src:'scripts/include-2.js?pipe=trickle(d3)&' + Math.random(), onload:scriptLoadListener }, document.getElementsByTagName('head')[0], false );
+ var script=testlib.addScript('', { src:'scripts/include-7.js?pipe=trickle(d2)&' + Math.random() , onload:scriptLoadListener }, document.getElementsByTagName('head')[0], false );
+ log('end script #1');
+ </script>
+ <script type="text/javascript">
+ log('inline script #2');
+ var t = async_test(undefined, {timeout:10000})
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2', 'external script #1', 'load on include-1.js', 'external script #7', 'load on include-7.js', 'external script #2', 'load on include-2.js']);
+ t.done();
+ }
+ onload = function() {setTimeout(t.step_func(test), 12)};
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/083.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/083.html
new file mode 100644
index 000000000..b307041f8
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/083.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: event listener defined by script in a document in history</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <iframe src="about:blank"></iframe>
+ <script>
+ log('inline script #1');
+ function fireFooEvent(){
+ var evt=document.createEvent('Event');
+ evt.initEvent('foo', true, true);
+ document.dispatchEvent(evt);
+ }
+ var doc = frames[0].document;
+ doc.open('text/html');
+ doc.write('<script>top.log("IFRAME script");top.document.addEventListener("foo", function(e){ top.log("event: "+e.type); }, false)<\/script>');
+ log('end script #1');
+ </script>
+ <script>
+ fireFooEvent();
+ frames[0].location='about:blank'; // returning to about:blank should de-activate document that defined event listener..?
+ </script>
+ <script>
+ fireFooEvent();
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_equals(frames[0].location.toString(), "about:blank");
+ assert_array_equals(eventOrder, ['inline script #1',
+ 'IFRAME script',
+ 'end script #1',
+ 'event: foo',
+ 'inline script #2'
+ ]);
+ t.done();
+}
+ onload = function() {setTimeout(t.step_func(function() {fireFooEvent(); test()}), 80)};
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/084.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/084.html
new file mode 100644
index 000000000..5e9adb07d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/084.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: event listener defined by script in a removed IFRAME</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <iframe src="about:blank"></iframe>
+ <script>
+ log('inline script #1');
+ function fireFooEvent(){
+ var evt=document.createEvent('Event');
+ evt.initEvent('foo', true, true);
+ document.dispatchEvent(evt);
+ }
+ var doc=frames[0].document;
+ doc.open( 'text/html' );
+ doc.write( '<script>top.log("IFRAME script");top.document.addEventListener("foo", function(e){ top.log("event: "+e.type); }, false)<\/script>' );
+ log('end script #1');
+ </script>
+ <script>
+ fireFooEvent();
+ frames[0].frameElement.parentNode.removeChild( frames[0].frameElement ); // removing the IFRAME should de-activate document that defined event listener..?
+ </script>
+ <script>
+ fireFooEvent();
+ </script>
+ <script type="text/javascript">
+ log( 'inline script #2' );
+ var t = async_test()
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1',
+ 'IFRAME script',
+ 'end script #1',
+ 'event: foo',
+ 'inline script #2'
+ ]);
+ t.done();
+}
+ onload = t.step_func(test)
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/085.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/085.html
new file mode 100644
index 000000000..e0d165ffc
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/085.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: async script and slow-loading defer script</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script src="scripts/include-1.js?pipe=trickle(d1)" defer></script>
+ <script src="scripts/include-2.js" async></script>
+
+ <script type="text/javascript">
+ var t = async_test();
+ function test() {
+ assert_array_equals(eventOrder, ['external script #2', 'external script #1']);
+ t.done();
+ }
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/086.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/086.html
new file mode 100644
index 000000000..86db3aea5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/086.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: async script and slow-loading async script</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script src="scripts/include-1.js?pipe=trickle(d2)" async></script>
+ <script src="scripts/include-2.js" async></script>
+
+ <script type="text/javascript">
+ var t = async_test();
+ function test() {
+ assert_array_equals(eventOrder, ['external script #2', 'external script #1']);
+ t.done();
+ }
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/087.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/087.html
new file mode 100644
index 000000000..759335474
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/087.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: multiple defer scripts, one slow loading</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script src="scripts/include-1.js?pipe=trickle(d2)" defer></script>
+ <script src="scripts/include-2.js" defer></script>
+
+ <script type="text/javascript">
+ var t = async_test();
+ function test() {
+ assert_array_equals(eventOrder, ['external script #1', 'external script #2']);
+ t.done();
+ }
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/088.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/088.html
new file mode 100644
index 000000000..f7e7366e1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/088.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: multiple scripts with defer and async attributes</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script src="scripts/include-1.js?pipe=trickle(d2)" defer async></script>
+ <script src="scripts/include-2.js" defer async></script>
+
+ <script type="text/javascript">
+ var t = async_test();
+ function test() {
+ assert_array_equals(eventOrder, ['external script #2', 'external script #1']);
+ t.done();
+ }
+ onload = t.step_func(test);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/089.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/089.html
new file mode 100644
index 000000000..1b888ea3d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/089.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: async attribute on inline script</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script async>
+ var t = async_test();
+ log('inline script #1');
+ t.step(function() {
+ assert_array_equals(eventOrder, ['inline script #1']);
+ });
+ </script>
+ <script async>
+ log('inline script #2');
+ t.step(function() {
+ assert_array_equals(eventOrder, ['inline script #1', 'inline script #2']);
+ });
+ </script>
+
+ <script>
+ log('inline script #3');
+ t.step(function() {
+ assert_array_equals(eventOrder, ['inline script #1', 'inline script #2', 'inline script #3']);
+ });
+ onload = function() {t.done()};
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/090.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/090.html
new file mode 100644
index 000000000..224e79763
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/090.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: defer attribute on inline script</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script defer>
+ var t = async_test();
+ log('inline script #1');
+ t.step(function() {
+ assert_array_equals(eventOrder, ['inline script #1']);
+ });
+ </script>
+ <script defer>
+ log('inline script #2');
+ t.step(function() {
+ assert_array_equals(eventOrder, ['inline script #1', 'inline script #2']);
+ });
+ </script>
+
+ <script>
+ log('inline script #3');
+ t.step(function() {
+ assert_array_equals(eventOrder, ['inline script #1', 'inline script #2', 'inline script #3']);
+ });
+ onload = function() {t.done()};
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/091.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/091.html
new file mode 100644
index 000000000..946cf8333
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/091.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: force-async off on non-parser-inserted script</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>
+ var t = async_test(undefined, {timeout:4000});
+
+ sources = ["scripts/include-1.js?pipe=trickle(d2)", "scripts/include-2.js?pipe=trickle(d1)"];
+ sources.forEach(function(x) {
+ var script = document.createElement("script");
+ script.src = x;
+ t.step(function() {assert_equals(script.async, true, "async IDL attribute on script creation")});
+ script.async = false;
+ t.step(function() {assert_equals(script.async, false, "async IDL attribute after setting")});
+ t.step(function() {assert_equals(script.getAttribute("async"), null, "async content attribute after setting")});
+ document.head.appendChild(script);
+ });
+
+ onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ['external script #1', 'external script #2']);
+ t.done();
+ });
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/092.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/092.html
new file mode 100644
index 000000000..d42caa7c0
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/092.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: defer script and slow-loading non-async external script</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>
+ var t = async_test(undefined, {timeout:3500});
+
+ var script = document.createElement("script");
+ script.src = "scripts/include-2.js?pipe=trickle(d2)";
+ script.async = false;
+ document.head.appendChild(script);
+
+ onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ['external script #1', 'external script #2']);
+ t.done();
+ });
+ </script>
+ <script defer src="scripts/include-1.js"></script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/094.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/094.html
new file mode 100644
index 000000000..44fd7b559
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/094.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: parser-created defer script after document load</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <iframe id="myFrame"></iframe>
+
+ <script>
+ var t = async_test(undefined, {timeout:3500});
+ onload = t.step_func(function() {
+ var doc = document.getElementById("myFrame").contentDocument;
+ var win = document.getElementById("myFrame").contentWindow;
+ doc.open();
+ doc.write("<title> scheduler: parser-created defer script after document load</title><script src='/resources/testharness.js'><\/script><script src='/resources/testharnessreport.js'><\/script><script src='testlib/testlib.js'><\/script><script>var t=async_test()<\/script><div id=log></div><script defer src='data:text/javascript,parent.t.done();'><\/script>");
+ doc.close();
+ })
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/095.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/095.html
new file mode 100644
index 000000000..13142ef6c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/095.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: slow-loading script added from defer blocking load event</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>
+ var t = async_test(undefined, {timeout:3500});
+ function test() {
+ t.step(function() {
+ assert_array_equals(eventOrder, ['external script #8', 'external script #9']);
+ t.done();
+ });
+ }
+ //assert that the test is completed before onload fires
+ onload = t.step_func(function() {assert_unreached()});
+ </script>
+ <script defer src="scripts/include-8.js"></script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/096.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/096.html
new file mode 100644
index 000000000..d5e1e8b46
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/096.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: defer script added from document.write relative to DOMContentLoaded</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>
+ log("inline script #1");
+ document.write("<script defer src='scripts/include-1.js'><\/script>")
+ </script>
+ <script>
+ log("inline script #2");
+ var t = async_test();
+
+ addEventListener("DOMContentLoaded", t.step_func(function() {assert_array_equals(eventOrder, ["inline script #1", "inline script #2"])}), false);
+
+ onload = t.step_func(function() {assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "external script #1"]); t.done();});
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/097.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/097.html
new file mode 100644
index 000000000..083fd390a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/097.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: slow-loading async script added from document.write</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>
+ log("inline script #1");
+ document.write("<script async src='scripts/include-1.js?pipe=trickle(d2)'><\/script>")
+ </script>
+ <script>
+ log("inline script #2");
+ var t = async_test(undefined, {timeout:3500});
+
+ addEventListener("DOMContentLoaded", t.step_func(function() {assert_array_equals(eventOrder, ["inline script #1", "inline script #2"])}), false);
+
+ onload = t.step_func(
+ function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "external script #1"]);
+ t.done();
+ });
+
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/098.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/098.html
new file mode 100644
index 000000000..2d421a8a3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/098.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: defer script added from document.write</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>
+ log("inline script #1");
+ document.write("<script defer src='scripts/include-1.js'><\/script>")
+ </script>
+ <script>
+ log("inline script #2");
+ var t = async_test();
+
+ addEventListener("DOMContentLoaded", t.step_func(function() {assert_array_equals(eventOrder, ["inline script #1", "inline script #2"])}), false);
+
+ onload = t.step_func(function() {assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "external script #1"]); t.done();});
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/099.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/099.html
new file mode 100644
index 000000000..5c6df576e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/099.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: defer adding iframe containing script</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script defer src="scripts/include-11.js"></script>
+ <script>
+ var t = async_test();
+
+ onload = t.step_func(function() {assert_array_equals(eventOrder, ["external script before adding iframe", "script in iframe"]); t.done();});
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/100.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/100.html
new file mode 100644
index 000000000..d24828c99
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/100.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: defer adding iframe containing script</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script defer src="scripts/include-12.js"></script>
+ <script>
+ var t = async_test();
+
+ onload = t.step_func(function() {assert_array_equals(eventOrder, ["external script before adding object", "script in object"]); t.done();});
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/101.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/101.html
new file mode 100644
index 000000000..b868f9a44
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/101.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: defer script after initial onload event</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <iframe id="myFrame"></iframe>
+
+ <script>
+ var t = async_test();
+ onload = t.step_func(
+ function() {
+ var doc = document.getElementById("myFrame").contentDocument;
+ var win = document.getElementById("myFrame").contentWindow;
+ doc.open();
+ doc.write("<title> scheduler: defer script after initial onload event</title><script src='testlib/testlib.js'><\/script><div id='log'>document.written content</div><script>log('inline script #1');<\/script><script src='scripts/include-1.js'><\/script><script defer src='scripts/include-2.js'><\/script>");
+ doc.close();
+ //Note that the *window* object has changed but the *global scope* of the script has not.
+ var run_t = window.t.step_func(function() {
+ if (!win.eventOrder || win.eventOrder.length != 3) {
+ window.setTimeout(run_t, 100);
+ return;
+ }
+ window.assert_array_equals(win.eventOrder, ['inline script #1', 'external script #1', 'external script #2']);
+ window.t.done();
+ });
+ run_t();
+ });
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/102.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/102.html
new file mode 100644
index 000000000..67edbc659
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/102.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: defer script after initial onload event</title>
+</head>
+<body>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>
+ onload = function() {
+ document.open();
+ document.write("<title> scheduler: defer script after initial onload event</title><script src='/resources/testharness.js'><\/script><script src='/resources/testharnessreport.js'><\/script><script src='testlib/testlib.js'><\/script><div id='log'>document.written content</div><script>var t = async_test(); log('inline script #1')<\/script><script src='scripts/include-1.js'><\/script><script async src='scripts/include-2.js'><\/script>");
+ document.close();
+ window.setTimeout(function() {
+ window.t.step(function() {
+ window.assert_any(window.assert_array_equals, window.eventOrder,
+ [['inline script #1', 'external script #1', 'external script #2'],
+ ['inline script #1', 'external script #2', 'external script #1']]);
+ window.t.done();
+ })},
+ 1000);
+ };
+ </script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/103.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/103.html
new file mode 100644
index 000000000..198c394de
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/103.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: removing defer attribute at runtime</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="test"></div>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script id="defer-script" defer src="scripts/include-2.js"></script>
+ <script src="scripts/include-1.js"></script>
+
+ <script>
+ var t = async_test();
+
+ t.step(function() {
+ document.getElementById("defer-script").removeAttribute("defer");
+ });
+
+ var ran_defer_check = false;
+
+ document.addEventListener("readystatechange", t.step_func(function () {
+ if (document.readyState == "interactive") {
+ ran_defer_check = true;
+ assert_array_equals(eventOrder, ["external script #1"]);
+ }
+ }), false);
+
+ addEventListener("load", t.step_func(function () {
+ assert_true(ran_defer_check);
+ assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
+ t.done();
+ }), false);
+
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/104.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/104.html
new file mode 100644
index 000000000..b5cdb75e3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/104.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: adding defer attribute at runtime</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="test"></div>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script id="defer-script" src="scripts/include-1.js"></script>
+ <script src="scripts/include-2.js"></script>
+
+ <script>
+ var t = async_test();
+
+ t.step(function() {
+ document.getElementById("defer-script").setAttribute("defer", "defer");
+ });
+
+ var ran_defer_check = false;
+
+ document.addEventListener("readystatechange", t.step_func(function () {
+ if (document.readyState == "interactive") {
+ ran_defer_check = true;
+ assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
+ }
+ }), false);
+
+ addEventListener("load", t.step_func(function () {
+ assert_true(ran_defer_check);
+ assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
+ t.done();
+ }), false);
+
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/105.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/105.html
new file mode 100644
index 000000000..abf2c8c21
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/105.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: adding async attribute at runtime</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>
+ var t = async_test();
+
+ var sources = ["scripts/include-1.js?pipe=trickle(d2)",
+ "scripts/include-2.js"]
+ var scripts = sources.map(function(x) {
+ var script = document.createElement("script");
+ script.src = x;
+ script.async = false;
+ document.body.appendChild(script);
+ return script;
+ });
+ scripts[0].async = true;
+
+ addEventListener("load", t.step_func(function () {
+ assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
+ t.done();
+ }), false);
+
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/106-import.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/106-import.html
new file mode 100644
index 000000000..db7abcc88
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/106-import.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: stylesheets blocking scripts</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <!-- this stylesheet blocks scripts -->
+ <link rel="stylesheet" href="css/import.css?pipe=trickle(d2)">
+</head>
+<body>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div id="test">Test</div>
+
+ <script>
+ test(function() {
+ assert_equals(getComputedStyle(document.getElementById("test")).position,
+ "fixed");
+ });
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/106-noimport.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/106-noimport.html
new file mode 100644
index 000000000..8e099c580
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/106-noimport.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: stylesheets blocking scripts</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <!-- this stylesheet blocks scripts -->
+ <link rel="stylesheet" href="css/background.css?pipe=trickle(d2)">
+</head>
+<body>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div id="test">Test</div>
+
+ <script>
+ test(function() {
+ assert_equals(getComputedStyle(document.getElementById("test")).position,
+ "fixed");
+ });
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/107-import.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/107-import.html
new file mode 100644
index 000000000..0b572b072
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/107-import.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: stylesheets blocking scripts document.write</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div id="test">Test</div>
+
+ <!-- this stylesheet blocks scripts -->
+ <script>
+ test(function() {
+ document.write("<link rel='stylesheet' href='css/import.css?pipe=trickle(d2)'>");
+ // note that the pass condition here is not per spec (but does match implementations) as of 2012-06-26
+ assert_equals(getComputedStyle(document.getElementById("test")).position,
+ "static");
+ });
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/107-noimport.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/107-noimport.html
new file mode 100644
index 000000000..ce57d1f1c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/107-noimport.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: stylesheets blocking scripts document.write</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+ <div id="test">Test</div>
+
+ <!-- this stylesheet blocks scripts -->
+ <script>
+ test(function() {
+ document.write("<link rel='stylesheet' href='css/background.css?pipe=trickle(d2)'>");
+ // note that the pass condition here is not per spec (but does match implementations) as of 2012-06-26
+ assert_equals(getComputedStyle(document.getElementById("test")).position,
+ "static");
+ });
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/108.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/108.html
new file mode 100644
index 000000000..732fcfa9c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/108.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: javascript URL in iframe</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+ <div id="log">Not tested</div>
+ <script>
+ var t = async_test();
+ var iframe_onload = false;
+
+ t.step(function() {
+ log('inline script #1');
+ document.write("<iframe src='javascript:void(top.log(&quot;iframe script #1&quot;));'></iframe>");
+ log('inline script #2')
+ })
+
+ onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "iframe script #1"]);
+ t.done();
+ });
+ </script>
+</body>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/109.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/109.html
new file mode 100644
index 000000000..c6815b4dc
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/109.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: javascript URL in iframe, src set via DOM</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+ <div id="log">Not tested</div>
+ <script>
+ var t = async_test();
+
+ t.step(function() {
+ var iframe_onload = false;
+ log("inline script #1");
+ var iframe = document.createElement("iframe");
+ iframe.src = "javascript:void(top.log('JS URL'));";
+ log("inline script #2");
+ iframe.onload = function () { log("iframe onload") };
+ document.body.appendChild(iframe);
+ log("inline script #3");
+ })
+
+ onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "inline script #3", "JS URL", "iframe onload"]);
+ t.done();
+ });
+ </script>
+</body>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/110.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/110.html
new file mode 100644
index 000000000..de0c5050c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/110.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: removing defer script at runtime</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="test"></div>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script id="defer-script" defer src="scripts/include-2.js"></script>
+ <script src="scripts/include-1.js"></script>
+
+ <script>
+ var t = async_test();
+
+ t.step(function() {
+ var s = document.getElementById("defer-script");
+ s.parentNode.removeChild(s);
+ });
+
+ addEventListener("load", t.step_func(function () {
+ assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
+ t.done();
+ }), false);
+
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/111.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/111.html
new file mode 100644
index 000000000..144633c57
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/111.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: removing async attribute at runtime</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="test"></div>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script id="async-script" async src="scripts/include-2.js?pipe=trickle(d3)"></script>
+
+ <script>
+ var t = async_test();
+
+ t.step(function() {
+ document.getElementById("async-script").removeAttribute("async");
+ var s = document.createElement("script");
+ s.async = false;
+ s.src = "scripts/include-1.js";
+ document.body.appendChild(s);
+ });
+
+ addEventListener("load", t.step_func(function () {
+ assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
+ t.done();
+ }), false);
+
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/112.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/112.html
new file mode 100644
index 000000000..76c0a1550
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/112.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: removing async attribute at runtime, script also has defer attribute</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="test"></div>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script id="async-script" async defer src="scripts/include-1.js?pipe=trickle(d3)"></script>
+
+ <script>
+ var t = async_test();
+ document.getElementById("async-script").removeAttribute("async");
+
+ addEventListener("DOMContentLoaded", t.step_func(function () {
+ assert_array_equals(eventOrder, []);
+ }), false);
+
+ addEventListener("load", t.step_func(function () {
+ assert_array_equals(eventOrder, ["external script #1"]);
+ t.done();
+ }), false);
+
+ </script>
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/113.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/113.html
new file mode 100644
index 000000000..c857c6a97
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/113.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: Altering DOM using innerHTML during parse </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="test"></div>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script>
+ var t = async_test();
+
+ addEventListener("load", t.step_func(function () {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2"]);
+ t.done();
+ }), false);
+
+ </script>
+ <div id="container">
+ <script>t.step(function() {
+ log("inline script #1");
+ document.getElementById("container").innerHTML = "";
+ });
+ </script>
+ <script>t.step(function() {log("inline script #2")});</script>
+ </div>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/114.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/114.html
new file mode 100644
index 000000000..784a69f51
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/114.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: Changing src of defer script before it runs </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="test"></div>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script id="defer-script" defer src="scripts/include-1.js"></script>
+
+ <script>
+ var t = async_test();
+
+ document.getElementById("defer-script").src = "scripts/include-2.js"
+
+ addEventListener("load", t.step_func(function () {
+ assert_array_equals(eventOrder, ["external script #1"]);
+ t.done();
+ }), false);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/115.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/115.html
new file mode 100644
index 000000000..78790c2ef
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/115.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title> scheduler: Removing src of defer script before it runs </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+
+ <div id="test"></div>
+ <div id="log">FAILED (This TC requires JavaScript enabled)</div>
+
+ <script id="defer-script" defer src="scripts/include-1.js">t.step(function() {assert_unreached()})</script>
+
+ <script>
+ var t = async_test();
+
+ document.getElementById("defer-script").removeAttribute("src");
+
+ addEventListener("load", t.step_func(function () {
+ assert_array_equals(eventOrder, ["external script #1"]);
+ t.done();
+ }), false);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/116.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/116.html
new file mode 100644
index 000000000..fef7b8938
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/116.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: adding script to head of frameset document</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+ <script>
+ // add a script that looks for document.body as first child of HEAD
+ testlib.addScript('',{src:'scripts/find-body.js'},document.getElementsByTagName('head')[0], true );
+ var div = document.createElement("div");
+ div.id = "log";
+ var t = async_test();
+ function test() {
+ if(!(window.findBodyLoaded)) {
+ return setTimeout(t.step_func(test),200);
+ }
+ document.body.appendChild(div);
+ assert_array_equals(eventOrder, ['document.body: <FRAMESET>']);
+ t.done();
+ }
+ onload = t.step_func(test)
+ </script>
+</head>
+<frameset>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/117.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/117.html
new file mode 100644
index 000000000..3868a292a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/117.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: inline script created with createContextualFragment</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+ <div id="log"></div>
+ <script>
+ log('inline script #1');
+ var t = async_test();
+
+ t.step(function() {
+ var range = document.createRange();
+ var fragment = range.createContextualFragment("<script>log('fragment script #1')<\/script>");
+ document.body.appendChild(fragment.firstChild);
+ });
+
+ function test() {
+ assert_array_equals(eventOrder, ['inline script #1', 'fragment script #1', 'end inline script #1']);
+ t.done();
+ }
+ onload = t.step_func(test)
+ log('end inline script #1');
+ </script>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/118.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/118.html
new file mode 100644
index 000000000..f018001db
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/118.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: external script created with createContextualFragment</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+ <div id="log"></div>
+ <script>
+ log('inline script #1');
+ var t = async_test();
+
+ t.step(function() {
+ var range = document.createRange();
+ var fragment = range.createContextualFragment("<script src='scripts/include-1.js'><\/script>");
+ document.body.appendChild(fragment.firstChild);
+ });
+
+ addEventListener("load", t.step_func(function() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end inline script #1', 'external script #1']);
+ t.done();
+ }), false);
+
+ log('end inline script #1');
+ </script>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/119.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/119.html
new file mode 100644
index 000000000..af74c3d40
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/119.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: external defer script created with createContextualFragment</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+ <div id="log"></div>
+ <script>
+ log('inline script #1');
+ var t = async_test();
+
+ t.step(function() {
+ var range = document.createRange();
+ var fragment = range.createContextualFragment("<script defer src='scripts/include-1.js?pipe=trickle(d1)'><\/script>");
+ document.body.appendChild(fragment.firstChild);
+ });
+
+ addEventListener("DOMContentLoaded", t.step_func(function() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end inline script #1']);
+ t.done();
+ }));
+
+ addEventListener("load", t.step_func(function() {
+ assert_array_equals(eventOrder, ['inline script #1', 'end inline script #1', 'external script #1']);
+ t.done();
+ }));
+
+
+ log('end inline script #1');
+ </script>
+
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/120.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/120.html
new file mode 100644
index 000000000..d6af5d02e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/120.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: script created without a window </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+
+ var doc = document.implementation.createHTMLDocument("");
+ doc.write("<script>t.step(function() {assert_unreached()})<\/script>");
+
+ document.body.appendChild(doc.head.firstChild);
+
+ onload = function() {t.done()}
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/121.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/121.html
new file mode 100644
index 000000000..534532ad1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/121.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: altering the type attribute </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+</script>
+<script id="test" type="text/plain">t.step(function() {assert_unreached()}</script>
+<script>
+t.step(function() {
+ document.getElementById("test").removeAttribute("type");
+ setTimeout(t.step_func(function() {t.done()}), 100);
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/122.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/122.html
new file mode 100644
index 000000000..888681d2a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/122.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: altering the type attribute and adding/removing external script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:4000});
+</script>
+<script id="test" type="text/plain" src="scripts/include-1.js?pipe=trickle(d1)"></script>
+<script>
+t.step(function() {
+ var script = document.getElementById("test");
+ script.removeAttribute("type");
+ var marker = document.createElement("script");
+ marker.src = "scripts/include-2.js?pipe=trickle(d2)";
+ marker.async = false;
+ script.parentNode.appendChild(marker);
+ script.parentNode.appendChild(script);
+ test(function() {assert_true(script.async)}, "Reinserted script async IDL attribute");
+});
+onload = t.step_func(function () {
+ assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/123.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/123.html
new file mode 100644
index 000000000..375ae1316
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/123.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: altering the type attribute and adding/removing external script with async=false </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:4000});
+</script>
+<script id="test" type="text/plain" src="scripts/include-2.js?pipe=trickle(d1)"></script>
+<script>
+t.step(function() {
+ var script = document.getElementById("test");
+ script.removeAttribute("type");
+ script.async = false;
+ var marker = document.createElement("script");
+ marker.src = "scripts/include-1.js?pipe=trickle(d2)";
+ marker.async = false;
+ script.parentNode.appendChild(marker);
+ script.parentNode.appendChild(script);
+});
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/124.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/124.html
new file mode 100644
index 000000000..86eef3f78
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/124.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: altering the type attribute and changing script data inline script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+</script>
+<script id="test" type="text/plain">t.step(function() {log("inline script #1")});</script>
+<script>
+t.step(function() {
+ log("inline script #2");
+ var script = document.getElementById("test");
+ script.removeAttribute("type");
+ script.appendChild(document.createTextNode(""));
+ log("end inline script #2");
+});
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #2", "inline script #1", "end inline script #2"]);
+ t.done();
+})
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/125.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/125.html
new file mode 100644
index 000000000..6b50ca097
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/125.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: altering the type attribute and changing script data external script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:4000});
+</script>
+<script id="test" type="text/plain" src="scripts/include-1.js?pipe=trickle(d1)"></script>
+<script>
+t.step(function() {
+ var script = document.getElementById("test");
+ script.removeAttribute("type");
+ var marker = document.createElement("script");
+ marker.src = "scripts/include-2.js?pipe=trickle(d2)";
+ marker.async = false;
+ script.parentNode.appendChild(marker);
+ script.appendChild(document.createTextNode(""));
+});
+
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/126.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/126.html
new file mode 100644
index 000000000..5d258b59d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/126.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: altering the type attribute and changing script data external script async=false </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:4000});
+</script>
+<script id="test" type="text/plain" src="scripts/include-2.js"></script>
+<script>
+t.step(function() {
+ var script = document.getElementById("test");
+ script.removeAttribute("type");
+ script.async = false;
+ var marker = document.createElement("script");
+ marker.src = "scripts/include-1.js?pipe=trickle(d2)";
+ marker.async = false;
+ script.parentNode.appendChild(marker);
+ script.appendChild(document.createTextNode(""));
+});
+
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/127.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/127.html
new file mode 100644
index 000000000..efb0fe377
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/127.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: appending non-text children to script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+</script>
+<script id="test"></script>
+<script>
+t.step(function() {
+ log("inline script #1");
+ var script = document.getElementById("test");
+
+ var frag = document.createDocumentFragment();
+ var div = document.createElement("div");
+
+ div.textContent = "assert_unreached();"
+ frag.appendChild(document.createTextNode("t.step(function() {log('inline script #2');\n"));
+ frag.appendChild(div);
+ frag.appendChild(document.createTextNode("log('end inline script #2');})"));
+
+ script.appendChild(frag);
+ log("end inline script #1");
+});
+
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "end inline script #2", "end inline script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/128.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/128.html
new file mode 100644
index 000000000..a21fd8b4b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/128.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: appending script element to script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+</script>
+<script id="test"></script>
+<script>
+t.step(function() {
+ log("inline script #1");
+ var script = document.getElementById("test");
+
+ var frag = document.createDocumentFragment();
+ var inner_script = document.createElement("script");
+
+ inner_script.textContent = "t.step(function() {log('inline script #3');});"
+ frag.appendChild(document.createTextNode("t.step(function() {log('inline script #2');\n"));
+ frag.appendChild(inner_script);
+ frag.appendChild(document.createTextNode("log('end inline script #2');})"));
+
+ script.appendChild(frag);
+ log("end inline script #1");
+});
+
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "inline script #3", "end inline script #2", "end inline script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/129.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/129.html
new file mode 100644
index 000000000..1148d9fae
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/129.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: appending multiple script elements</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+</script>
+<div id="container"></div>
+<script>
+t.step(function() {
+ log("inline script #1");
+
+ var frag = document.createDocumentFragment();
+
+ scripts = ["2", "3", "4"].map(function(x) {
+ var s = document.createElement("script");
+ s.textContent = "t.step(function() {log('inline script #" + x + "')});";
+ return s
+ });
+
+
+ frag.appendChild(scripts[0]);
+ var div = document.createElement(div);
+ div.appendChild(scripts[1]);
+ frag.appendChild(div);
+ frag.appendChild(scripts[2]);
+
+ document.getElementById("container").appendChild(frag);
+ log("end inline script #1");
+});
+
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "inline script #3", "inline script #4", "end inline script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/130.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/130.html
new file mode 100644
index 000000000..af60e3cf4
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/130.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: appending external script element to script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+</script>
+<script id="test"></script>
+<script>
+t.step(function() {
+ log("inline script #1");
+ var script = document.getElementById("test");
+
+ var frag = document.createDocumentFragment();
+ var inner_script = document.createElement("script");
+
+ inner_script.src = "scripts/include-1.js?pipe=trickle(d1)";
+ frag.appendChild(document.createTextNode("t.step(function() {log('inline script #2');\n"));
+ frag.appendChild(inner_script);
+ frag.appendChild(document.createTextNode("log('end inline script #2');})"));
+
+ script.appendChild(frag);
+ log("end inline script #1");
+});
+
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "end inline script #2", "end inline script #1", "external script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/131.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/131.html
new file mode 100644
index 000000000..f7f14178b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/131.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: inline svg script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+ log("inline script #1")
+</script>
+<svg>
+<script>log("inline script #2")</script>
+</svg>
+<script>
+log("inline script #3");
+t.step(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "inline script #3"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/132.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/132.html
new file mode 100644
index 000000000..9a675be55
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/132.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: external svg script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+ log("inline script #1")
+</script>
+<svg>
+<script xlink:href="scripts/include-1.js"></script>
+</svg>
+<script>
+log("inline script #2");
+t.step(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "external script #1", "inline script #2"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/133.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/133.html
new file mode 100644
index 000000000..daecb3628
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/133.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: inline HTML script added by SVG script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+ log("inline script #1")
+</script>
+<svg>
+<script>
+log("inline script #2")
+var s = document.createElement("script");
+s.textContent = "log('inline script #3');";
+document.getElementsByTagName("svg")[0].appendChild(s);
+log("end inline script #2");
+</script>
+</svg>
+<script>
+log("inline script #4");
+t.step(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "inline script #3",
+ "end inline script #2", "inline script #4"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/134.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/134.html
new file mode 100644
index 000000000..14cd5d0d3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/134.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: external HTML script added by SVG script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+ log("inline script #1")
+</script>
+<svg>
+<script>
+log("inline script #2")
+var s = document.createElement("script");
+s.src = "scripts/include-1.js"
+document.getElementsByTagName("svg")[0].appendChild(s);
+log("end inline script #2");
+</script>
+</svg>
+<script>
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2",
+ "end inline script #2", "external script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/135.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/135.html
new file mode 100644
index 000000000..15ee85982
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/135.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: external SVG script added by SVG script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test();
+ log("inline script #1")
+</script>
+<svg>
+<script>
+log("inline script #2")
+var s = document.createElementNS("http://www.w3.org/2000/svg", "script");
+s.setAttributeNS("http://www.w3.org/1999/xlink", "href", "scripts/include-1.js");
+document.getElementsByTagName("svg")[0].appendChild(s);
+log("end inline script #2");
+</script>
+</svg>
+<script>
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2",
+ "end inline script #2", "external script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/136.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/136.html
new file mode 100644
index 000000000..4a47e8527
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/136.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: DOM added external SVG script, force-async? </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:3000});
+</script>
+<svg>
+<script>
+
+var s1 = document.createElement("script");
+s1.src = "scripts/include-1.js";
+s1.async = false;
+
+var s = document.createElementNS("http://www.w3.org/2000/svg", "script");
+s.setAttributeNS("http://www.w3.org/1999/xlink", "href", "scripts/include-2.js?pipe=trickle(d2)");
+
+document.getElementsByTagName("svg")[0].appendChild(s);
+document.getElementsByTagName("svg")[0].appendChild(s1);
+
+</script>
+</svg>
+<script>
+onload = t.step_func(function() {
+ <!-- assumes that the SVg script should be async -->
+ assert_array_equals(eventOrder, ["external script #1", "external script #2"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/137.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/137.html
new file mode 100644
index 000000000..c0e695462
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/137.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: SVG script empty xlink:href</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:3000});
+</script>
+<svg>
+<script xlink:href="">
+t.step(function() {assert_unreached()});
+</script>
+</svg>
+<script>
+onload = t.step_func(function() {
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/138.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/138.html
new file mode 100644
index 000000000..0eaad0765
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/138.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: SVG script nested inlines</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:3000});
+</script>
+<svg>
+<script>
+t.step(function() {
+log("inline script #2");
+var a = {
+ <script>
+ t.step(function() {log("inline script #1")})
+ </script>
+a:1}
+log("end inline script #2");
+});
+</script>
+</svg>
+<script>
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "end inline script #2"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/139.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/139.html
new file mode 100644
index 000000000..f1cbc158c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/139.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: SVG script nested external in inline</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:3000});
+</script>
+<svg>
+<script>
+t.step(function() {
+log("inline script #1");
+var a = {
+ <script xlink:href="scripts/include-1.js">
+ t.step(function() {assert_unreached()})
+ </script>
+a:1}
+log("end inline script #1");
+});
+</script>
+</svg>
+<script>
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["external script #1", "inline script #1", "end inline script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/140.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/140.html
new file mode 100644
index 000000000..fbdd1c76e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/140.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: SVG script nested inline in external</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:3000});
+</script>
+<svg>
+<script xlink:href="scripts/include-1.js">
+ <script>
+ t.step(function() {log("inline script #1")});
+ </script>
+</script>
+</svg>
+<script>
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "external script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/141.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/141.html
new file mode 100644
index 000000000..a237373bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/141.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: SVG inline script that document.writes inline script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:3000});
+</script>
+<svg>
+<script>
+ t.step(function() {
+ log('inline script #1');
+ document.write("<" + "script>t.step(function() {log('inline script #2')})<" + "/script>");
+ log('end inline script #1');
+ });
+</script>
+</svg>
+<script>
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "end inline script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/142.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/142.html
new file mode 100644
index 000000000..91f19f757
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/142.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: SVG inline script that document.writes external script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:3000});
+</script>
+<svg>
+<script>
+ t.step(function() {
+ log('inline script #1');
+ document.write("<" + "script xlink:href='scripts/include-1.js'><" + "/script>");
+ log('end inline script #1');
+ });
+</script>
+<script>t.step(function() {log("inline script #2")});</script>
+</svg>
+<script>
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "end inline script #1", "external script #1", "inline script #2"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/143.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/143.html
new file mode 100644
index 000000000..9c0230d89
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/143.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: SVG nested inline script that document.writes inline script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:3000});
+</script>
+<svg>
+<script>
+ t.step(function() {
+ log('inline script #3');
+ });
+ <script>
+ log("inline script #1")
+ document.write("<" + "script>t.step(function() {log('inline script #2')})<" + "/script><" + "/script>");
+ </script>
+ t.step(function() {
+ assert_unreached():
+ });
+</script>
+</svg>
+<script>
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "inline script #3"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/144.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/144.html
new file mode 100644
index 000000000..96a1f4777
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/144.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: SVG inline script changing the type attribute </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:3000});
+</script>
+<svg>
+<script type="text/plain">
+t.step(function() {assert_unreached()});
+</script>
+</svg>
+<script>
+t.step(function() {
+ var s = document.querySelector("svg > script");
+ s.textContent = "t.step(function() {log('inline script #1')})";
+ s.type = "";
+ s.parentNode.appendChild(s);
+});
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/145.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/145.html
new file mode 100644
index 000000000..655a2132b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/145.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: SVG inline script adding text to empty script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>
+ var t = async_test(undefined, {timeout:3000});
+</script>
+<svg>
+<script></script>
+</svg>
+<script>
+t.step(function() {
+ var s = document.querySelector("svg > script");
+ s.textContent = "t.step(function() {log('inline script #1')})";
+});
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/146.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/146.html
new file mode 100644
index 000000000..c666a51a3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/146.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: SVG script adding src attribute </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<div id="log"></div>
+<script>var t = async_test();</script>
+<svg>
+<script></script>
+</svg>
+<script>
+t.step(function() {
+ var s = document.querySelector("svg > script");
+ s.src = "scripts/include-1.js";
+});
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["external script #1"]);
+ t.done();
+});
+</script>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/147.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/147.html
new file mode 100644
index 000000000..0542380ff
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/147.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: insert multiple inline scripts; first script moves subsequent scripts </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+var t = async_test();
+</script>
+<div id="container"></div>
+<script>
+t.step(function() {
+ log("inline script #1");
+ var container = document.getElementById("container");
+
+ var frag = document.createDocumentFragment();
+ var frag_script_1 = document.createElement("script");
+ var frag_script_2 = document.createElement("script");
+ frag_script_2.id = "movee";
+ var frag_script_3 = document.createElement("script");
+
+ frag_script_1.textContent = "t.step(function() {log('inline script #2'); var s = document.getElementById('movee'); s.parentNode.appendChild(s)});";
+ frag_script_2.textContent = "t.step(function() {log('inline script #3');})";
+ frag_script_3.textContent = "t.step(function() {log('inline script #4');})";
+
+ [frag_script_1, frag_script_2, frag_script_3].forEach(function(x) {frag.appendChild(x)});
+
+ container.appendChild(frag);
+});
+
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "inline script #3", "inline script #4"]);
+ t.done();
+});
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/148.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/148.html
new file mode 100644
index 000000000..72a914380
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/148.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: insert multiple inline scripts; first script deletes subsequent script </title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+var t = async_test();
+</script>
+<div id="container"></div>
+<script>
+t.step(function() {
+ log("inline script #1");
+ var container = document.getElementById("container");
+
+ var frag = document.createDocumentFragment();
+ var frag_script_1 = document.createElement("script");
+ var frag_script_2 = document.createElement("script");
+ frag_script_2.id = "delete";
+ var frag_script_3 = document.createElement("script");
+
+ frag_script_1.textContent = "t.step(function() {log('inline script #2'); var s = document.getElementById('delete'); s.parentNode.removeChild(s)});";
+ frag_script_2.textContent = "t.step(function() {log('inline script #3');})";
+ frag_script_3.textContent = "t.step(function() {log('inline script #4');})";
+
+ [frag_script_1, frag_script_2, frag_script_3].forEach(function(x) {frag.appendChild(x)});
+
+ container.appendChild(frag);
+});
+
+onload = t.step_func(function() {
+ assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "inline script #3", "inline script #4"]);
+ t.done();
+});
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/149.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/149.html
new file mode 100644
index 000000000..6fe9b68ba
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/149.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html><head>
+ <title>scheduler: event/for attribute on script</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="testlib/testlib.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+
+attributes = [
+ {for:"window", event:"onload()", expect:true},
+ {for:"window", event:"onload", expect:true},
+ {for:" WINdow\t\n", event:"ONload\t\n", expect:true},
+ {for:"window", event:"load", expect:false},
+ {for:"window", event:"onpageshow", expect:false},
+ {for:"document", event:"onload", expect:false},
+]
+
+function test_maker(array_name) {
+ return function(x, i) {
+ var title = "for='" + x.for + "' event='" + x.event + "' " + array_name.replace("_", " ") + " " + (x.expect ? "executes immediately" : "does not execute");
+ script_content = "var d =" + array_name + "[" + i + "];"
+ script_content += x.expect?"d[1].step(function() {d[3] = true});":"d[1].step(function() {assert_unreached()});"
+ return [x, async_test(title), script_content, false];
+ }
+}
+
+parser_inserted = attributes.map(test_maker("parser_inserted"));
+dom_inserted = attributes.map(test_maker("dom_inserted"));
+
+parser_inserted.forEach(function(x) {
+ var d = x[0];
+ document.write("<script for='" + d.for + "' event='" + d.event + "'>" + x[2] + "<\/script>");
+});
+
+dom_inserted.forEach(function(x) {
+ var d = x[0];
+ var s = document.createElement("script");
+ s.setAttribute("event", d.event);
+ s.setAttribute("for", d.for);
+ s.textContent = x[2];
+ document.body.appendChild(s);
+});
+</script>
+
+<script>
+var all_tests = parser_inserted.concat(dom_inserted);
+
+all_tests.filter(function(x) {return x[0]["expect"]}).forEach(function(x) {var t = x[1]; t.step(function() {assert_true(x[3])});})
+
+onload = function() {
+ all_tests.forEach(function(x) {var t = x[1]; t.step(function() {t.done()})});
+}
+</script>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/css/background.css b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/css/background.css
new file mode 100644
index 000000000..86a155b81
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/css/background.css
@@ -0,0 +1 @@
+#test {position:fixed} \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/css/import.css b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/css/import.css
new file mode 100644
index 000000000..d1664c29a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/css/import.css
@@ -0,0 +1 @@
+@import url("background.css") \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/pages/helloworld-postMessage.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/pages/helloworld-postMessage.html
new file mode 100644
index 000000000..cae2797a4
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/pages/helloworld-postMessage.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html><head>
+ <title> TC component </title>
+</head>
+<body>
+
+ <p>This page should appear in popup or frame</p>
+
+ <script type="text/javascript">
+ var target = opener || top;
+ var id = location.search?' '+location.search.substring(1) : '';
+ target.log('frame/popup script'+id);
+ window.onload=function(){
+ target.log('load event inside frame/popup script'+id);
+ target.postMessage('msg evt frame/popup script'+id, '*');
+ }
+ </script>
+
+</body></html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/pages/helloworld.html b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/pages/helloworld.html
new file mode 100644
index 000000000..30d5c5fda
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/pages/helloworld.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html><head>
+ <title> TC component </title>
+</head>
+<body>
+
+ <p>This page should appear in popup or frame</p>
+
+ <script type="text/javascript">
+ var target = top || opener;
+ var id = location.search?' '+parseInt(location.search.substring(1)) : '';
+ target.log('frame/popup script'+id);
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/count-script-tags.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/count-script-tags.js
new file mode 100644
index 000000000..8fba4ecb3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/count-script-tags.js
@@ -0,0 +1 @@
+log('script tags in DOM: '+document.getElementsByTagName('script').length); \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/find-body.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/find-body.js
new file mode 100644
index 000000000..22e1050ff
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/find-body.js
@@ -0,0 +1,2 @@
+log('document.body: '+(document.body?'<BODY>':null));
+var findBodyLoaded=true; \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/find-foo.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/find-foo.js
new file mode 100644
index 000000000..52d0ec91c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/find-foo.js
@@ -0,0 +1,2 @@
+log('found #foo element: ' + ( document.getElementById('foo') ? 'YES' : 'NO' ));
+var findFooLoaded=true; \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-1.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-1.js
new file mode 100644
index 000000000..8ff291ad5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-1.js
@@ -0,0 +1 @@
+log('external script #1'); \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-10.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-10.js
new file mode 100644
index 000000000..8dc770ddc
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-10.js
@@ -0,0 +1 @@
+document.write("<script src='scripts/include-9.js?pipe=trickle(d2)' defer></script>");
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-11.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-11.js
new file mode 100644
index 000000000..a822dd8ba
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-11.js
@@ -0,0 +1,4 @@
+log("external script before adding iframe");
+var iframe = document.createElement("iframe");
+iframe.src = "data:text/html,<script>parent.log('script in iframe')</script>"
+document.body.appendChild(iframe); \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-12.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-12.js
new file mode 100644
index 000000000..7ced0fb42
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-12.js
@@ -0,0 +1,4 @@
+log("external script before adding object");
+var object = document.createElement("object");
+object.data = "data:text/html,<script>parent.log('script in object')</script>"
+document.body.appendChild(object); \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-2.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-2.js
new file mode 100644
index 000000000..31319423a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-2.js
@@ -0,0 +1 @@
+log('external script #2'); \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-3.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-3.js
new file mode 100644
index 000000000..53352e0f8
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-3.js
@@ -0,0 +1,3 @@
+log('external script before doc write');
+document.write( '<script>log(\'document.write external script\');</script>');
+log('external script after doc write'); \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-4.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-4.js
new file mode 100644
index 000000000..0597a2262
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-4.js
@@ -0,0 +1,3 @@
+log('include-4 before doc write');
+document.write( '<script src="scripts/include-3.js"></script>');
+log('include-4 after doc write'); \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-5.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-5.js
new file mode 100644
index 000000000..52952d737
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-5.js
@@ -0,0 +1,7 @@
+log('include-5 before removing scripts');
+var scripts=[].slice.call(document.getElementsByTagName('script'), 3);
+for(var i = 0; i < scripts.length; i++) {
+ var s = scripts[i];
+ s.parentNode.removeChild(s);
+}
+log('include-5 after removing scripts');
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-6.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-6.js
new file mode 100644
index 000000000..77da2af23
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-6.js
@@ -0,0 +1,6 @@
+top.log(
+ 'external script (#foo found? ' +
+ (document.getElementById('foo') ? 'YES' : 'NO' ) +
+ ')'
+);
+top.include6Loaded=true; \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-7.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-7.js
new file mode 100644
index 000000000..57c550801
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-7.js
@@ -0,0 +1 @@
+log('external script #7'); \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-8.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-8.js
new file mode 100644
index 000000000..960f2129f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-8.js
@@ -0,0 +1,4 @@
+log("external script #8");
+var s = document.createElement("script")
+s.src='scripts/include-9.js?pipe=trickle(d2)'
+document.body.appendChild(s);
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-9.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-9.js
new file mode 100644
index 000000000..904288202
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/scripts/include-9.js
@@ -0,0 +1,2 @@
+log("external script #9");
+test(); \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/testlib/testlib.js b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/testlib/testlib.js
new file mode 100644
index 000000000..7b556b150
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/Opera/script_scheduling/testlib/testlib.js
@@ -0,0 +1,43 @@
+/*
+* Utility functions for script scheduler test
+*/
+(function(){ /* namespace hiding local variables like arOrderOfAllEvents from global scope */
+ window.testlib = {};
+ window.eventOrder = [];
+ var arNumberOfScriptsParsedPerEvent=[];
+ window.log = function (str){
+ eventOrder.push(str);
+ arNumberOfScriptsParsedPerEvent.push(document.getElementsByTagName('script').length);
+ }
+
+ window.testlib.addScript = function(source, attributes, parent, firstInParent,funcPrepare) {
+ try{
+ parent = parent||document.body;
+ var script = document.createElement('script');
+ if(funcPrepare) {
+ funcPrepare(script);
+ }
+ if(source)script.appendChild( document.createTextNode(source) );
+ for( var name in attributes){
+ if(/^on/i.test(name)) {
+ script[name] = attributes[name];
+ } else {
+ script.setAttribute(name, attributes[name]);
+ }
+ }
+ if (firstInParent && parent.firstChild) {
+ parent.insertBefore(script, parent.firstChild);
+ } else {
+ parent.appendChild(script);
+ }
+ } catch(e) {
+ log('ERROR when adding script to DOM!');
+ alert(e);
+ }
+ return script;
+ }
+
+ window.testlib.urlParam = function(relativeURL) {
+ return location.href.replace( /\d*\.html$/, relativeURL);
+ }
+})(); \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/submission/migration.txt b/testing/web-platform/tests/old-tests/submission/migration.txt
new file mode 100644
index 000000000..9480d754a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/submission/migration.txt
@@ -0,0 +1,26 @@
+
+TODO:
+
+ Google (not sure how much of that is what's already in)
+ Infraware (these come bundled with resources and require lots of rewriting)
+ Intel (need to check how much overlap there is with existing stuff)
+ Microsoft (lots of things, need to check overlap)
+ Ms2ger (Ms2ger is doing those)
+ Opera (split into multiple PRs)
+ TestTWF_Paris
+ W3C
+
+DONE:
+
+ Apple
+ AryehGregor
+ Baidu
+ Comcast
+ DavidCarlisle
+ html5bidi
+ MathiasBynens
+ PhilipTaylor
+ MOSQUITO
+ Mozilla
+ WebKit
+ \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/README.md b/testing/web-platform/tests/old-tests/webdriver/README.md
new file mode 100644
index 000000000..7a89fb78a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/README.md
@@ -0,0 +1,38 @@
+# W3C Browser Automation Specification Tests
+
+This repository defines a set of conformance tests for the W3C web
+browser automation specification known as WebDriver. The purpose is
+for the different driver implementations to be tested to determine
+whether they meet the recognized standard.
+
+## How to run the tests
+
+1. Go to the WebDriver tests: `cd _WEBDRIVER_TEST_ROOT_`
+2. Run the tests: `python runtests.py`
+3. Run the test against a different config specified in webdriver.cfg:
+ `WD_BROWSER=chrome python runtests.py`
+
+To be run a specific test file you can just run `python test_file.py`
+
+Similarly you can specify a different browser to run against if in webdriver.cfg:
+ `WD_BROWSER=chrome python ecmascript/ecmascript_test.py`
+
+Note: that you will need likely need to start the driver's server before running.
+
+## Updating configuration
+
+The _webdriver.cfg_ file holds any configuration that the tests might
+require. Change the value of browser to your needs. This will then
+be picked up by WebDriverBaseTest when tests are run.
+
+Be sure not to commit your _webdriver.cfg_ changes when your create or modify tests.
+
+## How to write tests
+
+1. Create a test file per section from the specification.
+2. For each test there needs to be one or more corresponding HTML
+ files that will be used for testing. HTML files are not to be
+ reused between tests. HTML files and other support files
+ should be stored in a folder named 'res'.
+3. Test name should explain the intention of the test e.g. `def
+ test_navigate_and_return_title(self):`
diff --git a/testing/web-platform/tests/old-tests/webdriver/base_test.py b/testing/web-platform/tests/old-tests/webdriver/base_test.py
new file mode 100644
index 000000000..851099936
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/base_test.py
@@ -0,0 +1,60 @@
+import ConfigParser
+import json
+import os
+import sys
+import unittest
+
+from network import get_lan_ip
+
+repo_root = os.path.abspath(os.path.join(__file__, "../.."))
+sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver"))
+sys.path.insert(1, os.path.join(repo_root, "tools", "wptserve"))
+from wptserve import server
+from selenium import webdriver
+
+
+class WebDriverBaseTest(unittest.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ cls.driver = create_driver()
+
+ cls.webserver = server.WebTestHttpd(host=get_lan_ip())
+ cls.webserver.start()
+ cls.webserver.where_is = cls.webserver.get_url
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.webserver.stop()
+ if cls.driver:
+ cls.driver.quit()
+
+
+def create_driver():
+ config = ConfigParser.ConfigParser()
+ config.read('webdriver.cfg')
+ section = os.environ.get("WD_BROWSER", 'firefox')
+ if config.has_option(section, 'url'):
+ url = config.get(section, "url")
+ else:
+ url = 'http://127.0.0.1:4444/wd/hub'
+ capabilities = None
+ if config.has_option(section, 'capabilities'):
+ try:
+ capabilities = json.loads(config.get(section, "capabilities"))
+ except:
+ pass
+ mode = 'compatibility'
+ if config.has_option(section, 'mode'):
+ mode = config.get(section, 'mode')
+ if section == 'firefox':
+ driver = webdriver.Firefox()
+ elif section == 'chrome':
+ driver = webdriver.Chrome()
+ elif section == 'edge':
+ driver = webdriver.Remote()
+ elif section == 'ie':
+ driver = webdriver.Ie()
+ elif section == 'selendroid':
+ driver = webdriver.Android()
+
+ return driver
diff --git a/testing/web-platform/tests/old-tests/webdriver/command_contexts/__init__.py b/testing/web-platform/tests/old-tests/webdriver/command_contexts/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/command_contexts/__init__.py
diff --git a/testing/web-platform/tests/old-tests/webdriver/command_contexts/open_and_close_window_test.py b/testing/web-platform/tests/old-tests/webdriver/command_contexts/open_and_close_window_test.py
new file mode 100644
index 000000000..61d04d93d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/command_contexts/open_and_close_window_test.py
@@ -0,0 +1,64 @@
+import os
+import sys
+import random
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+repo_root = os.path.abspath(os.path.join(__file__, "../../.."))
+sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver"))
+from webdriver import exceptions
+
+
+class OpenAndCloseWindowTest(base_test.WebDriverBaseTest):
+ def setUp(self):
+ self.driver.get(self.webserver.where_is("command_contexts/res/first-page.html"))
+
+ def tearDown(self):
+ handles = self.driver.get_window_handles()
+
+ for i in range(len(handles) - 1):
+ self.driver.switch_to_window(handles[i])
+ self.driver.close()
+
+ self.driver.switch_to_window(self.driver.get_window_handles()[0])
+
+ def test_open_new_window(self):
+ handles = self.driver.get_window_handles()
+ self.driver.find_element_by_id("open_new_window").click()
+ self.assertEquals(len(handles) + 1, len(self.driver.get_window_handles()))
+
+ def test_get_window_handles_returns_the_windows_that_have_been_opened(self):
+ self.driver.find_element_by_id("open_new_window").click()
+ handles = self.driver.get_window_handles()
+ self.driver.switch_to_window(handles[0])
+ url1 = self.driver.get_current_url()
+ self.driver.switch_to_window(handles[1])
+ url2 = self.driver.get_current_url()
+
+ if url1 == self.webserver.where_is("controlling_windows/res/other-page.html"):
+ self.assertEquals(url2, self.webserver.where_is("controlling_windows/res/first-page.html"))
+ elif url1 == self.webserver.where_is("controlling_windows/res/first-page.html"):
+ self.assertEquals(url2, self.webserver.where_is("controlling_windows/res/other-page.html"))
+ else:
+ self.fail("The wrong set of URLs were returned")
+
+ def test_close_window(self):
+ open_windows = len(self.driver.get_window_handles())
+
+ self.driver.find_element_by_id("open_new_window").click()
+ self.assertEquals(1 + open_windows, len(self.driver.get_window_handles()))
+
+ self.driver.close()
+ self.assertEquals(open_windows, len(self.driver.get_window_handles()))
+
+ def test_command_sent_to_closed_window_returns_no_such_window_exception(self):
+ self.driver.find_element_by_id("open_new_window").click()
+ self.driver.close()
+
+ with self.assertRaises(exceptions.NoSuchWindowException):
+ self.driver.get_window_handle()
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/command_contexts/res/first-page.html b/testing/web-platform/tests/old-tests/webdriver/command_contexts/res/first-page.html
new file mode 100644
index 000000000..e4aa13ebd
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/command_contexts/res/first-page.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <meta charset="utf-8" />
+ <title>First Page</title>
+</head>
+<body>
+ <a href="./other-page.html" target="_blank" id="open_new_window">Open new window</a>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/command_contexts/res/other-page.html b/testing/web-platform/tests/old-tests/webdriver/command_contexts/res/other-page.html
new file mode 100644
index 000000000..4bb487452
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/command_contexts/res/other-page.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <meta charset="utf-8" />
+ <title>Other Page</title>
+</head>
+<body>
+ <a href="./other-page.html" target="_blank" id="open_new_window">Open new window</a>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/command_contexts/window_handle_test.py b/testing/web-platform/tests/old-tests/webdriver/command_contexts/window_handle_test.py
new file mode 100644
index 000000000..6d8e569f0
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/command_contexts/window_handle_test.py
@@ -0,0 +1,33 @@
+import os
+import sys
+import random
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+repo_root = os.path.abspath(os.path.join(__file__, "../../.."))
+sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver"))
+from webdriver import exceptions
+
+
+class WindowHandleTest(base_test.WebDriverBaseTest):
+ def setUp(self):
+ self.driver.get(self.webserver.where_is("command_contexts/res/first-page.html"))
+
+ def test_window_handle_is_not_current(self):
+ handle = self.driver.get_window_handle()
+ self.assertNotEquals(handle, "current")
+
+ def test_window_handles_are_unique(self):
+ number_of_windows = 20
+ new_window_button = self.driver.find_element_by_id("open_new_window")
+ for i in range(0, number_of_windows):
+ new_window_button.click()
+
+ handles = self.driver.get_window_handles()
+ if len(handles) > len(set(handles)):
+ self.fail('At least one window handle was repeated')
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/command_contexts/window_size_test.py b/testing/web-platform/tests/old-tests/webdriver/command_contexts/window_size_test.py
new file mode 100644
index 000000000..955e9fea0
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/command_contexts/window_size_test.py
@@ -0,0 +1,35 @@
+import os
+import sys
+import random
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+repo_root = os.path.abspath(os.path.join(__file__, "../../.."))
+sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver"))
+from webdriver import exceptions
+
+class WindowSizeTest(base_test.WebDriverBaseTest):
+
+ def test_set_and_get_window_size(self):
+ self.driver.get(self.webserver.where_is("command_contexts/res/first-page.html"))
+
+ initial_dimensions = self.driver.get_window_size()
+
+ new_dimensions = {
+ "height": initial_dimensions["height"] - 100,
+ "width": initial_dimensions["width"] - 100}
+
+ try:
+ self.driver.set_window_size(new_dimensions["height"], new_dimensions["width"])
+
+ actual_dimensions = self.driver.get_window_size()
+
+ self.assertDictEqual(new_dimensions, actual_dimensions)
+ except exceptions.UnsupportedOperationException:
+ pass
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/cookie/__init__.py b/testing/web-platform/tests/old-tests/webdriver/cookie/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/cookie/__init__.py
diff --git a/testing/web-platform/tests/old-tests/webdriver/cookie/cookie_test.py b/testing/web-platform/tests/old-tests/webdriver/cookie/cookie_test.py
new file mode 100644
index 000000000..e57d46713
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/cookie/cookie_test.py
@@ -0,0 +1,57 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+
+
+class CookieTest(base_test.WebDriverBaseTest):
+ def setUp(self):
+ self.driver.get(self.webserver.where_is("cookie/res/cookie_container.html"))
+
+ def test_can_create_a_well_formed_cookie( self ):
+ self.driver.add_cookie({'name': 'foo', 'value': 'bar'})
+
+ def test_cookies_should_allow_secure_to_be_set( self ):
+ name = 'foo'
+ self.driver.add_cookie({'name': name,
+ 'value': 'bar',
+ 'path': '/',
+ 'secure': (True)})
+ self.assertTrue(self.driver.get_cookie(name)[0]['secure'])
+
+ def test_secure_defaults_to_false( self ):
+ name = 'foo'
+ value = 'bar'
+
+ self.driver.add_cookie({ 'name': name,
+ 'value': value})
+
+ self.assertFalse(self.driver.get_cookie(name)[0]['secure'])
+
+ def test_should_throw_an_exception_when_semicolon_exists_in_the_cookie_attribute(self):
+ invalid_name = 'foo;bar'
+ try:
+ self.driver.add_cookie({'name': invalid_name, 'value': 'foobar'})
+ self.fail( 'should have thrown exceptions.' )
+
+ except exceptions.UnableToSetCookieException:
+ pass
+ except exceptions.InvalidCookieDomainException:
+ pass
+
+ def test_should_throw_an_exception_the_name_is_null(self):
+ try:
+ self.driver.add_cookie({'name': None, 'value': 'foobar'})
+ self.fail( 'should have thrown exceptions.' )
+
+ except exceptions.UnableToSetCookieException:
+ pass
+ except exceptions.InvalidCookieDomainException:
+ pass
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/cookie/res/cookie_container.html b/testing/web-platform/tests/old-tests/webdriver/cookie/res/cookie_container.html
new file mode 100644
index 000000000..bb6b209bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/cookie/res/cookie_container.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Cookie Container</title>
+<body>
+</body>
diff --git a/testing/web-platform/tests/old-tests/webdriver/ecmascript/ecmascript_test.py b/testing/web-platform/tests/old-tests/webdriver/ecmascript/ecmascript_test.py
new file mode 100644
index 000000000..89764bf68
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/ecmascript/ecmascript_test.py
@@ -0,0 +1,17 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class EcmasScriptTest(base_test.WebDriverBaseTest):
+ def test_that_ecmascript_returns_document_title(self):
+ self.driver.get(self.webserver.where_is("ecmascript/res/ecmascript_test.html"))
+ result = self.driver.execute_script("return document.title;");
+ self.assertEquals("ecmascript test", result);
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/ecmascript/res/ecmascript_test.html b/testing/web-platform/tests/old-tests/webdriver/ecmascript/res/ecmascript_test.html
new file mode 100644
index 000000000..346e2ef75
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/ecmascript/res/ecmascript_test.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<title>ecmascript test</title> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_location/__init__.py b/testing/web-platform/tests/old-tests/webdriver/element_location/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_location/__init__.py
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_location/element_location_test.py b/testing/web-platform/tests/old-tests/webdriver/element_location/element_location_test.py
new file mode 100644
index 000000000..aff548ea5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_location/element_location_test.py
@@ -0,0 +1,60 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+class ElementLocationTest(base_test.WebDriverBaseTest):
+ def test_find_element_by_name(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_element_by_name("name")
+ self.assertEquals("name", e.text)
+
+ def test_find_element_by_css_selector(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_element_by_css_selector("#id")
+ self.assertEquals("id", e.text)
+
+ def test_find_element_by_link_text(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_element_by_link_text("link text")
+ self.assertEquals("link text", e.text)
+
+ def test_find_element_by_partial_link_text(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_element_by_partial_link_text("link tex")
+ self.assertEquals("link text", e.text)
+
+ def test_find_element_by_xpath(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_element_by_xpath("//*[@id='id']")
+ self.assertEquals("id", e.text)
+
+ def test_find_elements_by_name(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_elements_by_name("name")
+ self.assertEquals("name", e[0].text)
+
+ def test_find_elements_by_css_selector(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_elements_by_css_selector("#id")
+ self.assertEquals("id", e[0].text)
+
+ def test_find_elements_by_link_text(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_elements_by_link_text("link text")
+ self.assertEquals("link text", e[0].text)
+
+ def test_find_elements_by_partial_link_text(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_elements_by_partial_link_text("link tex")
+ self.assertEquals("link text", e[0].text)
+
+ def test_find_elements_by_xpath(self):
+ self.driver.get(self.webserver.where_is("element_location/res/elements.html"))
+ e = self.driver.find_elements_by_xpath("//*[@id='id']")
+ self.assertEquals("id", e[0].text)
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_location/res/elements.html b/testing/web-platform/tests/old-tests/webdriver/element_location/res/elements.html
new file mode 100644
index 000000000..45b7c2370
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_location/res/elements.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+
+<title>Element location</title>
+
+<body>
+ <div id="id">id</div>
+ <div id="name" name="name">name</div>
+ <a id="link">link text</a>
+</body>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/__init__.py b/testing/web-platform/tests/old-tests/webdriver/element_state/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/__init__.py
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/method_test.py b/testing/web-platform/tests/old-tests/webdriver/element_state/method_test.py
new file mode 100644
index 000000000..85b240c7a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/method_test.py
@@ -0,0 +1,107 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class GetElementAttributeTest(base_test.WebDriverBaseTest):
+ def test_get_element_attribute(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-with-id-attribute.html"))
+ el = self.driver.find_element_by_css_selector("div")
+ self.assertEqual("myId", el.get_attribute("id"))
+
+ def test_style_attribute(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-with-style-attribute.html"))
+ el = self.driver.find_element_by_css_selector("div")
+ expected_style = """
+ font-family: \"Gill Sans Extrabold\",Helvetica,sans-serif;
+ line-height: 1.2; font-weight: bold;
+ """
+ self.assertEqual(expected_style, el.get_attribute("style"))
+
+ def test_color_serialization_of_style_attribute(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-with-color-style-attribute.html"))
+ el = self.driver.find_element_by_css_selector("div")
+ self.assertEqual("color: rgba(255, 0, 0, 1.0);", el.get_attribute("style"))
+
+ def test_true_if_boolean_attribute_present(self):
+ self.driver.get(self.webserver.where_is("element_state/res/input-with-checked-attribute.html"))
+ el = self.driver.find_element_by_css_selector("input")
+ self.assertEqual("true", el.get_attribute("checked"))
+
+ def test_none_if_boolean_attribute_absent(self):
+ self.driver.get(self.webserver.where_is("element_state/res/input-without-checked-attribute.html"))
+ el = self.driver.find_element_by_css_selector("input")
+ self.assertIsNone(el.get_attribute("checked"))
+
+ def test_option_with_attribute_value(self):
+ self.driver.get(self.webserver.where_is("element_state/res/option-with-value-attribute.html"))
+ el = self.driver.find_element_by_css_selector("option")
+ self.assertEqual("value1", el.get_attribute("value"))
+
+ def test_option_without_value_attribute(self):
+ self.driver.get(self.webserver.where_is("element_state/res/option-without-value-attribute.html"))
+ el = self.driver.find_element_by_css_selector("option")
+ self.assertEqual("Value 1", el.get_attribute("value"))
+
+ def test_a_href_attribute(self):
+ self.driver.get(self.webserver.where_is("element_state/res/a-with-href-attribute.html"))
+ el = self.driver.find_element_by_css_selector("a")
+ self.assertEqual("http://web-platform.test:8000/path#fragment", el.get_attribute("href"))
+
+ def test_img_src_attribute(self):
+ self.driver.get(self.webserver.where_is("element_state/res/img-with-src-attribute.html"))
+ el = self.driver.find_element_by_css_selector("img")
+ self.assertEqual("http://web-platform.test:8000/images/blue.png", el.get_attribute("src"))
+
+ def test_custom_attribute(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-with-custom-attribute.html"))
+ el = self.driver.find_element_by_css_selector("div")
+ self.assertEqual("attribute value", el.get_attribute("webdriver-custom-attribute"))
+
+ def test_attribute_not_present(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-without-attribute.html"))
+ el = self.driver.find_element_by_css_selector("div")
+ self.assertIsNone(el.get_attribute("class"))
+
+ def test_find_attribute_with_special_characters(self):
+ self.driver.get(self.webserver.where_is("element_state/res/get-element-attribute-extended.html"))
+ element = self.driver.find_element_by_id("id_special_char_attribute_name")
+ attribute = element.get_attribute("*")
+ self.assertEquals("special_char_attribute_name", attribute)
+
+ def test_find_attribute_with_special_char_name_and_value(self):
+ self.driver.get(self.webserver.where_is("element_state/res/get-element-attribute-extended.html"))
+ element = self.driver.find_element_by_id("id_special_char_attribute_name_and_value")
+ attribute = element.get_attribute("@")
+ self.assertEquals("(", attribute)
+
+ def test_find_attribute_with_numeric_name(self):
+ self.driver.get(self.webserver.where_is("element_state/res/get-element-attribute-extended.html"))
+ element = self.driver.find_element_by_id("id_attribute_name_numeric")
+ attribute = element.get_attribute("1")
+ self.assertEquals("numeric attribute name", attribute)
+
+ def test_find_attribute_with_numeric_value(self):
+ self.driver.get(self.webserver.where_is("element_state/res/get-element-attribute-extended.html"))
+ element = self.driver.find_element_by_id("id_attribute_value_numeric")
+ attribute = element.get_attribute("one")
+ self.assertEquals("2", attribute)
+
+ def test_find_attribute_with_negative_numeric_name(self):
+ self.driver.get(self.webserver.where_is("element_state/res/get-element-attribute-extended.html"))
+ element = self.driver.find_element_by_id("id_attribute_negative_numeric_name")
+ attribute = element.get_attribute("-5")
+ self.assertEquals("attribute name is -5", attribute)
+
+ def test_find_attribute_with_negative_numeric_value(self):
+ self.driver.get(self.webserver.where_is("element_state/res/get-element-attribute-extended.html"))
+ element = self.driver.find_element_by_id("id_attribute_negative_numeric_value")
+ attribute = element.get_attribute("negative_numeric_value")
+ self.assertEquals("-9", attribute)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/properties.py b/testing/web-platform/tests/old-tests/webdriver/element_state/properties.py
new file mode 100644
index 000000000..a76770085
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/properties.py
@@ -0,0 +1,17 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class GetElementPropertiesTest(base_test.WebDriverBaseTest):
+ def test_get_element_text(self):
+ self.driver.get(self.webserver.where_is("element_state/res/elements_text.html"))
+ e = self.driver.find_element_by_name("name")
+ self.assertEquals("name", e.text)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/0x0-pixels.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/0x0-pixels.html
new file mode 100644
index 000000000..3b081ca09
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/0x0-pixels.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<meta charset='utf-8'>
+<title>0x0 pixel element</title>
+
+<style>
+div {
+ height: 0;
+ width: 0;
+}
+</style>
+
+<div>This element is not visible.</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/1x1-pixels.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/1x1-pixels.html
new file mode 100644
index 000000000..f9b2cbc3c
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/1x1-pixels.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<meta charset='utf-8'>
+<title>1x1 pixel element</title>
+
+<style>
+p {
+ height: 1px;
+ width: 1px;
+}
+</style>
+
+<p>This element is visible.</p>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/a-with-href-attribute.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/a-with-href-attribute.html
new file mode 100644
index 000000000..7722426a3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/a-with-href-attribute.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>"a" element with not fully qualified url</title>
+
+<a href="//web-platform.test:8000/path#fragment">&nbsp;</a> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/absolute-children-ancestor-hidden-overflow.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/absolute-children-ancestor-hidden-overflow.html
new file mode 100644
index 000000000..fcf104414
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/absolute-children-ancestor-hidden-overflow.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Parent node visible with absolutely positioned children, where ancestor overflow is hidden</title>
+
+<style>
+ body {
+ overflow: hidden;
+ height: 0;
+ width: 0;
+ }
+ .child { position: absolute }
+</style>
+
+<div id=parent>
+ <div class=child>grated</div>
+ <div class=child>cheese</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_empty.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_empty.html
new file mode 100644
index 000000000..0f4dff691
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_empty.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>BODY element has no children. MUST be reported displayed</title>
+<body/>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_implicit.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_implicit.html
new file mode 100644
index 000000000..f45815380
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_implicit.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>BODY tag is omitted; BODY element MUST be reported displayed</title>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_overflow_hidden.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_overflow_hidden.html
new file mode 100644
index 000000000..1411ef37b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_overflow_hidden.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>BODY element with style=overflow:hidden. MUST be reported displayed</title>
+<body style="overflow:hidden"/>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_visibility_hidden.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_visibility_hidden.html
new file mode 100644
index 000000000..ce4d41036
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/body_visibility_hidden.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>BODY element with style=visibility:hidden. MUST be reported displayed</title>
+<body style="visibility:hidden"/>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-block.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-block.html
new file mode 100644
index 000000000..0f31557e6
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-block.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset='utf-8'>
+<title>display: block;</title>
+
+<p>This element is visible.</p>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child-link.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child-link.html
new file mode 100644
index 000000000..88bdef6b5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child-link.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>display: none applies to child node links</title>
+
+<style>
+#parent { display: none }
+</style>
+
+<div id="parent">
+ <a id="child">hidden</a>
+</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child-paragraph.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child-paragraph.html
new file mode 100644
index 000000000..31ab16da4
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child-paragraph.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>display: none applies to child node paragraphs</title>
+
+<style>
+#parent { display: none }
+</style>
+
+<div id="parent">
+ <p id="child">hidden</p>
+</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child.html
new file mode 100644
index 000000000..b45ea0e5a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-child.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>display: none applies to child nodes</title>
+
+<style>
+#parent { display: none }
+</style>
+
+<div id="parent">
+ <div id="child">Brie is good</div>
+</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-dynamic.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-dynamic.html
new file mode 100644
index 000000000..074f0b3c1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-dynamic.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>display: none set dynamically</title>
+
+<p id="hidden">Should not be visible</span>
+
+<script>
+ var hidden = document.getElementById("hidden");
+ hidden.style.display = "none";
+</script>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-parent-presedence-visibility.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-parent-presedence-visibility.html
new file mode 100644
index 000000000..37ca02391
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-parent-presedence-visibility.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>display: none on parent takes presedence over visibility: visible on child node</title>
+
+<style>
+ #parent { display: none }
+ #child { visibility: visible }
+</style>
+
+<div id="parent">
+ <div id="child">
+ hidden
+ </div>
+</div>
+in \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-parent-presedence.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-parent-presedence.html
new file mode 100644
index 000000000..0f166d1e5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none-parent-presedence.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>display: none on parent takes presedence</title>
+
+<style>
+ #parent { display: none }
+ #child { dipslay: block }
+</style>
+
+<div id="parent">
+ <div id="child">
+ hidden
+ </div>
+</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none.html
new file mode 100644
index 000000000..469fc934b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/display-none.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<meta charset='utf-8'>
+<title>display: none;</title>
+
+<style>
+p {
+ display: none;
+}
+</style>
+
+<p>This element is not visible.</p>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-dynamically-moved-outside-viewport.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-dynamically-moved-outside-viewport.html
new file mode 100644
index 000000000..e31912bfd
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-dynamically-moved-outside-viewport.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element outside viewport</title>
+
+<style>
+ div { position: absolute }
+</style>
+
+<div>hidden</div>
+
+<script>
+ var el = document.getElementsByTagName("div")[0];
+ el.style.top = "-500px";
+ el.style.left = "-500px";
+</script>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-hidden-by-other-element.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-hidden-by-other-element.html
new file mode 100644
index 000000000..a2cf645a3
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-hidden-by-other-element.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element hidden by other element</title>
+
+<style>
+ div {
+ position: absolute;
+ height: 100px;
+ width: 100px;
+ }
+
+ #overlay {
+ background: blue;
+ }
+
+ #hidden { background: red }
+</style>
+
+<div id="hidden"></div>
+<div id="overlay"></div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-hidden-by-z-index.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-hidden-by-z-index.html
new file mode 100644
index 000000000..05e8eebeb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-hidden-by-z-index.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element hidden by z-index</title>
+
+<style>
+ * { position: relative }
+
+ #overlay,
+ #hidden {
+ height: 50px;
+ width: 50px;
+ }
+
+ #overlay {
+ background: blue;
+
+ z-index: 1;
+ }
+
+ #hidden {
+ background: red;
+ top: -50px;
+
+ z-index: -1;
+ }
+</style>
+
+<div id="overlay"></div>
+<div id="hidden"></div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-moved-behind-other-element-by-transform.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-moved-behind-other-element-by-transform.html
new file mode 100644
index 000000000..f91e729de
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-moved-behind-other-element-by-transform.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element moved behind other element by transform</title>
+
+<style>
+ * { position: relative }
+
+ #overlay {
+ height: 50px;
+ width: 50px;
+ background: blue;
+ z-index: 1;
+ }
+
+ #hidden {
+ height: 50px;
+ width: 50px;
+ background: red;
+ z-index: -1;
+
+ transform: translate(0, -50px);
+
+ /* fix your browsers god damnit */
+ -webkit-transform: translate(0, -50px);
+ -moz-transform: translate(0x, -50px);
+ }
+</style>
+
+<div id="overlay"></div>
+<div id="hidden"></div>
+
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-moved-outside-viewport-by-transform.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-moved-outside-viewport-by-transform.html
new file mode 100644
index 000000000..51f6ee89f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-moved-outside-viewport-by-transform.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element moved outside viewpor by transform</title>
+
+<style>
+ div {
+ transform: translate(-200px, -200px);
+
+ /* fix your browsers god damnit */
+ -webkit-transform: translate(-200px, -200px);
+ -moz-transform: translate(-200px, -200px);
+ }
+</style>
+
+<div>Cheddar!</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-outside-viewport.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-outside-viewport.html
new file mode 100644
index 000000000..e3382ad09
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-outside-viewport.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element outside viewport</title>
+
+<style>
+ div {
+ position: absolute;
+ top: -500px;
+ left: -500px;
+ }
+</style>
+
+<div>hidden</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-partially-hidden-by-other-element.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-partially-hidden-by-other-element.html
new file mode 100644
index 000000000..3d0325928
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-partially-hidden-by-other-element.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element partially hidden by other element</title>
+
+<style>
+ div {
+ height: 100px;
+ width: 100px;
+ }
+
+ #partial {
+ background: yellow;
+ }
+
+ #other {
+ background: blue;
+ margin-top: -50px;
+ margin-left: 50px;
+ }
+</style>
+
+<div id="partial"></div>
+<div id="other"></div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-selected.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-selected.html
new file mode 100644
index 000000000..c2ad98924
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-selected.html
@@ -0,0 +1,89 @@
+<html>
+<body>
+<select>
+ <option id="selected-1">selected-1</option>
+</select>
+<select>
+ <option id="selected-2">selected-2</option>
+ <option id="unselected-1">unselected-1</option>
+</select>
+<select disabled>
+ <option id="unselected-2">unselected-2</option>
+ <option id="selected-3" selected>selected-3</option>
+ <option id="unselected-3">unselected-3</option>
+</select>
+<select>
+ <option id="unselected-4" checked>unselected-4</option>
+ <option id="unselected-5">unselected-5</option>
+ <option id="selected-4" selected>selected-4</option>
+</select>
+<select>
+ <option id="unselected-6" selected>unselected-6</option>
+ <option id="selected-5">selected-5</option>
+</select>
+<script>
+ document.getElementById("selected-5").selected = true;
+</script>
+<select multiple>
+ <option id="unselected-7">unselected-7</option>
+ <option id="unselected-8">unselected-8</option>
+</select>
+<select multiple>
+ <option id="selected-6" selected>selected-6</option>
+ <option id="unselected-9" selected>unselected-9</option>
+ <option id="selected-7">selected-7</option>
+</select>
+<script>
+ document.getElementById("unselected-9").selected = false;
+ document.getElementById("selected-7").selected = true;
+</script>
+
+<h1>Input Checkbox Elements</h1>
+<input type="checkbox" id="selected-8" />selected-8
+<script>
+ document.getElementById("selected-8").checked = true;
+</script>
+<input type="checkbox" id="selected-9" checked />selected-9
+<script>
+ document.getElementById("selected-9").indeterminate = true;
+</script>
+<input type="checkbox" id="unselected-10" />unselected-10
+<input type="checkbox" id="unselected-11" checked />unselected-11
+<script>
+ document.getElementById("unselected-11").checked = false;
+</script>
+<input type="checkbox" id="unselected-12" />unselected-12
+<script>
+ document.getElementById("unselected-12").indeterminate = true;
+</script>
+<input type="checkbox" id="unselected-13" selected />unselected-13
+<input type="checkbox" id="selected-10" checked />selected-10
+
+<h1>Input Radio Elements</h1>
+<br>Group 1:<br>
+<input type="radio" name="group1" id="selected-11" checked />selected-11
+<br>Group 2:<br>
+<input type="radio" name="group2" id="selected-12" />selected-12
+<script>
+ document.getElementById("selected-12").checked = true;
+</script>
+<br>Group 3:<br>
+<input type="radio" name="group3" id="unselected-14" />unselected-14
+<input type="radio" name="group3" id="selected-13" checked />selected-13
+<br>Group 4:<br>
+<input type="radio" name="group4" id="unselected-15" checked />unselected-15
+<input type="radio" name="group4" id="selected-14" checked />selected-14
+<br>Group 5:<br>
+<input type="radio" name="group5" id="unselected-16" />unselected-16
+<input type="radio" name="group5" id="unselected-17" checked />unselected-17
+<script>
+ document.getElementById("unselected-17").checked = false;
+</script>
+<br>Group 6<br>
+<input type="radio" name="group6" id="selected-15" />selected-15
+<input type="radio" name="group6" id="unselected-18" checked />unselected-18
+<script>
+ document.getElementById("selected-15").checked = true;
+</script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-color-style-attribute.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-color-style-attribute.html
new file mode 100644
index 000000000..acf2fc095
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-color-style-attribute.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element with color style attribute</title>
+
+<div style="color: red">&nbsp;</div> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-custom-attribute.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-custom-attribute.html
new file mode 100644
index 000000000..8f84b97ff
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-custom-attribute.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element with custom attribute</title>
+
+<div webdriver-custom-attribute="attribute value">&nbsp;</div> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-id-attribute.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-id-attribute.html
new file mode 100644
index 000000000..7512344f5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-id-attribute.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element with id attribute</title>
+
+<div id="myId">&nbsp;</div> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-same-color-as-background.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-same-color-as-background.html
new file mode 100644
index 000000000..aaea9a935
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-same-color-as-background.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element with same color as background</title>
+
+<style>
+ body, div { background: white }
+ div { width: 50px; height: 50px; }
+</style>
+
+<div>&nbsp;</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-same-color-as-parent-background.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-same-color-as-parent-background.html
new file mode 100644
index 000000000..80a4118df
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-same-color-as-parent-background.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element with same color as background</title>
+
+<style>
+ #overlay,
+ #hidden {
+ background: blue;
+ width: 50px; height: 50px;
+ }
+
+ #hidden {
+ margin-top: -50px;
+ }
+</style>
+
+<div id="overlay"></div>
+<div id="hidden"></div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-style-attribute.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-style-attribute.html
new file mode 100644
index 000000000..b163a751a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-with-style-attribute.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element with style attribute</title>
+
+<div style='font-family: "Gill Sans Extrabold", Helvetica, sans-serif; line-height: 1.2; font-weight:bold'>&nbsp;</div> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-without-attribute.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-without-attribute.html
new file mode 100644
index 000000000..b03d4545b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/element-without-attribute.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Element without attribute</title>
+
+<div>&nbsp;</div> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/elements_text.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/elements_text.html
new file mode 100644
index 000000000..45b7c2370
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/elements_text.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+
+<title>Element location</title>
+
+<body>
+ <div id="id">id</div>
+ <div id="name" name="name">name</div>
+ <a id="link">link text</a>
+</body>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/get-element-attribute-extended.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/get-element-attribute-extended.html
new file mode 100644
index 000000000..1fff60f03
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/get-element-attribute-extended.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Get Element Attribute Extended</title>
+
+<span id=my_id_with_a_relatively_long_name_test class=my_id_with_a_relatively_long_name_test_class>Span</span>
+<span id=my-id>Span</span>
+
+<div class=container>
+ <div id=div1 name=div-name>
+ <div id=div1-1_div1>
+ <h1 id=h1_div1.1_div1 class=span-class>h1 element, id:h1_div1.1_div1</h1>
+ </div>
+ </div>
+
+ <div class=div-depth-2>
+ <div class=div-depth-3>
+ <div class=div-depth-4>
+ <span id=my_id_with_a_relatively_long_name_test class=my_id_with_a_relatively_long_name_test_class>Span</span>
+ </div>
+ </div>
+ </div>
+
+ <div>
+ <a>anchor text 123</a>
+ <a>anchor text 123</a>
+
+ <select>
+ <option id="opt-1" style="font-size: 11px; display: block;" selected>My Option 1</option>
+ <option class="opt" >My Option 2</option>
+ <option value="one">My Option 3</option>
+ </select>
+ </div>
+
+ <a id="no-vi-1" class="cant-see" style="display:none">no visibility</a><br/>
+ <a id="no-vi-2" style="display:none">no visibility</a><br/>
+ <a id="no-vi-2" style="display:none">no visibility</a><br/>
+
+ <span id=my_id_with_a_relatively_long_name_test2>Span</span>
+ <span id="id.period">Span</span>
+</div>
+
+<div id=id_attribute_accesskey accesskey=nothing></div>
+
+<!-- Multiple elements with same class -->
+
+<div id=id_div_multiple_elements_same_class_nested_depth_0 class=multiple_elements_same_class_nested>
+ <div id=id_multiple_elements_same_class_nested_div_depth_1 class=multiple_elements_same_class_nested>
+ <div id=id_multiple_elements_same_class_nested_div_depth_2 class=multiple_elements_same_class_nested>
+ </div>
+ </div>
+</div>
+
+<!-- Attribute name with special characters -->
+<div id=id_special_char_attribute_name *=special_char_attribute_name></div>
+
+<!-- Attribute value with special characters -->
+<div id=id_special_char_attribute_value name="*"></div>
+
+<!-- Attribute value and name with special characters -->
+<div id=id_special_char_attribute_name_and_value @="("></div>
+
+<!-- Attribute name is numeric. -->
+<div id"id_attribute_name_numeric 1="numeric attribute name"></div>
+
+<!-- Attribute value is numeric. -->
+<div id=id_attribute_value_numeric one=2></div>
+
+<!-- Attribute name is negative numeric. -->
+<div id=id_attribute_negative_numeric_name -5="attribute name is -5"></div>
+
+<!-- Attribute value is negative numeric. -->
+<div id=id_attribute_negative_numeric_value negative_numeric_value=-9></div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden-input-type-checkbox-untogglable.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden-input-type-checkbox-untogglable.html
new file mode 100644
index 000000000..7e7c2e238
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden-input-type-checkbox-untogglable.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Hidden INPUT @type="checkbox" is untogglable</title>
+
+<style>
+ input { display: none }
+</style>
+
+<input type="checkbox" />
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden-input-type-text-writing.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden-input-type-text-writing.html
new file mode 100644
index 000000000..a1db85009
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden-input-type-text-writing.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Typing in hidden input is impossible</title>
+
+<style>
+ input { display: none }
+</style>
+
+<input type="text" />
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden.html
new file mode 100644
index 000000000..0e8097e97
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/hidden.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<div id='singleHidden' hidden>This will not be visible</div>
+<div id='parent' hidden>
+ <div id='child'>My parent is hidden so you can't see me</div>
+</div> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/img-with-src-attribute.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/img-with-src-attribute.html
new file mode 100644
index 000000000..057bb9bf5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/img-with-src-attribute.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>"img" element with not fully qualified url</title>
+
+<img src="//web-platform.test:8000/images/blue.png">&nbsp;</a> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-morphs-into-hidden.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-morphs-into-hidden.html
new file mode 100644
index 000000000..98b954855
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-morphs-into-hidden.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>INPUT motphs into @type="hidden"</title>
+
+<input />
+
+<script>
+ var input = document.getElementsByTagName("input")[0];
+ input.type = "hidden";
+</script>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-type-hidden-unclickable.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-type-hidden-unclickable.html
new file mode 100644
index 000000000..b06822b10
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-type-hidden-unclickable.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>INPUT @type="hidden" is unclickable</title>
+
+<input type="hidden" />
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-type-hidden.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-type-hidden.html
new file mode 100644
index 000000000..b7195709d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-type-hidden.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>INPUT @type="hidden" are always hidden</title>
+
+<input type="hidden" />
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-with-checked-attribute.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-with-checked-attribute.html
new file mode 100644
index 000000000..d7aad5ea5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-with-checked-attribute.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Input with checked attribute</title>
+
+<input type=checkbox checked="false">&nbsp;</input> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-without-checked-attribute.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-without-checked-attribute.html
new file mode 100644
index 000000000..9f1d5ad35
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/input-without-checked-attribute.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Input without checked attribute</title>
+
+<input type=checkbox>&nbsp;</input> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/option-with-value-attribute.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/option-with-value-attribute.html
new file mode 100644
index 000000000..5ef08c405
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/option-with-value-attribute.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Option with value attribute</title>
+
+<select>
+ <option value="value1">Value 1</option>
+</select> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/option-without-value-attribute.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/option-without-value-attribute.html
new file mode 100644
index 000000000..5f6087ddd
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/option-without-value-attribute.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Option without value attribute</title>
+
+<select>
+ <option>Value 1</option>
+</select> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-matching-color-and-background.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-matching-color-and-background.html
new file mode 100644
index 000000000..d6591ef04
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-matching-color-and-background.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Text with matching color and background</title>
+
+<style>
+ p {
+ background: blue;
+ color: blue;
+ }
+</style>
+
+<p>
+ This on the other hand, should be visible
+</p>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-same-color-as-background.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-same-color-as-background.html
new file mode 100644
index 000000000..e6290d576
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-same-color-as-background.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Text with same color as background</title>
+
+<style>
+ body { background: white }
+ p { color: white }
+</style>
+
+<p>
+ Shouldn't be visible.
+</p>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-same-color-as-parent-background.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-same-color-as-parent-background.html
new file mode 100644
index 000000000..f7480f509
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/text-with-same-color-as-parent-background.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Text with same color as parent background</title>
+
+<style>
+ #parent { background: gray }
+ p { color: gray }
+</style>
+
+<div id="parent">
+ <p>
+ Should not be visible
+ </p>
+</div>g
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-link.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-link.html
new file mode 100644
index 000000000..638c3c9ee
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-link.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>visibility: hidden applies to child node of type A</title>
+
+<style>
+#parent { visibility: hidden }
+</style>
+
+<div id="parent">
+ <a id="child" href="#">Brie is good</a>
+</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-paragraph.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-paragraph.html
new file mode 100644
index 000000000..8f703ba54
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-paragraph.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>visibility: hidden applies to child nodes of type P</title>
+
+<style>
+#parent { visibility: hidden }
+</style>
+
+<div id="parent">
+ <p id="child">Brie is good</p>
+</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-presedence.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-presedence.html
new file mode 100644
index 000000000..adf679c8a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child-presedence.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>visibility: visible on child node takes presedence</title>
+
+<style>
+#parent { visibility: hidden }
+#child { visibility: visible }
+</style>
+
+<div id="parent">
+ <div id="child">Brie is good</div>
+</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child.html
new file mode 100644
index 000000000..5464025fa
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-child.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>visibility: hidden applies to child nodes</title>
+
+<style>
+#parent { visibility: hidden }
+</style>
+
+<div id="parent">
+ <div id="child">Brie is good</div>
+</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-hidden.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-hidden.html
new file mode 100644
index 000000000..24e89499f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-hidden.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<meta charset='utf-8'>
+<title>visibility: hidden;</title>
+
+<style>
+p {
+ visibility: hidden;
+}
+</style>
+
+<p>This element is not visible.</p>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-visible.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-visible.html
new file mode 100644
index 000000000..e0c090217
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/visibility-visible.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset='utf-8'>
+<title>visibility: visible;</title>
+
+<p>This element is visible.</p>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-auto-y-hidden.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-auto-y-hidden.html
new file mode 100644
index 000000000..e9ce24c73
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-auto-y-hidden.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with overflow</title>
+ <style>
+ #over {
+ width:400px;
+ height: 300px;
+ overflow-x: auto;
+ overflow-y: hidden;
+ }
+ </style>
+</head>
+<body>
+ <div id="over">
+ <div style="width: 5000px;">
+ <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').textContent='ok'">Click right</a></div>
+ </div>
+ <div style="height: 5000px; width: 5000px;">
+ Right clicked: <span id="right-clicked"></span></br>
+ Bottom clicked: <span id="bottom-clicked"></span></br>
+ Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
+ </div>
+ <div style="width: 5000px;">
+ <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').textContent='ok'">Click bottom-right</a></div>
+ </div>
+ <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').textContent='ok'">Click bottom</a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-auto.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-auto.html
new file mode 100644
index 000000000..22b5049ff
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-auto.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with overflow</title>
+ <style>
+ #over {
+ width:400px;
+ height: 300px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ }
+ </style>
+</head>
+<body>
+ <div id="over">
+ <div style="width: 5000px;">
+ <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').textContent='ok'">Click right</a></div>
+ </div>
+ <div style="height: 5000px; width: 5000px;">
+ Right clicked: <span id="right-clicked"></span></br>
+ Bottom clicked: <span id="bottom-clicked"></span></br>
+ Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
+ </div>
+ <div style="width: 5000px;">
+ <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').textContent='ok'">Click bottom-right</a></div>
+ </div>
+ <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').textContent='ok'">Click bottom</a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-hidden.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-hidden.html
new file mode 100644
index 000000000..c26b48aea
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-hidden.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with overflow</title>
+ <style>
+ #over {
+ width:400px;
+ height: 300px;
+ overflow-x: hidden;
+ overflow-y: hidden;
+ }
+ </style>
+</head>
+<body>
+ <div id="over">
+ <div style="width: 5000px;">
+ <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').textContent='ok'">Click right</a></div>
+ </div>
+ <div style="height: 5000px; width: 5000px;">
+ Right clicked: <span id="right-clicked"></span></br>
+ Bottom clicked: <span id="bottom-clicked"></span></br>
+ Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
+ </div>
+ <div style="width: 5000px;">
+ <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').textContent='ok'">Click bottom-right</a></div>
+ </div>
+ <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').textContent='ok'">Click bottom</a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-scroll.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-scroll.html
new file mode 100644
index 000000000..b98b79a7e
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-hidden-y-scroll.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with overflow</title>
+ <style>
+ #over {
+ width:400px;
+ height: 300px;
+ overflow-x: hidden;
+ overflow-y: scroll;
+ }
+ </style>
+</head>
+<body>
+ <div id="over">
+ <div style="width: 5000px;">
+ <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').textContent='ok'">Click right</a></div>
+ </div>
+ <div style="height: 5000px; width: 5000px;">
+ Right clicked: <span id="right-clicked"></span></br>
+ Bottom clicked: <span id="bottom-clicked"></span></br>
+ Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
+ </div>
+ <div style="width: 5000px;">
+ <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').textContent='ok'">Click bottom-right</a></div>
+ </div>
+ <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').textContent='ok'">Click bottom</a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-scroll-y-hidden.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-scroll-y-hidden.html
new file mode 100644
index 000000000..9348681ac
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/x-scroll-y-hidden.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Page with overflow</title>
+ <style>
+ #over {
+ width:400px;
+ height: 300px;
+ overflow-x: scroll;
+ overflow-y: hidden;
+ }
+ </style>
+</head>
+<body>
+ <div id="over">
+ <div style="width: 5000px;">
+ <div style="width: 100%; text-align: right;" ><a href="#" id="right" onclick="document.getElementById('right-clicked').textContent='ok'">Click right</a></div>
+ </div>
+ <div style="height: 5000px; width: 5000px;">
+ Right clicked: <span id="right-clicked"></span></br>
+ Bottom clicked: <span id="bottom-clicked"></span></br>
+ Bottom-right clicked: <span id="bottom-right-clicked"></span></br>
+ </div>
+ <div style="width: 5000px;">
+ <div style="width: 100%; text-align: right;" ><a href="#" id="bottom-right" onclick="document.getElementById('bottom-right-clicked').textContent='ok'">Click bottom-right</a></div>
+ </div>
+ <a href="#" id="bottom" onclick="document.getElementById('bottom-clicked').textContent='ok'">Click bottom</a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/res/zero-sized-element-with-sizable-decendant.html b/testing/web-platform/tests/old-tests/webdriver/element_state/res/zero-sized-element-with-sizable-decendant.html
new file mode 100644
index 000000000..f7e37f855
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/res/zero-sized-element-with-sizable-decendant.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Zero sized element with sizable decendant</title>
+
+<style>
+ #parent { width: 0; height: 0; }
+ #child { width: 100; height: 100; background-color: blue; }
+</style>
+
+<div id="parent">
+ <div id="child">
+ &nbsp;
+ </div>
+</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/selected_test.py b/testing/web-platform/tests/old-tests/webdriver/element_state/selected_test.py
new file mode 100644
index 000000000..9c80f29f6
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/selected_test.py
@@ -0,0 +1,210 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class GetElementSelectedTest(base_test.WebDriverBaseTest):
+ def test_selected_1(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-1")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_2(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-2")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_3(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-3")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_4(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-4")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_5(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-5")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_6(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-6")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_7(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-7")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_8(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-8")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_9(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-9")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_10(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-10")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_11(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-11")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_12(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-12")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_13(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-13")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_14(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-14")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_selected_15(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("selected-15")
+
+ self.assertEquals(element.is_selected(), True)
+
+ def test_unselected_1(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-1")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_2(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-2")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_3(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-3")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_4(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-4")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_5(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-5")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_6(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-6")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_7(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-7")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_8(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-8")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_9(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-9")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_10(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-10")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_11(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-11")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_12(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-12")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_13(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-13")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_14(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-14")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_15(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-15")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_16(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-16")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_17(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-17")
+
+ self.assertEquals(element.is_selected(), False)
+
+ def test_unselected_18(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-selected.html"))
+ element = self.driver.find_element_by_id("unselected-18")
+
+ self.assertEquals(element.is_selected(), False)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/element_state/visibility_test.py b/testing/web-platform/tests/old-tests/webdriver/element_state/visibility_test.py
new file mode 100644
index 000000000..58218a7ff
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/element_state/visibility_test.py
@@ -0,0 +1,324 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+
+
+class NaturalNonVisibleElementsTest(base_test.WebDriverBaseTest):
+ def test_0x0_pixel_element_is_not_visible(self):
+ self.driver.get(self.webserver.where_is("element_state/res/0x0-pixels.html"))
+ el = self.driver.find_element_by_css_selector("div")
+ self.assertFalse(el.is_displayed())
+
+ def test_0x0_pixel_text_node_is_visible(self):
+ self.driver.get(self.webserver.where_is("element_state/res/0x0-pixels-text-node.html"))
+ el = self.driver.find_element_by_css_selector("p")
+ self.assertTrue(el.is_displayed())
+
+ def test_1x1_pixel_element(self):
+ self.driver.get(self.webserver.where_is("element_state/res/1x1-pixels.html"))
+ el = self.driver.find_element_by_css_selector("p")
+ self.assertTrue(el.is_displayed())
+
+ def test_zero_sized_element_is_shown_if_decendant_has_size(self):
+ self.driver.get(self.webserver.where_is("element_state/res/zero-sized-element-with-sizable-decendant.html"))
+ parent = self.driver.find_element_by_css_selector("#parent")
+ child = self.driver.find_element_by_css_selector("#child")
+
+ self.assertTrue(parent.is_displayed())
+ self.assertTrue(child.is_displayed())
+
+ def test_input_type_hidden_is_never_visible(self):
+ self.driver.get(self.webserver.where_is("element_state/res/input-type-hidden.html"))
+ input = self.driver.find_element_by_css_selector("input")
+ self.assertFalse(input.is_displayed())
+
+ def test_input_morphs_into_hidden(self):
+ self.driver.get(self.webserver.where_is("element_state/res/input-morphs-into-hidden.html"))
+ input = self.driver.find_element_by_css_selector("input")
+ self.assertFalse(input.is_displayed())
+
+ def test_parent_node_visible_when_all_children_are_absolutely_positioned_and_overflow_is_hidden(self):
+ pass
+
+ def test_parent_of_absolutely_positioned_elements_visible_where_ancestor_overflow_is_hidden(self):
+ """When a parent's ancestor hides any overflow, absolutely positioned child elements are
+ still visible. The parent container is also considered visible by webdriver for this
+ reason because it is interactable."""
+
+ self.driver.get(self.webserver.where_is("element_state/res/absolute-children-ancestor-hidden-overflow.html"))
+
+ children = self.driver.find_elements_by_css_selector(".child")
+ assert all(child.is_displayed() for child in children)
+
+ parent = self.driver.find_element_by_css_selector("#parent")
+ assert parent.is_displayed()
+
+ def test_element_hidden_by_overflow_x_is_not_visible(self):
+ # TODO(andreastt): This test should probably be split in three. Also it's making two
+ # assertions.
+ pages = ["element_state/res/x-hidden-y-hidden.html",
+ "element_state/res/x-hidden-y-scroll.html",
+ "element_state/res/x-hidden-y-auto.html"]
+
+ for page in pages:
+ self.driver.get(self.webserver.where_is(page))
+ right = self.driver.find_element_by_css_selector("#right")
+ bottom_right = self.driver.find_element_by_css_selector("#bottom-right")
+
+ self.assertFalse(right.is_displayed())
+ self.assertFalse(bottom_right.is_displayed())
+
+ def test_element_hidden_by_overflow_y_is_not_visible(self):
+ # TODO(andreastt): This test should probably be split in three. Also it's making two
+ # assertions.
+ pages = ["element_state/res/x-hidden-y-hidden.html",
+ "element_state/res/x-scroll-y-hidden.html",
+ "element_state/res/x-auto-y-hidden.html"]
+
+ for page in pages:
+ self.driver.get(self.webserver.where_is(page))
+ bottom = self.driver.find_element_by_css_selector("#bottom")
+ bottom_right = self.driver.find_element_by_css_selector("#bottom-right")
+
+ self.assertFalse(bottom.is_displayed())
+ self.assertFalse(bottom_right.is_displayed())
+
+ def test_parent_node_visible_when_all_children_are_absolutely_position_and_overflow_is_hidden(self):
+ pass
+
+ def test_element_scrollable_by_overflow_x_is_visible(self):
+ pass
+
+ def test_element_scrollable_by_overflow_y_is_visible(self):
+ pass
+
+ def test_element_scrollable_by_overflow_x_and_y_is_visible(self):
+ pass
+
+ def test_element_scrollable_by_overflow_y_is_visible(self):
+ pass
+
+ def test_element_outside_viewport(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-outside-viewport.html"))
+ hidden = self.driver.find_element_by_css_selector("div")
+ self.assertFalse(hidden.is_displayed())
+
+ def test_element_dynamically_moved_outside_viewport(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-dynamically-moved-outside-viewport.html"))
+ hidden = self.driver.find_element_by_css_selector("div")
+ self.assertFalse(hidden.is_displayed())
+
+ def test_element_hidden_by_other_element(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-hidden-by-other-element.html"))
+ overlay = self.driver.find_element_by_css_selector("#overlay")
+ hidden = self.driver.find_element_by_css_selector("#hidden")
+
+ self.assertTrue(overlay.is_displayed())
+ self.assertFalse(hidden.is_displayed())
+
+ def test_element_partially_hidden_by_other_element(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-partially-hidden-by-other-element.html"))
+ partial = self.driver.find_element_by_css_selector("#partial")
+ self.assertTrue(partial.is_displayed())
+
+ def test_element_hidden_by_z_index(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-hidden-by-z-index.html"))
+ overlay = self.driver.find_element_by_css_selector("#overlay")
+ hidden = self.driver.find_element_by_css_selector("#hidden")
+
+ self.assertTrue(overlay.is_displayed())
+ self.assertFalse(hidden.is_displayed())
+
+ def test_element_moved_outside_viewport_by_transform(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-moved-outside-viewport-by-transform.html"))
+ el = self.driver.find_element_by_css_selector("div")
+ self.assertFalse(el.is_displayed())
+
+ def test_element_moved_behind_other_element_by_transform(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-moved-behind-other-element-by-transform.html"))
+ overlay = self.driver.find_element_by_css_selector("#overlay")
+ hidden = self.driver.find_element_by_css_selector("#hidden")
+
+ self.assertTrue(overlay.is_displayed())
+ self.assertFalse(hidden.is_displayed())
+
+ def test_text_with_same_color_as_background(self):
+ self.driver.get(self.webserver.where_is("element_state/res/text-with-same-color-as-background.html"))
+ p = self.driver.find_element_by_css_selector("p")
+ self.assertFalse(p.is_displayed())
+
+ def test_text_with_same_color_as_parent_background(self):
+ self.driver.get(self.webserver.where_is("element_state/res/text-with-same-color-as-parent-background.html"))
+ p = self.driver.find_element_by_css_selector("p")
+ self.assertFalse(p.is_displayed())
+
+ def test_text_with_matching_color_and_background(self):
+ self.driver.get(self.webserver.where_is("element_state/res/text-with-matching-color-and-background.html"))
+ p = self.driver.find_element_by_css_selector("p")
+ self.assertTrue(p.is_displayed())
+
+ def test_element_with_same_color_as_background(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-with-same-color-as-background.html"))
+ el = self.driver.find_element_by_css_selector("div")
+ self.assertFalse(el.is_displayed())
+
+ def test_element_with_same_color_as_parent_background(self):
+ self.driver.get(self.webserver.where_is("element_state/res/element-with-same-color-as-parent-background.html"))
+ hidden = self.driver.find_element_by_css_selector("#hidden")
+ self.assertFalse(hidden.is_displayed())
+
+
+class BodyElementIsAlwaysDisplayedTest(base_test.WebDriverBaseTest):
+ def assert_body_is_displayed_on(self, page):
+ self.driver.get(self.webserver.where_is(page))
+ body = self.driver.find_element_by_css_selector("body")
+ assert body.is_displayed()
+
+ def test_implicit(self):
+ self.assert_body_is_displayed_on("element_state/res/body_implicit.html")
+
+ def test_empty(self):
+ self.assert_body_is_displayed_on("element_state/res/body_empty.html")
+
+ def test_visibility_hidden(self):
+ self.assert_body_is_displayed_on("element_state/res/body_visibility_hidden.html")
+
+ def test_overflow_hidden(self):
+ self.assert_body_is_displayed_on("element_state/res/body_overflow_hidden.html")
+
+
+class DisplayTest(base_test.WebDriverBaseTest):
+ def test_display_block(self):
+ self.driver.get(self.webserver.where_is("element_state/res/display-block.html"))
+ el = self.driver.find_element_by_css_selector("p")
+ self.assertTrue(el.is_displayed())
+
+ def test_display_none(self):
+ self.driver.get(self.webserver.where_is("element_state/res/display-none.html"))
+ el = self.driver.find_element_by_css_selector("p")
+ self.assertFalse(el.is_displayed())
+
+ def test_display_none_hides_child_node(self):
+ self.driver.get(self.webserver.where_is("element_state/res/display-none-child.html"))
+ parent = self.driver.find_element_by_css_selector("#parent")
+ child = self.driver.find_element_by_css_selector("#child")
+
+ self.assertFalse(parent.is_displayed())
+ self.assertFalse(child.is_displayed())
+
+ def test_display_none_hides_child_node_link(self):
+ self.driver.get(self.webserver.where_is("element_state/res/display-none-child-link.html"))
+ child = self.driver.find_element_by_css_selector("#child")
+ self.assertFalse(child.is_displayed())
+
+ def test_display_none_hides_child_node_paragraph(self):
+ self.driver.get(self.webserver.where_is("element_state/res/display-none-child-paragraph.html"))
+ child = self.driver.find_element_by_css_selector("#child")
+ self.assertFalse(child.is_displayed())
+
+ def test_display_none_on_parent_takes_presedence(self):
+ self.driver.get(self.webserver.where_is("element_state/res/display-none-parent-presedence.html"))
+ child = self.driver.find_element_by_css_selector("#child")
+ self.assertFalse(child.is_displayed())
+
+ def test_display_none_on_parent_takes_presedence_over_visibility_visible(self):
+ self.driver.get(self.webserver.where_is("element_state/res/display-none-parent-presedence-visibility.html"))
+ child = self.driver.find_element_by_css_selector("#child")
+ self.assertFalse(child.is_displayed())
+
+ def test_display_none_hidden_dynamically(self):
+ self.driver.get(self.webserver.where_is("element_state/res/display-none-dynamic.html"))
+ hidden = self.driver.find_element_by_css_selector("#hidden")
+ self.assertFalse(hidden.is_displayed())
+
+
+class VisibilityTest(base_test.WebDriverBaseTest):
+ def test_element_state_hidden(self):
+ self.driver.get(self.webserver.where_is("element_state/res/visibility-hidden.html"))
+ el = self.driver.find_element_by_css_selector("p")
+ self.assertFalse(el.is_displayed())
+
+ def test_element_state_visible(self):
+ self.driver.get(self.webserver.where_is("element_state/res/visibility-visible.html"))
+ el = self.driver.find_element_by_css_selector("p")
+ self.assertTrue(el.is_displayed())
+
+ def test_visibility_hidden_hides_child_node(self):
+ self.driver.get(self.webserver.where_is("element_state/res/visibility-child.html"))
+ parent = self.driver.find_element_by_css_selector("#parent")
+ child = self.driver.find_element_by_css_selector("#child")
+
+ self.assertFalse(parent.is_displayed())
+ self.assertFalse(child.is_displayed())
+
+ def test_visibility_hidden_hides_child_node_link(self):
+ self.driver.get(self.webserver.where_is("element_state/res/visibility-child-link.html"))
+ parent = self.driver.find_element_by_css_selector("#parent")
+ child = self.driver.find_element_by_css_selector("#child")
+
+ self.assertFalse(parent.is_displayed())
+ self.assertFalse(child.is_displayed())
+
+ def test_visibility_hidden_hides_child_node_paragraph(self):
+ self.driver.get(self.webserver.where_is("element_state/res/visibility-child-paragraph.html"))
+ parent = self.driver.find_element_by_css_selector("#parent")
+ child = self.driver.find_element_by_css_selector("#child")
+
+ self.assertFalse(parent.is_displayed())
+ self.assertFalse(child.is_displayed())
+
+ def test_visibility_hidden_on_child_takes_precedence(self):
+ self.driver.get(self.webserver.where_is("element_state/res/visibility-child-presedence.html"))
+ child = self.driver.find_element_by_css_selector("#child")
+ self.assertTrue(child.is_displayed())
+
+ def test_visibility_hidden_on_parent_takes_precedence_over_display_block(self):
+ pass
+
+ def test_visibility_hidden_set_dynamically(self):
+ pass
+
+ def test_should_show_element_not_visible_with_hidden_attribute(self):
+ self.driver.get(self.webserver.where_is("element_state/res/hidden.html"))
+ singleHidden = self.driver.find_element_by_css_selector('#singleHidden')
+ self.assertFalse(singleHidden.is_displayed())
+
+ def test_should_show_element_not_visible_when_parent_element_has_hidden_attribute(self):
+ self.driver.get(self.webserver.where_is("element_state/res/hidden.html"))
+ child = self.driver.find_element_by_css_selector('#child')
+ self.assertFalse(child.is_displayed())
+
+
+class VisibilityInteractionTest(base_test.WebDriverBaseTest):
+ def test_input_hidden_is_unclickable(self):
+ self.driver.get(self.webserver.where_is("element_state/res/input-type-hidden-unclickable.html"))
+ input = self.driver.find_element_by_css_selector("input")
+
+ with self.assertRaises(exceptions.ElementNotVisibleException):
+ input.click()
+
+ def test_hidden_input_checkbox_is_untogglable(self):
+ self.driver.get(self.webserver.where_is("element_state/res/hidden-input-type-checkbox-untogglable.html"))
+ checkbox = self.driver.find_element_by_css_selector("input")
+
+ with self.assertRaises(exceptions.ElementNotVisibleException):
+ checkbox.click()
+
+ def test_typing_in_hidden_input_is_impossible(self):
+ self.driver.get(self.webserver.where_is("element_state/res/hidden-input-type-text-writing.html"))
+ textfield = self.driver.find_element_by_css_selector("input")
+
+ with self.assertRaises(exceptions.ElementNotVisibleException):
+ textfield.send_keys("Koha is a popular Indian cheese")
+
+
+class OpacityTest(base_test.WebDriverBaseTest):
+ pass
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/javascript/__init__.py b/testing/web-platform/tests/old-tests/webdriver/javascript/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/javascript/__init__.py
diff --git a/testing/web-platform/tests/old-tests/webdriver/javascript/execute_script_test.py b/testing/web-platform/tests/old-tests/webdriver/javascript/execute_script_test.py
new file mode 100644
index 000000000..dd7cfca94
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/javascript/execute_script_test.py
@@ -0,0 +1,129 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.webdriver.remote.webelement import WebElement
+
+
+class ExecuteScriptTest(base_test.WebDriverBaseTest):
+ def test_ecmascript_translates_null_return_to_none(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+ result = self.driver.execute_script("return null;")
+ self.assertIsNone(result)
+
+ def test_ecmascript_translates_undefined_return_to_none(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+ result = self.driver.execute_script("var undef; return undef;")
+ self.assertIsNone(result)
+
+ def test_can_return_numbers_from_scripts(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+ self.assertEquals(1, self.driver.execute_script("return 1;"))
+ self.assertEquals(3.14, self.driver.execute_script("return 3.14;"))
+
+ def test_can_return_strings_from_scripts(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+ self.assertEquals("hello, world!",
+ self.driver.execute_script("return 'hello, world!'"))
+
+ def test_can_return_booleans_from_scripts(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+ self.assertTrue(self.driver.execute_script("return true;"))
+ self.assertFalse(self.driver.execute_script("return false;"))
+
+ def test_can_return_an_array_of_primitives(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+
+ result = self.driver.execute_script("return [1, false, null, 3.14]")
+ self.assertListEqual([1, False, None, 3.14], result)
+
+ def test_can_return_nested_arrays(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+ result = self.driver.execute_script("return [[1, 2, [3]]]")
+
+ self.assertIsInstance(result, list)
+ self.assertEquals(1, len(result))
+
+ result = result[0]
+ self.assertListEqual([1, 2], result[:2])
+ self.assertListEqual([3], result[2])
+
+ def test_can_return_object_literals(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+
+ result = self.driver.execute_script("return {}")
+ self.assertDictEqual({}, result)
+
+ result = self.driver.execute_script("return {a: 1, b: false, c: null}")
+ self.assertDictEqual({
+ "a": 1,
+ "b": False,
+ "c": None
+ }, result)
+
+ def test_can_return_complex_object_literals(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+ result = self.driver.execute_script("return {a:{b: 'hello'}}")
+ self.assertIsInstance(result, dict)
+ self.assertIsInstance(result['a'], dict)
+ self.assertDictEqual({"b": "hello"}, result["a"])
+
+ def test_dom_element_return_value_is_translated_to_a_web_element(self):
+ self.driver.get(self.webserver.where_is(
+ "javascript/res/return_document_body.html"))
+
+ result = self.driver.execute_script("return document.body")
+ self.assertEquals(result.text, "Hello, world!")
+
+ def test_return_an_array_of_dom_elements(self):
+ self.driver.get(self.webserver.where_is(
+ "javascript/res/return_array_of_dom_elements.html"))
+
+ result = self.driver.execute_script(
+ "var nodes = document.getElementsByTagName('div');"
+ "return [nodes[0], nodes[1]]")
+
+ self.assertIsInstance(result, list)
+ self.assertEquals(2, len(result))
+ self.assertEquals("a", result[0].text)
+ self.assertEquals("b", result[1].text)
+
+ def test_node_list_return_value_is_translated_to_list_of_web_elements(self):
+ self.driver.get(self.webserver.where_is(
+ "javascript/res/return_array_of_dom_elements.html"))
+
+ result = self.driver.execute_script(
+ "return document.getElementsByTagName('div');")
+
+ self.assertIsInstance(result, list)
+ self.assertEquals(2, len(result))
+ self.assertEquals("a", result[0].text)
+ self.assertEquals("b", result[1].text)
+
+ def test_return_object_literal_with_dom_element_property(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+ result = self.driver.execute_script("return {a: document.body}")
+ self.assertIsInstance(result, dict)
+ self.assertEquals("body", result["a"].tag_name)
+
+ def test_scripts_execute_in_anonymous_function_and_do_not_pollute_global_scope(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+ self.driver.execute_script("var x = 1;")
+ self.assertEquals("undefined", self.driver.execute_script("return typeof x;"));
+
+ def test_scripts_can_modify_context_window_object(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+ self.driver.execute_script("window.x = 1;")
+ self.assertEquals("number", self.driver.execute_script("return typeof x;"));
+ self.assertEquals(1, self.driver.execute_script("return x;"));
+
+ def test_that_ecmascript_returns_document_title(self):
+ self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html"))
+ result = self.driver.execute_script("return document.title;")
+ self.assertEquals("executeScript test", result)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/javascript/res/execute_script_test.html b/testing/web-platform/tests/old-tests/webdriver/javascript/res/execute_script_test.html
new file mode 100644
index 000000000..9491b441a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/javascript/res/execute_script_test.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<title>executeScript test</title> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/javascript/res/return_array_of_dom_elements.html b/testing/web-platform/tests/old-tests/webdriver/javascript/res/return_array_of_dom_elements.html
new file mode 100644
index 000000000..32827f950
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/javascript/res/return_array_of_dom_elements.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html>
+<div id="one">a</div>
+<div id="two">b</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/javascript/res/return_document_body.html b/testing/web-platform/tests/old-tests/webdriver/javascript/res/return_document_body.html
new file mode 100644
index 000000000..ba1eab446
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/javascript/res/return_document_body.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html>
+<div>Hello, world!</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/javascript/res/return_node_list.html b/testing/web-platform/tests/old-tests/webdriver/javascript/res/return_node_list.html
new file mode 100644
index 000000000..32827f950
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/javascript/res/return_node_list.html
@@ -0,0 +1,3 @@
+<!DOCTYPE html>
+<div id="one">a</div>
+<div id="two">b</div>
diff --git a/testing/web-platform/tests/old-tests/webdriver/modal/__init__.py b/testing/web-platform/tests/old-tests/webdriver/modal/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/modal/__init__.py
diff --git a/testing/web-platform/tests/old-tests/webdriver/modal/alerts_quit_test.py b/testing/web-platform/tests/old-tests/webdriver/modal/alerts_quit_test.py
new file mode 100644
index 000000000..83f7d1450
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/modal/alerts_quit_test.py
@@ -0,0 +1,26 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+from selenium.webdriver.support import wait
+
+
+class AlertsQuitTest(base_test.WebDriverBaseTest):
+ def setUp(self):
+ self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions=[exceptions.NoAlertPresentException])
+ self.driver.get(self.webserver.where_is('modal/res/alerts.html'))
+
+ def test_can_quit_when_an_alert_is_present(self):
+ self.driver.find_element_by_css_selector('#alert').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ self.driver.quit()
+ with self.assertRaises(Exception):
+ alert.accept()
+ AlertsQuitTest.driver = None
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/modal/alerts_test.py b/testing/web-platform/tests/old-tests/webdriver/modal/alerts_test.py
new file mode 100644
index 000000000..5f6f8a9f5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/modal/alerts_test.py
@@ -0,0 +1,148 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+from selenium.webdriver.support import wait
+
+class AlertsTest(base_test.WebDriverBaseTest):
+ def setUp(self):
+ self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions = [exceptions.NoAlertPresentException])
+ self.driver.get(self.webserver.where_is('modal/res/alerts.html'))
+
+ def tearDown(self):
+ try:
+ self.driver.switch_to_alert().dismiss()
+ except exceptions.NoAlertPresentException:
+ pass
+
+ # Alerts
+ def test_should_allow_user_to_accept_an_alert(self):
+ self.driver.find_element_by_css_selector('#alert').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.accept()
+ self.driver.current_url
+
+ def test_should_allow_user_to_accept_an_alert_with_no_text(self):
+ self.driver.find_element_by_css_selector('#empty-alert').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.accept()
+ self.driver.current_url
+
+ def test_should_allow_user_to_dismiss_an_alert(self):
+ self.driver.find_element_by_css_selector('#alert').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.dismiss()
+ self.driver.current_url
+
+ def test_should_allow_user_to_get_text_of_an_alert(self):
+ self.driver.find_element_by_css_selector('#alert').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.text
+ alert.accept()
+ self.assertEquals('cheese', value)
+
+ def test_setting_the_value_of_an_alert_throws(self):
+ self.driver.find_element_by_css_selector('#alert').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ with self.assertRaises(exceptions.ElementNotVisibleException):
+ alert.send_keys('cheese')
+ alert.accept()
+
+ def test_alert_should_not_allow_additional_commands_if_dismissed(self):
+ self.driver.find_element_by_css_selector('#alert').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.accept()
+ with self.assertRaises(exceptions.NoAlertPresentException):
+ alert.text
+
+ # Prompts
+ def test_should_allow_user_to_accept_a_prompt(self):
+ self.driver.find_element_by_css_selector('#prompt').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.accept()
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == '')
+
+ def test_should_allow_user_to_dismiss_a_prompt(self):
+ self.driver.find_element_by_css_selector('#prompt').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.dismiss()
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'null')
+
+ def test_should_allow_user_to_set_the_value_of_a_prompt(self):
+ self.driver.find_element_by_css_selector('#prompt').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.send_keys('cheese')
+ alert.accept()
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'cheese')
+
+ def test_should_allow_user_to_get_text_of_a_prompt(self):
+ self.driver.find_element_by_css_selector('#prompt').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.text
+ alert.accept()
+ self.assertEquals('Enter something', value)
+
+ def test_prompt_should_not_allow_additional_commands_if_dismissed(self):
+ self.driver.find_element_by_css_selector('#prompt').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.accept()
+ with self.assertRaises(exceptions.NoAlertPresentException):
+ alert.text
+
+ def test_prompt_should_use_default_value_if_no_keys_sent(self):
+ self.driver.find_element_by_css_selector('#prompt-with-default').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.accept()
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'This is a default value')
+
+ def test_prompt_should_have_null_value_if_dismissed(self):
+ self.driver.find_element_by_css_selector('#prompt-with-default').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.dismiss()
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'null')
+
+ # Confirmations
+ def test_should_allow_user_to_accept_a_confirm(self):
+ self.driver.find_element_by_css_selector('#confirm').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.accept()
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'true')
+
+ def test_should_allow_user_to_dismiss_a_confirm(self):
+ self.driver.find_element_by_css_selector('#confirm').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.dismiss()
+ self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'false')
+
+ def test_setting_the_value_of_a_confirm_throws(self):
+ self.driver.find_element_by_css_selector('#confirm').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ with self.assertRaises(exceptions.ElementNotVisibleException):
+ alert.send_keys('cheese')
+ alert.accept()
+
+ def test_should_allow_user_to_get_text_of_a_confirm(self):
+ self.driver.find_element_by_css_selector('#confirm').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.text
+ alert.accept()
+ self.assertEquals('cheese', value)
+
+ def test_confirm_should_not_allow_additional_commands_if_dismissed(self):
+ self.driver.find_element_by_css_selector('#confirm').click()
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ alert.accept()
+ with self.assertRaises(exceptions.NoAlertPresentException):
+ alert.text
+
+"""
+ def test_switch_to_missing_alert_fails(self):
+ with self.assertRaises(exceptions.NoAlertPresentException):
+ self.driver.switch_to_alert()
+"""
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/modal/res/alerts.html b/testing/web-platform/tests/old-tests/webdriver/modal/res/alerts.html
new file mode 100644
index 000000000..36c5dc139
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/modal/res/alerts.html
@@ -0,0 +1,53 @@
+<html>
+<!-- Padding to account for small screens of mobile devices -->
+<style>
+ p {margin-top:48px;}
+</style>
+<head>
+ <title>Testing Alerts</title>
+
+ <script type="text/javascript">
+ function setInnerText(id, value) {
+ document.getElementById(id).innerHTML = '<p>' + value + '</p>';
+ }
+
+ function displayPrompt() {
+ setInnerText('text', prompt('Enter something'));
+ }
+
+ function displayPromptWithDefault() {
+ setInnerText('text', prompt('Enter something', 'This is a default value'));
+ }
+
+ function displayTwoPrompts() {
+ setInnerText('text1', prompt('First'));
+ setInnerText('text2', prompt('Second'));
+ }
+
+ function displayConfirm() {
+ setInnerText('text', confirm('cheese'));
+ }
+ </script>
+</head>
+<body>
+
+<h1>Testing Alerts and Stuff</h1>
+
+<p>This tests alerts: <a href="#" id="alert" onclick="alert('cheese');">click me</a></p>
+
+<p>This tests alerts: <a href="#" id="empty-alert" onclick="alert('');">click me</a></p>
+
+<p>Let's make the <a href="#" id="prompt" onclick="displayPrompt();">prompt happen</a></p>
+
+<p>Let's make the <a href="#" id="prompt-with-default" onclick="displayPromptWithDefault();">prompt with default happen</a></p>
+
+<p>Let's make TWO <a href="#" id="double-prompt" onclick="displayTwoPrompts();">prompts happen</a></p>
+
+<p>This tests confirm: <a href="#" id="confirm" onclick="displayConfirm();">test confirm</a></p>
+
+<div id="text"></div>
+<div id="text1"></div>
+<div id="text2"></div>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/__init__.py b/testing/web-platform/tests/old-tests/webdriver/navigation/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/__init__.py
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/auth_tests.py b/testing/web-platform/tests/old-tests/webdriver/navigation/auth_tests.py
new file mode 100644
index 000000000..52a18cdb8
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/auth_tests.py
@@ -0,0 +1,42 @@
+import os
+import sys
+import unittest
+import ConfigParser
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+from wptserve import server
+from wptserve.router import any_method
+from wptserve.handlers import basic_auth_handler
+
+class WebDriverAuthTest(unittest.TestCase):
+
+ # Set up class to start HTTP Server that responds to
+ # test URLs with various 401 responses
+ @classmethod
+ def setUpClass(cls):
+ cls.driver = base_test.create_driver()
+ cls.webserver = server.WebTestHttpd(routes=[(any_method, "*", basic_auth_handler)])
+ cls.webserver.start()
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.driver.quit()
+ cls.webserver.stop()
+
+ # Test that when 401 is seen by browser, a WebDriver response is still sent
+ def test_response_401_auth_basic(self):
+ page = self.webserver.get_url('navigation/res/authenticated.html')
+ self.driver.set_page_load_timeout(5)
+ try:
+ self.driver.get( page )
+ # if we got a responses instead of timeout, that's success
+ self.assertTrue(True)
+ except exceptions.TimeoutException:
+ self.fail("Did not get response from browser.")
+ except:
+ self.fail("Unexpected failure. Please investigate.")
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/forward.py b/testing/web-platform/tests/old-tests/webdriver/navigation/forward.py
new file mode 100644
index 000000000..67ca83227
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/forward.py
@@ -0,0 +1,24 @@
+import unittest
+import sys
+import os
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class ForwardTest(base_test.WebDriverBaseTest):
+ # Get a static page that must be the same upon refresh
+ def test_forward(self):
+ self.driver.get(self.webserver.where_is('navigation/res/forwardStart.html'))
+ self.driver.get(self.webserver.where_is('navigation/res/forwardNext.html'))
+ nextbody = self.driver.find_element_by_css_selector("body").text
+ self.driver.back()
+ currbody = self.driver.find_element_by_css_selector("body").text
+ self.assertNotEqual(nextbody, currbody)
+ self.driver.forward()
+ currbody = self.driver.find_element_by_css_selector("body").text
+ self.assertEqual(nextbody, currbody)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/forwardToNothing.py b/testing/web-platform/tests/old-tests/webdriver/navigation/forwardToNothing.py
new file mode 100644
index 000000000..99759681a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/forwardToNothing.py
@@ -0,0 +1,20 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class ForwardToNothingTest(base_test.WebDriverBaseTest):
+ # Get a static page that must be the same upon refresh
+ def test_forwardToNothing(self):
+ self.driver.get(self.webserver.where_is('navigation/forwardStart.html'))
+ body = self.driver.find_element_by_css_selector("body").text
+ self.driver.forward()
+ currbody = self.driver.find_element_by_css_selector("body").text
+ self.assertEqual(body, currbody)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/get_from_http_test.py b/testing/web-platform/tests/old-tests/webdriver/navigation/get_from_http_test.py
new file mode 100644
index 000000000..d28a0d0b1
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/get_from_http_test.py
@@ -0,0 +1,60 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class GetFromHttpTest(base_test.WebDriverBaseTest):
+ def testGetUrlWithNoRedirectionOverHttp(self):
+ page = self.webserver.where_is('navigation/res/empty.html')
+ self.driver.get(page)
+ url = self.driver.current_url
+ self.assertEquals(page, url)
+
+
+ def testGetWillFollowTheLocationHeader(self):
+ page = self.webserver.where_is('navigation/redirect')
+ self.driver.get(page)
+ expected = self.webserver.where_is('navigation/res/empty.html')
+ url = self.driver.current_url
+ self.assertEquals(expected, url)
+
+
+ def testGetWillFollowMetaRefreshThatRefreshesInstantly(self):
+ page = self.webserver.where_is('navigation/res/instant-meta-redirect.html')
+ self.driver.get(page)
+ expected = self.webserver.where_is('navigation/res/empty.html')
+ url = self.driver.current_url
+ self.assertEquals(expected, url)
+
+
+ def testGetWillFollowMetaRefreshThatRefreshesAfterOneSecond(self):
+ page = self.webserver.where_is('navigation/res/1s-meta-redirect.html')
+ self.driver.get(page)
+ expected = self.webserver.where_is('navigation/res/empty.html')
+ url = self.driver.current_url
+ self.assertEquals(expected, url)
+
+
+ def testGetWillNotFollowMetaRefreshThatRefreshesAfterMoreThanOneSecond(self):
+ page = self.webserver.where_is('navigation/res/60s-meta-redirect.html')
+ self.driver.get(page)
+ url = self.driver.current_url
+ self.assertEquals(page, url)
+
+
+ def testGetFragmentInCurrentDocumentDoesNotReloadPage(self):
+ page = self.webserver.where_is("navigation/res/fragment.html")
+ fragment_page = "%s#%s" % (page, "fragment")
+
+ self.driver.get(page)
+ self.driver.execute_script("state = true")
+
+ self.driver.get(fragment_page)
+ self.assertEquals(True, self.driver.execute_script("return state"))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/invalid_cert_test.py b/testing/web-platform/tests/old-tests/webdriver/navigation/invalid_cert_test.py
new file mode 100644
index 000000000..b980146ee
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/invalid_cert_test.py
@@ -0,0 +1,28 @@
+import BaseHTTPServer
+import os
+import ssl
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+here = os.path.dirname(os.path.abspath(__file__))
+
+
+class InvalidCertTest(base_test.WebDriverBaseTest):
+ def testCanNavigateToSiteWithSelfSignedCert(self):
+ self.webserver.httpd.socket = ssl.wrap_socket(
+ self.webserver.httpd.socket,
+ certfile=os.path.join(here, 'res/self-signed.key'),
+ server_side=True)
+ expected = self.webserver.where_is(
+ 'navigation/res/empty.html').replace('http:', 'https:', 1)
+
+ self.driver.get(expected)
+ self.assertEquals(expected, self.driver.current_url)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/refresh-page.py b/testing/web-platform/tests/old-tests/webdriver/navigation/refresh-page.py
new file mode 100644
index 000000000..b0638e568
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/refresh-page.py
@@ -0,0 +1,27 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class RefreshPageTest(base_test.WebDriverBaseTest):
+ # Get a static page that must be the same upon refresh
+ def test_refreshPage(self):
+ self.driver.get(self.webserver.where_is('navigation/res/refreshPageStatic.html'))
+ body = self.driver.find_element_by_css("body").text
+ self.driver.execute_script("document.getElementById('body').innerHTML=''")
+ self.driver.refresh()
+ newbody = self.driver.find_element_by_css("body").text
+ self.assertEqual(body, newbody)
+
+ self.driver.get(self.webserver.where_is('navigation/res/refreshPageDynamic.html'))
+ body = self.driver.find_element_by_css("body").text
+ self.driver.refresh()
+ newbody = self.driver.find_element_by_css("body").text
+ self.assertNotEqual(body, newbody)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/refresh_page.py b/testing/web-platform/tests/old-tests/webdriver/navigation/refresh_page.py
new file mode 100644
index 000000000..1e1899008
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/refresh_page.py
@@ -0,0 +1,27 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class RefreshPageTest(base_test.WebDriverBaseTest):
+ # Get a static page that must be the same upon refresh
+ def test_refreshPage(self):
+ self.driver.get(self.webserver.where_is('navigation/res/refreshPageStatic.html'))
+ body = self.driver.find_element_by_css_selector("body").text
+ self.driver.execute_script("document.getElementById('body').innerHTML=''")
+ self.driver.refresh()
+ newbody = self.driver.find_element_by_css_selector("body").text
+ self.assertEqual(body, newbody)
+
+ self.driver.get(self.webserver.where_is('navigation/res/refreshPageDynamic.html'))
+ body = self.driver.find_element_by_css_selector("body").text
+ self.driver.refresh()
+ newbody = self.driver.find_element_by_css_selector("body").text
+ self.assertNotEqual(body, newbody)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/res/1s-meta-redirect.html b/testing/web-platform/tests/old-tests/webdriver/navigation/res/1s-meta-redirect.html
new file mode 100644
index 000000000..44fd332bd
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/res/1s-meta-redirect.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta http-equiv="Refresh" content="1; URL=empty.html">
+<title>meta-redirect</title>
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/res/60s-meta-redirect.html b/testing/web-platform/tests/old-tests/webdriver/navigation/res/60s-meta-redirect.html
new file mode 100644
index 000000000..9e56bc96a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/res/60s-meta-redirect.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta http-equiv="Refresh" content="60; URL=empty.html">
+<title>meta-redirect</title>
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/res/authenticated.html b/testing/web-platform/tests/old-tests/webdriver/navigation/res/authenticated.html
new file mode 100644
index 000000000..c77449344
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/res/authenticated.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+
+<title>authentication successful</title>
+<h1>You're in!</h1> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/res/empty.html b/testing/web-platform/tests/old-tests/webdriver/navigation/res/empty.html
new file mode 100644
index 000000000..da58ac21d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/res/empty.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+
+<title>Cheese</title>
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/res/forwardNext.html b/testing/web-platform/tests/old-tests/webdriver/navigation/res/forwardNext.html
new file mode 100644
index 000000000..edd77f866
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/res/forwardNext.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<body id=body>
+This is the next page.
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/res/forwardStart.html b/testing/web-platform/tests/old-tests/webdriver/navigation/res/forwardStart.html
new file mode 100644
index 000000000..3ab4f3cdd
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/res/forwardStart.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<body>
+This is the start page.
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/res/fragment.html b/testing/web-platform/tests/old-tests/webdriver/navigation/res/fragment.html
new file mode 100644
index 000000000..bd09434a6
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/res/fragment.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Fragment</title>
+
+<script>
+ var state = false;
+</script>
+
+<p id="fragment">I wish I were a pea, alas I am only a fragment.</p> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/res/instant-meta-redirect.html b/testing/web-platform/tests/old-tests/webdriver/navigation/res/instant-meta-redirect.html
new file mode 100644
index 000000000..c6ad7c9f2
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/res/instant-meta-redirect.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta http-equiv="Refresh" content="0; URL=empty.html">
+<title>meta-redirect</title>
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/res/refreshPageDynamic.html b/testing/web-platform/tests/old-tests/webdriver/navigation/res/refreshPageDynamic.html
new file mode 100644
index 000000000..bedd20c35
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/res/refreshPageDynamic.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<body id="body">
+This is a dynamic page. It will always have different content if refreshed.
+<div id="dynamic"></div>
+</body>
+</html>
+<script>
+document.getElementById('dynamic').innerHTML = Math.random();
+</script> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/res/refreshPageStatic.html b/testing/web-platform/tests/old-tests/webdriver/navigation/res/refreshPageStatic.html
new file mode 100644
index 000000000..7d339aa9d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/res/refreshPageStatic.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<body id="body">
+This is a static page. It will always have the same content if refreshed.
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/navigation/res/self-signed.key b/testing/web-platform/tests/old-tests/webdriver/navigation/res/self-signed.key
new file mode 100644
index 000000000..bca61cdf7
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/navigation/res/self-signed.key
@@ -0,0 +1,28 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXAIBAAKBgQDoww50sF8aKYNe1owbtsEilK2KOZx2F1Iv+EElpO7N2hDarIBu
+9f87H+03b5RpI9oCSFCo67wTdCJ0A4B8SLwV2SUZY78CGJB1A8kXqP04tz0S0SYD
+2TQRliwTxx1r7pDv1VmLc7XZRE6n6FFKTEjKmdUhCwHuQfC1sOkCXqSzFQIDAQAB
+AoGAS5XcAeSsXXCRqqB9SxqjyTkCydo/htG37L/vV+whaFOiGYDfDClyQp7xh4kC
+Zsovp4IYP2Kd5qtV7NqeRL3R5Z/Dxf6+6G4HdbI7np5m7A7cU32hMIzxi5M55Lo6
+gveNgHb3uy+R+tZTyab6saUxFy1DqbMh/2ga4lbatRm7JdkCQQD9C8+Q3nN8FkH4
+sKbOnHsKEV27459EYz7WnENiwhcYByBt7vw9BPM/LrO4UzWtgNjtRtxBpFeVT/V+
+dF7OZuH/AkEA63qhJcs6Ru3G29R3kJ82ttyHU1INawB/7od3bKp3rE+jUwNG7ZbQ
+mtRdPTI02/OOeqZKeo46JX3D57gfMRDC6wJABZk/TGs/jt1HNGNkLWoU5tIfisqs
+eWzgtQrcCtFUhXmS5BvHhOoZH6q+2zMsGtyg8A8DTIiAT5NnURbuCg8IrQJAd3kh
+d85zw/byFSjofPz6wq6DDngsDKUVQ42BvyWCUG+bewvHmdYSAuxKXjkx7oLVQE9M
+rH+q6sizc8bMNJW/fwJBAPcobQ59ZGAEWrnDdtbWnNS1ieSV8p6u7sg20HvrUIPS
+TIQXeems9IKu0xs0dnLXNucm4ur8MnE7snkvWZnx2C8=
+-----END RSA PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIICAzCCAWwCCQCc6Lx6zkc0BDANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJV
+UzETMBEGA1UECAwKQ2FsaWZvcm5pYTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
+cyBQdHkgTHRkMCAXDTEzMDcxMjIyMzMxNVoYDzIyODcwNDI2MjIzMzE1WjBFMQsw
+CQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEhMB8GA1UECgwYSW50ZXJu
+ZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDo
+ww50sF8aKYNe1owbtsEilK2KOZx2F1Iv+EElpO7N2hDarIBu9f87H+03b5RpI9oC
+SFCo67wTdCJ0A4B8SLwV2SUZY78CGJB1A8kXqP04tz0S0SYD2TQRliwTxx1r7pDv
+1VmLc7XZRE6n6FFKTEjKmdUhCwHuQfC1sOkCXqSzFQIDAQABMA0GCSqGSIb3DQEB
+BQUAA4GBAD6atn+xbACigA9+EmcZo2bpAzxLAuXOAVEBM6J7Nrd8pk1D3PRP0QPg
+UxjIDQ7ZqEWwLAcKb6AIfWwJ2Wj7q5LSX5nEFnUXggpywfUNTuZaR/fquUVnhMaO
+tF8fQB9AYSa1WjqUbIKlns3Z2RhUv2DSEifi6UNjsf2UpmDTxtkN
+-----END CERTIFICATE-----
diff --git a/testing/web-platform/tests/old-tests/webdriver/network.py b/testing/web-platform/tests/old-tests/webdriver/network.py
new file mode 100644
index 000000000..0674b989d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/network.py
@@ -0,0 +1,30 @@
+# this comes from this stack overflow post:
+# http://stackoverflow.com/a/1947766/725944
+
+# module for getting the lan ip address of the computer
+
+import os
+import socket
+
+if os.name != "nt":
+ import fcntl
+ import struct
+ def get_interface_ip(ifname):
+ sckt = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ return socket.inet_ntoa(fcntl.ioctl(
+ sckt.fileno(),
+ 0x8915, # SIOCGIFADDR
+ struct.pack('256s', ifname[:15])
+ )[20:24])
+
+def get_lan_ip():
+ ip = socket.gethostbyname(socket.gethostname())
+ if ip.startswith("127.") and os.name != "nt":
+ interfaces = ["eth0","eth1","eth2","wlan0","wlan1","wifi0","ath0","ath1","ppp0"]
+ for ifname in interfaces:
+ try:
+ ip = get_interface_ip(ifname)
+ break
+ except IOError:
+ pass
+ return ip
diff --git a/testing/web-platform/tests/old-tests/webdriver/runtests.py b/testing/web-platform/tests/old-tests/webdriver/runtests.py
new file mode 100644
index 000000000..1cd9a3836
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/runtests.py
@@ -0,0 +1,14 @@
+import unittest
+
+from unittest import TestLoader, TextTestRunner, TestSuite
+
+if __name__ == "__main__":
+
+ loader = TestLoader()
+ suite = TestSuite((
+ loader.discover(".", pattern="*.py")
+ ))
+
+ runner = TextTestRunner(verbosity=2)
+ runner.run(suite)
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/runtests_p0.py b/testing/web-platform/tests/old-tests/webdriver/runtests_p0.py
new file mode 100644
index 000000000..dc52c14be
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/runtests_p0.py
@@ -0,0 +1,42 @@
+import unittest
+
+from unittest import TestLoader, TextTestRunner, TestSuite
+
+from cookie import cookie_test
+from navigation import forward
+from navigation import forwardToNothing
+from navigation import get_from_http_test
+from navigation import refresh_page
+from element_location import element_location_test
+from element_state import visibility_test
+from element_state import method_test
+from element_state import properties
+from javascript import execute_script_test
+from user_input import clear_test
+from windows import window_manipulation
+from windows import tabbing
+
+
+
+if __name__ == "__main__":
+
+ loader = TestLoader()
+ suite = TestSuite((
+ loader.loadTestsFromModule(cookie_test),
+ loader.loadTestsFromModule(forward),
+ loader.loadTestsFromModule(forwardToNothing),
+ loader.loadTestsFromModule(element_location_test),
+ loader.loadTestsFromModule(visibility_test),
+ loader.loadTestsFromModule(execute_script_test),
+ loader.loadTestsFromModule(clear_test),
+ loader.loadTestsFromModule(method_test),
+ loader.loadTestsFromModule(properties),
+ loader.loadTestsFromModule(refresh_page),
+ loader.loadTestsFromModule(get_from_http_test),
+ loader.loadTestsFromModule(window_manipulation),
+ loader.loadTestsFromModule(tabbing)
+ ))
+
+ runner = TextTestRunner(verbosity=2)
+ runner.run(suite)
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/screenshot/__init__.py b/testing/web-platform/tests/old-tests/webdriver/screenshot/__init__.py
new file mode 100644
index 000000000..0c8107beb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/screenshot/__init__.py
@@ -0,0 +1 @@
+__author__ = 'b-redeg'
diff --git a/testing/web-platform/tests/old-tests/webdriver/screenshot/res/screenshot.html b/testing/web-platform/tests/old-tests/webdriver/screenshot/res/screenshot.html
new file mode 100644
index 000000000..057bb9bf5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/screenshot/res/screenshot.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>"img" element with not fully qualified url</title>
+
+<img src="//web-platform.test:8000/images/blue.png">&nbsp;</a> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/screenshot/take_screenshot.py b/testing/web-platform/tests/old-tests/webdriver/screenshot/take_screenshot.py
new file mode 100644
index 000000000..20ff2bff2
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/screenshot/take_screenshot.py
@@ -0,0 +1,15 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+
+class ScreenShotTest(base_test.WebDriverBaseTest):
+ # Get a static page that must be the same upon refresh
+ def test_screenShot(self):
+ self.driver.get(self.webserver.where_is('screenshot/res/screen.html'))
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/timeouts/__init__.py b/testing/web-platform/tests/old-tests/webdriver/timeouts/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/timeouts/__init__.py
diff --git a/testing/web-platform/tests/old-tests/webdriver/timeouts/implicit_waits_tests.py b/testing/web-platform/tests/old-tests/webdriver/timeouts/implicit_waits_tests.py
new file mode 100644
index 000000000..5faa0ad12
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/timeouts/implicit_waits_tests.py
@@ -0,0 +1,64 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+
+
+class ImplicitWaitsTests(base_test.WebDriverBaseTest):
+ def setUp(self):
+ self.driver.get(self.webserver.where_is('timeouts/res/implicit_waits_tests.html'))
+
+ def test_find_element_by_id(self):
+ add = self.driver.find_element_by_css_selector("#adder")
+ self.driver.implicitly_wait(3)
+ add.click()
+ self.driver.find_element_by_css_selector("#box0") # All is well if this doesn't throw.
+
+ def test_should_still_fail_to_find_an_element_when_implicit_waits_are_enabled(self):
+ self.driver.implicitly_wait(0.5)
+ try:
+ self.driver.find_element_by_css_selector("#box0")
+ self.fail("Expected NoSuchElementException to have been thrown")
+ except exceptions.NoSuchElementException as e:
+ pass
+ except Exception as e:
+ self.fail("Expected NoSuchElementException but got " + str(e))
+
+ def test_should_return_after_first_attempt_to_find_one_after_disabling_implicit_waits(self):
+ self.driver.implicitly_wait(3)
+ self.driver.implicitly_wait(0)
+ try:
+ self.driver.find_element_by_css_selector("#box0")
+ self.fail("Expected NoSuchElementException to have been thrown")
+ except exceptions.NoSuchElementException as e:
+ pass
+ except Exception as e:
+ self.fail("Expected NoSuchElementException but got " + str(e))
+
+ def test_should_implicitly_wait_until_at_least_one_element_is_found_when_searching_for_many(self):
+ add = self.driver.find_element_by_css_selector("#adder")
+ self.driver.implicitly_wait(2)
+ add.click()
+ add.click()
+ elements = self.driver.find_elements_by_css_selector(".redbox")
+ self.assertTrue(len(elements) >= 1)
+
+ def test_should_still_fail_to_find_an_element_by_class_when_implicit_waits_are_enabled(self):
+ self.driver.implicitly_wait(0.5)
+ elements = self.driver.find_elements_by_css_selector(".redbox")
+ self.assertEqual(0, len(elements))
+
+ def test_should_return_after_first_attempt_to_find_many_after_disabling_implicit_waits(self):
+ add = self.driver.find_element_by_css_selector("#adder")
+ self.driver.implicitly_wait(1.1)
+ self.driver.implicitly_wait(0)
+ add.click()
+ elements = self.driver.find_elements_by_css_selector(".redbox")
+ self.assertEqual(0, len(elements))
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/timeouts/page_load_timeouts_tests.py b/testing/web-platform/tests/old-tests/webdriver/timeouts/page_load_timeouts_tests.py
new file mode 100644
index 000000000..2f0d3beeb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/timeouts/page_load_timeouts_tests.py
@@ -0,0 +1,26 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+
+
+class PageLoadTimeoutTest(base_test.WebDriverBaseTest):
+ def test_should_timeout_on_page_load_taking_too_long(self):
+ self.driver.set_page_load_timeout(0.01)
+ with self.assertRaises(exceptions.TimeoutException):
+ self.load_page()
+
+ def test_should_not_timeout_on_page_load(self):
+ self.driver.set_page_load_timeout(30)
+ self.load_page()
+ pass
+
+ def load_page(self):
+ self.driver.get(self.webserver.where_is('timeouts/res/page_load_timeouts_tests.html'))
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/timeouts/res/implicit_waits_tests.html b/testing/web-platform/tests/old-tests/webdriver/timeouts/res/implicit_waits_tests.html
new file mode 100644
index 000000000..ce39877fa
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/timeouts/res/implicit_waits_tests.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title></title>
+ <script type="text/javascript">
+ var next = 0;
+
+ function addMore() {
+ var box = document.createElement('DIV');
+ box.id = 'box' + next++;
+ box.className = 'redbox';
+ box.style.width = '150px';
+ box.style.height = '150px';
+ box.style.backgroundColor = 'red';
+ box.style.border = '1px solid black';
+ box.style.margin = '5px';
+
+ window.setTimeout(function() {
+ document.body.appendChild(box);
+ }, 1000);
+ }
+
+ function reveal() {
+ var elem = document.getElementById('revealed');
+ window.setTimeout(function() {
+ elem.style.display = '';
+ }, 1000);
+ }
+ </script>
+ </head>
+ <body>
+ <input id="adder" type="button" value="Add a box!" onclick="addMore()"/>
+
+ <input id="reveal" type="button" value="Reveal a new input" onclick="reveal();" />
+
+ <input id="revealed" style="display:none;" />
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/timeouts/res/page_load_timeouts_tests.html b/testing/web-platform/tests/old-tests/webdriver/timeouts/res/page_load_timeouts_tests.html
new file mode 100644
index 000000000..555e19b70
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/timeouts/res/page_load_timeouts_tests.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Hello WebDriver</title>
+</head>
+<body>
+ <h1>Page Load Timeouts Test</h1>
+ <div>
+ Say Cheese
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/__init__.py b/testing/web-platform/tests/old-tests/webdriver/user_input/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/__init__.py
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/clear_test.py b/testing/web-platform/tests/old-tests/webdriver/user_input/clear_test.py
new file mode 100644
index 000000000..34e82e159
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/clear_test.py
@@ -0,0 +1,53 @@
+# -*- mode: python; fill-column: 100; comment-column: 100; -*-
+
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+
+
+class ElementClearTest(base_test.WebDriverBaseTest):
+ def test_writable_text_input_element_should_clear(self):
+ self.driver.get(self.webserver.where_is("user_input/res/element_clear_writable_input_page.html"))
+ e = self.driver.find_element_by_css_selector("#writableTextInput")
+ e.clear()
+ self.assertEquals("", e.get_attribute("value"))
+
+ def test_disabled_text_input_element_should_not_clear(self):
+ self.driver.get(self.webserver.where_is("user_input/res/element_clear_disabled_input_page.html"))
+ e = self.driver.find_element_by_css_selector("#disabledTextInput")
+ self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear())
+
+ def test_read_only_text_input_element_should_not_clear(self):
+ self.driver.get(self.webserver.where_is("user_input/res/element_clear_readonly_input_page.html"))
+ e = self.driver.find_element_by_css_selector("#readOnlyTextInput")
+ self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear())
+
+ def test_writable_text_area_element_should_clear(self):
+ self.driver.get(self.webserver.where_is("user_input/res/element_clear_writable_textarea_page.html"))
+ e = self.driver.find_element_by_css_selector("#writableTextArea")
+ e.clear()
+ self.assertEquals("", e.get_attribute("value"))
+
+ def test_disabled_text_area_element_should_not_clear(self):
+ self.driver.get(self.webserver.where_is("user_input/res/element_clear_disabled_textarea_page.html"))
+ e = self.driver.find_element_by_css_selector("#disabledTextArea")
+ self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear())
+
+ def test_read_only_text_input_element_should_not_clear(self):
+ self.driver.get(self.webserver.where_is("user_input/res/element_clear_readonly_textarea_page.html"))
+ e = self.driver.find_element_by_css_selector("#readOnlyTextArea")
+ self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear())
+
+ def test_content_editable_area_should_clear(self):
+ self.driver.get(self.webserver.where_is("user_input/res/element_clear_contenteditable_page.html"))
+ e = self.driver.find_element_by_css_selector("#contentEditableElement")
+ e.clear()
+ self.assertEquals("", e.text)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/click_test.py b/testing/web-platform/tests/old-tests/webdriver/user_input/click_test.py
new file mode 100644
index 000000000..c151f9bcd
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/click_test.py
@@ -0,0 +1,349 @@
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+repo_root = os.path.abspath(os.path.join(__file__, "../../.."))
+sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver"))
+from webdriver import exceptions, wait
+
+
+class ClickTest(base_test.WebDriverBaseTest):
+ def setUp(self):
+ self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions = [exceptions.NoSuchAlertException])
+ self.driver.get(self.webserver.where_is('modal/res/alerts.html'))
+
+ def tearDown(self):
+ try:
+ self.driver.switch_to_alert().dismiss()
+ except exceptions.NoSuchAlertException:
+ pass
+
+ def test_click_div(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("div")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "div")
+
+ def test_click_p(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("p")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "p")
+
+ def test_click_h1(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("h1")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "h1")
+
+ def test_click_pre(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("pre")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "pre")
+
+ def test_click_ol(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("ol")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "ol")
+
+ def test_click_ul(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("ul")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "ul")
+
+ def test_click_a(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("a")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "a")
+
+ def test_click_img(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("img")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "img")
+
+ def test_click_video(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("video")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "video")
+
+ def test_click_canvas(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("canvas")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "canvas")
+
+ def test_click_progress(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("progress")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "progress")
+
+ def test_click_textarea(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("textarea")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "textarea")
+
+ def test_click_button(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("button")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "button")
+
+ def test_click_svg(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("svg")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "svg")
+
+ def test_click_input_range(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_range")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_range")
+
+ def test_click_input_button(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_button")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_button")
+
+ def test_click_input_submit(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_submit")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_submit")
+
+ def test_click_input_reset(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_reset")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_reset")
+
+ def test_click_input_checkbox(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_checkbox")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_checkbox")
+
+ def test_click_input_radio(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_radio")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_radio")
+
+ def test_click_input_text(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_text")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_text")
+
+ def test_click_input_number(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_number")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_number")
+
+ def test_click_input_tel(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_tel")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_tel")
+
+ def test_click_input_url(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_url")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_url")
+
+ def test_click_input_email(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_email")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_email")
+
+ def test_click_input_search(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_search")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_search")
+
+ def test_click_input_image(self):
+ self.driver.get(self.webserver.where_is("user_input/res/click.html"))
+
+ element = self.driver.find_element_by_id("input_image")
+ element.click()
+
+ alert = self.wait.until(lambda x: x.switch_to_alert())
+ value = alert.get_text()
+ alert.accept()
+
+ self.assertEquals(value, "input_image")
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/res/click.html b/testing/web-platform/tests/old-tests/webdriver/user_input/res/click.html
new file mode 100644
index 000000000..3517bfca8
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/res/click.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <meta charset="utf-8" />
+ <title></title>
+ <style>
+ .testcase {
+ background-color: #DDD;
+ margin: 30px;
+ min-width: 500px;
+ min-height: 70px;
+ }
+ </style>
+</head>
+<body>
+ <div id="div" class="testcase" onclick="alert('div')">div</div>
+ <p id="p" class="testcase" onclick="alert('p')">p</p>
+ <h1 id="h1" class="testcase" onclick="alert('h1')">h1</h1>
+ <pre id="pre" class="testcase" onclick="alert('pre')">pre</pre>
+ <ol id="ol" class="testcase" onclick="alert('ol')">ol</ol>
+ <ul id="ul" class="testcase" onclick="alert('ul')">ul</ul>
+ <a id="a" class="testcase" onclick="alert('a')">a</a>
+ <img id="img" class="testcase" onclick="alert('img')" src="data:image/png;base64,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AJgMEkAAAAAAk0ECCAAAAGAySAABAAAATAYJIAAAAIDJIAEEAAAAMBkkgAAAAAAmgwQQAAAAwGSQAAIAAACYDBJAAAAAAJNBAggAAABgMkgAAQAAAEwGCSAAAACAySABBAAAADAZJIAAAAAAJoMEEAAAAMBkkAACAAAAmAwSQAAAAACTQQIIAAAAYDJIAAEAAABMBgkgAAAAgMkgAQQAAAAwGSSAAAAAACaDBBAAAADAZJAAAgAAAJgMEkAAAAAAk0ECCAAAAGAySAABAAAATAYJIAAAAIDJIAEEAAAAMBkkgAAAAAAmgwQQAAAAwGSQAAIAAACYDBJAAAAAAJNBAggAAABgMkgAAQAAAEwGCSAAAACAySABBAAAADAZJIAAAAAAJoMEEAAAAMBkkAACAAAAmAwSQAAAAACTQQIIAAAAYDJIAAEAAABMBgkgAAAAgMkgAQQAAAAwGSSAAAAAACaDBBAAAADAZJAAAgAAAJgMEkAAAAAAk0ECCAAAAGAySAABAAAATAYJIAAAAIDJIAEEAAAAMBkkgAAAAAAmgwQQAAAAwGSQAAIAAACYDBJAAAAAAJNBAggAAABgMkgAAQAAAEwGCSAAAACAySABBAAAADAZJIAAAAAAJoMEEAAAAMBkkAACAAAAmAwSQAAAAACTQQIIAAAAYDJIAAEAAABMBgkgAAAAgMkgAQQAAAAwFaL/A1remQsHpt6bAAAAAElFTkSuQmCC" />
+ <video id="video" class="testcase" onclick="alert('video')">video</video>
+ <canvas id="canvas" class="testcase" onclick="alert('canvas')">canvas</canvas>
+ <progress id="progress" class="testcase" onclick="alert('progress')">progress</progress>
+ <textarea id="textarea" class="testcase" onclick="alert('textarea')">textarea</textarea>
+ <button id="button" class="testcase" onclick="alert('button')">button</button>
+ <svg id="svg" class="testcase" onclick="alert('svg')"><circle cx="50" cy="50" r="40" stroke="white" stroke-width="4" fill="blue" /></svg>
+ <input id="input_range" class="testcase" onclick="alert('input_range')" type="range" />
+ <input id="input_button" class="testcase" onclick="alert('input_button')" type="button" />
+ <input id="input_submit" class="testcase" onclick="alert('input_submit')" type="submit" />
+ <input id="input_reset" class="testcase" onclick="alert('input_reset')" type="reset" />
+ <input id="input_checkbox" class="testcase" onclick="alert('input_checkbox')" type="checkbox" />
+ <input id="input_radio" class="testcase" onclick="alert('input_radio')" type="radio" />
+ <input id="input_text" class="testcase" onclick="alert('input_text')" type="text" />
+ <input id="input_number" class="testcase" onclick="alert('input_number')" type="number" />
+ <input id="input_tel" class="testcase" onclick="alert('input_tel')" type="tel" />
+ <input id="input_url" class="testcase" onclick="alert('input_url')" type="url" />
+ <input id="input_email" class="testcase" onclick="alert('input_email')" type="email" />
+ <input id="input_search" class="testcase" onclick="alert('input_search')" type="search" />
+ <input id="input_image" class="testcase" onclick="alert('input_image')" type="image" />
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_contenteditable_page.html b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_contenteditable_page.html
new file mode 100644
index 000000000..2d65d3880
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_contenteditable_page.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Clear Elements Test</title>
+<meta charset=utf-8>
+</head>
+<body>
+<div id="contentEditableElement" contentEditable="true">
+This is a contentEditable area
+</div>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_disabled_input_page.html b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_disabled_input_page.html
new file mode 100644
index 000000000..b0f21235f
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_disabled_input_page.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Clear Elements Test</title>
+<meta charset=utf-8>
+</head>
+<body>
+<input id="disabledTextInput" type="text" disabled="true" value="Test"/>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_disabled_textarea_page.html b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_disabled_textarea_page.html
new file mode 100644
index 000000000..e274a0582
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_disabled_textarea_page.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Clear Elements Test</title>
+<meta charset=utf-8>
+</head>
+<body>
+<textarea rows="5" id="disabledTextArea" disabled="true" cols="20">
+text area which is not supposed to be cleared
+</textarea>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_readonly_input_page.html b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_readonly_input_page.html
new file mode 100644
index 000000000..5d3a7ac67
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_readonly_input_page.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Clear Elements Test</title>
+<meta charset=utf-8>
+</head>
+<body>
+<input id="readOnlyTextInput" type="text" readonly value="Test"/>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_readonly_textarea_page.html b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_readonly_textarea_page.html
new file mode 100644
index 000000000..d11241e86
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_readonly_textarea_page.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Clear Elements Test</title>
+<meta charset=utf-8>
+</head>
+<body>
+<textarea id="readOnlyTextArea" readonly rows="5" cols="20">
+text area which is not supposed to be cleared
+</textarea>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_writable_input_page.html b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_writable_input_page.html
new file mode 100644
index 000000000..448cd37df
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_writable_input_page.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Clear Elements Test</title>
+<meta charset=utf-8>
+</head>
+<body>
+<input id="writableTextInput" type="text" value="Test"/>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_writable_textarea_page.html b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_writable_textarea_page.html
new file mode 100644
index 000000000..d16657aa5
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/res/element_clear_writable_textarea_page.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Clear Elements Test</title>
+<meta charset=utf-8>
+</head>
+<body>
+<textarea id="writableTextArea" rows="2" cols="20">
+This is a sample text area which is supposed to be cleared
+</textarea>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/res/text-form-landing.html b/testing/web-platform/tests/old-tests/webdriver/user_input/res/text-form-landing.html
new file mode 100644
index 000000000..345e60e04
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/res/text-form-landing.html
@@ -0,0 +1,8 @@
+<html>
+<head>
+ <meta charset="utf-8" />
+ <title>Text Form Landing</title>
+</head>
+<body>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/res/text-form.html b/testing/web-platform/tests/old-tests/webdriver/user_input/res/text-form.html
new file mode 100644
index 000000000..d99ec899d
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/res/text-form.html
@@ -0,0 +1,25 @@
+<html>
+<head>
+ <title>Text Form</title>
+ <meta charset="utf-8" />
+ <script>
+ function key_press() {
+ document.getElementById("text").textContent = document.getElementById("Text1").value;
+ }
+
+ function got_focus() {
+ var output = document.getElementById("output");
+ output.checked = true;
+ }
+ </script>
+</head>
+<body>
+ <p id="text"></p>
+ <form action="text-form-landing.html">
+ <input id="Text1" type="text" onkeyup="key_press()"/>
+ <input id="Text2" type="text" onfocus="got_focus()" />
+ <input id="output" type="checkbox" />
+ <input type="submit" name="e" value="mc2" />
+ </form>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/user_input/sendkeys_test.py b/testing/web-platform/tests/old-tests/webdriver/user_input/sendkeys_test.py
new file mode 100644
index 000000000..d2edcbabd
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/user_input/sendkeys_test.py
@@ -0,0 +1,96 @@
+import os
+import sys
+import random
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+
+repo_root = os.path.abspath(os.path.join(__file__, "../../.."))
+sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver"))
+from webdriver import exceptions
+
+
+class SendKeysTest(base_test.WebDriverBaseTest):
+ def setUp(self):
+ self.driver.get(self.webserver.where_is("user_input/res/text-form.html"))
+
+ def test_send_simple_string(self):
+ element = self.driver.find_element_by_id("Text1")
+ element.send_keys("lorem ipsum")
+
+ self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"lorem ipsum")
+
+ def test_send_return(self):
+ element = self.driver.find_element_by_id("Text1")
+ returnkey = unichr(int("E006", 16))
+ element.send_keys([returnkey])
+
+ self.assertEquals(u"" + self.driver.get_current_url(), u"" + self.webserver.where_is("user_input/res/text-form-landing.html?e=mc2"))
+
+ def test_send_backspace(self):
+ element = self.driver.find_element_by_id("Text1")
+ element.send_keys("world ")
+ element.send_keys("wide ")
+ element.send_keys("web ")
+ element.send_keys("consortium")
+
+ backspace= unichr(int("E003", 16))
+ for i in range(0, 11):
+ element.send_keys([backspace])
+
+ self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"world wide web")
+
+ def test_send_tab(self):
+ element1 = self.driver.find_element_by_id("Text1")
+ element2 = self.driver.find_element_by_id("Text2")
+ element1.send_keys("typing here")
+
+ tab= unichr(int("E004", 16))
+ element1.send_keys([tab])
+
+ output = self.driver.find_element_by_id("output")
+ tab_pressed = output.get_attribute("checked")
+ self.assertEquals(tab_pressed, u"true")
+
+ def test_send_shift(self):
+ element = self.driver.find_element_by_id("Text1")
+ element.send_keys("low ")
+
+ shift= unichr(int("E008", 16))
+ element.send_keys([shift , "u", "p", shift])
+
+ self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"low UP")
+
+ def test_send_arrow_keys(self):
+ element = self.driver.find_element_by_id("Text1")
+
+ element.send_keys("internet")
+
+ backspace= unichr(int("E003", 16))
+ left= unichr(int("E012", 16))
+ right= unichr(int("E014", 16))
+ for i in range(0, 4):
+ element.send_keys([left])
+
+ element.send_keys([backspace])
+ element.send_keys([right])
+ element.send_keys("a")
+
+ self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"intranet")
+
+ def test_select_text_with_shift(self):
+ element = self.driver.find_element_by_id("Text1")
+
+ element.send_keys("WebDriver")
+ backspace= unichr(int("E003", 16))
+ shift= unichr(int("E008", 16))
+ left= unichr(int("E012", 16))
+
+ element.send_keys([shift, left, left, left, left, left, left, backspace])
+
+ self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"Web")
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/webdriver.cfg b/testing/web-platform/tests/old-tests/webdriver/webdriver.cfg
new file mode 100644
index 000000000..cb74f56ce
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/webdriver.cfg
@@ -0,0 +1,35 @@
+# to add more browsers specify a [section header] with the name
+# the 'browser' is currently required
+# url and capabilities are optional
+# url is the 'command_executor' argument passed in to the 'browser' class
+# capabilities is the 'desired_capabilities' argument.
+
+[firefox]
+capabilities: {"browserName": "firefox"}
+mode: compatibility
+
+[selendroid]
+capabilities: {"platform": "ANDROID", "browserName": "android"}
+mode: compatibility
+
+[chrome]
+url: http://localhost:9515
+capabilities: {"browserName": "chrome"}
+mode: compatibility
+
+[ie]
+capabilities: {"browserName": "ie"}
+mode: compatibility
+
+[edge]
+capabilities: {"browserName": "edge"}
+mode: compatibility
+
+[ios-driver]
+capabilities: {"browserName": "iphone"}
+mode: compatibility
+
+[blackberry]
+url: http://169.254.0.1:1338
+capabilities: {"browserName": "blackberry"}
+mode: compatibility
diff --git a/testing/web-platform/tests/old-tests/webdriver/windows/__init__.py b/testing/web-platform/tests/old-tests/webdriver/windows/__init__.py
new file mode 100644
index 000000000..0c8107beb
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/windows/__init__.py
@@ -0,0 +1 @@
+__author__ = 'b-redeg'
diff --git a/testing/web-platform/tests/old-tests/webdriver/windows/res/win1.html b/testing/web-platform/tests/old-tests/webdriver/windows/res/win1.html
new file mode 100644
index 000000000..b8bf7e80b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/windows/res/win1.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>window one</title>
+
+<div onclick="window.open('win2.html')">win2</div> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/windows/res/win2.html b/testing/web-platform/tests/old-tests/webdriver/windows/res/win2.html
new file mode 100644
index 000000000..81a068fa8
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/windows/res/win2.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>window two</title>
+
+<img src="//web-platform.test:8000/images/blue.png">&nbsp;</a> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/windows/res/win3.html b/testing/web-platform/tests/old-tests/webdriver/windows/res/win3.html
new file mode 100644
index 000000000..d3ee6944b
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/windows/res/win3.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>window three</title>
+
+<img src="//web-platform.test:8000/images/blue.png">&nbsp;</a> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/windows/res/win4.html b/testing/web-platform/tests/old-tests/webdriver/windows/res/win4.html
new file mode 100644
index 000000000..ef35f7617
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/windows/res/win4.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>window four</title>
+
+<img src="//web-platform.test:8000/images/blue.png">&nbsp;</a> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/windows/res/win5.html b/testing/web-platform/tests/old-tests/webdriver/windows/res/win5.html
new file mode 100644
index 000000000..673d2a19a
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/windows/res/win5.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>window five</title>
+
+<img src="//web-platform.test:8000/images/blue.png">&nbsp;</a> \ No newline at end of file
diff --git a/testing/web-platform/tests/old-tests/webdriver/windows/tabbing.py b/testing/web-platform/tests/old-tests/webdriver/windows/tabbing.py
new file mode 100644
index 000000000..a6b5f99bf
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/windows/tabbing.py
@@ -0,0 +1,30 @@
+# -*- mode: python; fill-column: 100; comment-column: 100; -*-
+
+import os
+import sys
+import unittest
+import time
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+from selenium.webdriver.common.keys import Keys
+from selenium.webdriver.common.action_chains import ActionChains
+
+
+class tabbingTest(base_test.WebDriverBaseTest):
+ def test_open_close_tab(self):
+ self.driver.get(self.webserver.where_is("windows/res/win1.html"))
+ self.driver.find_element_by_tag_name("div").click()
+ h = self.driver.window_handles
+ self.assertEquals(2, len(h))
+ self.driver.switch_to.window(h[1])
+ try:
+ self.driver.switch_to.window("does not exist")
+ self.fail("NoSuchWindowException expected")
+ except exceptions.NoSuchWindowException:
+ pass
+ self.driver.close()
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/testing/web-platform/tests/old-tests/webdriver/windows/window_manipulation.py b/testing/web-platform/tests/old-tests/webdriver/windows/window_manipulation.py
new file mode 100644
index 000000000..027716727
--- /dev/null
+++ b/testing/web-platform/tests/old-tests/webdriver/windows/window_manipulation.py
@@ -0,0 +1,43 @@
+# -*- mode: python; fill-column: 100; comment-column: 100; -*-
+
+import os
+import sys
+import unittest
+
+sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../..")))
+import base_test
+from selenium.common import exceptions
+
+
+class WindowingTest(base_test.WebDriverBaseTest):
+ def test_maximize(self):
+ #self.driver.get(self.webserver.where_is("windows/res/win1.html"))
+ self.driver.maximize_window()
+
+ def test_window_size_manipulation(self):
+ #self.driver.get(self.webserver.where_is("windows/res/win1.html"))
+ self.driver.set_window_size(400, 400)
+ window_size = self.driver.get_window_size()
+ self.assertTrue("width" in window_size)
+ self.assertTrue("height" in window_size)
+ self.assertEquals({"width": 400, "height":400}, window_size)
+
+ """
+ todo: make that work
+ see: https://w3c.github.io/webdriver/webdriver-spec.html#setwindowsize
+ result = self.driver.set_window_size(100, 100)
+ self.assertTrue("status" in result)
+ self.assertEquals(result["status"], 500)
+ """
+
+ def test_window_position_manipulation(self):
+ #self.driver.get(self.webserver.where_is("windows/res/win1.html"))
+ self.driver.set_window_position(400, 400)
+ window_position = self.driver.get_window_position()
+ self.assertTrue("x" in window_position)
+ self.assertTrue("y" in window_position)
+ self.assertEquals({"x": 400, "y": 400}, window_position)
+
+
+if __name__ == "__main__":
+ unittest.main()