From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- dom/html/test/347174transform.xsl | 41 + dom/html/test/347174transformable.xml | 3 + dom/html/test/allowMedia.sjs | 12 + dom/html/test/browser.ini | 37 + dom/html/test/browser_DOMDocElementInserted.js | 23 + dom/html/test/browser_ImageDocument_svg_zoom.js | 38 + dom/html/test/browser_bug1081537.js | 11 + dom/html/test/browser_bug1108547.js | 149 +++ dom/html/test/browser_bug436200.js | 60 ++ dom/html/test/browser_bug592641.js | 61 ++ dom/html/test/browser_containerLoadingContent.js | 130 +++ .../test/browser_form_post_from_file_to_http.js | 180 ++++ .../test/browser_refresh_after_document_write.js | 52 + dom/html/test/browser_submission_flush.js | 97 ++ dom/html/test/browser_targetBlankNoOpener.js | 121 +++ dom/html/test/bug100533_iframe.html | 8 + dom/html/test/bug100533_load.html | 14 + dom/html/test/bug1260704_iframe.html | 38 + dom/html/test/bug1260704_iframe_empty.html | 15 + dom/html/test/bug1292522_iframe.html | 10 + dom/html/test/bug1292522_page.html | 14 + dom/html/test/bug1315146-iframe.html | 4 + dom/html/test/bug1315146-main.html | 15 + dom/html/test/bug196523-subframe.html | 37 + dom/html/test/bug199692-nested-d2.html | 14 + dom/html/test/bug199692-nested.html | 15 + dom/html/test/bug199692-popup.html | 188 ++++ dom/html/test/bug199692-scrolled.html | 34 + dom/html/test/bug242709_iframe.html | 20 + dom/html/test/bug242709_load.html | 11 + dom/html/test/bug277724_iframe1.html | 28 + dom/html/test/bug277724_iframe2.xhtml | 27 + dom/html/test/bug277890_iframe.html | 20 + dom/html/test/bug277890_load.html | 11 + dom/html/test/bug340800_iframe.txt | 4 + dom/html/test/bug369370-popup.png | Bin 0 -> 4073 bytes dom/html/test/bug372098-link-target.html | 7 + dom/html/test/bug436200.html | 12 + dom/html/test/bug441930_iframe.html | 27 + dom/html/test/bug445004-inner.html | 14 + dom/html/test/bug445004-inner.js | 27 + dom/html/test/bug445004-outer-abs.html | 11 + dom/html/test/bug445004-outer-rel.html | 11 + dom/html/test/bug445004-outer-write.html | 11 + dom/html/test/bug446483-iframe.html | 10 + dom/html/test/bug448564-echo.sjs | 6 + dom/html/test/bug448564-iframe-1.html | 16 + dom/html/test/bug448564-iframe-2.html | 16 + dom/html/test/bug448564-iframe-3.html | 16 + dom/html/test/bug448564-submit.js | 6 + dom/html/test/bug499092.html | 6 + dom/html/test/bug499092.xml | 4 + dom/html/test/bug514856_iframe.html | 21 + dom/html/test/bug592641_img.jpg | Bin 0 -> 42018 bytes dom/html/test/bug649134/file_bug649134-1.sjs | 12 + dom/html/test/bug649134/file_bug649134-2.sjs | 12 + dom/html/test/bug649134/index.html | 3 + dom/html/test/chrome.ini | 9 + dom/html/test/dialog/mochitest.ini | 4 + .../test_bug1648877_dialog_fullscreen_denied.html | 52 + dom/html/test/dummy_page.html | 10 + dom/html/test/empty.html | 1 + dom/html/test/file.webm | Bin 0 -> 512 bytes dom/html/test/file_anchor_ping.html | 13 + dom/html/test/file_broadcast_load.html | 16 + dom/html/test/file_bug1108547-1.html | 4 + dom/html/test/file_bug1108547-2.html | 6 + dom/html/test/file_bug1108547-3.html | 5 + dom/html/test/file_bug1166138_1x.png | Bin 0 -> 91 bytes dom/html/test/file_bug1166138_2x.png | Bin 0 -> 100 bytes dom/html/test/file_bug1166138_def.png | Bin 0 -> 85 bytes dom/html/test/file_bug1260704.png | Bin 0 -> 91 bytes dom/html/test/file_bug209275_1.html | 28 + dom/html/test/file_bug209275_2.html | 23 + dom/html/test/file_bug209275_3.html | 23 + dom/html/test/file_bug297761.html | 13 + dom/html/test/file_bug417760.png | Bin 0 -> 1991 bytes dom/html/test/file_bug871161-1.html | 16 + dom/html/test/file_bug871161-2.html | 14 + dom/html/test/file_bug893537.html | 9 + dom/html/test/file_cookiemanager.js | 20 + dom/html/test/file_formSubmission_img.jpg | Bin 0 -> 2711 bytes dom/html/test/file_formSubmission_text.txt | 1 + dom/html/test/file_iframe_sandbox_a_if1.html | 13 + dom/html/test/file_iframe_sandbox_a_if10.html | 12 + dom/html/test/file_iframe_sandbox_a_if11.html | 23 + dom/html/test/file_iframe_sandbox_a_if12.html | 23 + dom/html/test/file_iframe_sandbox_a_if13.html | 13 + dom/html/test/file_iframe_sandbox_a_if14.html | 34 + dom/html/test/file_iframe_sandbox_a_if15.html | 33 + dom/html/test/file_iframe_sandbox_a_if16.html | 25 + dom/html/test/file_iframe_sandbox_a_if17.html | 27 + dom/html/test/file_iframe_sandbox_a_if18.html | 26 + dom/html/test/file_iframe_sandbox_a_if19.html | 21 + dom/html/test/file_iframe_sandbox_a_if2.html | 21 + dom/html/test/file_iframe_sandbox_a_if3.html | 24 + dom/html/test/file_iframe_sandbox_a_if4.html | 30 + dom/html/test/file_iframe_sandbox_a_if5.html | 22 + dom/html/test/file_iframe_sandbox_a_if6.html | 21 + dom/html/test/file_iframe_sandbox_a_if7.html | 20 + dom/html/test/file_iframe_sandbox_a_if8.html | 26 + dom/html/test/file_iframe_sandbox_a_if9.html | 18 + dom/html/test/file_iframe_sandbox_b_if1.html | 11 + dom/html/test/file_iframe_sandbox_b_if2.html | 49 + dom/html/test/file_iframe_sandbox_b_if3.html | 92 ++ dom/html/test/file_iframe_sandbox_c_if1.html | 35 + dom/html/test/file_iframe_sandbox_c_if2.html | 23 + dom/html/test/file_iframe_sandbox_c_if3.html | 26 + dom/html/test/file_iframe_sandbox_c_if4.html | 36 + dom/html/test/file_iframe_sandbox_c_if5.html | 20 + dom/html/test/file_iframe_sandbox_c_if6.html | 24 + dom/html/test/file_iframe_sandbox_c_if7.html | 27 + dom/html/test/file_iframe_sandbox_c_if8.html | 27 + dom/html/test/file_iframe_sandbox_c_if9.html | 17 + dom/html/test/file_iframe_sandbox_close.html | 3 + dom/html/test/file_iframe_sandbox_d_if1.html | 19 + dom/html/test/file_iframe_sandbox_d_if10.html | 17 + dom/html/test/file_iframe_sandbox_d_if11.html | 30 + dom/html/test/file_iframe_sandbox_d_if12.html | 16 + dom/html/test/file_iframe_sandbox_d_if13.html | 35 + dom/html/test/file_iframe_sandbox_d_if14.html | 35 + dom/html/test/file_iframe_sandbox_d_if15.html | 14 + dom/html/test/file_iframe_sandbox_d_if16.html | 22 + dom/html/test/file_iframe_sandbox_d_if17.html | 24 + dom/html/test/file_iframe_sandbox_d_if18.html | 33 + dom/html/test/file_iframe_sandbox_d_if19.html | 13 + dom/html/test/file_iframe_sandbox_d_if2.html | 28 + dom/html/test/file_iframe_sandbox_d_if20.html | 25 + dom/html/test/file_iframe_sandbox_d_if21.html | 14 + dom/html/test/file_iframe_sandbox_d_if22.html | 25 + dom/html/test/file_iframe_sandbox_d_if23.html | 61 ++ dom/html/test/file_iframe_sandbox_d_if3.html | 13 + dom/html/test/file_iframe_sandbox_d_if4.html | 20 + dom/html/test/file_iframe_sandbox_d_if5.html | 20 + dom/html/test/file_iframe_sandbox_d_if6.html | 19 + dom/html/test/file_iframe_sandbox_d_if7.html | 20 + dom/html/test/file_iframe_sandbox_d_if8.html | 18 + dom/html/test/file_iframe_sandbox_d_if9.html | 17 + dom/html/test/file_iframe_sandbox_e_if1.html | 20 + dom/html/test/file_iframe_sandbox_e_if10.html | 19 + dom/html/test/file_iframe_sandbox_e_if11.html | 22 + dom/html/test/file_iframe_sandbox_e_if12.html | 19 + dom/html/test/file_iframe_sandbox_e_if13.html | 19 + dom/html/test/file_iframe_sandbox_e_if14.html | 24 + dom/html/test/file_iframe_sandbox_e_if15.html | 17 + dom/html/test/file_iframe_sandbox_e_if16.html | 27 + dom/html/test/file_iframe_sandbox_e_if2.html | 12 + dom/html/test/file_iframe_sandbox_e_if3.html | 11 + dom/html/test/file_iframe_sandbox_e_if4.html | 11 + dom/html/test/file_iframe_sandbox_e_if5.html | 19 + dom/html/test/file_iframe_sandbox_e_if6.html | 20 + dom/html/test/file_iframe_sandbox_e_if7.html | 17 + dom/html/test/file_iframe_sandbox_e_if8.html | 23 + dom/html/test/file_iframe_sandbox_e_if9.html | 19 + dom/html/test/file_iframe_sandbox_fail.js | 4 + dom/html/test/file_iframe_sandbox_form_fail.html | 19 + dom/html/test/file_iframe_sandbox_form_pass.html | 17 + dom/html/test/file_iframe_sandbox_g_if1.html | 60 ++ dom/html/test/file_iframe_sandbox_h_if1.html | 34 + dom/html/test/file_iframe_sandbox_k_if1.html | 47 + dom/html/test/file_iframe_sandbox_k_if2.html | 50 + dom/html/test/file_iframe_sandbox_k_if3.html | 20 + dom/html/test/file_iframe_sandbox_k_if4.html | 34 + dom/html/test/file_iframe_sandbox_k_if5.html | 33 + dom/html/test/file_iframe_sandbox_k_if6.html | 21 + dom/html/test/file_iframe_sandbox_k_if7.html | 26 + dom/html/test/file_iframe_sandbox_k_if8.html | 36 + dom/html/test/file_iframe_sandbox_k_if9.html | 20 + .../test/file_iframe_sandbox_navigation_fail.html | 17 + .../test/file_iframe_sandbox_navigation_pass.html | 17 + .../test/file_iframe_sandbox_navigation_start.html | 11 + .../test/file_iframe_sandbox_open_window_fail.html | 19 + .../test/file_iframe_sandbox_open_window_pass.html | 25 + dom/html/test/file_iframe_sandbox_pass.js | 4 + dom/html/test/file_iframe_sandbox_redirect.html | 2 + .../file_iframe_sandbox_redirect.html^headers^ | 2 + .../test/file_iframe_sandbox_redirect_target.html | 9 + dom/html/test/file_iframe_sandbox_refresh.html | 2 + .../test/file_iframe_sandbox_refresh.html^headers^ | 1 + .../file_iframe_sandbox_srcdoc_allow_scripts.html | 1 + ...ile_iframe_sandbox_srcdoc_no_allow_scripts.html | 1 + .../file_iframe_sandbox_top_navigation_fail.html | 18 + .../file_iframe_sandbox_top_navigation_pass.html | 20 + .../test/file_iframe_sandbox_window_form_fail.html | 20 + .../test/file_iframe_sandbox_window_form_pass.html | 20 + ...file_iframe_sandbox_window_navigation_fail.html | 20 + ...file_iframe_sandbox_window_navigation_pass.html | 20 + ..._iframe_sandbox_window_top_navigation_fail.html | 24 + ..._iframe_sandbox_window_top_navigation_pass.html | 20 + dom/html/test/file_iframe_sandbox_worker.js | 3 + .../test/file_refresh_after_document_write.html | 15 + dom/html/test/file_script_module.html | 42 + dom/html/test/file_script_nomodule.html | 32 + dom/html/test/file_srcdoc-2.html | 10 + dom/html/test/file_srcdoc.html | 16 + dom/html/test/file_srcdoc_iframe3.html | 1 + dom/html/test/file_window_close_and_open.html | 20 + dom/html/test/file_window_open_close_inner.html | 7 + dom/html/test/file_window_open_close_outer.html | 5 + dom/html/test/formData_test.js | 289 +++++ dom/html/test/formData_worker.js | 23 + dom/html/test/formSubmission_chrome.js | 19 + dom/html/test/form_data_file.bin | 1 + dom/html/test/form_data_file.txt | 1 + dom/html/test/form_submit_server.sjs | 86 ++ dom/html/test/forms/FAIL.html | 1 + dom/html/test/forms/PASS.html | 1 + dom/html/test/forms/chrome.ini | 5 + dom/html/test/forms/file_double_submit.html | 11 + dom/html/test/forms/file_login_fields.html | 16 + dom/html/test/forms/mochitest.ini | 121 +++ dom/html/test/forms/save_restore_radio_groups.sjs | 48 + dom/html/test/forms/submit_invalid_file.sjs | 13 + .../test_MozEditableElement_setUserInput.html | 581 ++++++++++ dom/html/test/forms/test_autocomplete.html | 137 +++ dom/html/test/forms/test_autocompleteinfo.html | 177 +++ dom/html/test/forms/test_bug1039548.html | 55 + dom/html/test/forms/test_bug1283915.html | 67 ++ dom/html/test/forms/test_bug1286509.html | 49 + .../forms/test_button_attributes_reflection.html | 161 +++ dom/html/test/forms/test_change_event.html | 286 +++++ dom/html/test/forms/test_datalist_element.html | 118 ++ dom/html/test/forms/test_double_submit.html | 33 + dom/html/test/forms/test_form_attribute-1.html | 473 ++++++++ dom/html/test/forms/test_form_attribute-2.html | 53 + dom/html/test/forms/test_form_attribute-3.html | 68 ++ dom/html/test/forms/test_form_attribute-4.html | 48 + .../forms/test_form_attributes_reflection.html | 90 ++ .../test/forms/test_form_named_getter_dynamic.html | 54 + dom/html/test/forms/test_formaction_attribute.html | 169 +++ .../test/forms/test_formnovalidate_attribute.html | 125 +++ .../forms/test_input_attributes_reflection.html | 269 +++++ .../test_input_color_input_change_events.html | 119 ++ .../forms/test_input_color_picker_datalist.html | 42 + .../forms/test_input_color_picker_initial.html | 78 ++ .../test/forms/test_input_color_picker_popup.html | 144 +++ .../test/forms/test_input_color_picker_update.html | 86 ++ dom/html/test/forms/test_input_date_bad_input.html | 113 ++ .../test/forms/test_input_date_key_events.html | 270 +++++ .../forms/test_input_datetime_calendar_button.html | 177 +++ .../forms/test_input_datetime_disabled_focus.html | 42 + .../test/forms/test_input_datetime_focus_blur.html | 64 ++ .../test_input_datetime_focus_blur_events.html | 93 ++ .../forms/test_input_datetime_focus_state.html | 79 ++ .../test/forms/test_input_datetime_hidden.html | 32 + .../test_input_datetime_input_change_events.html | 143 +++ .../test/forms/test_input_datetime_readonly.html | 20 + ...ime_reset_default_value_input_change_event.html | 122 +++ .../test/forms/test_input_datetime_tabindex.html | 113 ++ dom/html/test/forms/test_input_defaultValue.html | 81 ++ dom/html/test/forms/test_input_email.html | 237 ++++ dom/html/test/forms/test_input_event.html | 409 +++++++ dom/html/test/forms/test_input_file_picker.html | 280 +++++ .../test/forms/test_input_hasBeenTypePassword.html | 67 ++ .../test_input_hasBeenTypePassword_navigation.html | 68 ++ dom/html/test/forms/test_input_list_attribute.html | 253 +++++ dom/html/test/forms/test_input_number_data.js | 54 + dom/html/test/forms/test_input_number_focus.html | 109 ++ .../test/forms/test_input_number_key_events.html | 238 ++++ dom/html/test/forms/test_input_number_l10n.html | 77 ++ .../test/forms/test_input_number_mouse_events.html | 259 +++++ .../forms/test_input_number_placeholder_shown.html | 30 + .../test/forms/test_input_number_rounding.html | 120 +++ .../test/forms/test_input_number_validation.html | 139 +++ ..._input_password_click_show_password_button.html | 95 ++ .../test_input_password_show_password_button.html | 80 ++ .../test/forms/test_input_radio_indeterminate.html | 109 ++ .../test/forms/test_input_radio_radiogroup.html | 75 ++ dom/html/test/forms/test_input_radio_required.html | 31 + .../test/forms/test_input_range_attr_order.html | 48 + .../test/forms/test_input_range_key_events.html | 207 ++++ .../test_input_range_mouse_and_touch_events.html | 227 ++++ dom/html/test/forms/test_input_range_rounding.html | 103 ++ dom/html/test/forms/test_input_sanitization.html | 585 ++++++++++ dom/html/test/forms/test_input_setting_value.html | 619 +++++++++++ .../test_input_textarea_set_value_no_scroll.html | 123 +++ .../test/forms/test_input_time_key_events.html | 221 ++++ .../forms/test_input_time_sec_millisec_field.html | 134 +++ dom/html/test/forms/test_input_types_pref.html | 77 ++ .../test/forms/test_input_typing_sanitization.html | 217 ++++ .../forms/test_input_untrusted_key_events.html | 90 ++ dom/html/test/forms/test_input_url.html | 91 ++ .../forms/test_interactive_content_in_label.html | 101 ++ .../forms/test_interactive_content_in_summary.html | 97 ++ .../test/forms/test_label_control_attribute.html | 100 ++ dom/html/test/forms/test_label_input_controls.html | 84 ++ dom/html/test/forms/test_max_attribute.html | 473 ++++++++ dom/html/test/forms/test_maxlength_attribute.html | 129 +++ dom/html/test/forms/test_meter_element.html | 376 +++++++ dom/html/test/forms/test_meter_pseudo-classes.html | 169 +++ dom/html/test/forms/test_min_attribute.html | 473 ++++++++ dom/html/test/forms/test_minlength_attribute.html | 130 +++ dom/html/test/forms/test_mozistextfield.html | 111 ++ dom/html/test/forms/test_novalidate_attribute.html | 85 ++ dom/html/test/forms/test_option_disabled.html | 123 +++ .../test/forms/test_option_index_attribute.html | 76 ++ dom/html/test/forms/test_option_text.html | 57 + dom/html/test/forms/test_output_element.html | 182 ++++ dom/html/test/forms/test_pattern_attribute.html | 324 ++++++ .../test_preserving_metadata_between_reloads.html | 84 ++ dom/html/test/forms/test_progress_element.html | 307 ++++++ dom/html/test/forms/test_radio_in_label.html | 54 + dom/html/test/forms/test_radio_radionodelist.html | 57 + .../test_reportValidation_preventDefault.html | 89 ++ dom/html/test/forms/test_required_attribute.html | 420 ++++++++ .../test/forms/test_restore_form_elements.html | 174 +++ .../test/forms/test_save_restore_radio_groups.html | 70 ++ dom/html/test/forms/test_select_change_event.html | 54 + .../test/forms/test_select_input_change_event.html | 122 +++ .../test/forms/test_select_selectedOptions.html | 119 ++ dom/html/test/forms/test_select_validation.html | 39 + dom/html/test/forms/test_set_range_text.html | 242 +++++ dom/html/test/forms/test_step_attribute.html | 1060 ++++++++++++++++++ dom/html/test/forms/test_stepup_stepdown.html | 1137 ++++++++++++++++++++ dom/html/test/forms/test_submit_invalid_file.html | 55 + .../forms/test_textarea_attributes_reflection.html | 104 ++ dom/html/test/forms/test_validation.html | 343 ++++++ .../test/forms/test_validation_not_in_doc.html | 19 + .../test/forms/test_valueasdate_attribute.html | 751 +++++++++++++ .../test/forms/test_valueasnumber_attribute.html | 858 +++++++++++++++ .../forms/without_selectionchange/mochitest.ini | 5 + .../forms/without_selectionchange/test_select.html | 21 + dom/html/test/head.js | 65 ++ dom/html/test/image-allow-credentials.png | Bin 0 -> 844 bytes dom/html/test/image-allow-credentials.png^headers^ | 2 + dom/html/test/image.png | Bin 0 -> 268 bytes dom/html/test/image_yellow.png | Bin 0 -> 95 bytes dom/html/test/mochitest.ini | 604 +++++++++++ dom/html/test/nnc_lockup.gif | Bin 0 -> 732 bytes dom/html/test/object_bug287465_o1.html | 1 + dom/html/test/object_bug287465_o2.html | 1 + dom/html/test/object_bug556645.html | 1 + dom/html/test/post_action_page.html | 10 + dom/html/test/reflect.js | 1078 +++++++++++++++++++ dom/html/test/script_fakepath.js | 15 + dom/html/test/simpleFileOpener.js | 37 + dom/html/test/submission_flush.html | 13 + dom/html/test/sw_formSubmission.js | 36 + dom/html/test/test_a_text.html | 44 + dom/html/test/test_allowMedia.html | 97 ++ .../test/test_anchor_href_cache_invalidation.html | 30 + dom/html/test/test_anchor_ping.html | 300 ++++++ dom/html/test/test_base_attributes_reflection.html | 34 + dom/html/test/test_bug1003539.html | 37 + dom/html/test/test_bug100533.html | 47 + dom/html/test/test_bug1013316.html | 46 + dom/html/test/test_bug1045270.html | 46 + dom/html/test/test_bug1089326.html | 108 ++ dom/html/test/test_bug109445.html | 55 + dom/html/test/test_bug109445.xhtml | 55 + dom/html/test/test_bug1146116.html | 59 + dom/html/test/test_bug1166138.html | 130 +++ dom/html/test/test_bug1203668.html | 62 ++ dom/html/test/test_bug1230665.html | 46 + dom/html/test/test_bug1250401.html | 97 ++ dom/html/test/test_bug1260664.html | 51 + dom/html/test/test_bug1260704.html | 90 ++ dom/html/test/test_bug1261673.html | 72 ++ dom/html/test/test_bug1261674-1.html | 77 ++ dom/html/test/test_bug1261674-2.html | 70 ++ dom/html/test/test_bug1264157.html | 90 ++ dom/html/test/test_bug1279218.html | 23 + dom/html/test/test_bug1287321.html | 57 + ...522_same_domain_with_different_port_number.html | 43 + ...t_bug1295719_event_sequence_for_arrow_keys.html | 66 ++ ..._bug1295719_event_sequence_for_number_keys.html | 65 ++ dom/html/test/test_bug1297.html | 46 + dom/html/test/test_bug1310865.html | 18 + dom/html/test/test_bug1315146.html | 33 + dom/html/test/test_bug1322678.html | 113 ++ dom/html/test/test_bug1323815.html | 50 + dom/html/test/test_bug1366.html | 35 + dom/html/test/test_bug1400.html | 42 + dom/html/test/test_bug1414077.html | 50 + dom/html/test/test_bug143220.html | 72 ++ dom/html/test/test_bug1472426.html | 120 +++ dom/html/test/test_bug1682.html | 37 + dom/html/test/test_bug1785739.html | 48 + dom/html/test/test_bug182279.html | 35 + dom/html/test/test_bug1823.html | 30 + dom/html/test/test_bug196523.html | 41 + dom/html/test/test_bug199692.html | 21 + dom/html/test/test_bug2082.html | 30 + dom/html/test/test_bug209275.xhtml | 258 +++++ dom/html/test/test_bug237071.html | 28 + dom/html/test/test_bug242709.html | 33 + dom/html/test/test_bug24958.html | 31 + dom/html/test/test_bug255820.html | 99 ++ dom/html/test/test_bug259332.html | 64 ++ dom/html/test/test_bug274626.html | 97 ++ dom/html/test/test_bug277724.html | 141 +++ dom/html/test/test_bug277890.html | 33 + dom/html/test/test_bug287465.html | 45 + dom/html/test/test_bug295561.html | 86 ++ dom/html/test/test_bug297761.html | 77 ++ dom/html/test/test_bug300691-1.html | 120 +++ dom/html/test/test_bug300691-2.html | 142 +++ dom/html/test/test_bug300691-3.xhtml | 48 + dom/html/test/test_bug311681.html | 99 ++ dom/html/test/test_bug311681.xhtml | 102 ++ dom/html/test/test_bug324378.html | 76 ++ dom/html/test/test_bug330705-1.html | 41 + dom/html/test/test_bug332246.html | 75 ++ dom/html/test/test_bug332848.xhtml | 86 ++ dom/html/test/test_bug332893-1.html | 38 + dom/html/test/test_bug332893-2.html | 53 + dom/html/test/test_bug332893-3.html | 58 + dom/html/test/test_bug332893-4.html | 29 + dom/html/test/test_bug332893-5.html | 29 + dom/html/test/test_bug332893-6.html | 27 + dom/html/test/test_bug332893-7.html | 69 ++ dom/html/test/test_bug3348.html | 33 + dom/html/test/test_bug340017.xhtml | 27 + dom/html/test/test_bug340800.html | 55 + dom/html/test/test_bug347174.html | 64 ++ dom/html/test/test_bug347174_write.html | 71 ++ dom/html/test/test_bug347174_xsl.html | 55 + dom/html/test/test_bug347174_xslp.html | 61 ++ dom/html/test/test_bug353415-1.html | 42 + dom/html/test/test_bug353415-2.html | 67 ++ dom/html/test/test_bug359657.html | 40 + dom/html/test/test_bug369370.html | 153 +++ dom/html/test/test_bug371375.html | 58 + dom/html/test/test_bug372098.html | 68 ++ dom/html/test/test_bug373589.html | 29 + dom/html/test/test_bug375003-1.html | 156 +++ dom/html/test/test_bug375003-2.html | 109 ++ dom/html/test/test_bug377624.html | 25 + dom/html/test/test_bug380383.html | 39 + dom/html/test/test_bug383383.html | 41 + dom/html/test/test_bug383383_2.xhtml | 20 + dom/html/test/test_bug384419.html | 56 + dom/html/test/test_bug386496.html | 53 + dom/html/test/test_bug386728.html | 45 + dom/html/test/test_bug386996.html | 43 + dom/html/test/test_bug388558.html | 76 ++ dom/html/test/test_bug388746.html | 62 ++ dom/html/test/test_bug388794.html | 107 ++ dom/html/test/test_bug389797.html | 248 +++++ dom/html/test/test_bug390975.html | 61 ++ dom/html/test/test_bug391994.html | 184 ++++ dom/html/test/test_bug394700.html | 49 + dom/html/test/test_bug395107.html | 108 ++ dom/html/test/test_bug401160.xhtml | 27 + dom/html/test/test_bug402680.html | 50 + dom/html/test/test_bug403868.html | 87 ++ dom/html/test/test_bug403868.xhtml | 86 ++ dom/html/test/test_bug405242.html | 35 + dom/html/test/test_bug406596.html | 83 ++ dom/html/test/test_bug417760.html | 71 ++ dom/html/test/test_bug421640.html | 56 + dom/html/test/test_bug424698.html | 94 ++ dom/html/test/test_bug428135.xhtml | 156 +++ dom/html/test/test_bug430351.html | 523 +++++++++ dom/html/test/test_bug435128.html | 42 + dom/html/test/test_bug441930.html | 29 + dom/html/test/test_bug442801.html | 63 ++ dom/html/test/test_bug445004.html | 138 +++ dom/html/test/test_bug446483.html | 47 + dom/html/test/test_bug448166.html | 39 + dom/html/test/test_bug448564.html | 53 + dom/html/test/test_bug456229.html | 30 + dom/html/test/test_bug458037.xhtml | 112 ++ dom/html/test/test_bug460568.html | 144 +++ dom/html/test/test_bug463104.html | 25 + dom/html/test/test_bug478251.html | 74 ++ dom/html/test/test_bug481335.xhtml | 122 +++ dom/html/test/test_bug481440.html | 30 + dom/html/test/test_bug481647.html | 42 + dom/html/test/test_bug482659.html | 64 ++ dom/html/test/test_bug486741.html | 43 + dom/html/test/test_bug489532.html | 33 + dom/html/test/test_bug497242.xhtml | 41 + dom/html/test/test_bug499092.html | 43 + dom/html/test/test_bug500885.html | 67 ++ dom/html/test/test_bug512367.html | 40 + dom/html/test/test_bug514856.html | 61 ++ dom/html/test/test_bug518122.html | 126 +++ dom/html/test/test_bug519987.html | 33 + dom/html/test/test_bug523771.html | 106 ++ dom/html/test/test_bug529819.html | 32 + dom/html/test/test_bug529859.html | 42 + dom/html/test/test_bug535043.html | 90 ++ dom/html/test/test_bug536891.html | 67 ++ dom/html/test/test_bug536895.html | 54 + dom/html/test/test_bug546995.html | 40 + dom/html/test/test_bug547850.html | 45 + dom/html/test/test_bug551846.html | 164 +++ dom/html/test/test_bug555567.html | 42 + dom/html/test/test_bug556645.html | 50 + dom/html/test/test_bug557087-1.html | 125 +++ dom/html/test/test_bug557087-2.html | 359 ++++++ dom/html/test/test_bug557087-3.html | 215 ++++ dom/html/test/test_bug557087-4.html | 90 ++ dom/html/test/test_bug557087-5.html | 94 ++ dom/html/test/test_bug557087-6.html | 44 + dom/html/test/test_bug557620.html | 30 + dom/html/test/test_bug558788-1.html | 212 ++++ dom/html/test/test_bug558788-2.html | 174 +++ dom/html/test/test_bug560112.html | 211 ++++ dom/html/test/test_bug561634.html | 126 +++ dom/html/test/test_bug561636.html | 99 ++ dom/html/test/test_bug561640.html | 72 ++ dom/html/test/test_bug564001.html | 48 + dom/html/test/test_bug566046.html | 200 ++++ dom/html/test/test_bug567938-1.html | 69 ++ dom/html/test/test_bug567938-2.html | 70 ++ dom/html/test/test_bug567938-3.html | 70 ++ dom/html/test/test_bug567938-4.html | 43 + dom/html/test/test_bug569955.html | 37 + dom/html/test/test_bug573969.html | 37 + dom/html/test/test_bug57600.html | 42 + dom/html/test/test_bug579079.html | 40 + dom/html/test/test_bug582412-1.html | 200 ++++ dom/html/test/test_bug582412-2.html | 199 ++++ dom/html/test/test_bug583514.html | 71 ++ dom/html/test/test_bug583533.html | 81 ++ dom/html/test/test_bug586763.html | 43 + dom/html/test/test_bug586786.html | 57 + dom/html/test/test_bug587469.html | 41 + dom/html/test/test_bug589.html | 42 + dom/html/test/test_bug590353-1.html | 36 + dom/html/test/test_bug590353-2.html | 79 ++ dom/html/test/test_bug590363.html | 133 +++ dom/html/test/test_bug592802.html | 96 ++ dom/html/test/test_bug593689.html | 50 + dom/html/test/test_bug595429.html | 56 + dom/html/test/test_bug595447.html | 29 + dom/html/test/test_bug595449.html | 95 ++ dom/html/test/test_bug596350.html | 65 ++ dom/html/test/test_bug596511.html | 237 ++++ dom/html/test/test_bug598643.html | 80 ++ dom/html/test/test_bug598833-1.html | 45 + dom/html/test/test_bug600155.html | 44 + dom/html/test/test_bug601030.html | 52 + dom/html/test/test_bug605124-1.html | 99 ++ dom/html/test/test_bug605124-2.html | 112 ++ dom/html/test/test_bug605125-1.html | 105 ++ dom/html/test/test_bug605125-2.html | 149 +++ dom/html/test/test_bug606817.html | 59 + dom/html/test/test_bug607145.html | 86 ++ dom/html/test/test_bug610212.html | 42 + dom/html/test/test_bug610687.html | 201 ++++ dom/html/test/test_bug611189.html | 45 + dom/html/test/test_bug612730.html | 51 + dom/html/test/test_bug613019.html | 84 ++ dom/html/test/test_bug613113.html | 52 + dom/html/test/test_bug613722.html | 32 + dom/html/test/test_bug613979.html | 50 + dom/html/test/test_bug615595.html | Bin 0 -> 2706 bytes dom/html/test/test_bug615833.html | 141 +++ dom/html/test/test_bug618948.html | 88 ++ dom/html/test/test_bug619278.html | 56 + dom/html/test/test_bug622558.html | 83 ++ dom/html/test/test_bug622597.html | 105 ++ dom/html/test/test_bug623291.html | 46 + dom/html/test/test_bug6296.html | 31 + dom/html/test/test_bug629801.html | 50 + dom/html/test/test_bug633058.html | 66 ++ dom/html/test/test_bug636336.html | 41 + dom/html/test/test_bug641219.html | 34 + dom/html/test/test_bug643051.html | 55 + dom/html/test/test_bug646157.html | 95 ++ dom/html/test/test_bug649134.html | 54 + dom/html/test/test_bug651956.html | 48 + dom/html/test/test_bug658746.html | 97 ++ dom/html/test/test_bug659596.html | 96 ++ dom/html/test/test_bug659743.xml | 55 + dom/html/test/test_bug660663.html | 30 + dom/html/test/test_bug660959-1.html | 25 + dom/html/test/test_bug660959-2.html | 30 + dom/html/test/test_bug660959-3.html | 28 + dom/html/test/test_bug666200.html | 43 + dom/html/test/test_bug666666.html | 32 + dom/html/test/test_bug669012.html | 44 + dom/html/test/test_bug674558.html | 287 +++++ dom/html/test/test_bug674927.html | 55 + dom/html/test/test_bug677495-1.html | 34 + dom/html/test/test_bug677495.html | 34 + dom/html/test/test_bug677658.html | 41 + dom/html/test/test_bug682886.html | 33 + dom/html/test/test_bug691.html | 62 ++ dom/html/test/test_bug694.html | 30 + dom/html/test/test_bug694503.html | 75 ++ dom/html/test/test_bug696.html | 28 + dom/html/test/test_bug717819.html | 36 + dom/html/test/test_bug741266.html | 44 + dom/html/test/test_bug742030.html | 31 + dom/html/test/test_bug742549.html | 47 + dom/html/test/test_bug745685.html | 105 ++ dom/html/test/test_bug763626.html | 29 + dom/html/test/test_bug765780.html | 46 + dom/html/test/test_bug780993.html | 39 + dom/html/test/test_bug787134.html | 28 + dom/html/test/test_bug797113.html | 39 + dom/html/test/test_bug803677.html | 49 + dom/html/test/test_bug821307.html | 41 + dom/html/test/test_bug827126.html | 28 + dom/html/test/test_bug838582.html | 35 + dom/html/test/test_bug839371.html | 44 + dom/html/test/test_bug839913.html | 14 + dom/html/test/test_bug841466.html | 33 + dom/html/test/test_bug845057.html | 59 + dom/html/test/test_bug869040.html | 36 + dom/html/test/test_bug870787.html | 84 ++ dom/html/test/test_bug871161.html | 37 + dom/html/test/test_bug874758.html | 31 + dom/html/test/test_bug879319.html | 92 ++ dom/html/test/test_bug885024.html | 46 + dom/html/test/test_bug893537.html | 45 + dom/html/test/test_bug95530.html | 38 + dom/html/test/test_bug969346.html | 33 + dom/html/test/test_bug982039.html | 46 + dom/html/test/test_change_crossorigin.html | 89 ++ dom/html/test/test_checked.html | 347 ++++++ dom/html/test/test_dir_attributes_reflection.html | 27 + dom/html/test/test_dl_attributes_reflection.html | 27 + dom/html/test/test_document-element-inserted.html | 54 + dom/html/test/test_documentAll.html | 167 +++ dom/html/test/test_element_prototype.html | 32 + .../test/test_embed_attributes_reflection.html | 57 + dom/html/test/test_external_protocol_iframe.html | 80 ++ dom/html/test/test_fakepath.html | 40 + .../test/test_filepicker_default_directory.html | 81 ++ dom/html/test/test_focusshift_button.html | 34 + dom/html/test/test_form-parsing.html | 35 + dom/html/test/test_formData.html | 50 + dom/html/test/test_formSubmission.html | 910 ++++++++++++++++ dom/html/test/test_formSubmission2.html | 220 ++++ dom/html/test/test_formelements.html | 68 ++ dom/html/test/test_fragment_form_pointer.html | 27 + .../test/test_frame_count_with_synthetic_doc.html | 36 + .../test_getElementsByName_after_mutation.html | 51 + dom/html/test/test_hidden.html | 52 + dom/html/test/test_html_attributes_reflection.html | 27 + dom/html/test/test_htmlcollection.html | 55 + dom/html/test/test_iframe_sandbox_general.html | 283 +++++ dom/html/test/test_iframe_sandbox_inheritance.html | 202 ++++ dom/html/test/test_iframe_sandbox_navigation.html | 285 +++++ dom/html/test/test_iframe_sandbox_navigation2.html | 216 ++++ dom/html/test/test_iframe_sandbox_popups.html | 78 ++ .../test_iframe_sandbox_popups_inheritance.html | 157 +++ dom/html/test/test_iframe_sandbox_redirect.html | 45 + dom/html/test/test_iframe_sandbox_refresh.html | 101 ++ dom/html/test/test_iframe_sandbox_same_origin.html | 108 ++ dom/html/test/test_iframe_sandbox_workers.html | 74 ++ dom/html/test/test_imageSrcSet.html | 38 + dom/html/test/test_image_clone_load.html | 21 + dom/html/test/test_img_attributes_reflection.html | 103 ++ dom/html/test/test_input_file_cancel_event.html | 43 + dom/html/test/test_input_files_not_nsIFile.html | 48 + dom/html/test/test_input_lastInteractiveValue.html | 134 +++ dom/html/test/test_inputmode.html | 132 +++ dom/html/test/test_li_attributes_reflection.html | 34 + dom/html/test/test_link_attributes_reflection.html | 96 ++ dom/html/test/test_link_sizes.html | 35 + dom/html/test/test_map_attributes_reflection.html | 27 + dom/html/test/test_meta_attributes_reflection.html | 45 + dom/html/test/test_mod_attributes_reflection.html | 41 + dom/html/test/test_multipleFilePicker.html | 79 ++ dom/html/test/test_named_options.html | 61 ++ dom/html/test/test_nested_invalid_fieldsets.html | 47 + dom/html/test/test_nestediframe.html | 56 + dom/html/test/test_non-ascii-cookie.html | 69 ++ dom/html/test/test_non-ascii-cookie.html^headers^ | 1 + .../test/test_object_attributes_reflection.html | 117 ++ dom/html/test/test_ol_attributes_reflection.html | 65 ++ dom/html/test/test_option_defaultSelected.html | 47 + dom/html/test/test_option_selected_state.html | 61 ++ .../test/test_param_attributes_reflection.html | 45 + dom/html/test/test_plugin.tst | 1 + dom/html/test/test_q_attributes_reflection.html | 32 + .../test/test_restore_from_parser_fragment.html | 59 + dom/html/test/test_rowscollection.html | 69 ++ dom/html/test/test_script_module.html | 56 + dom/html/test/test_set_input_files.html | 55 + dom/html/test/test_srcdoc-2.html | 57 + dom/html/test/test_srcdoc.html | 118 ++ .../test/test_style_attributes_reflection.html | 35 + dom/html/test/test_track.html | 62 ++ dom/html/test/test_ul_attributes_reflection.html | 33 + dom/html/test/test_viewport_resize.html | 44 + dom/html/test/test_window_open_close.html | 53 + dom/html/test/test_window_open_from_closing.html | 43 + 684 files changed, 52553 insertions(+) create mode 100644 dom/html/test/347174transform.xsl create mode 100644 dom/html/test/347174transformable.xml create mode 100644 dom/html/test/allowMedia.sjs create mode 100644 dom/html/test/browser.ini create mode 100644 dom/html/test/browser_DOMDocElementInserted.js create mode 100644 dom/html/test/browser_ImageDocument_svg_zoom.js create mode 100644 dom/html/test/browser_bug1081537.js create mode 100644 dom/html/test/browser_bug1108547.js create mode 100644 dom/html/test/browser_bug436200.js create mode 100644 dom/html/test/browser_bug592641.js create mode 100644 dom/html/test/browser_containerLoadingContent.js create mode 100644 dom/html/test/browser_form_post_from_file_to_http.js create mode 100644 dom/html/test/browser_refresh_after_document_write.js create mode 100644 dom/html/test/browser_submission_flush.js create mode 100644 dom/html/test/browser_targetBlankNoOpener.js create mode 100644 dom/html/test/bug100533_iframe.html create mode 100644 dom/html/test/bug100533_load.html create mode 100644 dom/html/test/bug1260704_iframe.html create mode 100644 dom/html/test/bug1260704_iframe_empty.html create mode 100644 dom/html/test/bug1292522_iframe.html create mode 100644 dom/html/test/bug1292522_page.html create mode 100644 dom/html/test/bug1315146-iframe.html create mode 100644 dom/html/test/bug1315146-main.html create mode 100644 dom/html/test/bug196523-subframe.html create mode 100644 dom/html/test/bug199692-nested-d2.html create mode 100644 dom/html/test/bug199692-nested.html create mode 100644 dom/html/test/bug199692-popup.html create mode 100644 dom/html/test/bug199692-scrolled.html create mode 100644 dom/html/test/bug242709_iframe.html create mode 100644 dom/html/test/bug242709_load.html create mode 100644 dom/html/test/bug277724_iframe1.html create mode 100644 dom/html/test/bug277724_iframe2.xhtml create mode 100644 dom/html/test/bug277890_iframe.html create mode 100644 dom/html/test/bug277890_load.html create mode 100644 dom/html/test/bug340800_iframe.txt create mode 100644 dom/html/test/bug369370-popup.png create mode 100644 dom/html/test/bug372098-link-target.html create mode 100644 dom/html/test/bug436200.html create mode 100644 dom/html/test/bug441930_iframe.html create mode 100644 dom/html/test/bug445004-inner.html create mode 100644 dom/html/test/bug445004-inner.js create mode 100644 dom/html/test/bug445004-outer-abs.html create mode 100644 dom/html/test/bug445004-outer-rel.html create mode 100644 dom/html/test/bug445004-outer-write.html create mode 100644 dom/html/test/bug446483-iframe.html create mode 100644 dom/html/test/bug448564-echo.sjs create mode 100644 dom/html/test/bug448564-iframe-1.html create mode 100644 dom/html/test/bug448564-iframe-2.html create mode 100644 dom/html/test/bug448564-iframe-3.html create mode 100644 dom/html/test/bug448564-submit.js create mode 100644 dom/html/test/bug499092.html create mode 100644 dom/html/test/bug499092.xml create mode 100644 dom/html/test/bug514856_iframe.html create mode 100644 dom/html/test/bug592641_img.jpg create mode 100644 dom/html/test/bug649134/file_bug649134-1.sjs create mode 100644 dom/html/test/bug649134/file_bug649134-2.sjs create mode 100644 dom/html/test/bug649134/index.html create mode 100644 dom/html/test/chrome.ini create mode 100644 dom/html/test/dialog/mochitest.ini create mode 100644 dom/html/test/dialog/test_bug1648877_dialog_fullscreen_denied.html create mode 100644 dom/html/test/dummy_page.html create mode 100644 dom/html/test/empty.html create mode 100644 dom/html/test/file.webm create mode 100644 dom/html/test/file_anchor_ping.html create mode 100644 dom/html/test/file_broadcast_load.html create mode 100644 dom/html/test/file_bug1108547-1.html create mode 100644 dom/html/test/file_bug1108547-2.html create mode 100644 dom/html/test/file_bug1108547-3.html create mode 100644 dom/html/test/file_bug1166138_1x.png create mode 100644 dom/html/test/file_bug1166138_2x.png create mode 100644 dom/html/test/file_bug1166138_def.png create mode 100644 dom/html/test/file_bug1260704.png create mode 100644 dom/html/test/file_bug209275_1.html create mode 100644 dom/html/test/file_bug209275_2.html create mode 100644 dom/html/test/file_bug209275_3.html create mode 100644 dom/html/test/file_bug297761.html create mode 100644 dom/html/test/file_bug417760.png create mode 100644 dom/html/test/file_bug871161-1.html create mode 100644 dom/html/test/file_bug871161-2.html create mode 100644 dom/html/test/file_bug893537.html create mode 100644 dom/html/test/file_cookiemanager.js create mode 100644 dom/html/test/file_formSubmission_img.jpg create mode 100644 dom/html/test/file_formSubmission_text.txt create mode 100644 dom/html/test/file_iframe_sandbox_a_if1.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if10.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if11.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if12.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if13.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if14.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if15.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if16.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if17.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if18.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if19.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if2.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if3.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if4.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if5.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if6.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if7.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if8.html create mode 100644 dom/html/test/file_iframe_sandbox_a_if9.html create mode 100644 dom/html/test/file_iframe_sandbox_b_if1.html create mode 100644 dom/html/test/file_iframe_sandbox_b_if2.html create mode 100644 dom/html/test/file_iframe_sandbox_b_if3.html create mode 100644 dom/html/test/file_iframe_sandbox_c_if1.html create mode 100644 dom/html/test/file_iframe_sandbox_c_if2.html create mode 100644 dom/html/test/file_iframe_sandbox_c_if3.html create mode 100644 dom/html/test/file_iframe_sandbox_c_if4.html create mode 100644 dom/html/test/file_iframe_sandbox_c_if5.html create mode 100644 dom/html/test/file_iframe_sandbox_c_if6.html create mode 100644 dom/html/test/file_iframe_sandbox_c_if7.html create mode 100644 dom/html/test/file_iframe_sandbox_c_if8.html create mode 100644 dom/html/test/file_iframe_sandbox_c_if9.html create mode 100644 dom/html/test/file_iframe_sandbox_close.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if1.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if10.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if11.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if12.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if13.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if14.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if15.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if16.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if17.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if18.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if19.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if2.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if20.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if21.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if22.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if23.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if3.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if4.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if5.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if6.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if7.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if8.html create mode 100644 dom/html/test/file_iframe_sandbox_d_if9.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if1.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if10.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if11.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if12.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if13.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if14.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if15.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if16.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if2.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if3.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if4.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if5.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if6.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if7.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if8.html create mode 100644 dom/html/test/file_iframe_sandbox_e_if9.html create mode 100644 dom/html/test/file_iframe_sandbox_fail.js create mode 100644 dom/html/test/file_iframe_sandbox_form_fail.html create mode 100644 dom/html/test/file_iframe_sandbox_form_pass.html create mode 100644 dom/html/test/file_iframe_sandbox_g_if1.html create mode 100644 dom/html/test/file_iframe_sandbox_h_if1.html create mode 100644 dom/html/test/file_iframe_sandbox_k_if1.html create mode 100644 dom/html/test/file_iframe_sandbox_k_if2.html create mode 100644 dom/html/test/file_iframe_sandbox_k_if3.html create mode 100644 dom/html/test/file_iframe_sandbox_k_if4.html create mode 100644 dom/html/test/file_iframe_sandbox_k_if5.html create mode 100644 dom/html/test/file_iframe_sandbox_k_if6.html create mode 100644 dom/html/test/file_iframe_sandbox_k_if7.html create mode 100644 dom/html/test/file_iframe_sandbox_k_if8.html create mode 100644 dom/html/test/file_iframe_sandbox_k_if9.html create mode 100644 dom/html/test/file_iframe_sandbox_navigation_fail.html create mode 100644 dom/html/test/file_iframe_sandbox_navigation_pass.html create mode 100644 dom/html/test/file_iframe_sandbox_navigation_start.html create mode 100644 dom/html/test/file_iframe_sandbox_open_window_fail.html create mode 100644 dom/html/test/file_iframe_sandbox_open_window_pass.html create mode 100644 dom/html/test/file_iframe_sandbox_pass.js create mode 100644 dom/html/test/file_iframe_sandbox_redirect.html create mode 100644 dom/html/test/file_iframe_sandbox_redirect.html^headers^ create mode 100644 dom/html/test/file_iframe_sandbox_redirect_target.html create mode 100644 dom/html/test/file_iframe_sandbox_refresh.html create mode 100644 dom/html/test/file_iframe_sandbox_refresh.html^headers^ create mode 100644 dom/html/test/file_iframe_sandbox_srcdoc_allow_scripts.html create mode 100644 dom/html/test/file_iframe_sandbox_srcdoc_no_allow_scripts.html create mode 100644 dom/html/test/file_iframe_sandbox_top_navigation_fail.html create mode 100644 dom/html/test/file_iframe_sandbox_top_navigation_pass.html create mode 100644 dom/html/test/file_iframe_sandbox_window_form_fail.html create mode 100644 dom/html/test/file_iframe_sandbox_window_form_pass.html create mode 100644 dom/html/test/file_iframe_sandbox_window_navigation_fail.html create mode 100644 dom/html/test/file_iframe_sandbox_window_navigation_pass.html create mode 100644 dom/html/test/file_iframe_sandbox_window_top_navigation_fail.html create mode 100644 dom/html/test/file_iframe_sandbox_window_top_navigation_pass.html create mode 100644 dom/html/test/file_iframe_sandbox_worker.js create mode 100644 dom/html/test/file_refresh_after_document_write.html create mode 100644 dom/html/test/file_script_module.html create mode 100644 dom/html/test/file_script_nomodule.html create mode 100644 dom/html/test/file_srcdoc-2.html create mode 100644 dom/html/test/file_srcdoc.html create mode 100644 dom/html/test/file_srcdoc_iframe3.html create mode 100644 dom/html/test/file_window_close_and_open.html create mode 100644 dom/html/test/file_window_open_close_inner.html create mode 100644 dom/html/test/file_window_open_close_outer.html create mode 100644 dom/html/test/formData_test.js create mode 100644 dom/html/test/formData_worker.js create mode 100644 dom/html/test/formSubmission_chrome.js create mode 100644 dom/html/test/form_data_file.bin create mode 100644 dom/html/test/form_data_file.txt create mode 100644 dom/html/test/form_submit_server.sjs create mode 100644 dom/html/test/forms/FAIL.html create mode 100644 dom/html/test/forms/PASS.html create mode 100644 dom/html/test/forms/chrome.ini create mode 100644 dom/html/test/forms/file_double_submit.html create mode 100644 dom/html/test/forms/file_login_fields.html create mode 100644 dom/html/test/forms/mochitest.ini create mode 100644 dom/html/test/forms/save_restore_radio_groups.sjs create mode 100644 dom/html/test/forms/submit_invalid_file.sjs create mode 100644 dom/html/test/forms/test_MozEditableElement_setUserInput.html create mode 100644 dom/html/test/forms/test_autocomplete.html create mode 100644 dom/html/test/forms/test_autocompleteinfo.html create mode 100644 dom/html/test/forms/test_bug1039548.html create mode 100644 dom/html/test/forms/test_bug1283915.html create mode 100644 dom/html/test/forms/test_bug1286509.html create mode 100644 dom/html/test/forms/test_button_attributes_reflection.html create mode 100644 dom/html/test/forms/test_change_event.html create mode 100644 dom/html/test/forms/test_datalist_element.html create mode 100644 dom/html/test/forms/test_double_submit.html create mode 100644 dom/html/test/forms/test_form_attribute-1.html create mode 100644 dom/html/test/forms/test_form_attribute-2.html create mode 100644 dom/html/test/forms/test_form_attribute-3.html create mode 100644 dom/html/test/forms/test_form_attribute-4.html create mode 100644 dom/html/test/forms/test_form_attributes_reflection.html create mode 100644 dom/html/test/forms/test_form_named_getter_dynamic.html create mode 100644 dom/html/test/forms/test_formaction_attribute.html create mode 100644 dom/html/test/forms/test_formnovalidate_attribute.html create mode 100644 dom/html/test/forms/test_input_attributes_reflection.html create mode 100644 dom/html/test/forms/test_input_color_input_change_events.html create mode 100644 dom/html/test/forms/test_input_color_picker_datalist.html create mode 100644 dom/html/test/forms/test_input_color_picker_initial.html create mode 100644 dom/html/test/forms/test_input_color_picker_popup.html create mode 100644 dom/html/test/forms/test_input_color_picker_update.html create mode 100644 dom/html/test/forms/test_input_date_bad_input.html create mode 100644 dom/html/test/forms/test_input_date_key_events.html create mode 100644 dom/html/test/forms/test_input_datetime_calendar_button.html create mode 100644 dom/html/test/forms/test_input_datetime_disabled_focus.html create mode 100644 dom/html/test/forms/test_input_datetime_focus_blur.html create mode 100644 dom/html/test/forms/test_input_datetime_focus_blur_events.html create mode 100644 dom/html/test/forms/test_input_datetime_focus_state.html create mode 100644 dom/html/test/forms/test_input_datetime_hidden.html create mode 100644 dom/html/test/forms/test_input_datetime_input_change_events.html create mode 100644 dom/html/test/forms/test_input_datetime_readonly.html create mode 100644 dom/html/test/forms/test_input_datetime_reset_default_value_input_change_event.html create mode 100644 dom/html/test/forms/test_input_datetime_tabindex.html create mode 100644 dom/html/test/forms/test_input_defaultValue.html create mode 100644 dom/html/test/forms/test_input_email.html create mode 100644 dom/html/test/forms/test_input_event.html create mode 100644 dom/html/test/forms/test_input_file_picker.html create mode 100644 dom/html/test/forms/test_input_hasBeenTypePassword.html create mode 100644 dom/html/test/forms/test_input_hasBeenTypePassword_navigation.html create mode 100644 dom/html/test/forms/test_input_list_attribute.html create mode 100644 dom/html/test/forms/test_input_number_data.js create mode 100644 dom/html/test/forms/test_input_number_focus.html create mode 100644 dom/html/test/forms/test_input_number_key_events.html create mode 100644 dom/html/test/forms/test_input_number_l10n.html create mode 100644 dom/html/test/forms/test_input_number_mouse_events.html create mode 100644 dom/html/test/forms/test_input_number_placeholder_shown.html create mode 100644 dom/html/test/forms/test_input_number_rounding.html create mode 100644 dom/html/test/forms/test_input_number_validation.html create mode 100644 dom/html/test/forms/test_input_password_click_show_password_button.html create mode 100644 dom/html/test/forms/test_input_password_show_password_button.html create mode 100644 dom/html/test/forms/test_input_radio_indeterminate.html create mode 100644 dom/html/test/forms/test_input_radio_radiogroup.html create mode 100644 dom/html/test/forms/test_input_radio_required.html create mode 100644 dom/html/test/forms/test_input_range_attr_order.html create mode 100644 dom/html/test/forms/test_input_range_key_events.html create mode 100644 dom/html/test/forms/test_input_range_mouse_and_touch_events.html create mode 100644 dom/html/test/forms/test_input_range_rounding.html create mode 100644 dom/html/test/forms/test_input_sanitization.html create mode 100644 dom/html/test/forms/test_input_setting_value.html create mode 100644 dom/html/test/forms/test_input_textarea_set_value_no_scroll.html create mode 100644 dom/html/test/forms/test_input_time_key_events.html create mode 100644 dom/html/test/forms/test_input_time_sec_millisec_field.html create mode 100644 dom/html/test/forms/test_input_types_pref.html create mode 100644 dom/html/test/forms/test_input_typing_sanitization.html create mode 100644 dom/html/test/forms/test_input_untrusted_key_events.html create mode 100644 dom/html/test/forms/test_input_url.html create mode 100644 dom/html/test/forms/test_interactive_content_in_label.html create mode 100644 dom/html/test/forms/test_interactive_content_in_summary.html create mode 100644 dom/html/test/forms/test_label_control_attribute.html create mode 100644 dom/html/test/forms/test_label_input_controls.html create mode 100644 dom/html/test/forms/test_max_attribute.html create mode 100644 dom/html/test/forms/test_maxlength_attribute.html create mode 100644 dom/html/test/forms/test_meter_element.html create mode 100644 dom/html/test/forms/test_meter_pseudo-classes.html create mode 100644 dom/html/test/forms/test_min_attribute.html create mode 100644 dom/html/test/forms/test_minlength_attribute.html create mode 100644 dom/html/test/forms/test_mozistextfield.html create mode 100644 dom/html/test/forms/test_novalidate_attribute.html create mode 100644 dom/html/test/forms/test_option_disabled.html create mode 100644 dom/html/test/forms/test_option_index_attribute.html create mode 100644 dom/html/test/forms/test_option_text.html create mode 100644 dom/html/test/forms/test_output_element.html create mode 100644 dom/html/test/forms/test_pattern_attribute.html create mode 100644 dom/html/test/forms/test_preserving_metadata_between_reloads.html create mode 100644 dom/html/test/forms/test_progress_element.html create mode 100644 dom/html/test/forms/test_radio_in_label.html create mode 100644 dom/html/test/forms/test_radio_radionodelist.html create mode 100644 dom/html/test/forms/test_reportValidation_preventDefault.html create mode 100644 dom/html/test/forms/test_required_attribute.html create mode 100644 dom/html/test/forms/test_restore_form_elements.html create mode 100644 dom/html/test/forms/test_save_restore_radio_groups.html create mode 100644 dom/html/test/forms/test_select_change_event.html create mode 100644 dom/html/test/forms/test_select_input_change_event.html create mode 100644 dom/html/test/forms/test_select_selectedOptions.html create mode 100644 dom/html/test/forms/test_select_validation.html create mode 100644 dom/html/test/forms/test_set_range_text.html create mode 100644 dom/html/test/forms/test_step_attribute.html create mode 100644 dom/html/test/forms/test_stepup_stepdown.html create mode 100644 dom/html/test/forms/test_submit_invalid_file.html create mode 100644 dom/html/test/forms/test_textarea_attributes_reflection.html create mode 100644 dom/html/test/forms/test_validation.html create mode 100644 dom/html/test/forms/test_validation_not_in_doc.html create mode 100644 dom/html/test/forms/test_valueasdate_attribute.html create mode 100644 dom/html/test/forms/test_valueasnumber_attribute.html create mode 100644 dom/html/test/forms/without_selectionchange/mochitest.ini create mode 100644 dom/html/test/forms/without_selectionchange/test_select.html create mode 100644 dom/html/test/head.js create mode 100644 dom/html/test/image-allow-credentials.png create mode 100644 dom/html/test/image-allow-credentials.png^headers^ create mode 100644 dom/html/test/image.png create mode 100644 dom/html/test/image_yellow.png create mode 100644 dom/html/test/mochitest.ini create mode 100644 dom/html/test/nnc_lockup.gif create mode 100644 dom/html/test/object_bug287465_o1.html create mode 100644 dom/html/test/object_bug287465_o2.html create mode 100644 dom/html/test/object_bug556645.html create mode 100644 dom/html/test/post_action_page.html create mode 100644 dom/html/test/reflect.js create mode 100644 dom/html/test/script_fakepath.js create mode 100644 dom/html/test/simpleFileOpener.js create mode 100644 dom/html/test/submission_flush.html create mode 100644 dom/html/test/sw_formSubmission.js create mode 100644 dom/html/test/test_a_text.html create mode 100644 dom/html/test/test_allowMedia.html create mode 100644 dom/html/test/test_anchor_href_cache_invalidation.html create mode 100644 dom/html/test/test_anchor_ping.html create mode 100644 dom/html/test/test_base_attributes_reflection.html create mode 100644 dom/html/test/test_bug1003539.html create mode 100644 dom/html/test/test_bug100533.html create mode 100644 dom/html/test/test_bug1013316.html create mode 100644 dom/html/test/test_bug1045270.html create mode 100644 dom/html/test/test_bug1089326.html create mode 100644 dom/html/test/test_bug109445.html create mode 100644 dom/html/test/test_bug109445.xhtml create mode 100644 dom/html/test/test_bug1146116.html create mode 100644 dom/html/test/test_bug1166138.html create mode 100644 dom/html/test/test_bug1203668.html create mode 100644 dom/html/test/test_bug1230665.html create mode 100644 dom/html/test/test_bug1250401.html create mode 100644 dom/html/test/test_bug1260664.html create mode 100644 dom/html/test/test_bug1260704.html create mode 100644 dom/html/test/test_bug1261673.html create mode 100644 dom/html/test/test_bug1261674-1.html create mode 100644 dom/html/test/test_bug1261674-2.html create mode 100644 dom/html/test/test_bug1264157.html create mode 100644 dom/html/test/test_bug1279218.html create mode 100644 dom/html/test/test_bug1287321.html create mode 100644 dom/html/test/test_bug1292522_same_domain_with_different_port_number.html create mode 100644 dom/html/test/test_bug1295719_event_sequence_for_arrow_keys.html create mode 100644 dom/html/test/test_bug1295719_event_sequence_for_number_keys.html create mode 100644 dom/html/test/test_bug1297.html create mode 100644 dom/html/test/test_bug1310865.html create mode 100644 dom/html/test/test_bug1315146.html create mode 100644 dom/html/test/test_bug1322678.html create mode 100644 dom/html/test/test_bug1323815.html create mode 100644 dom/html/test/test_bug1366.html create mode 100644 dom/html/test/test_bug1400.html create mode 100644 dom/html/test/test_bug1414077.html create mode 100644 dom/html/test/test_bug143220.html create mode 100644 dom/html/test/test_bug1472426.html create mode 100644 dom/html/test/test_bug1682.html create mode 100644 dom/html/test/test_bug1785739.html create mode 100644 dom/html/test/test_bug182279.html create mode 100644 dom/html/test/test_bug1823.html create mode 100644 dom/html/test/test_bug196523.html create mode 100644 dom/html/test/test_bug199692.html create mode 100644 dom/html/test/test_bug2082.html create mode 100644 dom/html/test/test_bug209275.xhtml create mode 100644 dom/html/test/test_bug237071.html create mode 100644 dom/html/test/test_bug242709.html create mode 100644 dom/html/test/test_bug24958.html create mode 100644 dom/html/test/test_bug255820.html create mode 100644 dom/html/test/test_bug259332.html create mode 100644 dom/html/test/test_bug274626.html create mode 100644 dom/html/test/test_bug277724.html create mode 100644 dom/html/test/test_bug277890.html create mode 100644 dom/html/test/test_bug287465.html create mode 100644 dom/html/test/test_bug295561.html create mode 100644 dom/html/test/test_bug297761.html create mode 100644 dom/html/test/test_bug300691-1.html create mode 100644 dom/html/test/test_bug300691-2.html create mode 100644 dom/html/test/test_bug300691-3.xhtml create mode 100644 dom/html/test/test_bug311681.html create mode 100644 dom/html/test/test_bug311681.xhtml create mode 100644 dom/html/test/test_bug324378.html create mode 100644 dom/html/test/test_bug330705-1.html create mode 100644 dom/html/test/test_bug332246.html create mode 100644 dom/html/test/test_bug332848.xhtml create mode 100644 dom/html/test/test_bug332893-1.html create mode 100644 dom/html/test/test_bug332893-2.html create mode 100644 dom/html/test/test_bug332893-3.html create mode 100644 dom/html/test/test_bug332893-4.html create mode 100644 dom/html/test/test_bug332893-5.html create mode 100644 dom/html/test/test_bug332893-6.html create mode 100644 dom/html/test/test_bug332893-7.html create mode 100644 dom/html/test/test_bug3348.html create mode 100644 dom/html/test/test_bug340017.xhtml create mode 100644 dom/html/test/test_bug340800.html create mode 100644 dom/html/test/test_bug347174.html create mode 100644 dom/html/test/test_bug347174_write.html create mode 100644 dom/html/test/test_bug347174_xsl.html create mode 100644 dom/html/test/test_bug347174_xslp.html create mode 100644 dom/html/test/test_bug353415-1.html create mode 100644 dom/html/test/test_bug353415-2.html create mode 100644 dom/html/test/test_bug359657.html create mode 100644 dom/html/test/test_bug369370.html create mode 100644 dom/html/test/test_bug371375.html create mode 100644 dom/html/test/test_bug372098.html create mode 100644 dom/html/test/test_bug373589.html create mode 100644 dom/html/test/test_bug375003-1.html create mode 100644 dom/html/test/test_bug375003-2.html create mode 100644 dom/html/test/test_bug377624.html create mode 100644 dom/html/test/test_bug380383.html create mode 100644 dom/html/test/test_bug383383.html create mode 100644 dom/html/test/test_bug383383_2.xhtml create mode 100644 dom/html/test/test_bug384419.html create mode 100644 dom/html/test/test_bug386496.html create mode 100644 dom/html/test/test_bug386728.html create mode 100644 dom/html/test/test_bug386996.html create mode 100644 dom/html/test/test_bug388558.html create mode 100644 dom/html/test/test_bug388746.html create mode 100644 dom/html/test/test_bug388794.html create mode 100644 dom/html/test/test_bug389797.html create mode 100644 dom/html/test/test_bug390975.html create mode 100644 dom/html/test/test_bug391994.html create mode 100644 dom/html/test/test_bug394700.html create mode 100644 dom/html/test/test_bug395107.html create mode 100644 dom/html/test/test_bug401160.xhtml create mode 100644 dom/html/test/test_bug402680.html create mode 100644 dom/html/test/test_bug403868.html create mode 100644 dom/html/test/test_bug403868.xhtml create mode 100644 dom/html/test/test_bug405242.html create mode 100644 dom/html/test/test_bug406596.html create mode 100644 dom/html/test/test_bug417760.html create mode 100644 dom/html/test/test_bug421640.html create mode 100644 dom/html/test/test_bug424698.html create mode 100644 dom/html/test/test_bug428135.xhtml create mode 100644 dom/html/test/test_bug430351.html create mode 100644 dom/html/test/test_bug435128.html create mode 100644 dom/html/test/test_bug441930.html create mode 100644 dom/html/test/test_bug442801.html create mode 100644 dom/html/test/test_bug445004.html create mode 100644 dom/html/test/test_bug446483.html create mode 100644 dom/html/test/test_bug448166.html create mode 100644 dom/html/test/test_bug448564.html create mode 100644 dom/html/test/test_bug456229.html create mode 100644 dom/html/test/test_bug458037.xhtml create mode 100644 dom/html/test/test_bug460568.html create mode 100644 dom/html/test/test_bug463104.html create mode 100644 dom/html/test/test_bug478251.html create mode 100644 dom/html/test/test_bug481335.xhtml create mode 100644 dom/html/test/test_bug481440.html create mode 100644 dom/html/test/test_bug481647.html create mode 100644 dom/html/test/test_bug482659.html create mode 100644 dom/html/test/test_bug486741.html create mode 100644 dom/html/test/test_bug489532.html create mode 100644 dom/html/test/test_bug497242.xhtml create mode 100644 dom/html/test/test_bug499092.html create mode 100644 dom/html/test/test_bug500885.html create mode 100644 dom/html/test/test_bug512367.html create mode 100644 dom/html/test/test_bug514856.html create mode 100644 dom/html/test/test_bug518122.html create mode 100644 dom/html/test/test_bug519987.html create mode 100644 dom/html/test/test_bug523771.html create mode 100644 dom/html/test/test_bug529819.html create mode 100644 dom/html/test/test_bug529859.html create mode 100644 dom/html/test/test_bug535043.html create mode 100644 dom/html/test/test_bug536891.html create mode 100644 dom/html/test/test_bug536895.html create mode 100644 dom/html/test/test_bug546995.html create mode 100644 dom/html/test/test_bug547850.html create mode 100644 dom/html/test/test_bug551846.html create mode 100644 dom/html/test/test_bug555567.html create mode 100644 dom/html/test/test_bug556645.html create mode 100644 dom/html/test/test_bug557087-1.html create mode 100644 dom/html/test/test_bug557087-2.html create mode 100644 dom/html/test/test_bug557087-3.html create mode 100644 dom/html/test/test_bug557087-4.html create mode 100644 dom/html/test/test_bug557087-5.html create mode 100644 dom/html/test/test_bug557087-6.html create mode 100644 dom/html/test/test_bug557620.html create mode 100644 dom/html/test/test_bug558788-1.html create mode 100644 dom/html/test/test_bug558788-2.html create mode 100644 dom/html/test/test_bug560112.html create mode 100644 dom/html/test/test_bug561634.html create mode 100644 dom/html/test/test_bug561636.html create mode 100644 dom/html/test/test_bug561640.html create mode 100644 dom/html/test/test_bug564001.html create mode 100644 dom/html/test/test_bug566046.html create mode 100644 dom/html/test/test_bug567938-1.html create mode 100644 dom/html/test/test_bug567938-2.html create mode 100644 dom/html/test/test_bug567938-3.html create mode 100644 dom/html/test/test_bug567938-4.html create mode 100644 dom/html/test/test_bug569955.html create mode 100644 dom/html/test/test_bug573969.html create mode 100644 dom/html/test/test_bug57600.html create mode 100644 dom/html/test/test_bug579079.html create mode 100644 dom/html/test/test_bug582412-1.html create mode 100644 dom/html/test/test_bug582412-2.html create mode 100644 dom/html/test/test_bug583514.html create mode 100644 dom/html/test/test_bug583533.html create mode 100644 dom/html/test/test_bug586763.html create mode 100644 dom/html/test/test_bug586786.html create mode 100644 dom/html/test/test_bug587469.html create mode 100644 dom/html/test/test_bug589.html create mode 100644 dom/html/test/test_bug590353-1.html create mode 100644 dom/html/test/test_bug590353-2.html create mode 100644 dom/html/test/test_bug590363.html create mode 100644 dom/html/test/test_bug592802.html create mode 100644 dom/html/test/test_bug593689.html create mode 100644 dom/html/test/test_bug595429.html create mode 100644 dom/html/test/test_bug595447.html create mode 100644 dom/html/test/test_bug595449.html create mode 100644 dom/html/test/test_bug596350.html create mode 100644 dom/html/test/test_bug596511.html create mode 100644 dom/html/test/test_bug598643.html create mode 100644 dom/html/test/test_bug598833-1.html create mode 100644 dom/html/test/test_bug600155.html create mode 100644 dom/html/test/test_bug601030.html create mode 100644 dom/html/test/test_bug605124-1.html create mode 100644 dom/html/test/test_bug605124-2.html create mode 100644 dom/html/test/test_bug605125-1.html create mode 100644 dom/html/test/test_bug605125-2.html create mode 100644 dom/html/test/test_bug606817.html create mode 100644 dom/html/test/test_bug607145.html create mode 100644 dom/html/test/test_bug610212.html create mode 100644 dom/html/test/test_bug610687.html create mode 100644 dom/html/test/test_bug611189.html create mode 100644 dom/html/test/test_bug612730.html create mode 100644 dom/html/test/test_bug613019.html create mode 100644 dom/html/test/test_bug613113.html create mode 100644 dom/html/test/test_bug613722.html create mode 100644 dom/html/test/test_bug613979.html create mode 100644 dom/html/test/test_bug615595.html create mode 100644 dom/html/test/test_bug615833.html create mode 100644 dom/html/test/test_bug618948.html create mode 100644 dom/html/test/test_bug619278.html create mode 100644 dom/html/test/test_bug622558.html create mode 100644 dom/html/test/test_bug622597.html create mode 100644 dom/html/test/test_bug623291.html create mode 100644 dom/html/test/test_bug6296.html create mode 100644 dom/html/test/test_bug629801.html create mode 100644 dom/html/test/test_bug633058.html create mode 100644 dom/html/test/test_bug636336.html create mode 100644 dom/html/test/test_bug641219.html create mode 100644 dom/html/test/test_bug643051.html create mode 100644 dom/html/test/test_bug646157.html create mode 100644 dom/html/test/test_bug649134.html create mode 100644 dom/html/test/test_bug651956.html create mode 100644 dom/html/test/test_bug658746.html create mode 100644 dom/html/test/test_bug659596.html create mode 100644 dom/html/test/test_bug659743.xml create mode 100644 dom/html/test/test_bug660663.html create mode 100644 dom/html/test/test_bug660959-1.html create mode 100644 dom/html/test/test_bug660959-2.html create mode 100644 dom/html/test/test_bug660959-3.html create mode 100644 dom/html/test/test_bug666200.html create mode 100644 dom/html/test/test_bug666666.html create mode 100644 dom/html/test/test_bug669012.html create mode 100644 dom/html/test/test_bug674558.html create mode 100644 dom/html/test/test_bug674927.html create mode 100644 dom/html/test/test_bug677495-1.html create mode 100644 dom/html/test/test_bug677495.html create mode 100644 dom/html/test/test_bug677658.html create mode 100644 dom/html/test/test_bug682886.html create mode 100644 dom/html/test/test_bug691.html create mode 100644 dom/html/test/test_bug694.html create mode 100644 dom/html/test/test_bug694503.html create mode 100644 dom/html/test/test_bug696.html create mode 100644 dom/html/test/test_bug717819.html create mode 100644 dom/html/test/test_bug741266.html create mode 100644 dom/html/test/test_bug742030.html create mode 100644 dom/html/test/test_bug742549.html create mode 100644 dom/html/test/test_bug745685.html create mode 100644 dom/html/test/test_bug763626.html create mode 100644 dom/html/test/test_bug765780.html create mode 100644 dom/html/test/test_bug780993.html create mode 100644 dom/html/test/test_bug787134.html create mode 100644 dom/html/test/test_bug797113.html create mode 100644 dom/html/test/test_bug803677.html create mode 100644 dom/html/test/test_bug821307.html create mode 100644 dom/html/test/test_bug827126.html create mode 100644 dom/html/test/test_bug838582.html create mode 100644 dom/html/test/test_bug839371.html create mode 100644 dom/html/test/test_bug839913.html create mode 100644 dom/html/test/test_bug841466.html create mode 100644 dom/html/test/test_bug845057.html create mode 100644 dom/html/test/test_bug869040.html create mode 100644 dom/html/test/test_bug870787.html create mode 100644 dom/html/test/test_bug871161.html create mode 100644 dom/html/test/test_bug874758.html create mode 100644 dom/html/test/test_bug879319.html create mode 100644 dom/html/test/test_bug885024.html create mode 100644 dom/html/test/test_bug893537.html create mode 100644 dom/html/test/test_bug95530.html create mode 100644 dom/html/test/test_bug969346.html create mode 100644 dom/html/test/test_bug982039.html create mode 100644 dom/html/test/test_change_crossorigin.html create mode 100644 dom/html/test/test_checked.html create mode 100644 dom/html/test/test_dir_attributes_reflection.html create mode 100644 dom/html/test/test_dl_attributes_reflection.html create mode 100644 dom/html/test/test_document-element-inserted.html create mode 100644 dom/html/test/test_documentAll.html create mode 100644 dom/html/test/test_element_prototype.html create mode 100644 dom/html/test/test_embed_attributes_reflection.html create mode 100644 dom/html/test/test_external_protocol_iframe.html create mode 100644 dom/html/test/test_fakepath.html create mode 100644 dom/html/test/test_filepicker_default_directory.html create mode 100644 dom/html/test/test_focusshift_button.html create mode 100644 dom/html/test/test_form-parsing.html create mode 100644 dom/html/test/test_formData.html create mode 100644 dom/html/test/test_formSubmission.html create mode 100644 dom/html/test/test_formSubmission2.html create mode 100644 dom/html/test/test_formelements.html create mode 100644 dom/html/test/test_fragment_form_pointer.html create mode 100644 dom/html/test/test_frame_count_with_synthetic_doc.html create mode 100644 dom/html/test/test_getElementsByName_after_mutation.html create mode 100644 dom/html/test/test_hidden.html create mode 100644 dom/html/test/test_html_attributes_reflection.html create mode 100644 dom/html/test/test_htmlcollection.html create mode 100644 dom/html/test/test_iframe_sandbox_general.html create mode 100644 dom/html/test/test_iframe_sandbox_inheritance.html create mode 100644 dom/html/test/test_iframe_sandbox_navigation.html create mode 100644 dom/html/test/test_iframe_sandbox_navigation2.html create mode 100644 dom/html/test/test_iframe_sandbox_popups.html create mode 100644 dom/html/test/test_iframe_sandbox_popups_inheritance.html create mode 100644 dom/html/test/test_iframe_sandbox_redirect.html create mode 100644 dom/html/test/test_iframe_sandbox_refresh.html create mode 100644 dom/html/test/test_iframe_sandbox_same_origin.html create mode 100644 dom/html/test/test_iframe_sandbox_workers.html create mode 100644 dom/html/test/test_imageSrcSet.html create mode 100644 dom/html/test/test_image_clone_load.html create mode 100644 dom/html/test/test_img_attributes_reflection.html create mode 100644 dom/html/test/test_input_file_cancel_event.html create mode 100644 dom/html/test/test_input_files_not_nsIFile.html create mode 100644 dom/html/test/test_input_lastInteractiveValue.html create mode 100644 dom/html/test/test_inputmode.html create mode 100644 dom/html/test/test_li_attributes_reflection.html create mode 100644 dom/html/test/test_link_attributes_reflection.html create mode 100644 dom/html/test/test_link_sizes.html create mode 100644 dom/html/test/test_map_attributes_reflection.html create mode 100644 dom/html/test/test_meta_attributes_reflection.html create mode 100644 dom/html/test/test_mod_attributes_reflection.html create mode 100644 dom/html/test/test_multipleFilePicker.html create mode 100644 dom/html/test/test_named_options.html create mode 100644 dom/html/test/test_nested_invalid_fieldsets.html create mode 100644 dom/html/test/test_nestediframe.html create mode 100644 dom/html/test/test_non-ascii-cookie.html create mode 100644 dom/html/test/test_non-ascii-cookie.html^headers^ create mode 100644 dom/html/test/test_object_attributes_reflection.html create mode 100644 dom/html/test/test_ol_attributes_reflection.html create mode 100644 dom/html/test/test_option_defaultSelected.html create mode 100644 dom/html/test/test_option_selected_state.html create mode 100644 dom/html/test/test_param_attributes_reflection.html create mode 100644 dom/html/test/test_plugin.tst create mode 100644 dom/html/test/test_q_attributes_reflection.html create mode 100644 dom/html/test/test_restore_from_parser_fragment.html create mode 100644 dom/html/test/test_rowscollection.html create mode 100644 dom/html/test/test_script_module.html create mode 100644 dom/html/test/test_set_input_files.html create mode 100644 dom/html/test/test_srcdoc-2.html create mode 100644 dom/html/test/test_srcdoc.html create mode 100644 dom/html/test/test_style_attributes_reflection.html create mode 100644 dom/html/test/test_track.html create mode 100644 dom/html/test/test_ul_attributes_reflection.html create mode 100644 dom/html/test/test_viewport_resize.html create mode 100644 dom/html/test/test_window_open_close.html create mode 100644 dom/html/test/test_window_open_from_closing.html (limited to 'dom/html/test') diff --git a/dom/html/test/347174transform.xsl b/dom/html/test/347174transform.xsl new file mode 100644 index 0000000000..1b201de3f3 --- /dev/null +++ b/dom/html/test/347174transform.xsl @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dom/html/test/347174transformable.xml b/dom/html/test/347174transformable.xml new file mode 100644 index 0000000000..68f7bc6dca --- /dev/null +++ b/dom/html/test/347174transformable.xml @@ -0,0 +1,3 @@ + + +This is a sample document. diff --git a/dom/html/test/allowMedia.sjs b/dom/html/test/allowMedia.sjs new file mode 100644 index 0000000000..f29619cd89 --- /dev/null +++ b/dom/html/test/allowMedia.sjs @@ -0,0 +1,12 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +function handleRequest(req, resp) { + resp.setHeader("Cache-Control", "no-cache", false); + resp.setHeader("Content-Type", "text/plain", false); + + let stateKey = "allowMediaState"; + let state = getState(stateKey); + setState(stateKey, req.queryString ? "FAIL" : ""); + resp.write(state || "PASS"); +} diff --git a/dom/html/test/browser.ini b/dom/html/test/browser.ini new file mode 100644 index 0000000000..cb02f7f551 --- /dev/null +++ b/dom/html/test/browser.ini @@ -0,0 +1,37 @@ +[DEFAULT] +support-files = + bug592641_img.jpg + dummy_page.html + image.png + submission_flush.html + post_action_page.html + form_data_file.bin + form_data_file.txt + form_submit_server.sjs + head.js + +[browser_bug592641.js] +[browser_bug1081537.js] +[browser_bug1108547.js] +support-files = + file_bug1108547-1.html + file_bug1108547-2.html + file_bug1108547-3.html +[browser_bug436200.js] +support-files = + bug436200.html +[browser_DOMDocElementInserted.js] +skip-if = bits == 64 && (os == "mac" || os == "linux") #Bug 1646862 +[browser_form_post_from_file_to_http.js] +[browser_containerLoadingContent.js] +skip-if = + os == "win" && os_version == "6.1" # Skip on Azure - frequent failure +[browser_ImageDocument_svg_zoom.js] +[browser_submission_flush.js] +[browser_refresh_after_document_write.js] +support-files = + file_refresh_after_document_write.html +[browser_targetBlankNoOpener.js] +support-files = + empty.html + image_yellow.png diff --git a/dom/html/test/browser_DOMDocElementInserted.js b/dom/html/test/browser_DOMDocElementInserted.js new file mode 100644 index 0000000000..fdd123f04c --- /dev/null +++ b/dom/html/test/browser_DOMDocElementInserted.js @@ -0,0 +1,23 @@ +// Tests that the DOMDocElementInserted event is visible on the frame +add_task(async function () { + let tab = BrowserTestUtils.addTab(gBrowser); + let uri = "data:text/html;charset=utf-8,"; + + let eventPromise = ContentTask.spawn(tab.linkedBrowser, null, function () { + return new Promise(resolve => { + addEventListener( + "DOMDocElementInserted", + event => resolve(event.target.documentURIObject.spec), + { + once: true, + } + ); + }); + }); + + BrowserTestUtils.loadURIString(tab.linkedBrowser, uri); + let loadedURI = await eventPromise; + is(loadedURI, uri, "Should have seen the event for the right URI"); + + gBrowser.removeTab(tab); +}); diff --git a/dom/html/test/browser_ImageDocument_svg_zoom.js b/dom/html/test/browser_ImageDocument_svg_zoom.js new file mode 100644 index 0000000000..49e0fe410c --- /dev/null +++ b/dom/html/test/browser_ImageDocument_svg_zoom.js @@ -0,0 +1,38 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const URL = `data:image/svg+xml,`; + +function test_once() { + return BrowserTestUtils.withNewTab(URL, async browser => { + return await SpecialPowers.spawn(browser, [], async function () { + const rect = content.document.documentElement.getBoundingClientRect(); + info( + `${rect.width}x${rect.height}, ${content.innerWidth}x${content.innerHeight}` + ); + is( + Math.round(rect.height), + content.innerHeight, + "Should fill the viewport and not overflow" + ); + }); + }); +} + +add_task(async function test_with_no_text_zoom() { + await test_once(); +}); + +add_task(async function test_with_text_zoom() { + let dpi = window.devicePixelRatio; + + await SpecialPowers.pushPrefEnv({ set: [["ui.textScaleFactor", 200]] }); + ok( + window.devicePixelRatio > dpi, + "DPI should change as a result of the pref flip" + ); + + return test_once(); +}); diff --git a/dom/html/test/browser_bug1081537.js b/dom/html/test/browser_bug1081537.js new file mode 100644 index 0000000000..2a079be2f7 --- /dev/null +++ b/dom/html/test/browser_bug1081537.js @@ -0,0 +1,11 @@ +// This test is useful because mochitest-browser runs as an addon, so we test +// addon-scope paths here. +var ifr; +function test() { + ifr = document.createXULElement("iframe"); + document.getElementById("main-window").appendChild(ifr); + is(ifr.contentDocument.nodePrincipal.origin, "[System Principal]"); + ifr.contentDocument.open(); + ok(true, "Didn't throw"); +} +registerCleanupFunction(() => ifr.remove()); diff --git a/dom/html/test/browser_bug1108547.js b/dom/html/test/browser_bug1108547.js new file mode 100644 index 0000000000..4949827086 --- /dev/null +++ b/dom/html/test/browser_bug1108547.js @@ -0,0 +1,149 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +requestLongerTimeout(2); + +function test() { + waitForExplicitFinish(); + + runPass("file_bug1108547-2.html", function () { + runPass("file_bug1108547-3.html", function () { + finish(); + }); + }); +} + +function runPass(getterFile, finishedCallback) { + var rootDir = "http://mochi.test:8888/browser/dom/html/test/"; + var testBrowser; + var privateWin; + + function whenDelayedStartupFinished(win, callback) { + let topic = "browser-delayed-startup-finished"; + Services.obs.addObserver(function onStartup(aSubject) { + if (win != aSubject) { + return; + } + + Services.obs.removeObserver(onStartup, topic); + executeSoon(callback); + }, topic); + } + + // First, set the cookie in a normal window. + gBrowser.selectedTab = BrowserTestUtils.addTab( + gBrowser, + rootDir + "file_bug1108547-1.html" + ); + BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser).then( + afterOpenCookieSetter + ); + + function afterOpenCookieSetter() { + gBrowser.removeCurrentTab(); + + // Now, open a private window. + privateWin = OpenBrowserWindow({ private: true }); + whenDelayedStartupFinished(privateWin, afterPrivateWindowOpened); + } + + function afterPrivateWindowOpened() { + // In the private window, open the getter file, and wait for a new tab to be opened. + privateWin.gBrowser.selectedTab = BrowserTestUtils.addTab( + privateWin.gBrowser, + rootDir + getterFile + ); + testBrowser = privateWin.gBrowser.selectedBrowser; + privateWin.gBrowser.tabContainer.addEventListener( + "TabOpen", + onNewTabOpened, + true + ); + } + + function fetchResult() { + return SpecialPowers.spawn(testBrowser, [], function () { + return content.document.getElementById("result").textContent; + }); + } + + function onNewTabOpened() { + // When the new tab is opened, wait for it to load. + privateWin.gBrowser.tabContainer.removeEventListener( + "TabOpen", + onNewTabOpened, + true + ); + BrowserTestUtils.browserLoaded( + privateWin.gBrowser.tabs[privateWin.gBrowser.tabs.length - 1] + .linkedBrowser + ) + .then(fetchResult) + .then(onNewTabLoaded); + } + + function onNewTabLoaded(result) { + // Now, ensure that the private tab doesn't have access to the cookie set in normal mode. + is(result, "", "Shouldn't have access to the cookies"); + + // We're done with the private window, close it. + privateWin.close(); + + // Clear all cookies. + Cc["@mozilla.org/cookiemanager;1"] + .getService(Ci.nsICookieManager) + .removeAll(); + + // Open a new private window, this time to set a cookie inside it. + privateWin = OpenBrowserWindow({ private: true }); + whenDelayedStartupFinished(privateWin, afterPrivateWindowOpened2); + } + + function afterPrivateWindowOpened2() { + // In the private window, open the setter file, and wait for it to load. + privateWin.gBrowser.selectedTab = BrowserTestUtils.addTab( + privateWin.gBrowser, + rootDir + "file_bug1108547-1.html" + ); + BrowserTestUtils.browserLoaded(privateWin.gBrowser.selectedBrowser).then( + afterOpenCookieSetter2 + ); + } + + function afterOpenCookieSetter2() { + // We're done with the private window now, close it. + privateWin.close(); + + // Now try to read the cookie in a normal window, and wait for a new tab to be opened. + gBrowser.selectedTab = BrowserTestUtils.addTab( + gBrowser, + rootDir + getterFile + ); + testBrowser = gBrowser.selectedBrowser; + gBrowser.tabContainer.addEventListener("TabOpen", onNewTabOpened2, true); + } + + function onNewTabOpened2() { + // When the new tab is opened, wait for it to load. + gBrowser.tabContainer.removeEventListener("TabOpen", onNewTabOpened2, true); + BrowserTestUtils.browserLoaded( + gBrowser.tabs[gBrowser.tabs.length - 1].linkedBrowser + ) + .then(fetchResult) + .then(onNewTabLoaded2); + } + + function onNewTabLoaded2(result) { + // Now, ensure that the normal tab doesn't have access to the cookie set in private mode. + is(result, "", "Shouldn't have access to the cookies"); + + // Remove both of the tabs opened here. + gBrowser.removeCurrentTab(); + gBrowser.removeCurrentTab(); + + privateWin = null; + testBrowser = null; + + finishedCallback(); + } +} diff --git a/dom/html/test/browser_bug436200.js b/dom/html/test/browser_bug436200.js new file mode 100644 index 0000000000..7e739c02ad --- /dev/null +++ b/dom/html/test/browser_bug436200.js @@ -0,0 +1,60 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const kTestPage = "https://example.org/browser/dom/html/test/bug436200.html"; + +async function run_test(shouldShowPrompt, msg) { + let promptShown = false; + + function tabModalObserver(subject) { + promptShown = true; + subject.querySelector(".tabmodalprompt-button0").click(); + } + Services.obs.addObserver(tabModalObserver, "tabmodal-dialog-loaded"); + + function commonDialogObserver(subject) { + let dialog = subject.Dialog; + promptShown = true; + dialog.ui.button0.click(); + } + Services.obs.addObserver(commonDialogObserver, "common-dialog-loaded"); + + let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, kTestPage); + + await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function () { + let form = content.document.getElementById("test_form"); + form.submit(); + }); + Services.obs.removeObserver(tabModalObserver, "tabmodal-dialog-loaded"); + Services.obs.removeObserver(commonDialogObserver, "common-dialog-loaded"); + + is(promptShown, shouldShowPrompt, msg); + BrowserTestUtils.removeTab(tab); +} + +add_task(async function test_prompt() { + await run_test(true, "Should show prompt"); +}); + +add_task(async function test_noprompt() { + await SpecialPowers.pushPrefEnv({ + set: [["security.warn_submit_secure_to_insecure", false]], + }); + await run_test(false, "Should not show prompt"); + await SpecialPowers.popPrefEnv(); +}); + +add_task(async function test_prompt_modal() { + await SpecialPowers.pushPrefEnv({ + set: [ + [ + "prompts.modalType.insecureFormSubmit", + Services.prompt.MODAL_TYPE_WINDOW, + ], + ], + }); + await run_test(true, "Should show prompt"); + await SpecialPowers.popPrefEnv(); +}); diff --git a/dom/html/test/browser_bug592641.js b/dom/html/test/browser_bug592641.js new file mode 100644 index 0000000000..761af6a568 --- /dev/null +++ b/dom/html/test/browser_bug592641.js @@ -0,0 +1,61 @@ +// Test for bug 592641 - Image document doesn't show dimensions of cached images + +// Globals +var testPath = "http://mochi.test:8888/browser/dom/html/test/"; +var ctx = { loadsDone: 0 }; + +// Entry point from Mochikit +function test() { + waitForExplicitFinish(); + + ctx.tab1 = BrowserTestUtils.addTab(gBrowser, testPath + "bug592641_img.jpg"); + ctx.tab1Browser = gBrowser.getBrowserForTab(ctx.tab1); + BrowserTestUtils.browserLoaded(ctx.tab1Browser).then(load1Soon); +} + +function checkTitle(title) { + ctx.loadsDone++; + ok( + /^bug592641_img\.jpg \(JPEG Image, 1500\u00A0\u00D7\u00A01500 pixels\)/.test( + title + ), + "Title should be correct on load #" + ctx.loadsDone + ", was: " + title + ); +} + +function load1Soon() { + // onload is fired in OnStopDecode, so let's use executeSoon() to make sure + // that any other OnStopDecode event handlers get the chance to fire first. + executeSoon(load1Done); +} + +function load1Done() { + // Check the title + var title = ctx.tab1Browser.contentTitle; + checkTitle(title); + + // Try loading the same image in a new tab to make sure things work in + // the cached case. + ctx.tab2 = BrowserTestUtils.addTab(gBrowser, testPath + "bug592641_img.jpg"); + ctx.tab2Browser = gBrowser.getBrowserForTab(ctx.tab2); + BrowserTestUtils.browserLoaded(ctx.tab2Browser).then(load2Soon); +} + +function load2Soon() { + // onload is fired in OnStopDecode, so let's use executeSoon() to make sure + // that any other OnStopDecode event handlers get the chance to fire first. + executeSoon(load2Done); +} + +function load2Done() { + // Check the title + var title = ctx.tab2Browser.contentTitle; + checkTitle(title); + + // Clean up + gBrowser.removeTab(ctx.tab1); + gBrowser.removeTab(ctx.tab2); + + // Test done + finish(); +} diff --git a/dom/html/test/browser_containerLoadingContent.js b/dom/html/test/browser_containerLoadingContent.js new file mode 100644 index 0000000000..c0b52ffe8a --- /dev/null +++ b/dom/html/test/browser_containerLoadingContent.js @@ -0,0 +1,130 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const syntheticBrowsingContexts = SpecialPowers.getBoolPref( + "browser.opaqueResponseBlocking.syntheticBrowsingContext", + false +); + +const DIRPATH = getRootDirectory(gTestPath).replace( + "chrome://mochitests/content/", + "" +); + +const ORIGIN = "https://example.com"; +const CROSSORIGIN = "https://example.org"; + +const TABURL = `${ORIGIN}/${DIRPATH}dummy_page.html`; + +const IMAGEURL = `${ORIGIN}/${DIRPATH}image.png`; +const CROSSIMAGEURL = `${CROSSORIGIN}/${DIRPATH}image.png`; + +const DOCUMENTURL = `${ORIGIN}/${DIRPATH}dummy_page.html`; +const CROSSDOCUMENTURL = `${CROSSORIGIN}/${DIRPATH}dummy_page.html`; + +async function createElements({ element, attribute }, url1, url2) { + for (let url of [url1, url2]) { + const object = content.document.createElement(element); + object[attribute] = url; + const onloadPromise = new Promise(res => { + object.onload = res; + }); + content.document.body.appendChild(object); + await onloadPromise; + return object; + } +} + +function getPids(browser) { + return browser.browsingContext.children.map( + child => child.currentWindowContext.osPid + ); +} + +async function runTest(spec, tabUrl, imageurl, crossimageurl, check) { + await BrowserTestUtils.withNewTab(tabUrl, async browser => { + await SpecialPowers.spawn( + browser, + [spec, imageurl, crossimageurl], + async ({ element, attribute }, url1, url2) => { + for (let url of [url1, url2]) { + const object = content.document.createElement(element); + object[attribute] = url; + const onloadPromise = new Promise(res => { + object.onload = res; + }); + content.document.body.appendChild(object); + await onloadPromise; + } + } + ); + + await check(browser); + }); +} + +let iframe = { element: "iframe", attribute: "src" }; +let embed = { element: "embed", attribute: "src" }; +let object = { element: "object", attribute: "data" }; + +async function checkImage(browser) { + let pids = getPids(browser); + is(pids.length, 2, "There should be two browsing contexts"); + ok(pids[0], "The first pid should have a sane value"); + ok(pids[1], "The second pid should have a sane value"); + isnot(pids[0], pids[1], "The two pids should be different"); + + let images = []; + for (let context of browser.browsingContext.children) { + images.push( + await SpecialPowers.spawn(context, [], async () => { + let img = new URL(content.document.querySelector("img").src); + is( + `${img.protocol}//${img.host}`, + `${content.location.protocol}//${content.location.host}`, + "Images should be loaded in the same domain as the document" + ); + return img.href; + }) + ); + } + isnot(images[0], images[1], "The images should have different sources"); +} + +function checkDocument(browser) { + let pids = getPids(browser); + is(pids.length, 2, "There should be two browsing contexts"); + ok(pids[0], "The first pid should have a sane value"); + ok(pids[1], "The second pid should have a sane value"); + isnot(pids[0], pids[1], "The two pids should be different"); +} + +add_task(async function test_iframeImageDocument() { + await runTest(iframe, TABURL, IMAGEURL, CROSSIMAGEURL, checkImage); +}); + +if (syntheticBrowsingContexts) { + add_task(async function test_embedImageDocument() { + await runTest(embed, TABURL, IMAGEURL, CROSSIMAGEURL, checkImage); + }); + + add_task(async function test_objectImageDocument() { + await runTest(object, TABURL, IMAGEURL, CROSSIMAGEURL, checkImage); + }); +} + +add_task(async function test_iframeDocument() { + await runTest(iframe, TABURL, DOCUMENTURL, CROSSDOCUMENTURL, checkDocument); +}); + +if (syntheticBrowsingContexts) { + add_task(async function test_embedDocument() { + await runTest(embed, TABURL, DOCUMENTURL, CROSSDOCUMENTURL, checkDocument); + }); + + add_task(async function test_objectDocument() { + await runTest(object, TABURL, DOCUMENTURL, CROSSDOCUMENTURL, checkDocument); + }); +} diff --git a/dom/html/test/browser_form_post_from_file_to_http.js b/dom/html/test/browser_form_post_from_file_to_http.js new file mode 100644 index 0000000000..2b69210cc2 --- /dev/null +++ b/dom/html/test/browser_form_post_from_file_to_http.js @@ -0,0 +1,180 @@ +/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set ft=javascript ts=2 et sw=2 tw=80: */ + +const TEST_HTTP_POST = + "http://example.org/browser/dom/html/test/form_submit_server.sjs"; + +// Test for bug 1351358. +async function runTest(doNewTab) { + // Create file URI and test data file paths. + let testFile = getChromeDir(getResolvedURI(gTestPath)); + testFile.append("dummy_page.html"); + const fileUriString = Services.io.newFileURI(testFile).spec; + let filePaths = []; + testFile.leafName = "form_data_file.txt"; + filePaths.push(testFile.path); + testFile.leafName = "form_data_file.bin"; + filePaths.push(testFile.path); + + // Open file:// page tab in which to run the test. + await BrowserTestUtils.withNewTab( + fileUriString, + async function (fileBrowser) { + // Create a form to post to server that writes posted data into body as JSON. + + var promiseLoad; + if (doNewTab) { + promiseLoad = BrowserTestUtils.waitForNewTab( + gBrowser, + TEST_HTTP_POST, + true, + false + ); + } else { + promiseLoad = BrowserTestUtils.browserLoaded( + fileBrowser, + false, + TEST_HTTP_POST + ); + } + + /* eslint-disable no-shadow */ + await SpecialPowers.spawn( + fileBrowser, + [TEST_HTTP_POST, filePaths, doNewTab], + (actionUri, filePaths, doNewTab) => { + Cu.importGlobalProperties(["File"]); + + let doc = content.document; + let form = doc.body.appendChild(doc.createElement("form")); + form.action = actionUri; + form.method = "POST"; + form.enctype = "multipart/form-data"; + if (doNewTab) { + form.target = "_blank"; + } + + let inputText = form.appendChild(doc.createElement("input")); + inputText.type = "text"; + inputText.name = "text"; + inputText.value = "posted"; + + let inputCheckboxOn = form.appendChild(doc.createElement("input")); + inputCheckboxOn.type = "checkbox"; + inputCheckboxOn.name = "checked"; + inputCheckboxOn.checked = true; + + let inputCheckboxOff = form.appendChild(doc.createElement("input")); + inputCheckboxOff.type = "checkbox"; + inputCheckboxOff.name = "unchecked"; + inputCheckboxOff.checked = false; + + let inputFile = form.appendChild(doc.createElement("input")); + inputFile.type = "file"; + inputFile.name = "file"; + let fileList = []; + let promises = []; + for (let path of filePaths) { + promises.push( + File.createFromFileName(path).then(file => { + fileList.push(file); + }) + ); + } + + Promise.all(promises).then(() => { + inputFile.mozSetFileArray(fileList); + form.submit(); + }); + } + ); + /* eslint-enable no-shadow */ + + var href; + var testBrowser; + var newTab; + if (doNewTab) { + newTab = await promiseLoad; + testBrowser = newTab.linkedBrowser; + href = testBrowser.currentURI.spec; + } else { + testBrowser = fileBrowser; + href = await promiseLoad; + } + is( + href, + TEST_HTTP_POST, + "Check that the loaded page is the one to which we posted." + ); + + let binContentType; + if (AppConstants.platform == "macosx") { + binContentType = "application/macbinary"; + } else { + binContentType = "application/octet-stream"; + } + + /* eslint-disable no-shadow */ + await SpecialPowers.spawn( + testBrowser, + [binContentType], + binContentType => { + let data = JSON.parse(content.document.body.textContent); + is( + data[0].headers["Content-Disposition"], + 'form-data; name="text"', + "Check text input Content-Disposition" + ); + is(data[0].body, "posted", "Check text input body"); + + is( + data[1].headers["Content-Disposition"], + 'form-data; name="checked"', + "Check checkbox input Content-Disposition" + ); + is(data[1].body, "on", "Check checkbox input body"); + + // Note that unchecked checkbox details are not sent. + + is( + data[2].headers["Content-Disposition"], + 'form-data; name="file"; filename="form_data_file.txt"', + "Check text file input Content-Disposition" + ); + is( + data[2].headers["Content-Type"], + "text/plain", + "Check text file input Content-Type" + ); + is(data[2].body, "1234\n", "Check text file input body"); + + is( + data[3].headers["Content-Disposition"], + 'form-data; name="file"; filename="form_data_file.bin"', + "Check binary file input Content-Disposition" + ); + is( + data[3].headers["Content-Type"], + binContentType, + "Check binary file input Content-Type" + ); + is( + data[3].body, + "\u0001\u0002\u0003\u0004\n", + "Check binary file input body" + ); + } + ); + /* eslint-enable no-shadow */ + + if (newTab) { + BrowserTestUtils.removeTab(newTab); + } + } + ); +} + +add_task(async function runWithDocumentChannel() { + await runTest(false); + await runTest(true); +}); diff --git a/dom/html/test/browser_refresh_after_document_write.js b/dom/html/test/browser_refresh_after_document_write.js new file mode 100644 index 0000000000..88e0dbe489 --- /dev/null +++ b/dom/html/test/browser_refresh_after_document_write.js @@ -0,0 +1,52 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +/* +Test that after using document.write(...), refreshing the document and calling write again, +resulting document.URL is identical to the original URL. + +This testcase is aimed at preventing bug 619092 +*/ +var testURL = + "http://mochi.test:8888/browser/dom/html/test/file_refresh_after_document_write.html"; +let aTab, aBrowser; + +function test() { + waitForExplicitFinish(); + + aTab = BrowserTestUtils.addTab(gBrowser, testURL); + aBrowser = gBrowser.getBrowserForTab(aTab); + BrowserTestUtils.browserLoaded(aBrowser) + .then(() => { + is( + aBrowser.currentURI.spec, + testURL, + "Make sure we start at the correct URL" + ); + + SpecialPowers.spawn(aBrowser, [], () => { + // test_btn calls document.write() then reloads the document + let test_btn = content.document.getElementById("test_btn"); + + docShell.chromeEventHandler.addEventListener( + "load", + () => { + test_btn.click(); + }, + { once: true, capture: true } + ); + + test_btn.click(); + }); + + return BrowserTestUtils.browserLoaded(aBrowser); + }) + .then(() => { + return SpecialPowers.spawn(aBrowser, [], () => content.document.URL); + }) + .then(url => { + is(url, testURL, "Document URL should be identical after reload"); + gBrowser.removeTab(aTab); + finish(); + }); +} diff --git a/dom/html/test/browser_submission_flush.js b/dom/html/test/browser_submission_flush.js new file mode 100644 index 0000000000..add886c6a3 --- /dev/null +++ b/dom/html/test/browser_submission_flush.js @@ -0,0 +1,97 @@ +"use strict"; +// Form submissions triggered by the Javascript 'submit' event listener are +// deferred until the event listener finishes. However, changes to specific +// attributes ("action" and "target" attributes) need to cause an immediate +// flush of any pending submission to prevent the form submission from using the +// wrong action or target. This test ensures that such flushes happen properly. + +const kTestPage = + "https://example.org/browser/dom/html/test/submission_flush.html"; +// This is the page pointed to by the form action in the test HTML page. +const kPostActionPage = + "https://example.org/browser/dom/html/test/post_action_page.html"; + +const kFormId = "test_form"; +const kFrameId = "test_frame"; +const kSubmitButtonId = "submit_button"; + +// Take in a variety of actions (in the form of setting and unsetting form +// attributes). Then submit the form in the submit event listener to cause a +// deferred form submission. Then perform the test actions and ensure that the +// form used the correct attribute values rather than the changed ones. +async function runTest(aTestActions) { + let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, kTestPage); + registerCleanupFunction(() => BrowserTestUtils.removeTab(tab)); + + /* eslint-disable no-shadow */ + let frame_url = await SpecialPowers.spawn( + gBrowser.selectedBrowser, + [{ kFormId, kFrameId, kSubmitButtonId, aTestActions }], + async function ({ kFormId, kFrameId, kSubmitButtonId, aTestActions }) { + let form = content.document.getElementById(kFormId); + + form.addEventListener( + "submit", + event => { + // Need to trigger the deferred submission by submitting in the submit + // event handler. To prevent the form from being submitted twice, the + //
tag contains the attribute |onsubmit="return false;"| to cancel + // the original submission. + form.submit(); + + if (aTestActions.setattr) { + for (let { attr, value } of aTestActions.setattr) { + form.setAttribute(attr, value); + } + } + if (aTestActions.unsetattr) { + for (let attr of aTestActions.unsetattr) { + form.removeAttribute(attr); + } + } + }, + { capture: true, once: true } + ); + + // Trigger the above event listener + content.document.getElementById(kSubmitButtonId).click(); + + // Test that the form was submitted to the correct target (the frame) with + // the correct action (kPostActionPage). + let frame = content.document.getElementById(kFrameId); + await new Promise(resolve => { + frame.addEventListener("load", resolve, { once: true }); + }); + return frame.contentWindow.location.href; + } + ); + /* eslint-enable no-shadow */ + is( + frame_url, + kPostActionPage, + "Form should have submitted with correct target and action" + ); +} + +add_task(async function () { + info("Changing action should flush pending submissions"); + await runTest({ setattr: [{ attr: "action", value: "about:blank" }] }); +}); + +add_task(async function () { + info("Changing target should flush pending submissions"); + await runTest({ setattr: [{ attr: "target", value: "_blank" }] }); +}); + +add_task(async function () { + info("Unsetting action should flush pending submissions"); + await runTest({ unsetattr: ["action"] }); +}); + +// On failure, this test will time out rather than failing an assert. When the +// target attribute is not set, the form will submit the active page, navigating +// it away and preventing the wait for iframe load from ever finishing. +add_task(async function () { + info("Unsetting target should flush pending submissions"); + await runTest({ unsetattr: ["target"] }); +}); diff --git a/dom/html/test/browser_targetBlankNoOpener.js b/dom/html/test/browser_targetBlankNoOpener.js new file mode 100644 index 0000000000..1647df0be2 --- /dev/null +++ b/dom/html/test/browser_targetBlankNoOpener.js @@ -0,0 +1,121 @@ +const TEST_URL = "http://mochi.test:8888/browser/dom/html/test/empty.html"; + +async function checkOpener(browser, elm, name, rel) { + let p = BrowserTestUtils.waitForNewTab(gBrowser, null, true, true); + + await SpecialPowers.spawn( + browser, + [{ url: TEST_URL, name, rel, elm }], + async obj => { + let element; + + if (obj.elm == "anchor") { + element = content.document.createElement("a"); + content.document.body.appendChild(element); + element.appendChild(content.document.createTextNode(obj.name)); + } else { + let img = content.document.createElement("img"); + img.src = "image_yellow.png"; + content.document.body.appendChild(img); + + element = content.document.createElement("area"); + img.appendChild(element); + + element.setAttribute("shape", "rect"); + element.setAttribute("coords", "0,0,100,100"); + } + + element.setAttribute("target", "_blank"); + element.setAttribute("href", obj.url); + + if (obj.rel) { + element.setAttribute("rel", obj.rel); + } + + element.click(); + } + ); + + let newTab = await p; + let newBrowser = gBrowser.getBrowserForTab(newTab); + + let hasOpener = await SpecialPowers.spawn( + newTab.linkedBrowser, + [], + _ => !!content.window.opener + ); + + BrowserTestUtils.removeTab(newTab); + return hasOpener; +} + +async function runTests(browser, elm) { + info("Creating an " + elm + " with target=_blank rel=opener"); + ok( + !!(await checkOpener(browser, elm, "rel=opener", "opener")), + "We want the opener with rel=opener" + ); + + info("Creating an " + elm + " with target=_blank rel=noopener"); + ok( + !(await checkOpener(browser, elm, "rel=noopener", "noopener")), + "We don't want the opener with rel=noopener" + ); + + info("Creating an " + elm + " with target=_blank"); + ok( + !(await checkOpener(browser, elm, "no rel", null)), + "We don't want the opener with no rel is passed" + ); + + info("Creating an " + elm + " with target=_blank rel='noopener opener'"); + ok( + !(await checkOpener( + browser, + elm, + "rel=noopener+opener", + "noopener opener" + )), + "noopener wins with rel=noopener+opener" + ); + + info("Creating an " + elm + " with target=_blank rel='noreferrer opener'"); + ok( + !(await checkOpener(browser, elm, "noreferrer wins", "noreferrer opener")), + "We don't want the opener with rel=noreferrer+opener" + ); + + info("Creating an " + elm + " with target=_blank rel='opener noreferrer'"); + ok( + !(await checkOpener( + browser, + elm, + "noreferrer wins again", + "noreferrer opener" + )), + "We don't want the opener with rel=opener+noreferrer" + ); +} + +add_task(async _ => { + await SpecialPowers.flushPrefEnv(); + await SpecialPowers.pushPrefEnv({ + set: [ + ["dom.block_multiple_popups", false], + ["dom.disable_open_during_load", true], + ["dom.targetBlankNoOpener.enabled", true], + ], + }); + + let tab = BrowserTestUtils.addTab(gBrowser, TEST_URL); + gBrowser.selectedTab = tab; + + let browser = gBrowser.getBrowserForTab(tab); + await BrowserTestUtils.browserLoaded(browser); + + await runTests(browser, "anchor"); + await runTests(browser, "area"); + + info("Removing the tab"); + BrowserTestUtils.removeTab(tab); +}); diff --git a/dom/html/test/bug100533_iframe.html b/dom/html/test/bug100533_iframe.html new file mode 100644 index 0000000000..ddf58a15c6 --- /dev/null +++ b/dom/html/test/bug100533_iframe.html @@ -0,0 +1,8 @@ + + + + + +
+ + diff --git a/dom/html/test/bug100533_load.html b/dom/html/test/bug100533_load.html new file mode 100644 index 0000000000..99cf26640c --- /dev/null +++ b/dom/html/test/bug100533_load.html @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/dom/html/test/bug1260704_iframe.html b/dom/html/test/bug1260704_iframe.html new file mode 100644 index 0000000000..695dc7c1ac --- /dev/null +++ b/dom/html/test/bug1260704_iframe.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + diff --git a/dom/html/test/bug1260704_iframe_empty.html b/dom/html/test/bug1260704_iframe_empty.html new file mode 100644 index 0000000000..e826b1e5e6 --- /dev/null +++ b/dom/html/test/bug1260704_iframe_empty.html @@ -0,0 +1,15 @@ + + + + + + + + + + + diff --git a/dom/html/test/bug1292522_iframe.html b/dom/html/test/bug1292522_iframe.html new file mode 100644 index 0000000000..99a3369d00 --- /dev/null +++ b/dom/html/test/bug1292522_iframe.html @@ -0,0 +1,10 @@ + +iframe + +

