47 lines
1.7 KiB
JavaScript
47 lines
1.7 KiB
JavaScript
/**
|
|
* 1. load about:addons in a new tab and select that tab
|
|
* 2. insert a button with tooltiptext
|
|
* 3. create a new blank tab and select that tab
|
|
* 4. select the about:addons tab and hover the inserted button
|
|
* 5. remove the about:addons tab
|
|
* 6. remove the blank tab
|
|
*
|
|
* the test succeeds if it doesn't trigger any assertions
|
|
*/
|
|
|
|
add_task(function* test() {
|
|
// Open the test tab
|
|
let testTab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:addons");
|
|
|
|
// insert button into test page content
|
|
yield ContentTask.spawn(gBrowser.selectedBrowser, null, function* () {
|
|
let doc = content.document;
|
|
let e = doc.createElement("button");
|
|
e.setAttribute("label", "hello");
|
|
e.setAttribute("tooltiptext", "world");
|
|
e.setAttribute("id", "test-button");
|
|
doc.documentElement.insertBefore(e, doc.documentElement.firstChild);
|
|
});
|
|
|
|
// open a second tab and select it
|
|
let tab2 = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "about:blank", true);
|
|
gBrowser.selectedTab = tab2;
|
|
|
|
// Select the testTab then perform mouse events on inserted button
|
|
gBrowser.selectedTab = testTab;
|
|
let browser = gBrowser.selectedBrowser;
|
|
EventUtils.disableNonTestMouseEvents(true);
|
|
try {
|
|
yield BrowserTestUtils.synthesizeMouse("#test-button", 1, 1, { type: "mouseover" }, browser);
|
|
yield BrowserTestUtils.synthesizeMouse("#test-button", 2, 6, { type: "mousemove" }, browser);
|
|
yield BrowserTestUtils.synthesizeMouse("#test-button", 2, 4, { type: "mousemove" }, browser);
|
|
} finally {
|
|
EventUtils.disableNonTestMouseEvents(false);
|
|
}
|
|
|
|
// cleanup
|
|
yield BrowserTestUtils.removeTab(testTab);
|
|
yield BrowserTestUtils.removeTab(tab2);
|
|
ok(true, "pass if no assertions");
|
|
});
|