Introduce NodePicker test helper
Categories
(DevTools :: Inspector, task, P3)
Tracking
(Not tracked)
People
(Reporter: rcaliman, Unassigned)
References
(Blocks 1 open bug)
Details
When testing the NodePicker, there are a few helper methods which must be called with toolbox
, inspector
and testActor
arguments:
startPicker(toolbox)
hoverElement(inspector, testActor, selector, x, y)
pickElement(inspector, testActor, selector, x, y)
It would simplify tests if we wrap these into an inspector-scoped helper.
Something like:
function getNodePickerHelpers(inspector, testActor) {
const { toolbox } = inspector;
let _isPicking = false;
return {
startPicker(skipFocus) {
_isPicking = true;
return startPicker(toolbox, skipFocus);
},
async hoverElement(selector, x, y) {
if (!_isPicking) {
await startPicker(toolbox);
}
return hoverElement(inspector, testActor, selector, x, y);
},
pickElement(selector, x, y) {
_isPicking = false;
return pickElement(inspector, testActor, selector, x, y);
},
};
}
Tests would become simpler:
+ const { startPicker, hoverElement, pickElement } = getNodePickerHelpers(inspector, testActor);
- await startPicker(toolbox);
+ await startPicker();
- await hoverElement(inspector, testActor, "iframe", 1, 1);
+ await hoverElement("iframe", 1, 1);
- await pickElement(inspector, testActor, "iframe", 1, 1);
+ await pickElement("iframe", 1, 1);
This has the added benefit of clarifying what is meant by "hoverElement" and "pickElement".
Reporter | ||
Updated•4 years ago
|
Comment 1•4 years ago
|
||
Also note that testActor
could probably be dropped in favor of BrowserTestUtils
:
https://searchfox.org/mozilla-central/rev/91d82d7cbf05a71954dfa49d0e43824c7c973e62/devtools/client/accessibility/test/browser/browser_accessibility_context_menu_browser.js#22-32
You would have to pass the browser element which you can retrieve like this gBrowser.selectedBrowser
, if you always assume that we are working against the currently selected tab. Or via inspector.toolbox.target.localTab.linkedBrowser
if you want to always ensure targeting the one tab that the toolbox is currently debugging.
Comment 2•4 years ago
|
||
Oops, I missed that julian already mentioned this:
https://phabricator.services.mozilla.com/D81528?id=303730#inline-471771
Reporter | ||
Updated•4 years ago
|
Description
•