var testvar = "testiframe"

+ + + diff --git a/dom/html/test/bug1292522_page.html b/dom/html/test/bug1292522_page.html new file mode 100644 index 0000000000..9570f12d2d --- /dev/null +++ b/dom/html/test/bug1292522_page.html @@ -0,0 +1,14 @@ + + + + Test for Bug 1292522 + + + + + + diff --git a/dom/html/test/bug1315146-iframe.html b/dom/html/test/bug1315146-iframe.html new file mode 100644 index 0000000000..280db53052 --- /dev/null +++ b/dom/html/test/bug1315146-iframe.html @@ -0,0 +1,4 @@ + + diff --git a/dom/html/test/bug1315146-main.html b/dom/html/test/bug1315146-main.html new file mode 100644 index 0000000000..e9f356dda6 --- /dev/null +++ b/dom/html/test/bug1315146-main.html @@ -0,0 +1,15 @@ + + + + diff --git a/dom/html/test/bug196523-subframe.html b/dom/html/test/bug196523-subframe.html new file mode 100644 index 0000000000..ac53572a7a --- /dev/null +++ b/dom/html/test/bug196523-subframe.html @@ -0,0 +1,37 @@ + + diff --git a/dom/html/test/bug199692-nested-d2.html b/dom/html/test/bug199692-nested-d2.html new file mode 100644 index 0000000000..70064efe74 --- /dev/null +++ b/dom/html/test/bug199692-nested-d2.html @@ -0,0 +1,14 @@ + + + + + Nested, nested iframe for bug 199692 tests + + + +
nested, depth 2
+ + + diff --git a/dom/html/test/bug199692-nested.html b/dom/html/test/bug199692-nested.html new file mode 100644 index 0000000000..27201a953d --- /dev/null +++ b/dom/html/test/bug199692-nested.html @@ -0,0 +1,15 @@ + + + + + Nested iframe for bug 199692 tests + + + +
nested, depth 1
+ + + + diff --git a/dom/html/test/bug199692-popup.html b/dom/html/test/bug199692-popup.html new file mode 100644 index 0000000000..e138921386 --- /dev/null +++ b/dom/html/test/bug199692-popup.html @@ -0,0 +1,188 @@ + + + + + + Popup in test for Bug 199692 + + + + + +Mozilla Bug 199692 + +
+ + +
txt
+ + +
+ + +

