browser_426329.js
Go to the documentation of this file.
1 function test() {
3 
4  var searchBar = BrowserSearch.searchBar;
5  var searchButton = document.getAnonymousElementByAttribute(searchBar,
6  "anonid", "search-go-button");
7  ok(searchButton, "got search-go-button");
8 
9  searchBar.value = "test";
10  var preSelectedBrowser, preTabNo;
11 
12  function init() {
13  preSelectedBrowser = gBrowser.selectedBrowser;
14  preTabNo = gBrowser.mTabs.length;
15  searchBar.focus();
16  }
17 
18  testReturn();
19 
20  function testReturn() {
21  init();
22  EventUtils.synthesizeKey("VK_RETURN", {});
23  doOnloadOnce(function(event) {
24 
25  is(gBrowser.mTabs.length, preTabNo, "Return key did not open new tab");
26  is(event.originalTarget, preSelectedBrowser.contentDocument,
27  "Return key loaded results in current tab");
28 
29  testAltReturn();
30  });
31  }
32 
33  function testAltReturn() {
34  init();
35  EventUtils.synthesizeKey("VK_RETURN", { altKey: true });
36  doOnloadOnce(function(event) {
37 
38  is(gBrowser.mTabs.length, preTabNo + 1, "Alt+Return key added new tab");
39  isnot(event.originalTarget, preSelectedBrowser.contentDocument,
40  "Alt+Return key loaded results in new tab");
41  is(event.originalTarget, gBrowser.selectedBrowser.contentDocument,
42  "Alt+Return key loaded results in foreground tab");
43 
44  //Shift key has no effect for now, so skip it
45  //testShiftAltReturn();
46  testLeftClick();
47  });
48  }
49 
50  function testShiftAltReturn() {
51  init();
52  EventUtils.synthesizeKey("VK_RETURN", { shiftKey: true, altKey: true });
53  doOnloadOnce(function(event) {
54 
55  is(gBrowser.mTabs.length, preTabNo + 1, "Shift+Alt+Return key added new tab");
56  isnot(event.originalTarget, preSelectedBrowser.contentDocument,
57  "Shift+Alt+Return key loaded results in new tab");
58  isnot(event.originalTarget, gBrowser.selectedBrowser.contentDocument,
59  "Shift+Alt+Return key loaded results in background tab");
60 
61  testLeftClick();
62  });
63  }
64 
65  function testLeftClick() {
66  init();
67  simulateClick({ button: 0 }, searchButton);
68  doOnloadOnce(function(event) {
69 
70  is(gBrowser.mTabs.length, preTabNo, "LeftClick did not open new tab");
71  is(event.originalTarget, preSelectedBrowser.contentDocument,
72  "LeftClick loaded results in current tab");
73 
74  testMiddleClick();
75  });
76  }
77 
78  function testMiddleClick() {
79  init();
80  simulateClick({ button: 1 }, searchButton);
81  doOnloadOnce(function(event) {
82 
83  is(gBrowser.mTabs.length, preTabNo + 1, "MiddleClick added new tab");
84  isnot(event.originalTarget, preSelectedBrowser.contentDocument,
85  "MiddleClick loaded results in new tab");
86  is(event.originalTarget, gBrowser.selectedBrowser.contentDocument,
87  "MiddleClick loaded results in foreground tab");
88 
89  testShiftMiddleClick();
90  });
91  }
92 
93  function testShiftMiddleClick() {
94  init();
95  simulateClick({ button: 1, shiftKey: true }, searchButton);
96  doOnloadOnce(function(event) {
97 
98  is(gBrowser.mTabs.length, preTabNo + 1, "Shift+MiddleClick added new tab");
99  isnot(event.originalTarget, preSelectedBrowser.contentDocument,
100  "Shift+MiddleClick loaded results in new tab");
101  isnot(event.originalTarget, gBrowser.selectedBrowser.contentDocument,
102  "Shift+MiddleClick loaded results in background tab");
103 
104  testRightClick();
105  });
106  }
107 
108  function testRightClick() {
109  init();
110  gBrowser.selectedBrowser.contentWindow.location.href = "about:blank";
111  simulateClick({ button: 2 }, searchButton);
112  setTimeout(function() {
113 
114  is(gBrowser.mTabs.length, preTabNo, "RightClick did not open new tab");
115  is(gBrowser.currentURI.spec, "about:blank", "RightClick did nothing");
116 
117  finalize();
118  }, 5000);
119  }
120 
121  function finalize() {
122  searchBar.value = "";
123  while (gBrowser.mTabs.length != 1) {
124  gBrowser.removeTab(gBrowser.mTabs[0]);
125  }
126  gBrowser.selectedBrowser.contentWindow.location.href = "about:blank";
127  finish();
128  }
129 
130  function doOnloadOnce(callback) {
131  gBrowser.addEventListener("DOMContentLoaded", function(event) {
132  gBrowser.removeEventListener("DOMContentLoaded", arguments.callee, true);
133  callback(event);
134  }, true);
135  }
136 
137  function simulateClick(aEvent, aTarget) {
138  var event = document.createEvent("MouseEvent");
139  var ctrlKeyArg = aEvent.ctrlKey || false;
140  var altKeyArg = aEvent.altKey || false;
141  var shiftKeyArg = aEvent.shiftKey || false;
142  var metaKeyArg = aEvent.metaKey || false;
143  var buttonArg = aEvent.button || 0;
144  event.initMouseEvent("click", true, true, window,
145  0, 0, 0, 0, 0,
146  ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg,
147  buttonArg, null);
148  aTarget.dispatchEvent(event);
149  }
150 }
151 
function test()
var event
let window
_window init
Definition: FeedWriter.js:1144
waitForExplicitFinish()
aWindow setTimeout(function(){_this.restoreHistory(aWindow, aTabs, aTabData, aIdMap);}, 0)
grep callback
return null
Definition: FeedWriter.js:1143
return!aWindow arguments!aWindow arguments[0]