Closed Bug 629165 Opened 14 years ago Closed 12 years ago

Need a better way to detect droppable space in Panorama (boxObject)

Categories

(Mozilla QA Graveyard :: Mozmill Tests, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: u279076, Unassigned)

References

()

Details

(Whiteboard: [lib])

With bug 515776 resolved, we now have the ability to drag and drop elements in Mozmill. In general it works like: controller.dragToElement(elementToDrag, elementToDropOn, offsetX, offsetY); Currently, we have to play around with values of offsetX and offsetY; it's essentially a trial and error game. This makes it less than ideal for community contributors and can cause problems when testing in environments with varying screen resolutions. What we really need is to find a way to detect droppable space. Here are a couple examples: * dragging and dropping a tab to empty space on the tab bar or empty space between tabs * dragging and dropping a tab from a group in Panorama to empty space in another group to move it * dragging and dropping a tab from a group in Panorama to empty space in content to create a new group * dragging and dropping a tab into an area outside the browser window to move it to its own window
This is really a feature which is specific to each specific area and should be part of the shared module. Here you have a lot of stuff going on for Panorama so I would say lets keep this bug for the Panorama case.
Summary: Need a better way to detect droppable space → Need a better way to detect droppable space in Panorama
Whiteboard: [mozmill-panorama][shared-module]
Agree, I fear that if we start using hardcoded offsets effects may vary with associated assertions varying per platform and environment ran.
Each group and tab in Panorama has it's boundary box. It should be easy to find the right space for: * drop it before/after/above/under a group or tab * drop it on top of a given group or tab * similar for resizing of groups and tabs Anthony, the first thing you should do is to collect all the possible cases we are confronted with. Given that spec it shouldn't be that hard to implement.
I've cataloged the following use cases so far: Drag Use Cases -------------- - drag to resize group - drag to move group - drag tab to empty space to create new group - drag tab to another group - drag tab to reorder group - drag group onto another to automatically resize - drag group to snap-to-location (ie. group alignment) - auto-resize/move tabs/groups on window-resize Areas not Draggable ------------------- - Panorama toggle button - Search toggle button - Group title box - Group (x) button - App-tab favicon area (far right) - New tab button - Outside of main window
(In reply to comment #4) > - drag to resize group > - drag to move group The target position should be set by the test itself. I assume it will mostly be relative offsets. > - drag tab to empty space to create new group > - drag tab to another group > - drag tab to reorder group > - drag group onto another to automatically resize > - drag group to snap-to-location (ie. group alignment) > - auto-resize/move tabs/groups on window-resize Something I could imagine is a general shared-module which handles the boxObject of elements. Lets say we have to define the surrounding box and can fold in separate elements. Then you can define what you want to have: * empty space * position at the top/right/bottom/left of an element * (middle?) position of the wanted element All the arithmetic will be handled in this shared module, while other modules or better tests can re-use it; not only for Panorama.
Here an example for the toolbar: * root element: toolbar * elements: back button, forward button, location bar, search bar, home button Then you can request: * left side of location bar * center of the home button * ...
A boxObjectAPI would work for me. What do you need from me to get started on this?
Not sure if I will have enough time to work on this in the next couple of weeks. But I can definitely give support to anyone who wants to work on it.
I've created a scratchpad so we can discuss, design, and develop a box object shared module: http://mozqa.sync.in/mozmill-boxObjectAPI At this point, I think Drag & Drop is far too difficult and unreliable to write tests against (based on experience in helping test developers so far). I'm going to block all Panorama tests which need drag & drop on this bug, unless someone objects. I'll give people 24 hours to object.
CCing Geo on this bug as well.
Anthony, this etherpad should be a public one. There is no need to have this secured on sync.in. I would like that interested parties also be able to access it.
(In reply to comment #11) > Anthony, this etherpad should be a public one. There is no need to have this > secured on sync.in. I would like that interested parties also be able to access > it. Fair enough, moved to http://etherpad.mozilla.com:9000/mozmill-boxObjectAPI
As we have discussed it a bit more in our 1-1 this week, could you also please those additional information? I miss it in that etherpad.
(In reply to comment #13) > As we have discussed it a bit more in our 1-1 this week, could you also please > those additional information? I miss it in that etherpad. Those items have now been added. Feel free to add your own items as you think of them. Thanks
Summary: Need a better way to detect droppable space in Panorama → Need a better way to detect droppable space in Panorama (boxObject)
Blocks: 629080
Blocks: 629102
Blocks: 620589
Blocks: 629068
Blocks: 629098
Blocks: 629099
Blocks: 629076
Blocks: 629073
Blocks: 629082
Blocks: 629087
Blocks: 629091
Blocks: 632648
Blocks: 635308
Component: Mozmill Tests → Mozmill Shared Modules
Component: Mozmill Shared Modules → Mozmill Tests
Whiteboard: [mozmill-panorama][shared-module] → [lib]
Bug 836758 will remove Panorama from Firefox soon and make it available as add-on. That means no new tests are necessary. Closing as WONTFIX.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → WONTFIX
Product: Mozilla QA → Mozilla QA Graveyard
You need to log in before you can comment on or make changes to this bug.