+ + +static + + +
float
+ + +fixed + + +abs + + +
rel
+ + +
+ +
+ + + + + +
+ + + + + + + + diff --git a/dom/html/test/bug199692-scrolled.html b/dom/html/test/bug199692-scrolled.html new file mode 100644 index 0000000000..f13bf7ab12 --- /dev/null +++ b/dom/html/test/bug199692-scrolled.html @@ -0,0 +1,34 @@ + + + + + Scrolled page for bug 199692 tests + + + + + +
first
+
second
+ + + diff --git a/dom/html/test/bug242709_iframe.html b/dom/html/test/bug242709_iframe.html new file mode 100644 index 0000000000..1155299692 --- /dev/null +++ b/dom/html/test/bug242709_iframe.html @@ -0,0 +1,20 @@ + + + + + + + + + +
+ +
+ + + diff --git a/dom/html/test/bug242709_load.html b/dom/html/test/bug242709_load.html new file mode 100644 index 0000000000..c9be79b241 --- /dev/null +++ b/dom/html/test/bug242709_load.html @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/dom/html/test/bug277724_iframe1.html b/dom/html/test/bug277724_iframe1.html new file mode 100644 index 0000000000..d0d881b766 --- /dev/null +++ b/dom/html/test/bug277724_iframe1.html @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dom/html/test/bug277724_iframe2.xhtml b/dom/html/test/bug277724_iframe2.xhtml new file mode 100644 index 0000000000..14423aa06c --- /dev/null +++ b/dom/html/test/bug277724_iframe2.xhtml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dom/html/test/bug277890_iframe.html b/dom/html/test/bug277890_iframe.html new file mode 100644 index 0000000000..c1cb4ff2e1 --- /dev/null +++ b/dom/html/test/bug277890_iframe.html @@ -0,0 +1,20 @@ + + + + + + + + + +
+ +
+ + + diff --git a/dom/html/test/bug277890_load.html b/dom/html/test/bug277890_load.html new file mode 100644 index 0000000000..c9be79b241 --- /dev/null +++ b/dom/html/test/bug277890_load.html @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/dom/html/test/bug340800_iframe.txt b/dom/html/test/bug340800_iframe.txt new file mode 100644 index 0000000000..369dfe7441 --- /dev/null +++ b/dom/html/test/bug340800_iframe.txt @@ -0,0 +1,4 @@ +Line 1. +Line 2. +Line 3. +Line 4. diff --git a/dom/html/test/bug369370-popup.png b/dom/html/test/bug369370-popup.png new file mode 100644 index 0000000000..9063d12648 Binary files /dev/null and b/dom/html/test/bug369370-popup.png differ diff --git a/dom/html/test/bug372098-link-target.html b/dom/html/test/bug372098-link-target.html new file mode 100644 index 0000000000..b22b8e020e --- /dev/null +++ b/dom/html/test/bug372098-link-target.html @@ -0,0 +1,7 @@ + + + diff --git a/dom/html/test/bug436200.html b/dom/html/test/bug436200.html new file mode 100644 index 0000000000..1ef7e73b5e --- /dev/null +++ b/dom/html/test/bug436200.html @@ -0,0 +1,12 @@ + + + + + Secure to Insecure Test + + +
+ +
+ + diff --git a/dom/html/test/bug441930_iframe.html b/dom/html/test/bug441930_iframe.html new file mode 100644 index 0000000000..532cd5c36a --- /dev/null +++ b/dom/html/test/bug441930_iframe.html @@ -0,0 +1,27 @@ + + + The content of this textarea should not disappear on page reload:
+ + + + diff --git a/dom/html/test/bug445004-inner.html b/dom/html/test/bug445004-inner.html new file mode 100644 index 0000000000..b946520ea6 --- /dev/null +++ b/dom/html/test/bug445004-inner.html @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/dom/html/test/bug445004-inner.js b/dom/html/test/bug445004-inner.js new file mode 100644 index 0000000000..2d751da454 --- /dev/null +++ b/dom/html/test/bug445004-inner.js @@ -0,0 +1,27 @@ +document.domain = "example.org"; +function $(str) { + return document.getElementById(str); +} +function hookLoad(str) { + $(str).onload = function () { + window.parent.parent.postMessage("end", "*"); + }; + window.parent.parent.postMessage("start", "*"); +} +window.onload = function () { + hookLoad("w"); + $("w").contentWindow.location.href = "test1.example.org.png"; + hookLoad("x"); + var doc = $("x").contentDocument; + doc.write(''); + doc.close(); +}; +function doIt() { + hookLoad("y"); + $("y").contentWindow.location.href = "example.org.png"; + hookLoad("z"); + var doc = $("z").contentDocument; + doc.write(''); + doc.close(); +} +window.addEventListener("message", doIt); diff --git a/dom/html/test/bug445004-outer-abs.html b/dom/html/test/bug445004-outer-abs.html new file mode 100644 index 0000000000..8a93ef2b73 --- /dev/null +++ b/dom/html/test/bug445004-outer-abs.html @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/dom/html/test/bug445004-outer-rel.html b/dom/html/test/bug445004-outer-rel.html new file mode 100644 index 0000000000..0967338899 --- /dev/null +++ b/dom/html/test/bug445004-outer-rel.html @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/dom/html/test/bug445004-outer-write.html b/dom/html/test/bug445004-outer-write.html new file mode 100644 index 0000000000..be6e37b6d7 --- /dev/null +++ b/dom/html/test/bug445004-outer-write.html @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/dom/html/test/bug446483-iframe.html b/dom/html/test/bug446483-iframe.html new file mode 100644 index 0000000000..fe5a6cf9f7 --- /dev/null +++ b/dom/html/test/bug446483-iframe.html @@ -0,0 +1,10 @@ + + diff --git a/dom/html/test/bug448564-echo.sjs b/dom/html/test/bug448564-echo.sjs new file mode 100644 index 0000000000..1eee116fd7 --- /dev/null +++ b/dom/html/test/bug448564-echo.sjs @@ -0,0 +1,6 @@ +function handleRequest(request, response) { + response.setHeader("Cache-Control", "no-cache", false); + response.setStatusLine(request.httpVersion, 200, "OK"); + + response.write(request.queryString); +} diff --git a/dom/html/test/bug448564-iframe-1.html b/dom/html/test/bug448564-iframe-1.html new file mode 100644 index 0000000000..4f3e79e5d2 --- /dev/null +++ b/dom/html/test/bug448564-iframe-1.html @@ -0,0 +1,16 @@ + + + + + + + + + + +
+ + + + + diff --git a/dom/html/test/bug448564-iframe-2.html b/dom/html/test/bug448564-iframe-2.html new file mode 100644 index 0000000000..dba19b37e2 --- /dev/null +++ b/dom/html/test/bug448564-iframe-2.html @@ -0,0 +1,16 @@ + + + +
+ + + + + +
+
+ + + + + diff --git a/dom/html/test/bug448564-iframe-3.html b/dom/html/test/bug448564-iframe-3.html new file mode 100644 index 0000000000..64288ebb15 --- /dev/null +++ b/dom/html/test/bug448564-iframe-3.html @@ -0,0 +1,16 @@ + + + + +
+
+ + + + +
+ + + + + diff --git a/dom/html/test/bug448564-submit.js b/dom/html/test/bug448564-submit.js new file mode 100644 index 0000000000..a650487d65 --- /dev/null +++ b/dom/html/test/bug448564-submit.js @@ -0,0 +1,6 @@ +var inputs = document.getElementsByTagName("input"); +for (var input, i = 0; (input = inputs[i]); ++i) { + if ("submit" == input.type) { + input.click(); + } +} diff --git a/dom/html/test/bug499092.html b/dom/html/test/bug499092.html new file mode 100644 index 0000000000..0476fa4e76 --- /dev/null +++ b/dom/html/test/bug499092.html @@ -0,0 +1,6 @@ + + diff --git a/dom/html/test/bug499092.xml b/dom/html/test/bug499092.xml new file mode 100644 index 0000000000..eedd2c77b3 --- /dev/null +++ b/dom/html/test/bug499092.xml @@ -0,0 +1,4 @@ + + +XML OK + diff --git a/dom/html/test/bug514856_iframe.html b/dom/html/test/bug514856_iframe.html new file mode 100644 index 0000000000..2abf9e91e2 --- /dev/null +++ b/dom/html/test/bug514856_iframe.html @@ -0,0 +1,21 @@ + + + + + + + + + + diff --git a/dom/html/test/bug592641_img.jpg b/dom/html/test/bug592641_img.jpg new file mode 100644 index 0000000000..c9103b8b0e Binary files /dev/null and b/dom/html/test/bug592641_img.jpg differ diff --git a/dom/html/test/bug649134/file_bug649134-1.sjs b/dom/html/test/bug649134/file_bug649134-1.sjs new file mode 100644 index 0000000000..fed0a9d693 --- /dev/null +++ b/dom/html/test/bug649134/file_bug649134-1.sjs @@ -0,0 +1,12 @@ +function handleRequest(request, response) { + response.seizePower(); + var r = + "HTTP/1.1 200 OK\r\n" + + "Content-Type: text/html\r\n" + + 'Link: < \014>; rel="stylesheet"\r\n' + + "\r\n" + + "PASS\r\n"; + response.bodyOutputStream.write(r, r.length); + response.bodyOutputStream.flush(); + response.finish(); +} diff --git a/dom/html/test/bug649134/file_bug649134-2.sjs b/dom/html/test/bug649134/file_bug649134-2.sjs new file mode 100644 index 0000000000..3cbacf7184 --- /dev/null +++ b/dom/html/test/bug649134/file_bug649134-2.sjs @@ -0,0 +1,12 @@ +function handleRequest(request, response) { + response.seizePower(); + var r = + "HTTP/1.1 200 OK\r\n" + + "Content-Type: text/html\r\n" + + 'Link: < \014>; rel="stylesheet",\r\n' + + "\r\n" + + "PASS\r\n"; + response.bodyOutputStream.write(r, r.length); + response.bodyOutputStream.flush(); + response.finish(); +} diff --git a/dom/html/test/bug649134/index.html b/dom/html/test/bug649134/index.html new file mode 100644 index 0000000000..2f3973704e --- /dev/null +++ b/dom/html/test/bug649134/index.html @@ -0,0 +1,3 @@ +body { + display:none; +} diff --git a/dom/html/test/chrome.ini b/dom/html/test/chrome.ini new file mode 100644 index 0000000000..ec7f9d1fb5 --- /dev/null +++ b/dom/html/test/chrome.ini @@ -0,0 +1,9 @@ +[DEFAULT] +support-files = + file_anchor_ping.html + image.png + +[test_anchor_ping.html] +skip-if = os == 'android' +[test_bug1414077.html] +[test_external_protocol_iframe.html] diff --git a/dom/html/test/dialog/mochitest.ini b/dom/html/test/dialog/mochitest.ini new file mode 100644 index 0000000000..cff71ae303 --- /dev/null +++ b/dom/html/test/dialog/mochitest.ini @@ -0,0 +1,4 @@ +[DEFAULT] +prefs = + dom.dialog_element.enabled=true +[test_bug1648877_dialog_fullscreen_denied.html] diff --git a/dom/html/test/dialog/test_bug1648877_dialog_fullscreen_denied.html b/dom/html/test/dialog/test_bug1648877_dialog_fullscreen_denied.html new file mode 100644 index 0000000000..906c7dd53e --- /dev/null +++ b/dom/html/test/dialog/test_bug1648877_dialog_fullscreen_denied.html @@ -0,0 +1,52 @@ + + + + + Test for Bug 1648877 + + + + + + Requesting + fullscreen a dialog element should be denied +

