Closed
Bug 847655
Opened 11 years ago
Closed 11 years ago
Can neither tap nor click on the Marketplace sign-in button
Categories
(Remote Protocol :: Marionette, defect)
Tracking
(firefox23 fixed, b2g18 fixed, b2g18-v1.0.0 wontfix, b2g18-v1.0.1 fixed)
RESOLVED
FIXED
mozilla23
People
(Reporter: bsilverberg, Assigned: automatedtester)
References
Details
Attachments
(2 files, 1 obsolete file)
54.04 KB,
patch
|
jgriffin
:
review+
|
Details | Diff | Splinter Review |
5.97 KB,
text/x-python
|
Details |
In a gaia-ui-test, after navigating to the settings page of marketplace, calling either tap() or click() on the sign in button do not cause the button to be clicked. I can see visually that tap does nothing, while click does cause the button to appear depressed, but in neither case is the Persona frame loaded into the trusted-ui container as expected. I verified this by adding a sleep at the appropriate stage of the test and clicking the sign in button manually, which did load the Persona frame and allowed the test to complete successfully. I have attached a reduced gaia-ui test case which illustrates the issue.
Reporter | ||
Comment 1•11 years ago
|
||
I also seem to be unable to either click or tap on the "This session only" button during the Persona login workflow, which is also blocking automation of the Marketplace login.
Assignee | ||
Comment 2•11 years ago
|
||
:jedp could this be related to bug 822964
Comment 3•11 years ago
|
||
We really need this in order to flesh out our Marketplace tests (currently, limited to the signed-out tests, which are few). A-team, do you have the cycles to/can you make this a high priority? Thanks!
Updated•11 years ago
|
Severity: normal → critical
Comment 4•11 years ago
|
||
This sounds a lot like https://bugzilla.mozilla.org/show_bug.cgi?id=833061, I'll investigate this further tomorrow
Comment 5•11 years ago
|
||
So the selector has changed, it should now be: _sign_in_button_locator = ('class name', 'full button alt browserid') Also, I can't seem to get past the sign-in button, even manually. Despite that, I'm seeing some interesting behaviour. If you use click(), the button appears to be depressed, and activates the spinner, but the button doesn't appear to be released. Now, if we use tap(), the button doesn't appear to get depressed, but it does get activated (you'll see a spinner next to it, and it gets cut off by the edge of the phone). I thought at first it's because tap() is sending only touch events, but that is not the case. Since this isn't a gaia app (it's an external app), and doesn't use the mouse event shim, then we send touch/mouse/click events. If we use b.single_tap() which should just send the touch events (no mouse events), the button gets depressed, but no spinner shows up. Following this logic, I modified tap() so it will only send touch events. This should be exactly the same as single_tap, but in this case, nothing happened on the screen. This means that tap() is deviating from our expectations, which makes sense since tap() is currently generated using synthetic_gestures.js library, and we're moving away from that. We will be reimplementing tap() shortly, and when Bug 850819 lands, we can then just use single_tap() to do what tap does for us. We'll then update the python abstract layer to use our new methods (Bug 845849) In the meantime, can you use either click() or tap() for this test? They appear to at least activate the button so you should be able to continue writing the test.
Comment 6•11 years ago
|
||
Bah, using today's build, I can finally tap the Sign In button manually and get a new card view, but not with marionette. Will investigate further.
Comment 7•11 years ago
|
||
fyi, i'll try to ping the marketplace devs (kumar?) and see what this particular button expects.
Comment 8•11 years ago
|
||
potch pointed out that launching popups is protected by accepting trusted events only. Ie, a button that launches a popup (in this case, the persona card) requires the incoming event to be a trusted event. Marionette only generates untrusted events at the moment. To automate this, we'll need to figure out how to generate trusted events. I'll catch up with AutomatedTester tomorrow, I know he looked into this briefly.
Comment 9•11 years ago
|
||
(In reply to Malini Das [:mdas] from comment #8) > potch pointed out that launching popups is protected by accepting trusted > events only. It would be super-helpful if marionette were able to generate native events. (There's already Bug 821740 for it.) The way we're getting around this for identity testing is to set a pref that tells our code that events don't have to be native: dom.identity.syntheticEventsOk (See Bug 821740)
Comment 10•11 years ago
|
||
Curiously, I ran my branch of gaia-ui-tests which was failing on the Marketplace sign-in button after adding dom.identity.syntheticEventsOk but it still failed to launch Persona. For sanity, we should probably try getting tap to work for the simplest possible case like this to make sure we're solving the right problem: <button onclick="navigator.id.request()">sign in</button>
Comment 11•11 years ago
|
||
I don't know that dom.identity.syntheticEventsOk is going to be a panacea; you may be interacting with other APIs that require non-synthetic events? http://mxr.mozilla.org/mozilla-central/search?string=isHandlingUserInput But overall, I'm having a similar, really basic problem - i can launch the UI Tests app, but i seem to be unable to click on the "navigator.mozId tests" item from an automated test, though I can drive marionette to click on it in the python repl. Working on isolating the issue.
Assignee | ||
Updated•11 years ago
|
Attachment #720930 -
Attachment mime type: text/x-python → text/plain
Assignee | ||
Comment 12•11 years ago
|
||
Looking through all the code we dont have the ability to send trusted events via widgets to mobile versions of Firefox since nsiDOMWindowUtils.sendNative*Events havent been ported to those environments
Assignee | ||
Comment 13•11 years ago
|
||
Ok I have got this working with a click() using the EventUtils approach. I need to now try update them to the latest version and use the touch.
Comment 14•11 years ago
|
||
This is awesome, David. I'll test this asap!
Assignee | ||
Comment 15•11 years ago
|
||
after rejigging I cant seem to get touch to work for this for tap however I can get this to work for click(). I am going to have to redo some of the click logic so we know where to kick properly.
Assignee | ||
Comment 16•11 years ago
|
||
going to rip out the Atoms and replace it with better uses of EventUtils with the click() algorithm from Selenium. Good thing we are writing a spec for this!
Assignee: nobody → dburns
Assignee | ||
Comment 17•11 years ago
|
||
try pushes B2G - https://tbpl.mozilla.org/?tree=Try&rev=6ab9cf2062f8 Desktop - https://tbpl.mozilla.org/?tree=Try&rev=6a9f5012a241
Assignee | ||
Comment 18•11 years ago
|
||
Noticed my playing went a long with patches, resubmitted https://tbpl.mozilla.org/?tree=Try&rev=006c6a4de6e5
Assignee | ||
Comment 19•11 years ago
|
||
https://tbpl.mozilla.org/?tree=Try&rev=a2ba6316d02c was mobile try
Assignee | ||
Comment 20•11 years ago
|
||
try is green \o/ Want to test with GaiaTest before submitting patch
Updated•11 years ago
|
OS: Mac OS X → Gonk (Firefox OS)
Hardware: x86 → ARM
Assignee | ||
Comment 21•11 years ago
|
||
Attachment #730727 -
Flags: review?(jgriffin)
Comment 22•11 years ago
|
||
Comment on attachment 730727 [details] [diff] [review] remove atoms and use eventutils for trusted events Review of attachment 730727 [details] [diff] [review]: ----------------------------------------------------------------- Thanks!
Attachment #730727 -
Flags: review?(jgriffin) → review+
Assignee | ||
Comment 23•11 years ago
|
||
landed in https://hg.mozilla.org/integration/mozilla-inbound/rev/56fe7e26fa47
Comment 24•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/56fe7e26fa47
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
Comment 25•11 years ago
|
||
https://hg.mozilla.org/releases/mozilla-b2g18/rev/f9fd0e46a631
status-b2g18:
--- → fixed
Reporter | ||
Comment 26•11 years ago
|
||
Thanks to everyone on the ateam for this fix. I am now able to click (but not tap) on the Sign In button in Marketplace which is great! I am able to get through the entire login sequence with marionette, but, unfortunately I am not able to click nor tap on the Sign Out button after logging in. I am attaching the test case which demonstrates this.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Reporter | ||
Comment 27•11 years ago
|
||
This is the test case that successfully logs in to Marketplace but cannot click nor tap on the Sign Out button.
Attachment #720930 -
Attachment is obsolete: true
Will leave it up to the A-team, but comment 26 and comment 27 might warrant their own bug (thought you do mention it's the same window, etc.)
Comment 29•11 years ago
|
||
I verify that the login works. Haven't looked closely at the logout yet. Amazing work, thanks AutomatedTester, mdas, jgriffin and all involved!
Assignee | ||
Comment 30•11 years ago
|
||
:bsilverberg Can you please raise a separate bug for your issue and assign it to me and I will look at it ASAP!
Status: REOPENED → RESOLVED
Closed: 11 years ago → 11 years ago
Resolution: --- → FIXED
Reporter | ||
Comment 31•11 years ago
|
||
Done. Bug 857717. Thanks AutomatedTester
Updated•1 year ago
|
Product: Testing → Remote Protocol
You need to log in
before you can comment on or make changes to this bug.
Description
•