Investigate removing external dependencies from gaia-ui-tests

RESOLVED WORKSFORME

Status

Firefox OS
Gaia::UI Tests
P4
normal
RESOLVED WORKSFORME
4 years ago
a year ago

People

(Reporter: bsilverberg, Unassigned, Mentored)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [lang=py])

(Reporter)

Description

4 years ago
The following tests are currently run on the desktop build on Travis, but not in TBPL. This bug is to investigate whether any of them could be enabled in TBPL by removing existing external dependencies.

test_browser_lan (test_browser_lan.TestBrowserLAN)
test_browser_tabs (test_browser_tabs.TestBrowserTabs)
test_browser_search (test_browser_search.TestBrowserSearch)
test_browser_back_button (test_browser_navigation.TestBrowserNavigation)
test_browser_bookmark (test_browser_bookmark.TestBrowserBookmark)
test_launch_packaged_app_from_search_panel (test_everythingme_launch_packaged_app.TestEverythingMeSearchPanel)
test_delete_app (test_homescreen_delete_app.TestDeleteApp)
test_launch_app (test_homescreen_launch_app.TestLaunchApp)
test_persona_cookie (test_persona_cookie.TestPersonaCookie)
test_persona_standard_sign_in (test_persona_app.TestPersonaStandard)
test_open_app_permissions (test_settings_app_permissions.TestAppPermissions)

Comment 1

4 years ago
I think Persona and e.me would be very difficult or impossible to mock out.

But some Browser tests could be done by Python setting up a lightweight local web server.

Launch/delete app could be done if we can deliver an app from the same local web server.

test_settings_app_permissions - I think that might be a mistake, I can't see why it could not be run on TBPL.

Comment 2

4 years ago
Maybe http://docs.python.org/2/library/simplehttpserver.html is all we need here.
(In reply to Zac C (:zac) from comment #1)
> I think Persona and e.me would be very difficult or impossible to mock out.
> 
> But some Browser tests could be done by Python setting up a lightweight
> local web server.

This is already available. When you run the tests you should see something like:

starting httpd
running webserver on http://127.0.0.2:37160/

The issue is that the device has to be on the same network as the host machine in order to see this content. This will mean for cell data tests we can't use this webserver, but we should certainly be able to use it when WiFi/LAN is available and connected. This should be fairly trivial for b2gdesktop and emulator.

Updated

3 years ago
Whiteboard: [mentor=zac][lang=py

Updated

3 years ago
Whiteboard: [mentor=zac][lang=py → [mentor=bsilverberg][lang=py

Updated

3 years ago
Whiteboard: [mentor=bsilverberg][lang=py → [mentor=bsilverberg][lang=py]

Updated

3 years ago
Priority: -- → P4
The Mozmill team are implementing something similar to their tests maybe we can do the same:

https://bugzilla.mozilla.org/show_bug.cgi?id=754847
(In reply to Florin Strugariu [:Bebe] from comment #4)
> The Mozmill team are implementing something similar to their tests maybe we
> can do the same:
> 
> https://bugzilla.mozilla.org/show_bug.cgi?id=754847

That shouldn't be necessary. As mentioned in comment 3 mozhttpd is already being used.
(Assignee)

Updated

3 years ago
Mentor: bob.silverberg@gmail.com
Whiteboard: [mentor=bsilverberg][lang=py] → [lang=py]

Updated

3 years ago
Depends on: 1027621
I raised bug 1027621 to take care of the browser tests.

Updated

3 years ago
Depends on: 1032745
QA Whiteboard: [fxosqa-auto-backlog+]
QA Whiteboard: [fxosqa-auto-backlog+] → [fxosqa-auto-dropped-s1]
test_browser_lan would be easy to change to use a local web server.
http://mxr.mozilla.org/gaia/source/tests/python/gaia-ui-tests/gaiatest/tests/functional/browser/test_browser_lan.py
test_browser_tabs doesn't seem to exist anymore.
test_browser_search is meant to be used external, I think.
test_browser_back_button has become test_browser_navigation.py, I think, and that one is already external = false.
test_browser_bookmark.py is already external = false.
I guess test_launch_packaged_app_from_search_panel is test_rocketbar_add_collection_save_bookmark.py ? That one has to be external, unless someone mocks everythingme webserver.
test_delete_app and test_launch_app already have external = false.
I guess test_persona_standard_sign_in == test_persona_app.py, which would need a mock persona sever locally.
is this bug still active, I am under the impression firefox os is not an active project anymore.
Status: NEW → RESOLVED
Last Resolved: a year ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.