+ + +
+ +
+
+
+ + diff --git a/dom/html/test/dummy_page.html b/dom/html/test/dummy_page.html new file mode 100644 index 0000000000..fd238954c6 --- /dev/null +++ b/dom/html/test/dummy_page.html @@ -0,0 +1,10 @@ + + + +Dummy test page + + + +

Dummy test page

+ + diff --git a/dom/html/test/empty.html b/dom/html/test/empty.html new file mode 100644 index 0000000000..0dc101b533 --- /dev/null +++ b/dom/html/test/empty.html @@ -0,0 +1 @@ + diff --git a/dom/html/test/file.webm b/dom/html/test/file.webm new file mode 100644 index 0000000000..7bc738b8b4 Binary files /dev/null and b/dom/html/test/file.webm differ diff --git a/dom/html/test/file_anchor_ping.html b/dom/html/test/file_anchor_ping.html new file mode 100644 index 0000000000..3b9717263f --- /dev/null +++ b/dom/html/test/file_anchor_ping.html @@ -0,0 +1,13 @@ + + + + + file_anchor_ping.html + + + click me + + + diff --git a/dom/html/test/file_broadcast_load.html b/dom/html/test/file_broadcast_load.html new file mode 100644 index 0000000000..ffae9c6536 --- /dev/null +++ b/dom/html/test/file_broadcast_load.html @@ -0,0 +1,16 @@ + +

file_broadcast_load.html

+ diff --git a/dom/html/test/file_bug1108547-1.html b/dom/html/test/file_bug1108547-1.html new file mode 100644 index 0000000000..efc0eae494 --- /dev/null +++ b/dom/html/test/file_bug1108547-1.html @@ -0,0 +1,4 @@ + + diff --git a/dom/html/test/file_bug1108547-2.html b/dom/html/test/file_bug1108547-2.html new file mode 100644 index 0000000000..f5d8c5f964 --- /dev/null +++ b/dom/html/test/file_bug1108547-2.html @@ -0,0 +1,6 @@ + + +
+
+
not tested yet
+ diff --git a/dom/html/test/file_bug1108547-3.html b/dom/html/test/file_bug1108547-3.html new file mode 100644 index 0000000000..e6a8ba3fa2 --- /dev/null +++ b/dom/html/test/file_bug1108547-3.html @@ -0,0 +1,5 @@ + + +test +
not tested yet
+ diff --git a/dom/html/test/file_bug1166138_1x.png b/dom/html/test/file_bug1166138_1x.png new file mode 100644 index 0000000000..df421453c2 Binary files /dev/null and b/dom/html/test/file_bug1166138_1x.png differ diff --git a/dom/html/test/file_bug1166138_2x.png b/dom/html/test/file_bug1166138_2x.png new file mode 100644 index 0000000000..6f76d44387 Binary files /dev/null and b/dom/html/test/file_bug1166138_2x.png differ diff --git a/dom/html/test/file_bug1166138_def.png b/dom/html/test/file_bug1166138_def.png new file mode 100644 index 0000000000..144a2f0b93 Binary files /dev/null and b/dom/html/test/file_bug1166138_def.png differ diff --git a/dom/html/test/file_bug1260704.png b/dom/html/test/file_bug1260704.png new file mode 100644 index 0000000000..df421453c2 Binary files /dev/null and b/dom/html/test/file_bug1260704.png differ diff --git a/dom/html/test/file_bug209275_1.html b/dom/html/test/file_bug209275_1.html new file mode 100644 index 0000000000..3f7233876b --- /dev/null +++ b/dom/html/test/file_bug209275_1.html @@ -0,0 +1,28 @@ + + + + + + +Initial state + + + + + diff --git a/dom/html/test/file_bug209275_2.html b/dom/html/test/file_bug209275_2.html new file mode 100644 index 0000000000..36e9ff4672 --- /dev/null +++ b/dom/html/test/file_bug209275_2.html @@ -0,0 +1,23 @@ + + + + + + +Page 2 initial state + + + + + diff --git a/dom/html/test/file_bug209275_3.html b/dom/html/test/file_bug209275_3.html new file mode 100644 index 0000000000..2544115901 --- /dev/null +++ b/dom/html/test/file_bug209275_3.html @@ -0,0 +1,23 @@ + + + + + + +Initial state + + + + + diff --git a/dom/html/test/file_bug297761.html b/dom/html/test/file_bug297761.html new file mode 100644 index 0000000000..5e861a00fd --- /dev/null +++ b/dom/html/test/file_bug297761.html @@ -0,0 +1,13 @@ + + + + + + +
+ + + +
+ + diff --git a/dom/html/test/file_bug417760.png b/dom/html/test/file_bug417760.png new file mode 100644 index 0000000000..743292dc6f Binary files /dev/null and b/dom/html/test/file_bug417760.png differ diff --git a/dom/html/test/file_bug871161-1.html b/dom/html/test/file_bug871161-1.html new file mode 100644 index 0000000000..16015f0c4e --- /dev/null +++ b/dom/html/test/file_bug871161-1.html @@ -0,0 +1,16 @@ + + + + +Page with non-default charset + + + +
+ + + diff --git a/dom/html/test/file_bug871161-2.html b/dom/html/test/file_bug871161-2.html new file mode 100644 index 0000000000..18cf825b2d --- /dev/null +++ b/dom/html/test/file_bug871161-2.html @@ -0,0 +1,14 @@ + + + +Page without declared charset + + + + + + diff --git a/dom/html/test/file_bug893537.html b/dom/html/test/file_bug893537.html new file mode 100644 index 0000000000..1dcb454ff1 --- /dev/null +++ b/dom/html/test/file_bug893537.html @@ -0,0 +1,9 @@ + + + + + + + diff --git a/dom/html/test/file_cookiemanager.js b/dom/html/test/file_cookiemanager.js new file mode 100644 index 0000000000..08c9d72898 --- /dev/null +++ b/dom/html/test/file_cookiemanager.js @@ -0,0 +1,20 @@ +/* eslint-env mozilla/chrome-script */ + +addMessageListener("getCookieFromManager", ({ host, path }) => { + let cm = Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager); + let values = []; + path = path.substring(0, path.lastIndexOf("/")); + for (let cookie of cm.cookies) { + if (!cookie) { + break; + } + if (host != cookie.host || path != cookie.path) { + continue; + } + values.push(cookie.name + "=" + cookie.value); + } + + sendAsyncMessage("getCookieFromManager:return", { + cookie: values.join("; "), + }); +}); diff --git a/dom/html/test/file_formSubmission_img.jpg b/dom/html/test/file_formSubmission_img.jpg new file mode 100644 index 0000000000..dcd99b9670 Binary files /dev/null and b/dom/html/test/file_formSubmission_img.jpg differ diff --git a/dom/html/test/file_formSubmission_text.txt b/dom/html/test/file_formSubmission_text.txt new file mode 100644 index 0000000000..a496efee84 --- /dev/null +++ b/dom/html/test/file_formSubmission_text.txt @@ -0,0 +1 @@ +This is a text file diff --git a/dom/html/test/file_iframe_sandbox_a_if1.html b/dom/html/test/file_iframe_sandbox_a_if1.html new file mode 100644 index 0000000000..b60d52ca00 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if1.html @@ -0,0 +1,13 @@ + + + + + Test for Bug 341604 + + + + I am sandboxed without any permissions + + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if10.html b/dom/html/test/file_iframe_sandbox_a_if10.html new file mode 100644 index 0000000000..14306eb613 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if10.html @@ -0,0 +1,12 @@ + + + + + Test for Bug 341604 + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if11.html b/dom/html/test/file_iframe_sandbox_a_if11.html new file mode 100644 index 0000000000..8eee71df1d --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if11.html @@ -0,0 +1,23 @@ + + + + + Test for Bug 341604 + + + + + + +I'm a <frame> inside an iframe which is sandboxed with 'allow-scripts allow-forms' + + diff --git a/dom/html/test/file_iframe_sandbox_a_if12.html b/dom/html/test/file_iframe_sandbox_a_if12.html new file mode 100644 index 0000000000..d49d4e5625 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if12.html @@ -0,0 +1,23 @@ + + + + + Test for Bug 341604 + + + + + I'm a <frame> inside a <frame> inside an iframe which is sandboxed with 'allow-scripts allow-forms' + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if13.html b/dom/html/test/file_iframe_sandbox_a_if13.html new file mode 100644 index 0000000000..8737a7682e --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if13.html @@ -0,0 +1,13 @@ + + + + + Test for Bug 886262 + + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if14.html b/dom/html/test/file_iframe_sandbox_a_if14.html new file mode 100644 index 0000000000..b588f7ec50 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if14.html @@ -0,0 +1,34 @@ + + + + + Test for Bug 886262 + + + + + + +I'm a <object> inside an iframe which is sandboxed with 'allow-scripts allow-forms' + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if15.html b/dom/html/test/file_iframe_sandbox_a_if15.html new file mode 100644 index 0000000000..9c5a003d7c --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if15.html @@ -0,0 +1,33 @@ + + + + + Test for Bug 886262 + + + + + + + I'm a <object> inside a <frame> or <object> inside an iframe which is sandboxed with 'allow-scripts allow-forms' + +
+ First name: + Last name: + +
+ + + diff --git a/dom/html/test/file_iframe_sandbox_a_if16.html b/dom/html/test/file_iframe_sandbox_a_if16.html new file mode 100644 index 0000000000..141d3c2b06 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if16.html @@ -0,0 +1,25 @@ + + + + + Test for Bug 886262 + + + + + + +I'm a <frame> inside an iframe which is sandboxed with 'allow-scripts allow-forms' + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if17.html b/dom/html/test/file_iframe_sandbox_a_if17.html new file mode 100644 index 0000000000..a736924bf5 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if17.html @@ -0,0 +1,27 @@ + + + + + Test for Bug 886262 + + + + + + + I am sandboxed but with "allow-scripts". I change the sandbox flags on if_18_19 to + "allow-scripts allow-same-origin" then get it to re-navigate itself to + file_iframe_sandbox_a_if18.html, which attemps to call a function in my parent. + This should fail since my sandbox flags should be copied to it when the sandbox + flags are changed. + + + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if18.html b/dom/html/test/file_iframe_sandbox_a_if18.html new file mode 100644 index 0000000000..bbe90970d4 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if18.html @@ -0,0 +1,26 @@ + + + + + Test for Bug 886262 + + + + + + + I'm an iframe whose sandbox flags have been changed to include allow-same-origin. + I should not be able to call a function in my parent's parent because my parent's + iframe does not have allow-same-origin set. + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if19.html b/dom/html/test/file_iframe_sandbox_a_if19.html new file mode 100644 index 0000000000..e4d3d68887 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if19.html @@ -0,0 +1,21 @@ + + + + + Test for Bug 886262 + + + + + + + + I'm just here to navigate to file_iframe_sandbox_a_if18.html after my owning + iframe has had allow-same-origin added. + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if2.html b/dom/html/test/file_iframe_sandbox_a_if2.html new file mode 100644 index 0000000000..72bde69e41 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if2.html @@ -0,0 +1,21 @@ + + + + + Test for Bug 341604 + + + + + + + I am NOT sandboxed or am sandboxed with "allow-scripts" but am contained within an iframe sandboxed with sandbox = "" + or am sandboxed with sandbox='' inside an iframe sandboxed with "allow-scripts" + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if3.html b/dom/html/test/file_iframe_sandbox_a_if3.html new file mode 100644 index 0000000000..899c2f1093 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if3.html @@ -0,0 +1,24 @@ + + + + + Test for Bug 341604 + + + + + + + + I am sandboxed but with "allow-scripts" + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if4.html b/dom/html/test/file_iframe_sandbox_a_if4.html new file mode 100644 index 0000000000..a216fb572a --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if4.html @@ -0,0 +1,30 @@ + + + + + Test for Bug 341604 + + + + + + + + I am not sandboxed but contained within a sandboxed document with 'allow-scripts' + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if5.html b/dom/html/test/file_iframe_sandbox_a_if5.html new file mode 100644 index 0000000000..c1081c5039 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if5.html @@ -0,0 +1,22 @@ + + + + + Test for Bug 341604 + + + + + + + + I am sandboxed but with "allow-scripts allow-same-origin" + + + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if6.html b/dom/html/test/file_iframe_sandbox_a_if6.html new file mode 100644 index 0000000000..62a7114316 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if6.html @@ -0,0 +1,21 @@ + + + + + Test for Bug 341604 + + + + + + + + I am sandboxed with 'allow-scripts allow-same-origin' and contained within a sandboxed document with 'allow-scripts allow-same-origin' + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if7.html b/dom/html/test/file_iframe_sandbox_a_if7.html new file mode 100644 index 0000000000..6480eebdba --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if7.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 341604 + + + + + + + I am NOT sandboxed but am contained within an iframe contained within an iframe sandboxed with sandbox = "allow-scripts" + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if8.html b/dom/html/test/file_iframe_sandbox_a_if8.html new file mode 100644 index 0000000000..87748f542a --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if8.html @@ -0,0 +1,26 @@ + + + + + Test for Bug 341604 + + + + + + I am sandboxed but with "allow-scripts allow-same-origin". After my initial load, "allow-same-origin" is removed + and then I load file_iframe_sandbox_a_if9.html, which attemps to call a function in window.top. This should + succeed since the new sandbox flags shouldn't have taken affect on me until I'm reloaded. + + + + + diff --git a/dom/html/test/file_iframe_sandbox_a_if9.html b/dom/html/test/file_iframe_sandbox_a_if9.html new file mode 100644 index 0000000000..da2bcf1fa3 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_a_if9.html @@ -0,0 +1,18 @@ + + + + + Test for Bug 341604 + + + + + I'm a subloaded document of file_iframe_sandbox_a_if8.html. I should be able to call a function in window.top + because I should be same-origin with it. + + + diff --git a/dom/html/test/file_iframe_sandbox_b_if1.html b/dom/html/test/file_iframe_sandbox_b_if1.html new file mode 100644 index 0000000000..a65cbec6b9 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_b_if1.html @@ -0,0 +1,11 @@ + + + + + Test for Bug 341604 + + + + I am sandboxed without any permissions + + diff --git a/dom/html/test/file_iframe_sandbox_b_if2.html b/dom/html/test/file_iframe_sandbox_b_if2.html new file mode 100644 index 0000000000..08e7453574 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_b_if2.html @@ -0,0 +1,49 @@ + + + + + Test for Bug 341604 + + + + + I am sandboxed but with "allow-same-origin" and "allow-scripts" + + diff --git a/dom/html/test/file_iframe_sandbox_b_if3.html b/dom/html/test/file_iframe_sandbox_b_if3.html new file mode 100644 index 0000000000..350e2ac472 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_b_if3.html @@ -0,0 +1,92 @@ + + + + + Test for Bug 341604 + + + + + I am sandboxed but with "allow-scripts" + + diff --git a/dom/html/test/file_iframe_sandbox_c_if1.html b/dom/html/test/file_iframe_sandbox_c_if1.html new file mode 100644 index 0000000000..c2fbf136ae --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_c_if1.html @@ -0,0 +1,35 @@ + + + + + Test for Bug 341604 + + + + + + + I am sandboxed but with "allow-scripts" + +
+ First name: + Last name: + +
+ + click me + + diff --git a/dom/html/test/file_iframe_sandbox_c_if2.html b/dom/html/test/file_iframe_sandbox_c_if2.html new file mode 100644 index 0000000000..1ea8a90ca3 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_c_if2.html @@ -0,0 +1,23 @@ + + + + + Test for Bug 341604 + + + + + + + I am sandboxed with no permissions + + + diff --git a/dom/html/test/file_iframe_sandbox_c_if3.html b/dom/html/test/file_iframe_sandbox_c_if3.html new file mode 100644 index 0000000000..fdf98d93d4 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_c_if3.html @@ -0,0 +1,26 @@ + + + + + Test for Bug 341604 + + + + + + + I am sandboxed but with "allow-scripts allow-forms" + +
+ First name: + Last name: + +
+ + diff --git a/dom/html/test/file_iframe_sandbox_c_if4.html b/dom/html/test/file_iframe_sandbox_c_if4.html new file mode 100644 index 0000000000..ee2438f28a --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_c_if4.html @@ -0,0 +1,36 @@ + + + + + Test for Bug 341604 + + + + + + I am sandboxed but with "allow-scripts allow-same-origin" + + open window + open window + + diff --git a/dom/html/test/file_iframe_sandbox_c_if5.html b/dom/html/test/file_iframe_sandbox_c_if5.html new file mode 100644 index 0000000000..bd368de425 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_c_if5.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 341604 + + + + + + + I am sandboxed but with "allow-same-origin" + + click me + + diff --git a/dom/html/test/file_iframe_sandbox_c_if6.html b/dom/html/test/file_iframe_sandbox_c_if6.html new file mode 100644 index 0000000000..e5ecf3051e --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_c_if6.html @@ -0,0 +1,24 @@ + + + + + Test for Bug 341604 + + + + + + + I am sandboxed but with "allow-same-origin" and "allow-scripts" + + diff --git a/dom/html/test/file_iframe_sandbox_c_if7.html b/dom/html/test/file_iframe_sandbox_c_if7.html new file mode 100644 index 0000000000..b9a55def6f --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_c_if7.html @@ -0,0 +1,27 @@ + + + + + Test for Bug 341604 + + + + + I am sandboxed but with "allow-scripts" + + diff --git a/dom/html/test/file_iframe_sandbox_c_if8.html b/dom/html/test/file_iframe_sandbox_c_if8.html new file mode 100644 index 0000000000..d8b8948466 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_c_if8.html @@ -0,0 +1,27 @@ + + + + + Test for Bug 341604 + + + + + I am sandboxed but with "allow-scripts allow-same-origin" + + diff --git a/dom/html/test/file_iframe_sandbox_c_if9.html b/dom/html/test/file_iframe_sandbox_c_if9.html new file mode 100644 index 0000000000..0c88a677cb --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_c_if9.html @@ -0,0 +1,17 @@ + + + + + Test for Bug 671389 + + + + I am +
    +
  • sandboxed but with "allow-forms", "allow-pointer-lock", "allow-popups", "allow-same-origin", "allow-scripts", and "allow-top-navigation",
  • +
  • sandboxed but with "allow-same-origin", "allow-scripts",
  • +
  • sandboxed, or
  • +
  • not sandboxed.
  • +
