dom/events/test/bug299673.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 var popup;
     3 function OpenWindow()
     4 {
     5 log({},">>> OpenWindow");
     6 	popup = window.open("","Test");
     8 	var output = "<html>";
    10 	output+="<body>";
    11 	output+="<form>"
    12 	output+="<input id='popupText1' type='text' onfocus='opener.log(event)' onblur='opener.log(event)'>";
    13 	output+="</form>"
    14 	output+="</body>";
    15 	output+="</html>";
    17 	popup.document.open();
    18 	popup.document.write(output);
    19 	popup.document.close();
    21         popup.document.onclick=function (event) { log(event,"popup-doc") };
    22         popup.document.onfocus=function (event) { log(event,"popup-doc") };
    23         popup.document.onblur=function (event) { log(event,"popup-doc") };
    24         popup.document.onchange=function (event) { log(event,"popup-doc") };
    26 	var e = popup.document.getElementById('popupText1');
    27 	popup.focus();
    28 	e.focus();
    29         is(popup.document.activeElement, e, "input element in popup should be focused");
    30 log({},"<<< OpenWindow");
    31 }
    33 var result;
    35 function log(event,message) {
    36   if (event&&event.eventPhase==3) return;
    37   e = event.currentTarget||event.target||event.srcElement;
    38   var id = e?(e.id?e.id:e.name?e.name:e.value?e.value:''):'';
    39   if (id) id = '(' + id + ')';
    40   result +=
    41     (e?(e.tagName?e.tagName:''):' ')+id+': '+
    42     (event.type?event.type:'')+' '+
    43     (message?message:'') + '\n';
    44 }
    46 document.onclick=function (event) { log(event,"top-doc") };
    47 document.onfocus=function (event) { log(event,"top-doc") };
    48 document.onblur=function (event) { log(event,"top-doc") };
    49 document.onchange=function (event) { log(event,"top-doc") };
    51 function doTest1_rest2(expectedEventLog,focusAfterCloseId) {
    52   try {
    53     is(document.activeElement, document.getElementById(focusAfterCloseId), "wrong element is focused after popup was closed");
    54     is(result, expectedEventLog, "unexpected events");
    55     SimpleTest.finish();
    56   } catch(e) {
    57     if (popup)
    58       popup.close();
    59     throw e;
    60   }
    61 }
    62 function doTest1_rest1(expectedEventLog,focusAfterCloseId) {
    63   try {
    64     synthesizeKey("V", {}, popup);
    65     synthesizeKey("A", {}, popup);
    66     synthesizeKey("L", {}, popup);
    67     is(popup.document.getElementById('popupText1').value, "VAL", "input element in popup did not accept input");
    69     var p = popup;
    70     popup = null;
    71     p.close();
    73     SimpleTest.waitForFocus(function () { doTest1_rest2(expectedEventLog,focusAfterCloseId); }, window);
    74   } catch(e) {
    75     if (popup)
    76       popup.close();
    77     throw e;
    78   }
    79 }
    81 function doTest1(expectedEventLog,focusAfterCloseId) {
    82   try {
    83     var select1 = document.getElementById('Select1');
    84     select1.focus();
    85     is(document.activeElement, select1, "select element should be focused");
    86     synthesizeKey("VK_DOWN",{});
    87     synthesizeKey("VK_TAB", {});
    88     SimpleTest.waitForFocus(function () { doTest1_rest1(expectedEventLog,focusAfterCloseId); }, popup);
    90   } catch(e) {
    91     if (popup)
    92       popup.close();
    93     throw e;
    94   }
    95 }
    97 function setPrefAndDoTest(expectedEventLog,focusAfterCloseId,prefValue) {
    98   var origPrefValue = SpecialPowers.getIntPref("browser.link.open_newwindow");
    99   var select1 = document.getElementById('Select1');
   100   select1.blur();
   101   result = "";
   102   log({},"Test with browser.link.open_newwindow = "+prefValue);
   103   try {
   104     SpecialPowers.setIntPref("browser.link.open_newwindow", prefValue);
   105     doTest1(expectedEventLog,focusAfterCloseId);
   106   } finally {
   107     SpecialPowers.setIntPref("browser.link.open_newwindow", origPrefValue);
   108   }
   109 }

mercurial