+ + diff --git a/dom/html/test/file_iframe_sandbox_close.html b/dom/html/test/file_iframe_sandbox_close.html new file mode 100644 index 0000000000..3b87534978 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_close.html @@ -0,0 +1,3 @@ + diff --git a/dom/html/test/file_iframe_sandbox_d_if1.html b/dom/html/test/file_iframe_sandbox_d_if1.html new file mode 100644 index 0000000000..744594e813 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if1.html @@ -0,0 +1,19 @@ + + + + + Test for Bug 341604 + + + + + + I am sandboxed with 'allow-scripts' + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if10.html b/dom/html/test/file_iframe_sandbox_d_if10.html new file mode 100644 index 0000000000..41fb46b586 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if10.html @@ -0,0 +1,17 @@ + + + + + Test for Bug 341604 + + + + + + I am sandboxed with 'allow-scripts' + + diff --git a/dom/html/test/file_iframe_sandbox_d_if11.html b/dom/html/test/file_iframe_sandbox_d_if11.html new file mode 100644 index 0000000000..63880587f5 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if11.html @@ -0,0 +1,30 @@ + + + + + Test for Bug 341604 + + + + + + I am sandboxed with 'allow-scripts' + CLICK ME + + diff --git a/dom/html/test/file_iframe_sandbox_d_if12.html b/dom/html/test/file_iframe_sandbox_d_if12.html new file mode 100644 index 0000000000..0d7936512e --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if12.html @@ -0,0 +1,16 @@ + + + + + Test for Bug 341604 + + + + + I am sandboxed with 'allow-scripts' + + diff --git a/dom/html/test/file_iframe_sandbox_d_if13.html b/dom/html/test/file_iframe_sandbox_d_if13.html new file mode 100644 index 0000000000..361c1e0e95 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if13.html @@ -0,0 +1,35 @@ + + + + + Test for Bug 341604 + + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if14.html b/dom/html/test/file_iframe_sandbox_d_if14.html new file mode 100644 index 0000000000..237a9d704f --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if14.html @@ -0,0 +1,35 @@ + + + + + Tests for Bug 838692 + + + + + + + + I am sandboxed but with "allow-scripts allow-same-origin allow-top-navigation". + + navigate window + + diff --git a/dom/html/test/file_iframe_sandbox_d_if15.html b/dom/html/test/file_iframe_sandbox_d_if15.html new file mode 100644 index 0000000000..6c969c8fe1 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if15.html @@ -0,0 +1,14 @@ + + + + + Test for Bug 838692 + + + + + I am an unsandboxed iframe. + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if16.html b/dom/html/test/file_iframe_sandbox_d_if16.html new file mode 100644 index 0000000000..e50dd97ea0 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if16.html @@ -0,0 +1,22 @@ + + + + + Test for Bug 838692 + + + + + + + + I am sandboxed with 'allow-same-origin allow-scripts' + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if17.html b/dom/html/test/file_iframe_sandbox_d_if17.html new file mode 100644 index 0000000000..047a08137d --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if17.html @@ -0,0 +1,24 @@ + + + + + Test for Bug 838692 + + + + + + + I am sandboxed with 'allow-scripts' + + diff --git a/dom/html/test/file_iframe_sandbox_d_if18.html b/dom/html/test/file_iframe_sandbox_d_if18.html new file mode 100644 index 0000000000..fdcb4198f4 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if18.html @@ -0,0 +1,33 @@ + + + + + Test for Bug 838692 + + + + + + + + I am sandboxed with 'allow-scripts' + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if19.html b/dom/html/test/file_iframe_sandbox_d_if19.html new file mode 100644 index 0000000000..d766d26492 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if19.html @@ -0,0 +1,13 @@ + + + + + Test for Bug 838692 + + + + I am sandboxed with 'allow-scripts' + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if2.html b/dom/html/test/file_iframe_sandbox_d_if2.html new file mode 100644 index 0000000000..b45cb975ca --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if2.html @@ -0,0 +1,28 @@ + + + + + Test for Bug 341604 + + + + + + I am sandboxed with 'allow-scripts' + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if20.html b/dom/html/test/file_iframe_sandbox_d_if20.html new file mode 100644 index 0000000000..005c4bc823 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if20.html @@ -0,0 +1,25 @@ + + + + + Test for Bug 838692 + + + + + + + I am sandboxed with 'allow-scripts' + + diff --git a/dom/html/test/file_iframe_sandbox_d_if21.html b/dom/html/test/file_iframe_sandbox_d_if21.html new file mode 100644 index 0000000000..6d0ab232e0 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if21.html @@ -0,0 +1,14 @@ + + + + + Test for Bug 838692 + + + + + I am an unsandboxed iframe. + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if22.html b/dom/html/test/file_iframe_sandbox_d_if22.html new file mode 100644 index 0000000000..bd27157926 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if22.html @@ -0,0 +1,25 @@ + + + + + Test for Bug 838692 + + + + + + + I am sandboxed with 'allow-same-origin allow-scripts' + + diff --git a/dom/html/test/file_iframe_sandbox_d_if23.html b/dom/html/test/file_iframe_sandbox_d_if23.html new file mode 100644 index 0000000000..e755511e37 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if23.html @@ -0,0 +1,61 @@ + + + + + Test for Bug 838692 + + + + + + + + I am sandboxed with 'allow-scripts allow-popups' + + Test 27 anchor + + diff --git a/dom/html/test/file_iframe_sandbox_d_if3.html b/dom/html/test/file_iframe_sandbox_d_if3.html new file mode 100644 index 0000000000..cd2d53bce9 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if3.html @@ -0,0 +1,13 @@ + + + + + Test for Bug 341604 + + + + I am sandboxed with 'allow-scripts' + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if4.html b/dom/html/test/file_iframe_sandbox_d_if4.html new file mode 100644 index 0000000000..c11a414551 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if4.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 341604 + + + + + + I am sandboxed with 'allow-scripts' + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if5.html b/dom/html/test/file_iframe_sandbox_d_if5.html new file mode 100644 index 0000000000..d8fe4289af --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if5.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 341604 + + + + + + I am sandboxed with 'allow-scripts allow-same-origin' + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if6.html b/dom/html/test/file_iframe_sandbox_d_if6.html new file mode 100644 index 0000000000..9bb48cbb20 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if6.html @@ -0,0 +1,19 @@ + + + + + Test for Bug 341604 + + + + + + I am sandboxed with 'allow-scripts' + + + + diff --git a/dom/html/test/file_iframe_sandbox_d_if7.html b/dom/html/test/file_iframe_sandbox_d_if7.html new file mode 100644 index 0000000000..5023ee0294 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if7.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 341604 + + + + + I am sandboxed with 'allow-scripts' + + diff --git a/dom/html/test/file_iframe_sandbox_d_if8.html b/dom/html/test/file_iframe_sandbox_d_if8.html new file mode 100644 index 0000000000..2b4398ef00 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if8.html @@ -0,0 +1,18 @@ + + + + + Test for Bug 341604 + + + + + + + I am sandboxed with 'allow-scripts' and 'allow-same-origin' the first time I am loaded, and with 'allow-scripts' the second time + + diff --git a/dom/html/test/file_iframe_sandbox_d_if9.html b/dom/html/test/file_iframe_sandbox_d_if9.html new file mode 100644 index 0000000000..ee641904fc --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_d_if9.html @@ -0,0 +1,17 @@ + + + + + Test for Bug 341604 + + + + + I am sandboxed with 'allow-scripts' and 'allow-same-origin' the first time I am loaded, and with 'allow-same-origin' the second time + + + diff --git a/dom/html/test/file_iframe_sandbox_e_if1.html b/dom/html/test/file_iframe_sandbox_e_if1.html new file mode 100644 index 0000000000..e3882dfb28 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if1.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 341604 + + + + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_e_if10.html b/dom/html/test/file_iframe_sandbox_e_if10.html new file mode 100644 index 0000000000..2484b8f342 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if10.html @@ -0,0 +1,19 @@ + + + + + Test for Bug 838692 + + + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_e_if11.html b/dom/html/test/file_iframe_sandbox_e_if11.html new file mode 100644 index 0000000000..106c4c629b --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if11.html @@ -0,0 +1,22 @@ + + + + + Test for Bug 838692 + + + + + I am sandboxed with 'allow-scripts and allow-top-navigation' + + diff --git a/dom/html/test/file_iframe_sandbox_e_if12.html b/dom/html/test/file_iframe_sandbox_e_if12.html new file mode 100644 index 0000000000..0b1b87e09b --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if12.html @@ -0,0 +1,19 @@ + + + + + Test for Bug 838692 + + + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_e_if13.html b/dom/html/test/file_iframe_sandbox_e_if13.html new file mode 100644 index 0000000000..f5cf912f67 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if13.html @@ -0,0 +1,19 @@ + + + + + Test for Bug 838692 + + + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_e_if14.html b/dom/html/test/file_iframe_sandbox_e_if14.html new file mode 100644 index 0000000000..76d9787020 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if14.html @@ -0,0 +1,24 @@ + + + + + Test for Bug 838692 + + + + + I am sandboxed with 'allow-scripts' + + diff --git a/dom/html/test/file_iframe_sandbox_e_if15.html b/dom/html/test/file_iframe_sandbox_e_if15.html new file mode 100644 index 0000000000..bf4138e1d6 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if15.html @@ -0,0 +1,17 @@ + + + + + Test for Bug 838692 + + + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_e_if16.html b/dom/html/test/file_iframe_sandbox_e_if16.html new file mode 100644 index 0000000000..06c8bf8714 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if16.html @@ -0,0 +1,27 @@ + + + + + Tests for Bug 838692 + + + + + + + I am sandboxed but with "allow-scripts" + + diff --git a/dom/html/test/file_iframe_sandbox_e_if2.html b/dom/html/test/file_iframe_sandbox_e_if2.html new file mode 100644 index 0000000000..739dbacbd5 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if2.html @@ -0,0 +1,12 @@ + + + + + Test for Bug 341604 + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_e_if3.html b/dom/html/test/file_iframe_sandbox_e_if3.html new file mode 100644 index 0000000000..ce010e6893 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if3.html @@ -0,0 +1,11 @@ + + + + + Test for Bug 341604 + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_e_if4.html b/dom/html/test/file_iframe_sandbox_e_if4.html new file mode 100644 index 0000000000..740a33a94d --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if4.html @@ -0,0 +1,11 @@ + + + + + Test for Bug 341604 + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_e_if5.html b/dom/html/test/file_iframe_sandbox_e_if5.html new file mode 100644 index 0000000000..e550df45e5 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if5.html @@ -0,0 +1,19 @@ + + + + + Test for Bug 341604 + + + + + + I am sandboxed with 'allow-scripts and allow-top-navigation' + + Click me + + diff --git a/dom/html/test/file_iframe_sandbox_e_if6.html b/dom/html/test/file_iframe_sandbox_e_if6.html new file mode 100644 index 0000000000..399c3c202b --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if6.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 341604 + + + + + I am sandboxed with 'allow-scripts' + + + + diff --git a/dom/html/test/file_iframe_sandbox_e_if7.html b/dom/html/test/file_iframe_sandbox_e_if7.html new file mode 100644 index 0000000000..9d60ed2dbc --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if7.html @@ -0,0 +1,17 @@ + + + + + Test for Bug 838692 + + + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_e_if8.html b/dom/html/test/file_iframe_sandbox_e_if8.html new file mode 100644 index 0000000000..97699abba9 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if8.html @@ -0,0 +1,23 @@ + + + + + Tests for Bug 838692 + + + + + + + + I am sandboxed but with "allow-scripts" + + navigate top + + diff --git a/dom/html/test/file_iframe_sandbox_e_if9.html b/dom/html/test/file_iframe_sandbox_e_if9.html new file mode 100644 index 0000000000..f18a16dba6 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_e_if9.html @@ -0,0 +1,19 @@ + + + + + Test for Bug 838692 + + + + + + + + + diff --git a/dom/html/test/file_iframe_sandbox_fail.js b/dom/html/test/file_iframe_sandbox_fail.js new file mode 100644 index 0000000000..1f1290d046 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_fail.js @@ -0,0 +1,4 @@ +ok( + false, + "documents sandboxed with allow-scripts should NOT be able to run + + + + + I should NOT be loaded by a form submit from a sandbox without 'allow-forms' + + + + \ No newline at end of file diff --git a/dom/html/test/file_iframe_sandbox_form_pass.html b/dom/html/test/file_iframe_sandbox_form_pass.html new file mode 100644 index 0000000000..1ba8853fa5 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_form_pass.html @@ -0,0 +1,17 @@ + + + + + Test for Bug 341604 + + + + I should be loaded by a form submit from a sandbox with 'allow-forms' + + + + \ No newline at end of file diff --git a/dom/html/test/file_iframe_sandbox_g_if1.html b/dom/html/test/file_iframe_sandbox_g_if1.html new file mode 100644 index 0000000000..67604f1f64 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_g_if1.html @@ -0,0 +1,60 @@ + + + + + Test for Bug 341604 + + + + + + I am sandboxed but with "allow-scripts" + + diff --git a/dom/html/test/file_iframe_sandbox_h_if1.html b/dom/html/test/file_iframe_sandbox_h_if1.html new file mode 100644 index 0000000000..7c5cada2dc --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_h_if1.html @@ -0,0 +1,34 @@ + + + + + Tests for Bug 766282 + + + + + + + I am sandboxed but with "allow-popups allow-scripts allow-same-origin" + + open window + open window + + diff --git a/dom/html/test/file_iframe_sandbox_k_if1.html b/dom/html/test/file_iframe_sandbox_k_if1.html new file mode 100644 index 0000000000..f6f1238085 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_k_if1.html @@ -0,0 +1,47 @@ + + + + + Test for Bug 766282 + + + + + + I am navigated to from file_iframe_sandbox_k_if8.html. + This was opened in an iframe with "allow-scripts allow-popups allow-same-origin". + However allow-same-origin was removed from the iframe before navigating to me, + so I should only have "allow-scripts allow-popups" in force. + open window + open window + + diff --git a/dom/html/test/file_iframe_sandbox_k_if2.html b/dom/html/test/file_iframe_sandbox_k_if2.html new file mode 100644 index 0000000000..dce42aef54 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_k_if2.html @@ -0,0 +1,50 @@ + + + + + Test for Bug 766282 + + + + + + + I am not sandboxed directly, but opened from a sandboxed document with 'allow-scripts allow-popups' + +
+ First name: + Last name: + +
+ + + + + diff --git a/dom/html/test/file_iframe_sandbox_k_if3.html b/dom/html/test/file_iframe_sandbox_k_if3.html new file mode 100644 index 0000000000..a2619dd006 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_k_if3.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 766282 + + + + + + I am sandboxed with 'allow-scripts allow-popups' + + + + diff --git a/dom/html/test/file_iframe_sandbox_k_if4.html b/dom/html/test/file_iframe_sandbox_k_if4.html new file mode 100644 index 0000000000..3d030158dc --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_k_if4.html @@ -0,0 +1,34 @@ + + + + + Test for Bug 766282 + + + + + + + + I am sandboxed with "allow-scripts allow-popups allow-same-origin allow-forms allow-top-navigation". + open window + open window + + open window + open window + + diff --git a/dom/html/test/file_iframe_sandbox_k_if5.html b/dom/html/test/file_iframe_sandbox_k_if5.html new file mode 100644 index 0000000000..8deb65852f --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_k_if5.html @@ -0,0 +1,33 @@ + + + + + Test for Bug 766282 + + + + + + + I am not sandboxed directly, but opened from a sandboxed document with at least + 'allow-scripts allow-popups allow-same-origin allow-top-navigation' + + + + + diff --git a/dom/html/test/file_iframe_sandbox_k_if6.html b/dom/html/test/file_iframe_sandbox_k_if6.html new file mode 100644 index 0000000000..53ed080e3e --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_k_if6.html @@ -0,0 +1,21 @@ + + + + + Test for Bug 766282 + + + + + + + + I am sandboxed with at least 'allow-scripts allow-popups allow-top-navigation' + + + + diff --git a/dom/html/test/file_iframe_sandbox_k_if7.html b/dom/html/test/file_iframe_sandbox_k_if7.html new file mode 100644 index 0000000000..269e31eb5b --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_k_if7.html @@ -0,0 +1,26 @@ + + + + + Test for Bug 766282 + + + + + + + I am not sandboxed directly, but opened from a sandboxed document with at least + 'allow-scripts allow-popups allow-forms allow-same-origin' + +
+ First name: + Last name: + +
+ + diff --git a/dom/html/test/file_iframe_sandbox_k_if8.html b/dom/html/test/file_iframe_sandbox_k_if8.html new file mode 100644 index 0000000000..e4aad97f3b --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_k_if8.html @@ -0,0 +1,36 @@ + + + + + Test for Bug 766282 + + + + + + + + I am sandboxed but with "allow-scripts allow-popups allow-same-origin". + After my initial load, "allow-same-origin" is removed and then I open file_iframe_sandbox_k_if9.html + in 3 different ways, which attemps to call a function in my parent. + This should succeed since the new sandbox flags shouldn't have taken affect on me until I'm reloaded. +
open window + open window + + Now navigate to file_iframe_sandbox_k_if1.html to do tests for a sandbox opening a window + when only "allow-scripts allow-popups" are specified. + navigate to if1 + + diff --git a/dom/html/test/file_iframe_sandbox_k_if9.html b/dom/html/test/file_iframe_sandbox_k_if9.html new file mode 100644 index 0000000000..56e8db3f9a --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_k_if9.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 766282 + + + + + + + I'm a window opened from the sandboxed document of file_iframe_sandbox_k_if8.html. + I should be able to call ok_wrapper in main test page directly because I should be same-origin with it. + + diff --git a/dom/html/test/file_iframe_sandbox_navigation_fail.html b/dom/html/test/file_iframe_sandbox_navigation_fail.html new file mode 100644 index 0000000000..bae5276bd1 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_navigation_fail.html @@ -0,0 +1,17 @@ + + + + + Test for Bug 341604 + + + +FAIL + + + diff --git a/dom/html/test/file_iframe_sandbox_navigation_pass.html b/dom/html/test/file_iframe_sandbox_navigation_pass.html new file mode 100644 index 0000000000..e07248247b --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_navigation_pass.html @@ -0,0 +1,17 @@ + + + + + Test for Bug 341604 + + + + +PASS + + diff --git a/dom/html/test/file_iframe_sandbox_navigation_start.html b/dom/html/test/file_iframe_sandbox_navigation_start.html new file mode 100644 index 0000000000..fa56425177 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_navigation_start.html @@ -0,0 +1,11 @@ + + + + + Test for Bug 341604 + + + +I am just a normal HTML document, probably contained in a sandboxed iframe + + diff --git a/dom/html/test/file_iframe_sandbox_open_window_fail.html b/dom/html/test/file_iframe_sandbox_open_window_fail.html new file mode 100644 index 0000000000..64e0d36180 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_open_window_fail.html @@ -0,0 +1,19 @@ + + + + + Test for Bug 341604 + + + + + I should NOT be opened by a sandboxed iframe via any method + + + + diff --git a/dom/html/test/file_iframe_sandbox_open_window_pass.html b/dom/html/test/file_iframe_sandbox_open_window_pass.html new file mode 100644 index 0000000000..ac45c7fd32 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_open_window_pass.html @@ -0,0 +1,25 @@ + + + + + Test for Bug 766282 + + + + + I should be opened by a sandboxed iframe via any method when "allow-popups" is specified. + + + + diff --git a/dom/html/test/file_iframe_sandbox_pass.js b/dom/html/test/file_iframe_sandbox_pass.js new file mode 100644 index 0000000000..15b3e7d3ff --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_pass.js @@ -0,0 +1,4 @@ +ok( + true, + "documents sandboxed with allow-scripts should be able to run + +I have been redirected diff --git a/dom/html/test/file_iframe_sandbox_refresh.html b/dom/html/test/file_iframe_sandbox_refresh.html new file mode 100644 index 0000000000..1fad80c428 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_refresh.html @@ -0,0 +1,2 @@ + +refresh diff --git a/dom/html/test/file_iframe_sandbox_refresh.html^headers^ b/dom/html/test/file_iframe_sandbox_refresh.html^headers^ new file mode 100644 index 0000000000..a7cc383b4f --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_refresh.html^headers^ @@ -0,0 +1 @@ +Refresh: 0 url=data:text/html,Refreshed diff --git a/dom/html/test/file_iframe_sandbox_srcdoc_allow_scripts.html b/dom/html/test/file_iframe_sandbox_srcdoc_allow_scripts.html new file mode 100644 index 0000000000..7d585be04f --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_srcdoc_allow_scripts.html @@ -0,0 +1 @@ + diff --git a/dom/html/test/file_iframe_sandbox_srcdoc_no_allow_scripts.html b/dom/html/test/file_iframe_sandbox_srcdoc_no_allow_scripts.html new file mode 100644 index 0000000000..b6faf83cc9 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_srcdoc_no_allow_scripts.html @@ -0,0 +1 @@ + diff --git a/dom/html/test/file_iframe_sandbox_top_navigation_fail.html b/dom/html/test/file_iframe_sandbox_top_navigation_fail.html new file mode 100644 index 0000000000..dad6b2c006 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_top_navigation_fail.html @@ -0,0 +1,18 @@ + + + + + Test for Bug 341604 + + + + +FAIL\ + + diff --git a/dom/html/test/file_iframe_sandbox_top_navigation_pass.html b/dom/html/test/file_iframe_sandbox_top_navigation_pass.html new file mode 100644 index 0000000000..712240ecb2 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_top_navigation_pass.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 341604 + + + + +PASS + + diff --git a/dom/html/test/file_iframe_sandbox_window_form_fail.html b/dom/html/test/file_iframe_sandbox_window_form_fail.html new file mode 100644 index 0000000000..2d678b3ac9 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_window_form_fail.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 766282 + + + + + I should NOT be loaded by a form submit from a window opened from a sandbox without 'allow-forms'. + + + + diff --git a/dom/html/test/file_iframe_sandbox_window_form_pass.html b/dom/html/test/file_iframe_sandbox_window_form_pass.html new file mode 100644 index 0000000000..dd2656c1ec --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_window_form_pass.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 766282 + + + + + + + I should be loaded by a form submit from a window opened from a sandbox with 'allow-forms allow-same-origin'. + + diff --git a/dom/html/test/file_iframe_sandbox_window_navigation_fail.html b/dom/html/test/file_iframe_sandbox_window_navigation_fail.html new file mode 100644 index 0000000000..f8e3c83ce8 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_window_navigation_fail.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 838692 + + + + + + +FAIL + + diff --git a/dom/html/test/file_iframe_sandbox_window_navigation_pass.html b/dom/html/test/file_iframe_sandbox_window_navigation_pass.html new file mode 100644 index 0000000000..a1bff9eb83 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_window_navigation_pass.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 766282 + + + + + + +PASS + + diff --git a/dom/html/test/file_iframe_sandbox_window_top_navigation_fail.html b/dom/html/test/file_iframe_sandbox_window_top_navigation_fail.html new file mode 100644 index 0000000000..af50476045 --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_window_top_navigation_fail.html @@ -0,0 +1,24 @@ + + + + + Test for Bug 766282 + + + + +FAIL + + diff --git a/dom/html/test/file_iframe_sandbox_window_top_navigation_pass.html b/dom/html/test/file_iframe_sandbox_window_top_navigation_pass.html new file mode 100644 index 0000000000..d3637fb04e --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_window_top_navigation_pass.html @@ -0,0 +1,20 @@ + + + + + Test for Bug 766282 + + + + + + + I am navigated to from a window opened from a sandbox with allow-top-navigation. + + diff --git a/dom/html/test/file_iframe_sandbox_worker.js b/dom/html/test/file_iframe_sandbox_worker.js new file mode 100644 index 0000000000..3cb9f650dc --- /dev/null +++ b/dom/html/test/file_iframe_sandbox_worker.js @@ -0,0 +1,3 @@ +self.onmessage = function (event) { + self.postMessage("make it so"); +}; diff --git a/dom/html/test/file_refresh_after_document_write.html b/dom/html/test/file_refresh_after_document_write.html new file mode 100644 index 0000000000..ebf3272e08 --- /dev/null +++ b/dom/html/test/file_refresh_after_document_write.html @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/dom/html/test/forms/file_login_fields.html b/dom/html/test/forms/file_login_fields.html new file mode 100644 index 0000000000..f23ee0ad6a --- /dev/null +++ b/dom/html/test/forms/file_login_fields.html @@ -0,0 +1,16 @@ + + + + + + + + + + Navigate + Back + + diff --git a/dom/html/test/forms/mochitest.ini b/dom/html/test/forms/mochitest.ini new file mode 100644 index 0000000000..ab67dc6091 --- /dev/null +++ b/dom/html/test/forms/mochitest.ini @@ -0,0 +1,121 @@ +[DEFAULT] +support-files = + save_restore_radio_groups.sjs + test_input_number_data.js + !/dom/html/test/reflect.js + FAIL.html + PASS.html +prefs = + formhelper.autozoom.force-disable.test-only=true + +[test_autocomplete.html] +[test_bug1039548.html] +[test_bug1283915.html] +[test_bug1286509.html] +[test_button_attributes_reflection.html] +[test_input_radio_indeterminate.html] +[test_input_radio_radiogroup.html] +[test_input_radio_required.html] +[test_change_event.html] +[test_datalist_element.html] +[test_double_submit.html] +support-files = file_double_submit.html +[test_form_attribute-1.html] +[test_form_attribute-2.html] +[test_form_attribute-3.html] +[test_form_attribute-4.html] +[test_form_attributes_reflection.html] +[test_form_named_getter_dynamic.html] +[test_formaction_attribute.html] +[test_formnovalidate_attribute.html] +[test_input_attributes_reflection.html] +[test_input_color_input_change_events.html] +[test_input_color_picker_datalist.html] +[test_input_color_picker_initial.html] +[test_input_color_picker_popup.html] +[test_input_color_picker_update.html] +[test_input_date_bad_input.html] +[test_input_date_key_events.html] +[test_input_datetime_input_change_events.html] +[test_input_datetime_disabled_focus.html] +[test_input_datetime_focus_blur.html] +[test_input_datetime_focus_blur_events.html] +[test_input_datetime_focus_state.html] +[test_input_datetime_hidden.html] +[test_input_datetime_readonly.html] +[test_input_datetime_calendar_button.html] +[test_input_datetime_reset_default_value_input_change_event.html] +[test_input_datetime_tabindex.html] +[test_input_defaultValue.html] +[test_input_email.html] +[test_input_event.html] +[test_input_file_picker.html] +[test_input_hasBeenTypePassword.html] +[test_input_hasBeenTypePassword_navigation.html] +support-files = file_login_fields.html +[test_input_list_attribute.html] +[test_input_number_l10n.html] +[test_input_number_key_events.html] +[test_input_number_mouse_events.html] +# Not run on Firefox for Android where the spin buttons are hidden: +skip-if = os == "android" + (os == "mac" && debug) # Bug 1484442 +[test_input_number_rounding.html] +[test_input_number_validation.html] +[test_input_number_focus.html] +[test_input_number_placeholder_shown.html] +[test_input_range_attr_order.html] +[test_input_range_key_events.html] +[test_input_range_mouse_and_touch_events.html] +[test_input_range_rounding.html] +[test_input_sanitization.html] +[test_input_setting_value.html] +[test_input_textarea_set_value_no_scroll.html] +[test_input_time_key_events.html] +[test_input_time_sec_millisec_field.html] +[test_input_types_pref.html] +[test_input_typing_sanitization.html] +[test_input_untrusted_key_events.html] +[test_input_url.html] +[test_interactive_content_in_label.html] +[test_interactive_content_in_summary.html] +[test_label_control_attribute.html] +[test_label_input_controls.html] +[test_max_attribute.html] +[test_maxlength_attribute.html] +[test_minlength_attribute.html] +[test_meter_element.html] +[test_meter_pseudo-classes.html] +[test_min_attribute.html] +[test_MozEditableElement_setUserInput.html] +[test_mozistextfield.html] +[test_novalidate_attribute.html] +[test_option_disabled.html] +[test_option_index_attribute.html] +[test_option_text.html] +[test_output_element.html] +[test_pattern_attribute.html] +[test_preserving_metadata_between_reloads.html] +[test_progress_element.html] +[test_radio_in_label.html] +[test_radio_radionodelist.html] +[test_required_attribute.html] +[test_restore_form_elements.html] +[test_save_restore_radio_groups.html] +[test_select_change_event.html] +skip-if = os == 'mac' +[test_select_input_change_event.html] +skip-if = os == 'mac' +[test_select_selectedOptions.html] +[test_select_validation.html] +[test_set_range_text.html] +[test_step_attribute.html] +[test_stepup_stepdown.html] +[test_textarea_attributes_reflection.html] +[test_validation.html] +[test_valueasdate_attribute.html] +[test_valueasnumber_attribute.html] +[test_validation_not_in_doc.html] +[test_reportValidation_preventDefault.html] +[test_input_password_show_password_button.html] +[test_input_password_click_show_password_button.html] diff --git a/dom/html/test/forms/save_restore_radio_groups.sjs b/dom/html/test/forms/save_restore_radio_groups.sjs new file mode 100644 index 0000000000..b4c9c4401a --- /dev/null +++ b/dom/html/test/forms/save_restore_radio_groups.sjs @@ -0,0 +1,48 @@ +var pages = [ + "" + + "" + + "
" + + "" + + "
" + + "", + "" + + "" + + "
" + + "" + + "
" + + "", +]; + +/** + * This SJS is going to send the same page the two first times it will be called + * and another page the two following times. After that, the response will have + * no content. + * The use case is to have two iframes using this SJS and both being reloaded + * once. + */ + +function handleRequest(request, response) { + var counter = +getState("counter"); // convert to number; +"" === 0 + + response.setStatusLine(request.httpVersion, 200, "Ok"); + response.setHeader("Content-Type", "text/html"); + response.setHeader("Cache-Control", "no-cache"); + + switch (counter) { + case 0: + case 1: + response.write(pages[0]); + break; + case 2: + case 3: + response.write(pages[1]); + break; + } + + // When we finish the test case we need to reset the counter + if (counter == 3) { + setState("counter", "0"); + } else { + setState("counter", "" + ++counter); + } +} diff --git a/dom/html/test/forms/submit_invalid_file.sjs b/dom/html/test/forms/submit_invalid_file.sjs new file mode 100644 index 0000000000..3b4b576ec6 --- /dev/null +++ b/dom/html/test/forms/submit_invalid_file.sjs @@ -0,0 +1,13 @@ +function handleRequest(request, response) { + response.setStatusLine(request.httpVersion, 200, "Ok"); + response.setHeader("Content-Type", "text/html"); + response.setHeader("Cache-Control", "no-cache"); + + var result = {}; + request.bodyInputStream.search("testfile", true, result, {}); + if (result.value) { + response.write("SUCCESS"); + } else { + response.write("FAIL"); + } +} diff --git a/dom/html/test/forms/test_MozEditableElement_setUserInput.html b/dom/html/test/forms/test_MozEditableElement_setUserInput.html new file mode 100644 index 0000000000..06380776f6 --- /dev/null +++ b/dom/html/test/forms/test_MozEditableElement_setUserInput.html @@ -0,0 +1,581 @@ + + + + Test for MozEditableElement.setUserInput() + + + + + +
+
+
+
+
+ + + + diff --git a/dom/html/test/forms/test_autocomplete.html b/dom/html/test/forms/test_autocomplete.html new file mode 100644 index 0000000000..de92254386 --- /dev/null +++ b/dom/html/test/forms/test_autocomplete.html @@ -0,0 +1,137 @@ + + + + + Test for @autocomplete + + + + + + +

+ +
+
+ + diff --git a/dom/html/test/forms/test_autocompleteinfo.html b/dom/html/test/forms/test_autocompleteinfo.html new file mode 100644 index 0000000000..5f8673d9ba --- /dev/null +++ b/dom/html/test/forms/test_autocompleteinfo.html @@ -0,0 +1,177 @@ + + + + + Test for getAutocompleteInfo() + + + + + +

+ +
+
+ + diff --git a/dom/html/test/forms/test_bug1283915.html b/dom/html/test/forms/test_bug1283915.html new file mode 100644 index 0000000000..90bffd4b20 --- /dev/null +++ b/dom/html/test/forms/test_bug1283915.html @@ -0,0 +1,67 @@ + + + + + + Test for Bug 1283915 + + + + + + +Mozilla Bug 1283915 +

+ + +
+
+ + diff --git a/dom/html/test/forms/test_bug1286509.html b/dom/html/test/forms/test_bug1286509.html new file mode 100644 index 0000000000..638e7fe85c --- /dev/null +++ b/dom/html/test/forms/test_bug1286509.html @@ -0,0 +1,49 @@ + + + + + + Test for Bug 1286509 + + + + + +Mozilla Bug 1286509 +

+
+ +
+
+  
+
+ + diff --git a/dom/html/test/forms/test_button_attributes_reflection.html b/dom/html/test/forms/test_button_attributes_reflection.html new file mode 100644 index 0000000000..9bc72ada72 --- /dev/null +++ b/dom/html/test/forms/test_button_attributes_reflection.html @@ -0,0 +1,161 @@ + + + + Test for HTMLButtonElement attributes reflection + + + + + +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_change_event.html b/dom/html/test/forms/test_change_event.html new file mode 100644 index 0000000000..8be4554c58 --- /dev/null +++ b/dom/html/test/forms/test_change_event.html @@ -0,0 +1,286 @@ + + + + +Test for Bug 722599 + + + + + +Mozilla Bug 722599 +

+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_datalist_element.html b/dom/html/test/forms/test_datalist_element.html new file mode 100644 index 0000000000..5f05634018 --- /dev/null +++ b/dom/html/test/forms/test_datalist_element.html @@ -0,0 +1,118 @@ + + + + Test for the datalist element + + + + +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_double_submit.html b/dom/html/test/forms/test_double_submit.html new file mode 100644 index 0000000000..d27fb290a4 --- /dev/null +++ b/dom/html/test/forms/test_double_submit.html @@ -0,0 +1,33 @@ + + + + Test for multiple submissions in straightline code + + + + + + + diff --git a/dom/html/test/forms/test_form_attribute-1.html b/dom/html/test/forms/test_form_attribute-1.html new file mode 100644 index 0000000000..6735f514ae --- /dev/null +++ b/dom/html/test/forms/test_form_attribute-1.html @@ -0,0 +1,473 @@ + + + + + Test for form attributes 1 + + + + +Mozilla Bug 588683 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_form_attribute-2.html b/dom/html/test/forms/test_form_attribute-2.html new file mode 100644 index 0000000000..b7fe5daa87 --- /dev/null +++ b/dom/html/test/forms/test_form_attribute-2.html @@ -0,0 +1,53 @@ + + + + + Test for form attributes 2 + + + + +Mozilla Bug 588683 +

+ + + diff --git a/dom/html/test/forms/test_form_attribute-3.html b/dom/html/test/forms/test_form_attribute-3.html new file mode 100644 index 0000000000..9ceed86716 --- /dev/null +++ b/dom/html/test/forms/test_form_attribute-3.html @@ -0,0 +1,68 @@ + + + + + Test for form attributes 3 + + + + +Mozilla Bug 588683 +

+
+
+ +
+
+ + + + +
+ + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_form_attribute-4.html b/dom/html/test/forms/test_form_attribute-4.html new file mode 100644 index 0000000000..f2228cec45 --- /dev/null +++ b/dom/html/test/forms/test_form_attribute-4.html @@ -0,0 +1,48 @@ + + + + + Test for form attributes 4 + + + + +Mozilla Bug 588683 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_form_attributes_reflection.html b/dom/html/test/forms/test_form_attributes_reflection.html new file mode 100644 index 0000000000..0d0ef6b870 --- /dev/null +++ b/dom/html/test/forms/test_form_attributes_reflection.html @@ -0,0 +1,90 @@ + + + + Test for HTMLFormElement attributes reflection + + + + + +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_form_named_getter_dynamic.html b/dom/html/test/forms/test_form_named_getter_dynamic.html new file mode 100644 index 0000000000..4a19768453 --- /dev/null +++ b/dom/html/test/forms/test_form_named_getter_dynamic.html @@ -0,0 +1,54 @@ + + + + + Test for Bug 377413 + + + + + +Mozilla Bug 377413 +

+
+
+ + + +
+
+
+ + + + diff --git a/dom/html/test/forms/test_formaction_attribute.html b/dom/html/test/forms/test_formaction_attribute.html new file mode 100644 index 0000000000..0dee2f172d --- /dev/null +++ b/dom/html/test/forms/test_formaction_attribute.html @@ -0,0 +1,169 @@ + + + + + Test for Bug 566160 + + + + + +Mozilla Bug 566160 +

+ + + + + + + + + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+ + +
+
+ + +
+
+ + +
+ + +
+ +
+
+
+
+
+ + diff --git a/dom/html/test/forms/test_formnovalidate_attribute.html b/dom/html/test/forms/test_formnovalidate_attribute.html new file mode 100644 index 0000000000..2e3714d2fe --- /dev/null +++ b/dom/html/test/forms/test_formnovalidate_attribute.html @@ -0,0 +1,125 @@ + + + + + Test for Bug 589696 + + + + + +Mozilla Bug 589696 +

+ +
+ +
+ + + +
+
+ + + +
+ +
+ +
+ +
+ + +
+
+ + +
+
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_attributes_reflection.html b/dom/html/test/forms/test_input_attributes_reflection.html new file mode 100644 index 0000000000..88aeb7f16f --- /dev/null +++ b/dom/html/test/forms/test_input_attributes_reflection.html @@ -0,0 +1,269 @@ + + + + Test for HTMLInputElement attributes reflection + + + + + +

+
+
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_color_input_change_events.html b/dom/html/test/forms/test_input_color_input_change_events.html new file mode 100644 index 0000000000..f97d54f66e --- /dev/null +++ b/dom/html/test/forms/test_input_color_input_change_events.html @@ -0,0 +1,119 @@ + + + + + + Test for Bug 1234567 + + + + + + +Mozilla Bug 885996 +

+
+ + + + +
+
+
+ + diff --git a/dom/html/test/forms/test_input_color_picker_datalist.html b/dom/html/test/forms/test_input_color_picker_datalist.html new file mode 100644 index 0000000000..1a268c0701 --- /dev/null +++ b/dom/html/test/forms/test_input_color_picker_datalist.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/dom/html/test/forms/test_input_color_picker_initial.html b/dom/html/test/forms/test_input_color_picker_initial.html new file mode 100644 index 0000000000..c7467c7520 --- /dev/null +++ b/dom/html/test/forms/test_input_color_picker_initial.html @@ -0,0 +1,78 @@ + + + + + + Test for Bug 1234567 + + + + + + +Mozilla Bug 885996 +

+
+
+ + + + +
+
+ + + +
+
+ + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_color_picker_popup.html b/dom/html/test/forms/test_input_color_picker_popup.html new file mode 100644 index 0000000000..9fbebf15bc --- /dev/null +++ b/dom/html/test/forms/test_input_color_picker_popup.html @@ -0,0 +1,144 @@ + + + + + + Test for Bug 1234567 + + + + + + + +Mozilla Bug 885996 +

+
+ + + + + + + + + + +
click
+
click
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_color_picker_update.html b/dom/html/test/forms/test_input_color_picker_update.html new file mode 100644 index 0000000000..5c22b667e1 --- /dev/null +++ b/dom/html/test/forms/test_input_color_picker_update.html @@ -0,0 +1,86 @@ + + + + + + Test for Bug 1234567 + + + + + + + +Mozilla Bug 885996 +

+
+ + + +
+
+
+ + diff --git a/dom/html/test/forms/test_input_date_bad_input.html b/dom/html/test/forms/test_input_date_bad_input.html new file mode 100644 index 0000000000..516d48263f --- /dev/null +++ b/dom/html/test/forms/test_input_date_bad_input.html @@ -0,0 +1,113 @@ + + + + + Test for <input type='date'> bad input validity state + + + + + + +Mozilla Bug 1372369 +

+
+
+ + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_date_key_events.html b/dom/html/test/forms/test_input_date_key_events.html new file mode 100644 index 0000000000..28004d3ce3 --- /dev/null +++ b/dom/html/test/forms/test_input_date_key_events.html @@ -0,0 +1,270 @@ + + + + + Test key events for date control + + + + + + +Mozilla Bug 1286182 +Mozilla Bug 1804669 +

+
+ +
+
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_datetime_calendar_button.html b/dom/html/test/forms/test_input_datetime_calendar_button.html new file mode 100644 index 0000000000..d7bbe28dd8 --- /dev/null +++ b/dom/html/test/forms/test_input_datetime_calendar_button.html @@ -0,0 +1,177 @@ + + + + +Test required date/datetime-local input's Calendar button + + + + + +Created for Mozilla Bug 1479708 and updated by Mozilla Bug 1676068 +

+
+ + + + + + + + + + + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_datetime_disabled_focus.html b/dom/html/test/forms/test_input_datetime_disabled_focus.html new file mode 100644 index 0000000000..b4b7ce2c0b --- /dev/null +++ b/dom/html/test/forms/test_input_datetime_disabled_focus.html @@ -0,0 +1,42 @@ + +Test for bug 1772841 + + + +Mozilla Bug 1772841 +
+ + + + + + + +
+ diff --git a/dom/html/test/forms/test_input_datetime_focus_blur.html b/dom/html/test/forms/test_input_datetime_focus_blur.html new file mode 100644 index 0000000000..bff7b2ceb8 --- /dev/null +++ b/dom/html/test/forms/test_input_datetime_focus_blur.html @@ -0,0 +1,64 @@ + + + + + Test focus/blur behaviour for date/time input types + + + + +Mozilla Bug 1288591 +

+
+ + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_datetime_focus_blur_events.html b/dom/html/test/forms/test_input_datetime_focus_blur_events.html new file mode 100644 index 0000000000..2e4e918119 --- /dev/null +++ b/dom/html/test/forms/test_input_datetime_focus_blur_events.html @@ -0,0 +1,93 @@ + + + + +Test for Bug 1301306 + + + + + +Mozilla Bug 722599 +

+
+ + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_datetime_focus_state.html b/dom/html/test/forms/test_input_datetime_focus_state.html new file mode 100644 index 0000000000..3b771f2394 --- /dev/null +++ b/dom/html/test/forms/test_input_datetime_focus_state.html @@ -0,0 +1,79 @@ + + + + + Test moving focus in onfocus/onblur handler + + + + +Mozilla Bug 1346085 +

+
+ + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_datetime_hidden.html b/dom/html/test/forms/test_input_datetime_hidden.html new file mode 100644 index 0000000000..7d8a6766a9 --- /dev/null +++ b/dom/html/test/forms/test_input_datetime_hidden.html @@ -0,0 +1,32 @@ + + + + + Test construction of hidden date input type + + + + + +Mozilla Bug 1514040 +

+
+ +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_datetime_input_change_events.html b/dom/html/test/forms/test_input_datetime_input_change_events.html new file mode 100644 index 0000000000..63c8012252 --- /dev/null +++ b/dom/html/test/forms/test_input_datetime_input_change_events.html @@ -0,0 +1,143 @@ + + + + +Test for Bugs 1370858 and 1804881 + + + + + +Mozilla Bug 1370858 +Mozilla Bug 1804881 +

+
+ + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_datetime_readonly.html b/dom/html/test/forms/test_input_datetime_readonly.html new file mode 100644 index 0000000000..aa7b40753b --- /dev/null +++ b/dom/html/test/forms/test_input_datetime_readonly.html @@ -0,0 +1,20 @@ + +Test for bug 1461509 + + + + + diff --git a/dom/html/test/forms/test_input_datetime_reset_default_value_input_change_event.html b/dom/html/test/forms/test_input_datetime_reset_default_value_input_change_event.html new file mode 100644 index 0000000000..393de9fdee --- /dev/null +++ b/dom/html/test/forms/test_input_datetime_reset_default_value_input_change_event.html @@ -0,0 +1,122 @@ + + + + +Test for bug 1446722 + + + + + + +Mozilla bug 1446722 +

+
+ + + + + + + + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_datetime_tabindex.html b/dom/html/test/forms/test_input_datetime_tabindex.html new file mode 100644 index 0000000000..207a7a8a8e --- /dev/null +++ b/dom/html/test/forms/test_input_datetime_tabindex.html @@ -0,0 +1,113 @@ + + + + + Test tabindex attribute for date/time input types + + + + + +Mozilla Bug 1288591 +

+
+ + + + + + + + + + + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_defaultValue.html b/dom/html/test/forms/test_input_defaultValue.html new file mode 100644 index 0000000000..03849d7f54 --- /dev/null +++ b/dom/html/test/forms/test_input_defaultValue.html @@ -0,0 +1,81 @@ + + + + + Test for Bug 977029 + + + +
+ Bug 977029 +

+ Goal of this test is to check that modifying defaultValue and value attribute + of input types is working as expected. +

+
+ + + + + + + + + + +
+
+ + + + diff --git a/dom/html/test/forms/test_input_email.html b/dom/html/test/forms/test_input_email.html new file mode 100644 index 0000000000..96ff939215 --- /dev/null +++ b/dom/html/test/forms/test_input_email.html @@ -0,0 +1,237 @@ + + + + + Test for <input type='email'> validity + + + + +Mozilla Bug 555559 +Mozilla Bug 668817 +Mozilla Bug 854812 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_input_event.html b/dom/html/test/forms/test_input_event.html new file mode 100644 index 0000000000..72863ca335 --- /dev/null +++ b/dom/html/test/forms/test_input_event.html @@ -0,0 +1,409 @@ + + + + +Test for input event + + + + + +Mozilla Bug 851780 +

+
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_file_picker.html b/dom/html/test/forms/test_input_file_picker.html new file mode 100644 index 0000000000..f59c9e759c --- /dev/null +++ b/dom/html/test/forms/test_input_file_picker.html @@ -0,0 +1,280 @@ + + + + Test for <input type='file'> file picker + + + + + +Mozilla Bug 36619 +Mozilla Bug 377624 +Mozilla Bug 565274 +Mozilla Bug 701353 +Mozilla Bug 826176 +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
foo
+
foo
+
foo
+ foo + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_hasBeenTypePassword.html b/dom/html/test/forms/test_input_hasBeenTypePassword.html new file mode 100644 index 0000000000..ac577ae3a9 --- /dev/null +++ b/dom/html/test/forms/test_input_hasBeenTypePassword.html @@ -0,0 +1,67 @@ + + + + + Test input.hasBeenTypePassword + + + + +Mozilla Bug 1330228 + + + diff --git a/dom/html/test/forms/test_input_hasBeenTypePassword_navigation.html b/dom/html/test/forms/test_input_hasBeenTypePassword_navigation.html new file mode 100644 index 0000000000..70a0f8427e --- /dev/null +++ b/dom/html/test/forms/test_input_hasBeenTypePassword_navigation.html @@ -0,0 +1,68 @@ + + + + + Test hasBeenTypePassword is used with bfcache + + + + +Mozilla Bug 1330228 +

+ +

+
+
+
+ + diff --git a/dom/html/test/forms/test_input_list_attribute.html b/dom/html/test/forms/test_input_list_attribute.html new file mode 100644 index 0000000000..62a07dd91a --- /dev/null +++ b/dom/html/test/forms/test_input_list_attribute.html @@ -0,0 +1,253 @@ + + + + + Test for Bug 556007 + + + + +Mozilla Bug 556007 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_input_number_data.js b/dom/html/test/forms/test_input_number_data.js new file mode 100644 index 0000000000..9ec53f136f --- /dev/null +++ b/dom/html/test/forms/test_input_number_data.js @@ -0,0 +1,54 @@ +var tests = [ + { + desc: "British English", + langTag: "en-GB", + inputWithGrouping: "123,456.78", + inputWithoutGrouping: "123456.78", + value: 123456.78, + }, + { + desc: "Farsi", + langTag: "fa", + inputWithGrouping: "۱۲۳٬۴۵۶٫۷۸", + inputWithoutGrouping: "۱۲۳۴۵۶٫۷۸", + value: 123456.78, + }, + { + desc: "French", + langTag: "fr-FR", + inputWithGrouping: "123 456,78", + inputWithoutGrouping: "123456,78", + value: 123456.78, + }, + { + desc: "German", + langTag: "de", + inputWithGrouping: "123.456,78", + inputWithoutGrouping: "123456,78", + value: 123456.78, + }, + // Bug 1509057 disables grouping separators for now, so this test isn't + // currently relevant. + // Extra german test to check that a locale that uses '.' as its grouping + // separator doesn't result in it being invalid (due to step mismatch) due + // to the de-localization code mishandling numbers that look like other + // numbers formatted for English speakers (i.e. treating this as 123.456 + // instead of 123456): + //{ desc: "German (test 2)", + // langTag: "de", inputWithGrouping: "123.456", + // inputWithoutGrouping: "123456", value: 123456 + //}, + { + desc: "Hebrew", + langTag: "he", + inputWithGrouping: "123,456.78", + inputWithoutGrouping: "123456.78", + value: 123456.78, + }, +]; + +var invalidTests = [ + // Right now this will pass in a 'de' build, but not in the 'en' build that + // are used for testing. See bug 1216831. + // { desc: "Invalid German", langTag: "de", input: "12.34" } +]; diff --git a/dom/html/test/forms/test_input_number_focus.html b/dom/html/test/forms/test_input_number_focus.html new file mode 100644 index 0000000000..4126ecc496 --- /dev/null +++ b/dom/html/test/forms/test_input_number_focus.html @@ -0,0 +1,109 @@ + + + + + Test focus behaviour for <input type='number'> + + + + + +Mozilla Bug 1268556 +Mozilla Bug 1057858 +

+
+ + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_number_key_events.html b/dom/html/test/forms/test_input_number_key_events.html new file mode 100644 index 0000000000..eb537f5617 --- /dev/null +++ b/dom/html/test/forms/test_input_number_key_events.html @@ -0,0 +1,238 @@ + + + + + Test key events for number control + + + + + + +Mozilla Bug 935506 +

+
+ +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_number_l10n.html b/dom/html/test/forms/test_input_number_l10n.html new file mode 100644 index 0000000000..c8202028ed --- /dev/null +++ b/dom/html/test/forms/test_input_number_l10n.html @@ -0,0 +1,77 @@ + + + + + Test localization of number control input + + + + + + + +Mozilla Bug 844744 +

+
+ +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_number_mouse_events.html b/dom/html/test/forms/test_input_number_mouse_events.html new file mode 100644 index 0000000000..6d14eb2263 --- /dev/null +++ b/dom/html/test/forms/test_input_number_mouse_events.html @@ -0,0 +1,259 @@ + + + + + Test mouse events for number + + + + + + + + +Mozilla Bug 935501 +

+
+ +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_number_placeholder_shown.html b/dom/html/test/forms/test_input_number_placeholder_shown.html new file mode 100644 index 0000000000..c9c2a7f515 --- /dev/null +++ b/dom/html/test/forms/test_input_number_placeholder_shown.html @@ -0,0 +1,30 @@ + +Test for :placeholder-shown on input elements and invalid values. + + + + + diff --git a/dom/html/test/forms/test_input_number_rounding.html b/dom/html/test/forms/test_input_number_rounding.html new file mode 100644 index 0000000000..d162727557 --- /dev/null +++ b/dom/html/test/forms/test_input_number_rounding.html @@ -0,0 +1,120 @@ + + + + + Test rounding behaviour for <input type='number'> + + + + + + +Mozilla Bug 783607 +

+
+ +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_number_validation.html b/dom/html/test/forms/test_input_number_validation.html new file mode 100644 index 0000000000..c19c1fde1c --- /dev/null +++ b/dom/html/test/forms/test_input_number_validation.html @@ -0,0 +1,139 @@ + + + + + Test validation of number control input + + + + + + + +Mozilla Bug 827161 +

+
+ + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_password_click_show_password_button.html b/dom/html/test/forms/test_input_password_click_show_password_button.html new file mode 100644 index 0000000000..fd5cfe6935 --- /dev/null +++ b/dom/html/test/forms/test_input_password_click_show_password_button.html @@ -0,0 +1,95 @@ + + + + + + Test for Bug 502258 + + + + + + + +Mozilla Bug 502258 +

+ + +
+
+ + diff --git a/dom/html/test/forms/test_input_password_show_password_button.html b/dom/html/test/forms/test_input_password_show_password_button.html new file mode 100644 index 0000000000..0bb5fdbee6 --- /dev/null +++ b/dom/html/test/forms/test_input_password_show_password_button.html @@ -0,0 +1,80 @@ + + + + + + Test for Bug 502258 + + + + + + + +Mozilla Bug 502258 +

+ + +
+
+ + diff --git a/dom/html/test/forms/test_input_radio_indeterminate.html b/dom/html/test/forms/test_input_radio_indeterminate.html new file mode 100644 index 0000000000..0fe7028b1e --- /dev/null +++ b/dom/html/test/forms/test_input_radio_indeterminate.html @@ -0,0 +1,109 @@ + + + + + Test for Bug 885359 + + + + +Mozilla Bug 343444 +

+ +
+ + +
+
+ + +
+ + + + + + diff --git a/dom/html/test/forms/test_input_radio_radiogroup.html b/dom/html/test/forms/test_input_radio_radiogroup.html new file mode 100644 index 0000000000..62767def72 --- /dev/null +++ b/dom/html/test/forms/test_input_radio_radiogroup.html @@ -0,0 +1,75 @@ + + + + + Test for Bug 343444 + + + + + + +Mozilla Bug 343444 +

+
+
+ + + + + + + + + + +
+ +
+ + + + +
+ +
+ + +
+
+ + + + + diff --git a/dom/html/test/forms/test_input_radio_required.html b/dom/html/test/forms/test_input_radio_required.html new file mode 100644 index 0000000000..ae02aab2ff --- /dev/null +++ b/dom/html/test/forms/test_input_radio_required.html @@ -0,0 +1,31 @@ + + + + + Test for Bug 1100535 + + + + + +Mozilla Bug 1100535 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_input_range_attr_order.html b/dom/html/test/forms/test_input_range_attr_order.html new file mode 100644 index 0000000000..dc3f1ac95c --- /dev/null +++ b/dom/html/test/forms/test_input_range_attr_order.html @@ -0,0 +1,48 @@ + + + + + Test @min/@max/@step order for range + + + + + + +Mozilla Bug 841941 +

+
+ + + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_range_key_events.html b/dom/html/test/forms/test_input_range_key_events.html new file mode 100644 index 0000000000..6daf572916 --- /dev/null +++ b/dom/html/test/forms/test_input_range_key_events.html @@ -0,0 +1,207 @@ + + + + + Test key events for range + + + + + + +Mozilla Bug 843725 +

+
+
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_range_mouse_and_touch_events.html b/dom/html/test/forms/test_input_range_mouse_and_touch_events.html new file mode 100644 index 0000000000..92cd1b3095 --- /dev/null +++ b/dom/html/test/forms/test_input_range_mouse_and_touch_events.html @@ -0,0 +1,227 @@ + + + + + Test mouse and touch events for range + + + + + + + + +Mozilla Bug 846380 +

+
+ +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_range_rounding.html b/dom/html/test/forms/test_input_range_rounding.html new file mode 100644 index 0000000000..9c3c21ce6e --- /dev/null +++ b/dom/html/test/forms/test_input_range_rounding.html @@ -0,0 +1,103 @@ + + + + + Test key events for range + + + + + + +Mozilla Bug 853525 +

+
+ +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_sanitization.html b/dom/html/test/forms/test_input_sanitization.html new file mode 100644 index 0000000000..474ddd621d --- /dev/null +++ b/dom/html/test/forms/test_input_sanitization.html @@ -0,0 +1,585 @@ + + + + + Test for Bug 549475 + + + + +Mozilla Bug 549475 +

+
+
+
+
+
+ +
+ + diff --git a/dom/html/test/forms/test_input_setting_value.html b/dom/html/test/forms/test_input_setting_value.html new file mode 100644 index 0000000000..b6ddd66d24 --- /dev/null +++ b/dom/html/test/forms/test_input_setting_value.html @@ -0,0 +1,619 @@ + + + + Test for setting input value + + + + + +
+
+
+
+
+ + + + diff --git a/dom/html/test/forms/test_input_textarea_set_value_no_scroll.html b/dom/html/test/forms/test_input_textarea_set_value_no_scroll.html new file mode 100644 index 0000000000..8c3855960b --- /dev/null +++ b/dom/html/test/forms/test_input_textarea_set_value_no_scroll.html @@ -0,0 +1,123 @@ + + + + + + Test for Bug 829606 + + + + + + + +Mozilla Bug 829606 +

+
+ + +
+
+
+ + diff --git a/dom/html/test/forms/test_input_time_key_events.html b/dom/html/test/forms/test_input_time_key_events.html new file mode 100644 index 0000000000..c738816653 --- /dev/null +++ b/dom/html/test/forms/test_input_time_key_events.html @@ -0,0 +1,221 @@ + + + + + Test key events for time control + + + + + + +Mozilla Bug 1288591 +

+
+ +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_time_sec_millisec_field.html b/dom/html/test/forms/test_input_time_sec_millisec_field.html new file mode 100644 index 0000000000..71db4942a9 --- /dev/null +++ b/dom/html/test/forms/test_input_time_sec_millisec_field.html @@ -0,0 +1,134 @@ + + + + + Test second and millisecond fields in input type=time + + + + + + +Mozilla Bug 1374967 +

+
+ + + + + + + + + + + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_types_pref.html b/dom/html/test/forms/test_input_types_pref.html new file mode 100644 index 0000000000..1222e88a86 --- /dev/null +++ b/dom/html/test/forms/test_input_types_pref.html @@ -0,0 +1,77 @@ + + + + + Test for Bug 764481 + + + + +Mozilla Bug 764481 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_input_typing_sanitization.html b/dom/html/test/forms/test_input_typing_sanitization.html new file mode 100644 index 0000000000..fef0ebed06 --- /dev/null +++ b/dom/html/test/forms/test_input_typing_sanitization.html @@ -0,0 +1,217 @@ + + + + + Test for Bug 765772 + + + + + +Mozilla Bug 765772 +

+ +
+
+ +
+
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_untrusted_key_events.html b/dom/html/test/forms/test_input_untrusted_key_events.html new file mode 100644 index 0000000000..78e35f525f --- /dev/null +++ b/dom/html/test/forms/test_input_untrusted_key_events.html @@ -0,0 +1,90 @@ + + + + Test for untrusted DOM KeyboardEvent on input element + + + + + +

+
+ +
+
+
+
+ + diff --git a/dom/html/test/forms/test_input_url.html b/dom/html/test/forms/test_input_url.html new file mode 100644 index 0000000000..3cdf1070bb --- /dev/null +++ b/dom/html/test/forms/test_input_url.html @@ -0,0 +1,91 @@ + + + + Tests for <input type='url'> validity + + + + +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_interactive_content_in_label.html b/dom/html/test/forms/test_interactive_content_in_label.html new file mode 100644 index 0000000000..b8d9c81d51 --- /dev/null +++ b/dom/html/test/forms/test_interactive_content_in_label.html @@ -0,0 +1,101 @@ + + + + + Test for Bug 229925 + + + + + + +Mozilla Bug 229925 +

+
+ +
+ + + + + diff --git a/dom/html/test/forms/test_interactive_content_in_summary.html b/dom/html/test/forms/test_interactive_content_in_summary.html new file mode 100644 index 0000000000..f8bac77d89 --- /dev/null +++ b/dom/html/test/forms/test_interactive_content_in_summary.html @@ -0,0 +1,97 @@ + + + + + Test for Bug 1524893 + + + + + + +Mozilla Bug 1524893 + +
+ + a + + +
details
+ embed + + + + + + object + + + + + +
+ + + a + + + + object + + + tabindex + + + + object + +
+
This is details
+
+ + + + + diff --git a/dom/html/test/forms/test_label_control_attribute.html b/dom/html/test/forms/test_label_control_attribute.html new file mode 100644 index 0000000000..efc04cd787 --- /dev/null +++ b/dom/html/test/forms/test_label_control_attribute.html @@ -0,0 +1,100 @@ + + + + + Test for Bug 562932 + + + + +Mozilla Bug 562932 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_label_input_controls.html b/dom/html/test/forms/test_label_input_controls.html new file mode 100644 index 0000000000..fe9410b608 --- /dev/null +++ b/dom/html/test/forms/test_label_input_controls.html @@ -0,0 +1,84 @@ + + + + + Test for Bug 597650 + + + + + + Mozilla Bug 597650 +

+
+ + +
+
+    
+  
+ + + diff --git a/dom/html/test/forms/test_max_attribute.html b/dom/html/test/forms/test_max_attribute.html new file mode 100644 index 0000000000..f6e9c9bd8e --- /dev/null +++ b/dom/html/test/forms/test_max_attribute.html @@ -0,0 +1,473 @@ + + + + + Test for Bug 635499 + + + + +Mozilla Bug 635499 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_maxlength_attribute.html b/dom/html/test/forms/test_maxlength_attribute.html new file mode 100644 index 0000000000..bd76e277e5 --- /dev/null +++ b/dom/html/test/forms/test_maxlength_attribute.html @@ -0,0 +1,129 @@ + + + + + Test for Bug 345624 + + + + + + +Mozilla Bug 345624 +

+
+ + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_meter_element.html b/dom/html/test/forms/test_meter_element.html new file mode 100644 index 0000000000..5e1073d53d --- /dev/null +++ b/dom/html/test/forms/test_meter_element.html @@ -0,0 +1,376 @@ + + + + + Test for <meter> + + + + +Mozilla Bug 657938 +

+ + +
+
+
+ + diff --git a/dom/html/test/forms/test_meter_pseudo-classes.html b/dom/html/test/forms/test_meter_pseudo-classes.html new file mode 100644 index 0000000000..e317a58405 --- /dev/null +++ b/dom/html/test/forms/test_meter_pseudo-classes.html @@ -0,0 +1,169 @@ + + + + + Test for Bug 660238 + + + + +Mozilla Bug 660238 +

+
+
+
+ + diff --git a/dom/html/test/forms/test_min_attribute.html b/dom/html/test/forms/test_min_attribute.html new file mode 100644 index 0000000000..a603a37d29 --- /dev/null +++ b/dom/html/test/forms/test_min_attribute.html @@ -0,0 +1,473 @@ + + + + + Test for Bug 635553 + + + + +Mozilla Bug 635499 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_minlength_attribute.html b/dom/html/test/forms/test_minlength_attribute.html new file mode 100644 index 0000000000..154343a512 --- /dev/null +++ b/dom/html/test/forms/test_minlength_attribute.html @@ -0,0 +1,130 @@ + + + + + Test for Bug 345624 + + + + + + +Mozilla Bug 345624 +

+
+ + +
+
+
+
+ + + diff --git a/dom/html/test/forms/test_mozistextfield.html b/dom/html/test/forms/test_mozistextfield.html new file mode 100644 index 0000000000..3f92a3d05d --- /dev/null +++ b/dom/html/test/forms/test_mozistextfield.html @@ -0,0 +1,111 @@ + + + + + Test for Bug 565538 + + + + +Mozilla Bug 565538 +

+
+
+
+ + diff --git a/dom/html/test/forms/test_novalidate_attribute.html b/dom/html/test/forms/test_novalidate_attribute.html new file mode 100644 index 0000000000..dcea207838 --- /dev/null +++ b/dom/html/test/forms/test_novalidate_attribute.html @@ -0,0 +1,85 @@ + + + + + Test for Bug 556013 + + + + + +Mozilla Bug 556013 +

+ +
+
+ + +
+
+ + +
+
+ +
+
+
+
+
+ + diff --git a/dom/html/test/forms/test_option_disabled.html b/dom/html/test/forms/test_option_disabled.html new file mode 100644 index 0000000000..421e4546be --- /dev/null +++ b/dom/html/test/forms/test_option_disabled.html @@ -0,0 +1,123 @@ + + + + + + Test for HTMLOptionElement disabled attribute and pseudo-class + + + + +Mozilla Bug 759666 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_option_index_attribute.html b/dom/html/test/forms/test_option_index_attribute.html new file mode 100644 index 0000000000..f15520e5e6 --- /dev/null +++ b/dom/html/test/forms/test_option_index_attribute.html @@ -0,0 +1,76 @@ + + + + + + Test for option.index + + + + +Mozilla Bug 720385 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_option_text.html b/dom/html/test/forms/test_option_text.html new file mode 100644 index 0000000000..3afe3e786a --- /dev/null +++ b/dom/html/test/forms/test_option_text.html @@ -0,0 +1,57 @@ + + +HTMLOptionElement.text + + + + +
+ diff --git a/dom/html/test/forms/test_output_element.html b/dom/html/test/forms/test_output_element.html new file mode 100644 index 0000000000..ab11443d83 --- /dev/null +++ b/dom/html/test/forms/test_output_element.html @@ -0,0 +1,182 @@ + + + + + Test for Bug 346485 + + + + + + +Mozilla Bug 346485 +

+ + +
+
+
+ + diff --git a/dom/html/test/forms/test_pattern_attribute.html b/dom/html/test/forms/test_pattern_attribute.html new file mode 100644 index 0000000000..74b0517c51 --- /dev/null +++ b/dom/html/test/forms/test_pattern_attribute.html @@ -0,0 +1,324 @@ + + + + + Test for Bug 345512 + + + + + +Mozilla Bug 345512 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_preserving_metadata_between_reloads.html b/dom/html/test/forms/test_preserving_metadata_between_reloads.html new file mode 100644 index 0000000000..07ca05f7ce --- /dev/null +++ b/dom/html/test/forms/test_preserving_metadata_between_reloads.html @@ -0,0 +1,84 @@ + + + + + Test preserving metadata between page reloads + + + + + +

+
+ +
+ +
+
+
+ + \ No newline at end of file diff --git a/dom/html/test/forms/test_progress_element.html b/dom/html/test/forms/test_progress_element.html new file mode 100644 index 0000000000..065adf94ea --- /dev/null +++ b/dom/html/test/forms/test_progress_element.html @@ -0,0 +1,307 @@ + + + + + Test for progress element content and layout + + + + +Mozilla Bug 514437 +and +Mozilla Bug 633913 +

+ + +
+
+
+ + diff --git a/dom/html/test/forms/test_radio_in_label.html b/dom/html/test/forms/test_radio_in_label.html new file mode 100644 index 0000000000..7e8a232cc3 --- /dev/null +++ b/dom/html/test/forms/test_radio_in_label.html @@ -0,0 +1,54 @@ + + + + + Test for Bug 229925 + + + + + + +Mozilla Bug 229925 +

+
+ +
+ + + + diff --git a/dom/html/test/forms/test_radio_radionodelist.html b/dom/html/test/forms/test_radio_radionodelist.html new file mode 100644 index 0000000000..8761c22b58 --- /dev/null +++ b/dom/html/test/forms/test_radio_radionodelist.html @@ -0,0 +1,57 @@ + + + + + Test for Bug 779723 + + + + + + +Mozilla Bug 779723 +

+
+ + + +
+ + + + + diff --git a/dom/html/test/forms/test_reportValidation_preventDefault.html b/dom/html/test/forms/test_reportValidation_preventDefault.html new file mode 100644 index 0000000000..3f3b99d140 --- /dev/null +++ b/dom/html/test/forms/test_reportValidation_preventDefault.html @@ -0,0 +1,89 @@ + + + + + Test for Bug 1088761 + + + + + +Mozilla Bug 1088761 +

+ + +
+
+
+ + diff --git a/dom/html/test/forms/test_required_attribute.html b/dom/html/test/forms/test_required_attribute.html new file mode 100644 index 0000000000..4fca31f9af --- /dev/null +++ b/dom/html/test/forms/test_required_attribute.html @@ -0,0 +1,420 @@ + + + + + Test for Bug 345822 + + + + +Mozilla Bug 345822 +

+
+
+
+
+
+
+
+ + diff --git a/dom/html/test/forms/test_restore_form_elements.html b/dom/html/test/forms/test_restore_form_elements.html new file mode 100644 index 0000000000..be22a29b7b --- /dev/null +++ b/dom/html/test/forms/test_restore_form_elements.html @@ -0,0 +1,174 @@ + + + + + + + Test for Bug 737851 + + + + + + + +Mozilla Bug 737851 + +

+ + +
+ + + +
+ + +
+
+
+ + diff --git a/dom/html/test/forms/test_save_restore_radio_groups.html b/dom/html/test/forms/test_save_restore_radio_groups.html new file mode 100644 index 0000000000..c5ef924a0e --- /dev/null +++ b/dom/html/test/forms/test_save_restore_radio_groups.html @@ -0,0 +1,70 @@ + + + + + Test for Bug 350022 + + + + +Mozilla Bug 350022 +

+
+ + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_select_change_event.html b/dom/html/test/forms/test_select_change_event.html new file mode 100644 index 0000000000..ec3ed58c5e --- /dev/null +++ b/dom/html/test/forms/test_select_change_event.html @@ -0,0 +1,54 @@ + + + + + Test for Bug 1265968 + + + + + +Mozilla Bug 1265968 +

+
+ +
+
+
+
+ + diff --git a/dom/html/test/forms/test_select_input_change_event.html b/dom/html/test/forms/test_select_input_change_event.html new file mode 100644 index 0000000000..fcf384e423 --- /dev/null +++ b/dom/html/test/forms/test_select_input_change_event.html @@ -0,0 +1,122 @@ + + + + + Test for Bug 1024350 + + + + + +Mozilla Bug 1024350 +

+
+ + + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_select_selectedOptions.html b/dom/html/test/forms/test_select_selectedOptions.html new file mode 100644 index 0000000000..745e0ba4f3 --- /dev/null +++ b/dom/html/test/forms/test_select_selectedOptions.html @@ -0,0 +1,119 @@ + + + + + Test for HTMLSelectElement.selectedOptions + + + + +Mozilla Bug 596681 +

+
+
+
+ + diff --git a/dom/html/test/forms/test_select_validation.html b/dom/html/test/forms/test_select_validation.html new file mode 100644 index 0000000000..6d02aa0746 --- /dev/null +++ b/dom/html/test/forms/test_select_validation.html @@ -0,0 +1,39 @@ + + + + + Test for Bug 942321 + + + + + + +Mozilla Bug 942321 +

+
+ + +
+ + + + + diff --git a/dom/html/test/forms/test_set_range_text.html b/dom/html/test/forms/test_set_range_text.html new file mode 100644 index 0000000000..f85014ae77 --- /dev/null +++ b/dom/html/test/forms/test_set_range_text.html @@ -0,0 +1,242 @@ + + + + +Tests for Bug 850364 && Bug 918940 + + + + + +Mozilla Bug 850364 +

+
+ + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + diff --git a/dom/html/test/forms/test_step_attribute.html b/dom/html/test/forms/test_step_attribute.html new file mode 100644 index 0000000000..f0af250c06 --- /dev/null +++ b/dom/html/test/forms/test_step_attribute.html @@ -0,0 +1,1060 @@ + + + + + Test for Bug 635553 + + + + +Mozilla Bug 635499 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_stepup_stepdown.html b/dom/html/test/forms/test_stepup_stepdown.html new file mode 100644 index 0000000000..8ad7fbfeee --- /dev/null +++ b/dom/html/test/forms/test_stepup_stepdown.html @@ -0,0 +1,1137 @@ + + + + + Test for Bug 636627 + + + + +Mozilla Bug 636627 +

+
+
+
+ + diff --git a/dom/html/test/forms/test_submit_invalid_file.html b/dom/html/test/forms/test_submit_invalid_file.html new file mode 100644 index 0000000000..4fcadc37ce --- /dev/null +++ b/dom/html/test/forms/test_submit_invalid_file.html @@ -0,0 +1,55 @@ + + + + + + Test invalid file submission + + + + +Mozilla Bug 702949 +

+ +
+
+ + + diff --git a/dom/html/test/forms/test_textarea_attributes_reflection.html b/dom/html/test/forms/test_textarea_attributes_reflection.html new file mode 100644 index 0000000000..8f8e810b0e --- /dev/null +++ b/dom/html/test/forms/test_textarea_attributes_reflection.html @@ -0,0 +1,104 @@ + + + + Test for HTMLTextAreaElement attributes reflection + + + + + +

+
+
+
+ + diff --git a/dom/html/test/forms/test_validation.html b/dom/html/test/forms/test_validation.html new file mode 100644 index 0000000000..666d4a45c0 --- /dev/null +++ b/dom/html/test/forms/test_validation.html @@ -0,0 +1,343 @@ + + + + + Test for Bug 345624 + + + + + +Mozilla Bug 345624 +

+ +
+
+
+ + diff --git a/dom/html/test/forms/test_validation_not_in_doc.html b/dom/html/test/forms/test_validation_not_in_doc.html new file mode 100644 index 0000000000..1500c60869 --- /dev/null +++ b/dom/html/test/forms/test_validation_not_in_doc.html @@ -0,0 +1,19 @@ + + +Test for constraint validation of form controls not in documents + + +
+ diff --git a/dom/html/test/forms/test_valueasdate_attribute.html b/dom/html/test/forms/test_valueasdate_attribute.html new file mode 100644 index 0000000000..9055879a85 --- /dev/null +++ b/dom/html/test/forms/test_valueasdate_attribute.html @@ -0,0 +1,751 @@ + + + + + Test for input.valueAsDate + + + + +Mozilla Bug 769370 + +

+
+
+
+ + diff --git a/dom/html/test/forms/test_valueasnumber_attribute.html b/dom/html/test/forms/test_valueasnumber_attribute.html new file mode 100644 index 0000000000..5f7537f7a8 --- /dev/null +++ b/dom/html/test/forms/test_valueasnumber_attribute.html @@ -0,0 +1,858 @@ + + + + + Test for Bug input.valueAsNumber + + + + +Mozilla Bug 636737 +

+
+
+
+ + diff --git a/dom/html/test/forms/without_selectionchange/mochitest.ini b/dom/html/test/forms/without_selectionchange/mochitest.ini new file mode 100644 index 0000000000..8224e29b34 --- /dev/null +++ b/dom/html/test/forms/without_selectionchange/mochitest.ini @@ -0,0 +1,5 @@ +[DEFAULT] +prefs = + dom.select_events.textcontrols.enabled=false + +[test_select.html] diff --git a/dom/html/test/forms/without_selectionchange/test_select.html b/dom/html/test/forms/without_selectionchange/test_select.html new file mode 100644 index 0000000000..3d11611b1b --- /dev/null +++ b/dom/html/test/forms/without_selectionchange/test_select.html @@ -0,0 +1,21 @@ + + +Test for Bug 1717435 + + + + + + diff --git a/dom/html/test/head.js b/dom/html/test/head.js new file mode 100644 index 0000000000..1e3b435d0c --- /dev/null +++ b/dom/html/test/head.js @@ -0,0 +1,65 @@ +function pushPrefs(...aPrefs) { + return SpecialPowers.pushPrefEnv({ set: aPrefs }); +} + +function promiseWaitForEvent( + object, + eventName, + capturing = false, + chrome = false +) { + return new Promise(resolve => { + function listener(event) { + info("Saw " + eventName); + object.removeEventListener(eventName, listener, capturing, chrome); + resolve(event); + } + + info("Waiting for " + eventName); + object.addEventListener(eventName, listener, capturing, chrome); + }); +} + +/** + * Waits for the next load to complete in any browser or the given browser. + * If a is given it waits for a load in any of its browsers. + * + * @return promise + */ +function waitForDocLoadComplete(aBrowser = gBrowser) { + return new Promise(resolve => { + let listener = { + onStateChange(webProgress, req, flags, status) { + let docStop = + Ci.nsIWebProgressListener.STATE_IS_NETWORK | + Ci.nsIWebProgressListener.STATE_STOP; + info( + "Saw state " + + flags.toString(16) + + " and status " + + status.toString(16) + ); + // When a load needs to be retargetted to a new process it is cancelled + // with NS_BINDING_ABORTED so ignore that case + if ((flags & docStop) == docStop && status != Cr.NS_BINDING_ABORTED) { + aBrowser.removeProgressListener(this); + waitForDocLoadComplete.listeners.delete(this); + let chan = req.QueryInterface(Ci.nsIChannel); + info("Browser loaded " + chan.originalURI.spec); + resolve(); + } + }, + QueryInterface: ChromeUtils.generateQI([ + "nsIWebProgressListener", + "nsISupportsWeakReference", + ]), + }; + aBrowser.addProgressListener(listener); + waitForDocLoadComplete.listeners.add(listener); + info("Waiting for browser load"); + }); +} +// Keep a set of progress listeners for waitForDocLoadComplete() to make sure +// they're not GC'ed before we saw the page load. +waitForDocLoadComplete.listeners = new Set(); +registerCleanupFunction(() => waitForDocLoadComplete.listeners.clear()); diff --git a/dom/html/test/image-allow-credentials.png b/dom/html/test/image-allow-credentials.png new file mode 100644 index 0000000000..df24ac6d34 Binary files /dev/null and b/dom/html/test/image-allow-credentials.png differ diff --git a/dom/html/test/image-allow-credentials.png^headers^ b/dom/html/test/image-allow-credentials.png^headers^ new file mode 100644 index 0000000000..a03f99a9c0 --- /dev/null +++ b/dom/html/test/image-allow-credentials.png^headers^ @@ -0,0 +1,2 @@ +Access-Control-Allow-Origin: http://mochi.test:8888 +Access-Control-Allow-Credentials: true diff --git a/dom/html/test/image.png b/dom/html/test/image.png new file mode 100644 index 0000000000..d26878c9f2 Binary files /dev/null and b/dom/html/test/image.png differ diff --git a/dom/html/test/image_yellow.png b/dom/html/test/image_yellow.png new file mode 100644 index 0000000000..51e8aaf38c Binary files /dev/null and b/dom/html/test/image_yellow.png differ diff --git a/dom/html/test/mochitest.ini b/dom/html/test/mochitest.ini new file mode 100644 index 0000000000..bd1dfc146f --- /dev/null +++ b/dom/html/test/mochitest.ini @@ -0,0 +1,604 @@ +[DEFAULT] +prefs = + dom.forms.inputmode=true # only for test_inputmode.html + gfx.font_loader.delay=0 +support-files = + 347174transform.xsl + 347174transformable.xml + allowMedia.sjs + bug100533_iframe.html + bug100533_load.html + bug196523-subframe.html + bug199692-nested-d2.html + bug199692-nested.html + bug199692-popup.html + bug199692-scrolled.html + bug242709_iframe.html + bug242709_load.html + bug277724_iframe1.html + bug277724_iframe2.xhtml + bug277890_iframe.html + bug277890_load.html + bug340800_iframe.txt + bug369370-popup.png + bug372098-link-target.html + bug441930_iframe.html + bug445004-inner.html + bug445004-inner.js + bug445004-outer-abs.html + bug445004-outer-rel.html + bug445004-outer-write.html + bug446483-iframe.html + bug448564-echo.sjs + bug448564-iframe-1.html + bug448564-iframe-2.html + bug448564-iframe-3.html + bug448564-submit.js + bug499092.html + bug499092.xml + bug514856_iframe.html + bug1260704_iframe.html + bug1260704_iframe_empty.html + bug1292522_iframe.html + bug1292522_page.html + bug1315146-iframe.html + bug1315146-main.html + dummy_page.html + test_non-ascii-cookie.html^headers^ + file_bug209275_1.html + file_bug209275_2.html + file_bug209275_3.html + file_bug297761.html + file_bug417760.png + file_bug893537.html + file_bug1260704.png + file_formSubmission_img.jpg + file_formSubmission_text.txt + file_iframe_sandbox_a_if1.html + file_iframe_sandbox_a_if10.html + file_iframe_sandbox_a_if11.html + file_iframe_sandbox_a_if12.html + file_iframe_sandbox_a_if13.html + file_iframe_sandbox_a_if14.html + file_iframe_sandbox_a_if15.html + file_iframe_sandbox_a_if16.html + file_iframe_sandbox_a_if17.html + file_iframe_sandbox_a_if18.html + file_iframe_sandbox_a_if19.html + file_iframe_sandbox_a_if2.html + file_iframe_sandbox_a_if3.html + file_iframe_sandbox_a_if4.html + file_iframe_sandbox_a_if5.html + file_iframe_sandbox_a_if6.html + file_iframe_sandbox_a_if7.html + file_iframe_sandbox_a_if8.html + file_iframe_sandbox_a_if9.html + file_iframe_sandbox_b_if1.html + file_iframe_sandbox_b_if2.html + file_iframe_sandbox_b_if3.html + file_iframe_sandbox_c_if1.html + file_iframe_sandbox_c_if2.html + file_iframe_sandbox_c_if3.html + file_iframe_sandbox_c_if4.html + file_iframe_sandbox_c_if5.html + file_iframe_sandbox_c_if6.html + file_iframe_sandbox_c_if7.html + file_iframe_sandbox_c_if8.html + file_iframe_sandbox_c_if9.html + file_iframe_sandbox_close.html + file_iframe_sandbox_d_if1.html + file_iframe_sandbox_d_if10.html + file_iframe_sandbox_d_if11.html + file_iframe_sandbox_d_if12.html + file_iframe_sandbox_d_if13.html + file_iframe_sandbox_d_if14.html + file_iframe_sandbox_d_if15.html + file_iframe_sandbox_d_if16.html + file_iframe_sandbox_d_if17.html + file_iframe_sandbox_d_if18.html + file_iframe_sandbox_d_if19.html + file_iframe_sandbox_d_if2.html + file_iframe_sandbox_d_if20.html + file_iframe_sandbox_d_if21.html + file_iframe_sandbox_d_if22.html + file_iframe_sandbox_d_if23.html + file_iframe_sandbox_d_if3.html + file_iframe_sandbox_d_if4.html + file_iframe_sandbox_d_if5.html + file_iframe_sandbox_d_if6.html + file_iframe_sandbox_d_if7.html + file_iframe_sandbox_d_if8.html + file_iframe_sandbox_d_if9.html + file_iframe_sandbox_e_if1.html + file_iframe_sandbox_e_if10.html + file_iframe_sandbox_e_if11.html + file_iframe_sandbox_e_if12.html + file_iframe_sandbox_e_if13.html + file_iframe_sandbox_e_if14.html + file_iframe_sandbox_e_if15.html + file_iframe_sandbox_e_if16.html + file_iframe_sandbox_e_if2.html + file_iframe_sandbox_e_if3.html + file_iframe_sandbox_e_if4.html + file_iframe_sandbox_e_if5.html + file_iframe_sandbox_e_if6.html + file_iframe_sandbox_e_if7.html + file_iframe_sandbox_e_if8.html + file_iframe_sandbox_e_if9.html + file_iframe_sandbox_fail.js + file_iframe_sandbox_form_fail.html + file_iframe_sandbox_form_pass.html + file_iframe_sandbox_g_if1.html + file_iframe_sandbox_h_if1.html + file_iframe_sandbox_k_if1.html + file_iframe_sandbox_k_if2.html + file_iframe_sandbox_k_if3.html + file_iframe_sandbox_k_if4.html + file_iframe_sandbox_k_if5.html + file_iframe_sandbox_k_if6.html + file_iframe_sandbox_k_if7.html + file_iframe_sandbox_k_if8.html + file_iframe_sandbox_k_if9.html + file_iframe_sandbox_navigation_fail.html + file_iframe_sandbox_navigation_pass.html + file_iframe_sandbox_navigation_start.html + file_iframe_sandbox_open_window_fail.html + file_iframe_sandbox_open_window_pass.html + file_iframe_sandbox_pass.js + file_iframe_sandbox_redirect.html + file_iframe_sandbox_redirect.html^headers^ + file_iframe_sandbox_redirect_target.html + file_iframe_sandbox_refresh.html + file_iframe_sandbox_refresh.html^headers^ + file_iframe_sandbox_srcdoc_allow_scripts.html + file_iframe_sandbox_srcdoc_no_allow_scripts.html + file_iframe_sandbox_top_navigation_fail.html + file_iframe_sandbox_top_navigation_pass.html + file_iframe_sandbox_window_form_fail.html + file_iframe_sandbox_window_form_pass.html + file_iframe_sandbox_window_navigation_fail.html + file_iframe_sandbox_window_navigation_pass.html + file_iframe_sandbox_window_top_navigation_pass.html + file_iframe_sandbox_window_top_navigation_fail.html + file_iframe_sandbox_worker.js + file_srcdoc-2.html + file_srcdoc.html + file_srcdoc_iframe3.html + file_window_open_close_outer.html + file_window_open_close_inner.html + formSubmission_chrome.js + form_submit_server.sjs + formData_worker.js + formData_test.js + image.png + image-allow-credentials.png + image-allow-credentials.png^headers^ + nnc_lockup.gif + reflect.js + simpleFileOpener.js + file_bug1166138_1x.png + file_bug1166138_2x.png + file_bug1166138_def.png + script_fakepath.js + sw_formSubmission.js + object_bug287465_o1.html + object_bug287465_o2.html + object_bug556645.html + file.webm + !/gfx/layers/apz/test/mochitest/apz_test_utils.js + +[test_a_text.html] +[test_anchor_href_cache_invalidation.html] +[test_base_attributes_reflection.html] +[test_bug100533.html] +[test_bug109445.html] +[test_bug109445.xhtml] +[test_bug1297.html] +[test_bug1366.html] +[test_bug1400.html] +[test_bug143220.html] +[test_bug182279.html] +[test_bug2082.html] +[test_bug209275.xhtml] +skip-if = toolkit == 'android' #TIMED_OUT +[test_bug237071.html] +[test_bug242709.html] +[test_bug24958.html] +[test_bug274626.html] +[test_bug277724.html] +[test_bug277890.html] +[test_bug287465.html] +[test_bug295561.html] +[test_bug297761.html] +[test_bug300691-1.html] +[test_bug300691-2.html] +[test_bug300691-3.xhtml] +[test_bug330705-1.html] +[test_bug332246.html] +[test_bug332893-1.html] +[test_bug332893-2.html] +[test_bug332893-3.html] +[test_bug332893-4.html] +[test_bug332893-5.html] +[test_bug332893-6.html] +[test_bug332893-7.html] +[test_bug3348.html] +[test_bug340800.html] +[test_bug347174.html] +[test_bug347174_write.html] +[test_bug347174_xsl.html] +[test_bug347174_xslp.html] +[test_bug353415-1.html] +[test_bug353415-2.html] +[test_bug371375.html] +[test_bug372098.html] +[test_bug373589.html] +[test_bug375003-1.html] +[test_bug375003-2.html] +[test_bug377624.html] +[test_bug383383.html] +[test_bug383383_2.xhtml] +[test_bug384419.html] +[test_bug386496.html] +[test_bug386728.html] +[test_bug386996.html] +[test_bug388558.html] +[test_bug388746.html] +[test_bug388794.html] +[test_bug389797.html] +[test_bug390975.html] +[test_bug391994.html] +[test_bug394700.html] +[test_bug395107.html] +[test_bug401160.xhtml] +[test_bug405242.html] +[test_bug406596.html] +[test_bug417760.html] +[test_bug421640.html] +[test_bug424698.html] +[test_bug428135.xhtml] +[test_bug430351.html] +skip-if = toolkit == 'android' # Bug 1525959 +[test_bug441930.html] +[test_bug442801.html] +[test_bug448166.html] +[test_bug456229.html] +[test_bug458037.xhtml] +allow_xul_xbl = true +skip-if = + http3 +[test_bug460568.html] +[test_bug481335.xhtml] +skip-if = toolkit == 'android' #TIMED_OUT +[test_bug500885.html] +[test_bug514856.html] +[test_bug518122.html] +[test_bug519987.html] +[test_bug523771.html] +[test_bug529819.html] +[test_bug529859.html] +[test_bug535043.html] +[test_bug536891.html] +[test_bug536895.html] +[test_bug546995.html] +[test_bug547850.html] +[test_bug551846.html] +[test_bug555567.html] +[test_bug556645.html] +[test_bug557087-1.html] +[test_bug557087-2.html] +[test_bug557087-3.html] +[test_bug557087-4.html] +[test_bug557087-5.html] +[test_bug557087-6.html] +[test_bug557620.html] +[test_bug558788-1.html] +[test_bug558788-2.html] +[test_bug560112.html] +[test_bug561634.html] +[test_bug561636.html] +[test_bug561640.html] +[test_bug564001.html] +[test_bug566046.html] +[test_bug567938-1.html] +[test_bug567938-2.html] +[test_bug567938-3.html] +[test_bug567938-4.html] +[test_bug569955.html] +[test_bug573969.html] +[test_bug579079.html] +[test_bug582412-1.html] +[test_bug582412-2.html] +[test_bug583514.html] +[test_bug583533.html] +[test_bug586763.html] +[test_bug586786.html] +[test_bug587469.html] +[test_bug589.html] +[test_bug590353-1.html] +[test_bug590353-2.html] +[test_bug590363.html] +[test_bug592802.html] +[test_bug593689.html] +[test_bug595429.html] +[test_bug595447.html] +[test_bug595449.html] +[test_bug596350.html] +[test_bug596511.html] +[test_bug598643.html] +[test_bug598833-1.html] +[test_bug600155.html] +[test_bug601030.html] +[test_bug605124-1.html] +[test_bug605124-2.html] +[test_bug605125-1.html] +[test_bug605125-2.html] +[test_bug606817.html] +[test_bug607145.html] +skip-if = + http3 +[test_bug610212.html] +[test_bug610687.html] +[test_bug611189.html] +[test_bug612730.html] +skip-if = toolkit == 'android' # form control not selected/checked with synthesizeMouse +[test_bug613113.html] +[test_bug613019.html] +[test_bug613722.html] +[test_bug613979.html] +[test_bug615595.html] +fail-if = xorigin +[test_bug615833.html] +skip-if = toolkit == 'android' + os == 'mac' #TIMED_OUT # form control not selected/checked with synthesizeMouse, osx(bug 1275664) +[test_bug618948.html] +[test_bug619278.html] +[test_bug622558.html] +[test_bug622597.html] +[test_bug623291.html] +[test_bug6296.html] +[test_bug629801.html] +[test_bug633058.html] +[test_bug636336.html] +[test_bug641219.html] +[test_bug643051.html] +[test_bug646157.html] +[test_bug649134.html] +# This extra subdirectory is needed due to the nature of this test. +# With the bug, the test loads the base URL of the bug649134/file_*.sjs +# files, and the mochitest server responds with the contents of index.html if +# it exists in that case, which we use to detect failure. +# We cannot have index.html in this directory because it would prevent +# running the tests here. +support-files = + bug649134/file_bug649134-1.sjs + bug649134/file_bug649134-2.sjs + bug649134/index.html +skip-if = + http3 +[test_bug651956.html] +[test_bug658746.html] +[test_bug659596.html] +[test_bug659743.xml] +[test_bug660663.html] +[test_bug660959-1.html] +[test_bug660959-2.html] +[test_bug660959-3.html] +[test_bug666200.html] +[test_bug666666.html] +[test_bug669012.html] +[test_bug674558.html] +[test_bug674927.html] +[test_bug677658.html] +[test_bug682886.html] +[test_bug691.html] +[test_bug694.html] +[test_bug694503.html] +skip-if = toolkit == 'android' # Bug 1525959 +[test_bug696.html] +[test_bug717819.html] +[test_bug742030.html] +[test_bug742549.html] +[test_bug745685.html] +[test_bug763626.html] +[test_bug780993.html] +[test_bug787134.html] +[test_bug797113.html] +[test_bug803677.html] +[test_bug821307.html] +[test_bug827126.html] +[test_bug838582.html] +[test_bug839371.html] +[test_bug839913.html] +[test_bug841466.html] +[test_bug845057.html] +[test_bug869040.html] +[test_bug870787.html] +[test_bug874758.html] +[test_bug879319.html] +[test_bug885024.html] +[test_bug893537.html] +[test_bug95530.html] +[test_bug969346.html] +[test_bug982039.html] +[test_bug1003539.html] +[test_bug1045270.html] +[test_bug1089326.html] +[test_bug1146116.html] +[test_bug1264157.html] +[test_bug1287321.html] +[test_bug1323815.html] +[test_change_crossorigin.html] +skip-if = + http3 +[test_checked.html] +[test_dir_attributes_reflection.html] +[test_dl_attributes_reflection.html] +[test_element_prototype.html] +[test_embed_attributes_reflection.html] +[test_focusshift_button.html] +[test_formData.html] +[test_formSubmission.html] +skip-if = toolkit == 'android' #TIMED_OUT +[test_formSubmission2.html] +skip-if = toolkit == 'android' +[test_formelements.html] +[test_hidden.html] +[test_html_attributes_reflection.html] +[test_htmlcollection.html] +[test_iframe_sandbox_general.html] +tags = openwindow +skip-if = + http3 +[test_iframe_sandbox_inheritance.html] +tags = openwindow +[test_iframe_sandbox_navigation.html] +tags = openwindow +[test_iframe_sandbox_navigation2.html] +tags = openwindow +[test_iframe_sandbox_popups.html] +tags = openwindow +[test_iframe_sandbox_popups_inheritance.html] +tags = openwindow +[test_iframe_sandbox_redirect.html] +[test_iframe_sandbox_refresh.html] +[test_iframe_sandbox_same_origin.html] +[test_iframe_sandbox_workers.html] +[test_img_attributes_reflection.html] +[test_imageSrcSet.html] +[test_inputmode.html] +[test_li_attributes_reflection.html] +[test_link_attributes_reflection.html] +[test_link_sizes.html] +[test_map_attributes_reflection.html] +[test_meta_attributes_reflection.html] +[test_mod_attributes_reflection.html] +[test_named_options.html] +[test_nested_invalid_fieldsets.html] +[test_object_attributes_reflection.html] +[test_ol_attributes_reflection.html] +[test_option_defaultSelected.html] +[test_option_selected_state.html] +[test_param_attributes_reflection.html] +[test_q_attributes_reflection.html] +[test_restore_from_parser_fragment.html] +[test_rowscollection.html] +[test_srcdoc-2.html] +[test_srcdoc.html] +[test_style_attributes_reflection.html] +[test_track.html] +[test_ul_attributes_reflection.html] +[test_input_file_cancel_event.html] +[test_input_files_not_nsIFile.html] +[test_input_lastInteractiveValue.html] +[test_fragment_form_pointer.html] +[test_bug1682.html] +[test_bug1823.html] +[test_bug57600.html] +[test_bug196523.html] +skip-if = + http3 +[test_bug199692.html] +[test_bug255820.html] +[test_bug259332.html] +[test_bug311681.html] +[test_bug311681.xhtml] +[test_bug324378.html] +[test_bug332848.xhtml] +[test_bug340017.xhtml] +[test_bug359657.html] +[test_bug369370.html] +skip-if = toolkit == "android" + os == 'linux' # disabled on linux bug 1258103 +[test_bug380383.html] +[test_bug402680.html] +[test_bug403868.html] +[test_bug403868.xhtml] +[test_bug435128.html] +skip-if = true # Disabled for timeouts. +[test_bug463104.html] +[test_form-parsing.html] +[test_documentAll.html] +[test_document-element-inserted.html] +[test_bug445004.html] +skip-if = true # Disabled permanently (bug 559932). +[test_bug446483.html] +[test_bug448564.html] +[test_bug478251.html] +[test_bug481440.html] +[test_bug481647.html] +[test_bug482659.html] +[test_bug486741.html] +[test_bug489532.html] +[test_bug497242.xhtml] +[test_bug499092.html] +[test_bug512367.html] +[test_bug677495.html] +[test_bug677495-1.html] +[test_bug741266.html] +skip-if = toolkit == "android" # Android: needs control of popup window size +[test_non-ascii-cookie.html] +support-files = file_cookiemanager.js +skip-if = + xorigin + http3 +[test_bug765780.html] +[test_bug871161.html] +support-files = file_bug871161-1.html file_bug871161-2.html +skip-if = + http3 +[test_bug1013316.html] +[test_window_open_close.html] +tags = openwindow +skip-if = (toolkit == "android" && debug) || (os == "linux") || (os == "win" && debug && bits == 64) # Bug 1533759 +[test_viewport_resize.html] +[test_image_clone_load.html] +skip-if = + http3 +[test_bug1203668.html] +[test_bug1166138.html] +[test_bug1230665.html] +[test_filepicker_default_directory.html] +[test_bug1250401.html] +[test_bug1260664.html] +[test_bug1261673.html] +skip-if = (os == 'android' || os == 'mac') +[test_bug1261674-1.html] +skip-if = (os == 'android' || os == 'mac') +[test_bug1261674-2.html] +skip-if = (os == 'mac') +[test_bug1260704.html] +skip-if = + http3 +[test_allowMedia.html] +skip-if = (verify && (os == 'linux' || os == 'win')) || ((!debug && os == "mac" && bits == 64) || (debug && os == "win") || (debug && os == "linux" && os_version == '18.04')) #Bug 1434744 +[test_bug1292522_same_domain_with_different_port_number.html] +skip-if = + http3 +[test_bug1295719_event_sequence_for_arrow_keys.html] +skip-if = os == "android" # up/down arrow keys not supported on android +[test_bug1295719_event_sequence_for_number_keys.html] +[test_bug1310865.html] +[test_bug1315146.html] +skip-if = + http3 +[test_bug1322678.html] +skip-if = toolkit == "android" +[test_bug1472426.html] +[test_bug1785739.html] +[test_fakepath.html] +[test_script_module.html] +support-files = + file_script_module.html + file_script_nomodule.html +[test_getElementsByName_after_mutation.html] +[test_bug1279218.html] +[test_set_input_files.html] +[test_nestediframe.html] +[test_multipleFilePicker.html] +[test_window_open_from_closing.html] +skip-if = toolkit == "android" # test does not function on android due to aggressive background tab freezing +support-files = + file_window_close_and_open.html + file_broadcast_load.html +[test_frame_count_with_synthetic_doc.html] diff --git a/dom/html/test/nnc_lockup.gif b/dom/html/test/nnc_lockup.gif new file mode 100644 index 0000000000..f746bb71d9 Binary files /dev/null and b/dom/html/test/nnc_lockup.gif differ diff --git a/dom/html/test/object_bug287465_o1.html b/dom/html/test/object_bug287465_o1.html new file mode 100644 index 0000000000..0a65a7f9e1 --- /dev/null +++ b/dom/html/test/object_bug287465_o1.html @@ -0,0 +1 @@ + diff --git a/dom/html/test/object_bug287465_o2.html b/dom/html/test/object_bug287465_o2.html new file mode 100644 index 0000000000..18ecdcb795 --- /dev/null +++ b/dom/html/test/object_bug287465_o2.html @@ -0,0 +1 @@ + diff --git a/dom/html/test/object_bug556645.html b/dom/html/test/object_bug556645.html new file mode 100644 index 0000000000..773837502a --- /dev/null +++ b/dom/html/test/object_bug556645.html @@ -0,0 +1 @@ + diff --git a/dom/html/test/post_action_page.html b/dom/html/test/post_action_page.html new file mode 100644 index 0000000000..ba6ae514f2 --- /dev/null +++ b/dom/html/test/post_action_page.html @@ -0,0 +1,10 @@ + + + + + Submission Flush Test Post Action Page + + +

Post Action Page

+ + diff --git a/dom/html/test/reflect.js b/dom/html/test/reflect.js new file mode 100644 index 0000000000..44f73ae4a2 --- /dev/null +++ b/dom/html/test/reflect.js @@ -0,0 +1,1078 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * reflect.js is a collection of methods to test HTML attribute reflection. + * Each of attribute is reflected differently, depending on various parameters, + * see: + * http://www.whatwg.org/html/#reflecting-content-attributes-in-idl-attributes + * + * Do not forget to add these line at the beginning of each new reflect* method: + * ok(attr in element, attr + " should be an IDL attribute of this element"); + * is(typeof element[attr], , attr + " IDL attribute should be a "); + */ + +/** + * Checks that a given attribute is correctly reflected as a string. + * + * @param aParameters Object object containing the parameters, which are: + * - element Element node to test + * - attribute String name of the attribute + * OR + * attribute Object object containing two attributes, 'content' and 'idl' + * - otherValues Array [optional] other values to test in addition of the default ones + * - extendedAttributes Object object which can have 'TreatNullAs': "EmptyString" + */ +function reflectString(aParameters) { + var element = aParameters.element; + var contentAttr = + typeof aParameters.attribute === "string" + ? aParameters.attribute + : aParameters.attribute.content; + var idlAttr = + typeof aParameters.attribute === "string" + ? aParameters.attribute + : aParameters.attribute.idl; + var otherValues = + aParameters.otherValues !== undefined ? aParameters.otherValues : []; + var treatNullAs = aParameters.extendedAttributes + ? aParameters.extendedAttributes.TreatNullAs + : null; + + ok( + idlAttr in element, + idlAttr + " should be an IDL attribute of this element" + ); + is( + typeof element[idlAttr], + "string", + "'" + idlAttr + "' IDL attribute should be a string" + ); + + // Tests when the attribute isn't set. + is( + element.getAttribute(contentAttr), + null, + "When not set, the content attribute should be null." + ); + is( + element[idlAttr], + "", + "When not set, the IDL attribute should return the empty string" + ); + + /** + * TODO: as long as null stringification doesn't follow the WebIDL + * specifications, don't add it to the loop below and keep it here. + */ + element.setAttribute(contentAttr, null); + is( + element.getAttribute(contentAttr), + "null", + "null should have been stringified to 'null' for '" + contentAttr + "'" + ); + is( + element[idlAttr], + "null", + "null should have been stringified to 'null' for '" + idlAttr + "'" + ); + element.removeAttribute(contentAttr); + + element[idlAttr] = null; + if (treatNullAs == "EmptyString") { + is( + element.getAttribute(contentAttr), + "", + "null should have been stringified to '' for '" + contentAttr + "'" + ); + is( + element[idlAttr], + "", + "null should have been stringified to '' for '" + idlAttr + "'" + ); + } else { + is( + element.getAttribute(contentAttr), + "null", + "null should have been stringified to 'null' for '" + contentAttr + "'" + ); + is( + element[idlAttr], + "null", + "null should have been stringified to 'null' for '" + contentAttr + "'" + ); + } + element.removeAttribute(contentAttr); + + // Tests various strings. + var stringsToTest = [ + // [ test value, expected result ] + ["", ""], + ["null", "null"], + ["undefined", "undefined"], + ["foo", "foo"], + [contentAttr, contentAttr], + [idlAttr, idlAttr], + // TODO: uncomment this when null stringification will follow the specs. + // [ null, "null" ], + [undefined, "undefined"], + [true, "true"], + [false, "false"], + [42, "42"], + // ES5, verse 8.12.8. + [ + { + toString() { + return "foo"; + }, + }, + "foo", + ], + [ + { + valueOf() { + return "foo"; + }, + }, + "[object Object]", + ], + [ + { + valueOf() { + return "quux"; + }, + toString: undefined, + }, + "quux", + ], + [ + { + valueOf() { + return "foo"; + }, + toString() { + return "bar"; + }, + }, + "bar", + ], + ]; + + otherValues.forEach(function (v) { + stringsToTest.push([v, v]); + }); + + stringsToTest.forEach(function ([v, r]) { + element.setAttribute(contentAttr, v); + is( + element[idlAttr], + r, + "IDL attribute '" + + idlAttr + + "' should return the value it has been set to." + ); + is( + element.getAttribute(contentAttr), + r, + "Content attribute '" + + contentAttr + + "'should return the value it has been set to." + ); + element.removeAttribute(contentAttr); + + element[idlAttr] = v; + is( + element[idlAttr], + r, + "IDL attribute '" + + idlAttr + + "' should return the value it has been set to." + ); + is( + element.getAttribute(contentAttr), + r, + "Content attribute '" + + contentAttr + + "' should return the value it has been set to." + ); + element.removeAttribute(contentAttr); + }); + + // Tests after removeAttribute() is called. Should be equivalent with not set. + is( + element.getAttribute(contentAttr), + null, + "When not set, the content attribute should be null." + ); + is( + element[idlAttr], + "", + "When not set, the IDL attribute should return the empty string" + ); +} + +/** + * Checks that a given attribute name for a given element is correctly reflected + * as an unsigned int. + * + * @param aParameters Object object containing the parameters, which are: + * - element Element node to test on + * - attribute String name of the attribute + * - nonZero Boolean whether the attribute should be non-null + * - defaultValue Integer [optional] default value, if different from the default one + */ +function reflectUnsignedInt(aParameters) { + var element = aParameters.element; + var attr = aParameters.attribute; + var nonZero = aParameters.nonZero; + var defaultValue = aParameters.defaultValue; + var fallback = aParameters.fallback; + + if (defaultValue === undefined) { + if (nonZero) { + defaultValue = 1; + } else { + defaultValue = 0; + } + } + + if (fallback === undefined) { + fallback = false; + } + + ok(attr in element, attr + " should be an IDL attribute of this element"); + is( + typeof element[attr], + "number", + attr + " IDL attribute should be a number" + ); + + // Check default value. + is(element[attr], defaultValue, "default value should be " + defaultValue); + ok(!element.hasAttribute(attr), attr + " shouldn't be present"); + + var values = [1, 3, 42, 2147483647]; + + for (var value of values) { + element[attr] = value; + is(element[attr], value, "." + attr + " should be equals " + value); + is( + element.getAttribute(attr), + String(value), + "@" + attr + " should be equals " + value + ); + + element.setAttribute(attr, value); + is(element[attr], value, "." + attr + " should be equals " + value); + is( + element.getAttribute(attr), + String(value), + "@" + attr + " should be equals " + value + ); + } + + // -3000000000 is equivalent to 1294967296 when using the IDL attribute. + element[attr] = -3000000000; + is(element[attr], 1294967296, "." + attr + " should be equals to 1294967296"); + is( + element.getAttribute(attr), + "1294967296", + "@" + attr + " should be equals to 1294967296" + ); + + // When setting the content attribute, it's a string so it will be invalid. + element.setAttribute(attr, -3000000000); + is( + element.getAttribute(attr), + "-3000000000", + "@" + attr + " should be equals to " + -3000000000 + ); + is( + element[attr], + defaultValue, + "." + attr + " should be equals to " + defaultValue + ); + + // When interpreted as unsigned 32-bit integers, all of these fall between + // 2^31 and 2^32 - 1, so per spec they return the default value. + var nonValidValues = [-2147483648, -1, 3147483647]; + + for (var value of nonValidValues) { + element[attr] = value; + is( + element.getAttribute(attr), + String(defaultValue), + "@" + attr + " should be equals to " + defaultValue + ); + is( + element[attr], + defaultValue, + "." + attr + " should be equals to " + defaultValue + ); + } + + for (var values of nonValidValues) { + element.setAttribute(attr, values[0]); + is( + element.getAttribute(attr), + String(values[0]), + "@" + attr + " should be equals to " + values[0] + ); + is( + element[attr], + defaultValue, + "." + attr + " should be equals to " + defaultValue + ); + } + + // Setting to 0 should throw an error if nonZero is true. + var caught = false; + try { + element[attr] = 0; + } catch (e) { + caught = true; + is(e.name, "IndexSizeError", "exception should be IndexSizeError"); + is( + e.code, + DOMException.INDEX_SIZE_ERR, + "exception code should be INDEX_SIZE_ERR" + ); + } + + if (nonZero && !fallback) { + ok(caught, "an exception should have been caught"); + } else { + ok(!caught, "no exception should have been caught"); + } + + // If 0 is set in @attr, it will be ignored when calling .attr. + element.setAttribute(attr, "0"); + is(element.getAttribute(attr), "0", "@" + attr + " should be equals to 0"); + if (nonZero) { + is( + element[attr], + defaultValue, + "." + attr + " should be equals to " + defaultValue + ); + } else { + is(element[attr], 0, "." + attr + " should be equals to 0"); + } +} + +/** + * Checks that a given attribute is correctly reflected as limited to known + * values enumerated attribute. + * + * @param aParameters Object object containing the parameters, which are: + * - element Element node to test on + * - attribute String name of the attribute + * OR + * attribute Object object containing two attributes, 'content' and 'idl' + * - validValues Array valid values we support + * - invalidValues Array invalid values + * - defaultValue String [optional] default value when no valid value is set + * OR + * defaultValue Object [optional] object containing two attributes, 'invalid' and 'missing' + * - unsupportedValues Array [optional] valid values we do not support + * - nullable boolean [optional] whether the attribute is nullable + */ +function reflectLimitedEnumerated(aParameters) { + var element = aParameters.element; + var contentAttr = + typeof aParameters.attribute === "string" + ? aParameters.attribute + : aParameters.attribute.content; + var idlAttr = + typeof aParameters.attribute === "string" + ? aParameters.attribute + : aParameters.attribute.idl; + var validValues = aParameters.validValues; + var invalidValues = aParameters.invalidValues; + var defaultValueInvalid = + aParameters.defaultValue === undefined + ? "" + : typeof aParameters.defaultValue === "string" + ? aParameters.defaultValue + : aParameters.defaultValue.invalid; + var defaultValueMissing = + aParameters.defaultValue === undefined + ? "" + : typeof aParameters.defaultValue === "string" + ? aParameters.defaultValue + : aParameters.defaultValue.missing; + var unsupportedValues = + aParameters.unsupportedValues !== undefined + ? aParameters.unsupportedValues + : []; + var nullable = aParameters.nullable; + + ok( + idlAttr in element, + idlAttr + " should be an IDL attribute of this element" + ); + if (nullable) { + // The missing value default is null, which is typeof == "object" + is( + typeof element[idlAttr], + "object", + "'" + + idlAttr + + "' IDL attribute should be null, which has typeof == object" + ); + is( + element[idlAttr], + null, + "'" + idlAttr + "' IDL attribute should be null" + ); + } else { + is( + typeof element[idlAttr], + "string", + "'" + idlAttr + "' IDL attribute should be a string" + ); + } + + if (nullable) { + element.setAttribute(contentAttr, "something"); + // Now it will be a string + is( + typeof element[idlAttr], + "string", + "'" + idlAttr + "' IDL attribute should be a string" + ); + } + + // Explicitly check the default value. + element.removeAttribute(contentAttr); + is( + element[idlAttr], + defaultValueMissing, + "When no attribute is set, the value should be the default value." + ); + + // Check valid values. + validValues.forEach(function (v) { + element.setAttribute(contentAttr, v); + is( + element[idlAttr], + v, + "'" + v + "' should be accepted as a valid value for " + idlAttr + ); + is( + element.getAttribute(contentAttr), + v, + "Content attribute should return the value it has been set to." + ); + element.removeAttribute(contentAttr); + + element.setAttribute(contentAttr, v.toUpperCase()); + is( + element[idlAttr], + v, + "Enumerated attributes should be case-insensitive." + ); + is( + element.getAttribute(contentAttr), + v.toUpperCase(), + "Content attribute should not be lower-cased." + ); + element.removeAttribute(contentAttr); + + element[idlAttr] = v; + is( + element[idlAttr], + v, + "'" + v + "' should be accepted as a valid value for " + idlAttr + ); + is( + element.getAttribute(contentAttr), + v, + "Content attribute should return the value it has been set to." + ); + element.removeAttribute(contentAttr); + + element[idlAttr] = v.toUpperCase(); + is( + element[idlAttr], + v, + "Enumerated attributes should be case-insensitive." + ); + is( + element.getAttribute(contentAttr), + v.toUpperCase(), + "Content attribute should not be lower-cased." + ); + element.removeAttribute(contentAttr); + }); + + // Check invalid values. + invalidValues.forEach(function (v) { + element.setAttribute(contentAttr, v); + is( + element[idlAttr], + defaultValueInvalid, + "When the content attribute is set to an invalid value, the default value should be returned." + ); + is( + element.getAttribute(contentAttr), + v, + "Content attribute should not have been changed." + ); + element.removeAttribute(contentAttr); + + element[idlAttr] = v; + is( + element[idlAttr], + defaultValueInvalid, + "When the value is set to an invalid value, the default value should be returned." + ); + is( + element.getAttribute(contentAttr), + v, + "Content attribute should not have been changed." + ); + element.removeAttribute(contentAttr); + }); + + // Check valid values we currently do not support. + // Basically, it's like the checks for the valid values but with some todo's. + unsupportedValues.forEach(function (v) { + element.setAttribute(contentAttr, v); + todo_is( + element[idlAttr], + v, + "'" + v + "' should be accepted as a valid value for " + idlAttr + ); + is( + element.getAttribute(contentAttr), + v, + "Content attribute should return the value it has been set to." + ); + element.removeAttribute(contentAttr); + + element.setAttribute(contentAttr, v.toUpperCase()); + todo_is( + element[idlAttr], + v, + "Enumerated attributes should be case-insensitive." + ); + is( + element.getAttribute(contentAttr), + v.toUpperCase(), + "Content attribute should not be lower-cased." + ); + element.removeAttribute(contentAttr); + + element[idlAttr] = v; + todo_is( + element[idlAttr], + v, + "'" + v + "' should be accepted as a valid value for " + idlAttr + ); + is( + element.getAttribute(contentAttr), + v, + "Content attribute should return the value it has been set to." + ); + element.removeAttribute(contentAttr); + + element[idlAttr] = v.toUpperCase(); + todo_is( + element[idlAttr], + v, + "Enumerated attributes should be case-insensitive." + ); + is( + element.getAttribute(contentAttr), + v.toUpperCase(), + "Content attribute should not be lower-cased." + ); + element.removeAttribute(contentAttr); + }); + + if (nullable) { + is( + defaultValueMissing, + null, + "Missing default value should be null for nullable attributes" + ); + ok(validValues.length, "We better have at least one valid value"); + element.setAttribute(contentAttr, validValues[0]); + ok( + element.hasAttribute(contentAttr), + "Should have content attribute: we just set it" + ); + element[idlAttr] = null; + ok( + !element.hasAttribute(contentAttr), + "Should have removed content attribute" + ); + } +} + +/** + * Checks that a given attribute is correctly reflected as a boolean. + * + * @param aParameters Object object containing the parameters, which are: + * - element Element node to test on + * - attribute String name of the attribute + * OR + * attribute Object object containing two attributes, 'content' and 'idl' + */ +function reflectBoolean(aParameters) { + var element = aParameters.element; + var contentAttr = + typeof aParameters.attribute === "string" + ? aParameters.attribute + : aParameters.attribute.content; + var idlAttr = + typeof aParameters.attribute === "string" + ? aParameters.attribute + : aParameters.attribute.idl; + + ok( + idlAttr in element, + idlAttr + " should be an IDL attribute of this element" + ); + is( + typeof element[idlAttr], + "boolean", + idlAttr + " IDL attribute should be a boolean" + ); + + // Tests when the attribute isn't set. + is( + element.getAttribute(contentAttr), + null, + "When not set, the content attribute should be null." + ); + is( + element[idlAttr], + false, + "When not set, the IDL attribute should return false" + ); + + /** + * Test various values. + * Each value to test is actually an object containing a 'value' property + * containing the value to actually test, a 'stringified' property containing + * the stringified value and a 'result' property containing the expected + * result when the value is set to the IDL attribute. + */ + var valuesToTest = [ + { value: true, stringified: "true", result: true }, + { value: false, stringified: "false", result: false }, + { value: "true", stringified: "true", result: true }, + { value: "false", stringified: "false", result: true }, + { value: "foo", stringified: "foo", result: true }, + { value: idlAttr, stringified: idlAttr, result: true }, + { value: contentAttr, stringified: contentAttr, result: true }, + { value: "null", stringified: "null", result: true }, + { value: "undefined", stringified: "undefined", result: true }, + { value: "", stringified: "", result: false }, + { value: undefined, stringified: "undefined", result: false }, + { value: null, stringified: "null", result: false }, + { value: +0, stringified: "0", result: false }, + { value: -0, stringified: "0", result: false }, + { value: NaN, stringified: "NaN", result: false }, + { value: 42, stringified: "42", result: true }, + { value: Infinity, stringified: "Infinity", result: true }, + { value: -Infinity, stringified: "-Infinity", result: true }, + // ES5, verse 9.2. + { + value: { + toString() { + return "foo"; + }, + }, + stringified: "foo", + result: true, + }, + { + value: { + valueOf() { + return "foo"; + }, + }, + stringified: "[object Object]", + result: true, + }, + { + value: { + valueOf() { + return "quux"; + }, + toString: undefined, + }, + stringified: "quux", + result: true, + }, + { + value: { + valueOf() { + return "foo"; + }, + toString() { + return "bar"; + }, + }, + stringified: "bar", + result: true, + }, + { + value: { + valueOf() { + return false; + }, + }, + stringified: "[object Object]", + result: true, + }, + { + value: { foo: false, bar: false }, + stringified: "[object Object]", + result: true, + }, + { value: {}, stringified: "[object Object]", result: true }, + ]; + + valuesToTest.forEach(function (v) { + element.setAttribute(contentAttr, v.value); + is( + element[idlAttr], + true, + "IDL attribute should return always return 'true' if the content attribute has been set" + ); + is( + element.getAttribute(contentAttr), + v.stringified, + "Content attribute should return the stringified value it has been set to." + ); + element.removeAttribute(contentAttr); + + element[idlAttr] = v.value; + is(element[idlAttr], v.result, "IDL attribute should return " + v.result); + is( + element.getAttribute(contentAttr), + v.result ? "" : null, + v.result + ? "Content attribute should return the empty string." + : "Content attribute should return null." + ); + is( + element.hasAttribute(contentAttr), + v.result, + v.result + ? contentAttr + " should not be present" + : contentAttr + " should be present" + ); + element.removeAttribute(contentAttr); + }); + + // Tests after removeAttribute() is called. Should be equivalent with not set. + is( + element.getAttribute(contentAttr), + null, + "When not set, the content attribute should be null." + ); + is( + element[contentAttr], + false, + "When not set, the IDL attribute should return false" + ); +} + +/** + * Checks that a given attribute name for a given element is correctly reflected + * as an signed integer. + * + * @param aParameters Object object containing the parameters, which are: + * - element Element node to test on + * - attribute String name of the attribute + * - nonNegative Boolean true if the attribute is limited to 'non-negative numbers', false otherwise + * - defaultValue Integer [optional] default value, if one exists + */ +function reflectInt(aParameters) { + // Expected value returned by .getAttribute() when |value| has been previously passed to .setAttribute(). + function expectedGetAttributeResult(value) { + return String(value); + } + + function stringToInteger(value, nonNegative, defaultValue) { + // Parse: Ignore leading whitespace, find [+/-][numbers] + var result = /^[ \t\n\f\r]*([\+\-]?[0-9]+)/.exec(value); + if (result) { + var resultInt = parseInt(result[1], 10); + if ( + (nonNegative ? 0 : -0x80000000) <= resultInt && + resultInt <= 0x7fffffff + ) { + // If the value is within allowed value range for signed/unsigned + // integer, return it -- but add 0 to it to convert a possible -0 into + // +0, the only zero present in the signed integer range. + return resultInt + 0; + } + } + return defaultValue; + } + + // Expected value returned by .getAttribute(attr) or .attr if |value| has been set via the IDL attribute. + function expectedIdlAttributeResult(value) { + // This returns the result of calling the ES ToInt32 algorithm on value. + return value << 0; + } + + var element = aParameters.element; + var attr = aParameters.attribute; + var nonNegative = aParameters.nonNegative; + + var defaultValue = + aParameters.defaultValue !== undefined + ? aParameters.defaultValue + : nonNegative + ? -1 + : 0; + + ok(attr in element, attr + " should be an IDL attribute of this element"); + is( + typeof element[attr], + "number", + attr + " IDL attribute should be a number" + ); + + // Check default value. + is(element[attr], defaultValue, "default value should be " + defaultValue); + ok(!element.hasAttribute(attr), attr + " shouldn't be present"); + + /** + * Test various values. + * value: The test value that will be set using both setAttribute(value) and + * element[attr] = value + */ + var valuesToTest = [ + // Test numeric inputs up to max signed integer + 0, + 1, + 55555, + 2147483647, + +42, + // Test string inputs up to max signed integer + "0", + "1", + "777777", + "2147483647", + "+42", + // Test negative numeric inputs up to min signed integer + -0, + -1, + -3333, + -2147483648, + // Test negative string inputs up to min signed integer + "-0", + "-1", + "-222", + "-2147483647", + "-2147483648", + // Test numeric inputs that are outside legal 32 bit signed values + -2147483649, + -3000000000, + -4294967296, + 2147483649, + 4000000000, + -4294967297, + // Test string inputs with extra padding + " 1111111", + " 23456 ", + // Test non-numeric string inputs + "", + " ", + "+", + "-", + "foo", + "+foo", + "-foo", + "+ foo", + "- foo", + "+-2", + "-+2", + "++2", + "--2", + "hello1234", + "1234hello", + "444 world 555", + "why 567 what", + "-3 nots", + "2e5", + "300e2", + "42+-$", + "+42foo", + "-514not", + "\vblah", + "0x10FFFF", + "-0xABCDEF", + // Test decimal numbers + 1.2345, + 42.0, + 3456789.1, + -2.3456, + -6789.12345, + -2147483649.1234, + // Test decimal strings + "1.2345", + "42.0", + "3456789.1", + "-2.3456", + "-6789.12345", + "-2147483649.1234", + // Test special values + undefined, + null, + NaN, + Infinity, + -Infinity, + ]; + + valuesToTest.forEach(function (v) { + var intValue = stringToInteger(v, nonNegative, defaultValue); + + element.setAttribute(attr, v); + + is( + element.getAttribute(attr), + expectedGetAttributeResult(v), + element.localName + + ".setAttribute(" + + attr + + ", " + + v + + "), " + + element.localName + + ".getAttribute(" + + attr + + ") " + ); + + is( + element[attr], + intValue, + element.localName + + ".setAttribute(" + + attr + + ", " + + v + + "), " + + element.localName + + "[" + + attr + + "] " + ); + element.removeAttribute(attr); + + if (nonNegative && expectedIdlAttributeResult(v) < 0) { + try { + element[attr] = v; + ok( + false, + element.localName + + "[" + + attr + + "] = " + + v + + " should throw IndexSizeError" + ); + } catch (e) { + is( + e.name, + "IndexSizeError", + element.localName + + "[" + + attr + + "] = " + + v + + " should throw IndexSizeError" + ); + is( + e.code, + DOMException.INDEX_SIZE_ERR, + element.localName + + "[" + + attr + + "] = " + + v + + " should throw INDEX_SIZE_ERR" + ); + } + } else { + element[attr] = v; + is( + element[attr], + expectedIdlAttributeResult(v), + element.localName + + "[" + + attr + + "] = " + + v + + ", " + + element.localName + + "[" + + attr + + "] " + ); + is( + element.getAttribute(attr), + String(expectedIdlAttributeResult(v)), + element.localName + + "[" + + attr + + "] = " + + v + + ", " + + element.localName + + ".getAttribute(" + + attr + + ") " + ); + } + element.removeAttribute(attr); + }); + + // Tests after removeAttribute() is called. Should be equivalent with not set. + is( + element.getAttribute(attr), + null, + "When not set, the content attribute should be null." + ); + is( + element[attr], + defaultValue, + "When not set, the IDL attribute should return default value." + ); +} + +/** + * Checks that a given attribute is correctly reflected as a url. + * + * @param aParameters Object object containing the parameters, which are: + * - element Element node to test + * - attribute String name of the attribute + * OR + * attribute Object object containing two attributes, 'content' and 'idl' + */ +function reflectURL(aParameters) { + var element = aParameters.element; + var contentAttr = + typeof aParameters.attribute === "string" + ? aParameters.attribute + : aParameters.attribute.content; + var idlAttr = + typeof aParameters.attribute === "string" + ? aParameters.attribute + : aParameters.attribute.idl; + + element[idlAttr] = ""; + is( + element[idlAttr], + document.URL, + "Empty string should resolve to document URL" + ); +} diff --git a/dom/html/test/script_fakepath.js b/dom/html/test/script_fakepath.js new file mode 100644 index 0000000000..ac24dc90a2 --- /dev/null +++ b/dom/html/test/script_fakepath.js @@ -0,0 +1,15 @@ +/* eslint-env mozilla/chrome-script */ + +Cu.importGlobalProperties(["File"]); + +addMessageListener("file.open", function (e) { + var tmpFile = Cc["@mozilla.org/file/directory_service;1"] + .getService(Ci.nsIDirectoryService) + .QueryInterface(Ci.nsIProperties) + .get("ProfD", Ci.nsIFile); + tmpFile.append("prefs.js"); + + File.createFromNsIFile(tmpFile).then(file => { + sendAsyncMessage("file.opened", { data: [file] }); + }); +}); diff --git a/dom/html/test/simpleFileOpener.js b/dom/html/test/simpleFileOpener.js new file mode 100644 index 0000000000..9cec9cbf18 --- /dev/null +++ b/dom/html/test/simpleFileOpener.js @@ -0,0 +1,37 @@ +/* eslint-env mozilla/chrome-script */ + +Cu.importGlobalProperties(["File"]); + +var file; + +addMessageListener("file.open", function (stem) { + try { + if (!file) { + file = Cc["@mozilla.org/file/directory_service;1"] + .getService(Ci.nsIProperties) + .get("TmpD", Ci.nsIFile); + file.append(stem); + file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, 0o600); + } + + File.createFromNsIFile(file).then(function (domFile) { + sendAsyncMessage("file.opened", { + fullPath: file.path, + leafName: file.leafName, + domFile, + }); + }); + } catch (e) { + sendAsyncMessage("fail", e.toString()); + } +}); + +addMessageListener("file.remove", function () { + try { + file.remove(/* recursive: */ false); + file = undefined; + sendAsyncMessage("file.removed", null); + } catch (e) { + sendAsyncMessage("fail", e.toString()); + } +}); diff --git a/dom/html/test/submission_flush.html b/dom/html/test/submission_flush.html new file mode 100644 index 0000000000..f70884c66a --- /dev/null +++ b/dom/html/test/submission_flush.html @@ -0,0 +1,13 @@ + + + + + Submission Flush Test + + +
+ +
+ + + diff --git a/dom/html/test/sw_formSubmission.js b/dom/html/test/sw_formSubmission.js new file mode 100644 index 0000000000..e7b4a7872c --- /dev/null +++ b/dom/html/test/sw_formSubmission.js @@ -0,0 +1,36 @@ +/** + * We are used by test_formSubmission.html to immediately activate and start + * controlling its page. We operate in 3 modes, conveyed via ?MODE appended to + * our URL. + * + * - "no-fetch": Don't register a fetch listener so that the optimized fetch + * event bypass happens. + * - "reset-fetch": Do register a fetch listener, reset every interception. + * - "proxy-fetch": Do register a fetch listener, resolve every interception + * with fetch(event.request). + */ + +const mode = location.search.slice(1); + +// Fetch handling. +if (mode !== "no-fetch") { + addEventListener("fetch", function (event) { + if (mode === "reset-fetch") { + // Don't invoke respondWith, resetting the interception. + return; + } else if (mode === "proxy-fetch") { + // Per the spec, there's an automatic waitUntil() on this too. + event.respondWith(fetch(event.request)); + return; + } + }); +} + +// Go straight to activation, bypassing waiting. +addEventListener("install", function (event) { + event.waitUntil(skipWaiting()); +}); +// Control the test document ASAP. +addEventListener("activate", function (event) { + event.waitUntil(clients.claim()); +}); diff --git a/dom/html/test/test_a_text.html b/dom/html/test/test_a_text.html new file mode 100644 index 0000000000..5ffc1995f8 --- /dev/null +++ b/dom/html/test/test_a_text.html @@ -0,0 +1,44 @@ + + + + Test for a.text + + + + + + +
+
+
+ + diff --git a/dom/html/test/test_allowMedia.html b/dom/html/test/test_allowMedia.html new file mode 100644 index 0000000000..46a692283a --- /dev/null +++ b/dom/html/test/test_allowMedia.html @@ -0,0 +1,97 @@ + + + + + + Test for Bug 759964 + + + + + +Mozilla Bug 759964 +

+

+ + diff --git a/dom/html/test/test_anchor_href_cache_invalidation.html b/dom/html/test/test_anchor_href_cache_invalidation.html new file mode 100644 index 0000000000..c1a8327e62 --- /dev/null +++ b/dom/html/test/test_anchor_href_cache_invalidation.html @@ -0,0 +1,30 @@ + + + + Test for anchor cache invalidation + + + + +

+ +
+
+
+ + diff --git a/dom/html/test/test_anchor_ping.html b/dom/html/test/test_anchor_ping.html new file mode 100644 index 0000000000..309542b80e --- /dev/null +++ b/dom/html/test/test_anchor_ping.html @@ -0,0 +1,300 @@ + + + + + + Test for Bug 786347 + + + + + +Mozilla Bug 786347 +

+ + +
+
+
+
+ + + diff --git a/dom/html/test/test_bug1013316.html b/dom/html/test/test_bug1013316.html new file mode 100644 index 0000000000..fdb9e5363d --- /dev/null +++ b/dom/html/test/test_bug1013316.html @@ -0,0 +1,46 @@ + + + + + + Test for Bug 1013316 + + + + + +Mozilla Bug 1013316 +

+