5908: Closes#5876: Removed @ObsoleteCoroutinesApi in tests r=sblatz a=shldhll
### Pull Request checklist
<!-- Before submitting the PR, please address each item -->
- [x] **Quality**: This PR builds and passes detekt/ktlint checks (A pre-push hook is recommended)
- [ ] **Tests**: This PR includes thorough tests or an explanation of why it does not
- [ ] **Screenshots**: This PR includes screenshots or GIFs of the changes made or an explanation of why it does not
- [ ] **Accessibility**: The code in this PR follows [accessibility best practices](https://github.com/mozilla-mobile/shared-docs/blob/master/android/accessibility_guide.md) or does not include any user facing features
### After merge
- [ ] **Milestone**: Make sure issues finished by this pull request are added to the [milestone](https://github.com/mozilla-mobile/fenix/milestones) of the version currently in development.
### To download an APK when reviewing a PR:
1. click on Show All Checks,
2. click Details next to "Taskcluster (pull_request)" after it appears and then finishes with a green checkmark,
3. click on the "Fenix - assemble" task, then click "Run Artifacts".
4. the APK links should be on the left side of the screen, named for each CPU architecture
Co-authored-by: shldhll <iam.shldhll@gmail.com>
5633: Add fxa/sync integration tests r=csadilek a=isabelrios
Pull Request checklist
<!-- Before submitting the PR, please address each item -->
- [x] **Quality**: This PR builds and passes detekt/ktlint checks (A pre-push hook is recommended)
- [x] **Tests**: This PR includes thorough tests or an explanation of why it does not
- [-] **Screenshots**: This PR includes screenshots or GIFs of the changes made or an explanation of why it does not
- [-] **Accessibility**: The code in this PR follows [accessibility best practices](https://github.com/mozilla-mobile/shared-docs/blob/master/android/accessibility_guide.md) or does not include any user facing features
This PR tries to add new tests, sync integration tests, to check the sync process Desktop<->Fenix, first for Bookmarks and in the future for more.
Co-authored-by: Isabel Rios <isabelrios@mackbookirios.home>
Co-authored-by: isabelrios <isabelrios@gmail.com>
* Do not launch in Private Mode
When the app launches do not launch in Private Mode in order to prevent usage leaks to other users of the device.
* Issue #4780: add comments to use private mode
* For #4780: write tests for clear private mode on create app
* For #4780: clear private mode when privacy notification is removed
* For #2754 Add tab cards to share sheet
* For #2754: Fix background near rounded corners and ShareButtonAppearanceTest
* Add license to share_tab_item
* Upgrade to Mozilla Android components 15.0.0-SNAPSHOT
* Update findinpage integration to use browser-state
* Use new UseCases APIs after download migration.
* For #5092 - Show a Snackbar with retry option if sharing to devices fails
ShareController will contain all the business logic for checking the result
status of the `share to device` operations. When this fails it will show a
snackbar which also offer the possibility to retry the just failed operation.
To allow this even in the event the user has closed the share fragment we'll
use a GlobalScope's coroutine.
Refactored out the TabsSharedCallback from ShareFragment because otherwise we
would have neede to sent through that the just failed operation. After the
refactor the ShareController is solely responsable for showing the right
snackbar and handling the retry actions.
* For #5092 - Refactor ShareControllerTest
* For #5092: Adds color theming of snackbars
This introduces test coverage, using the Glean SDK
testing API, for the metrics that are set at startup
by Fenix in the GleanMetricsService.
This additional adds a basic test for the translation
of the `app_opened` event.
This patch includes:
- WebChannels support enabled by default, with ability to disable it via remote flag
- expanded FxA telemetry (closes#4971)
Co-authored-by: Arturo Mejia <arturomejiamarmol@gmail.com>
We previously had a test exactly for checking that "start does nothing" but we
now need to ensure that start actually is propagated to the inner feature that
is to rebind itself to the app to allow for user interactions.
Since we are now able to build against GeckoView Nightly and GeckoView Beta,
we should create the GeckoRuntime from a flavor-specific source set.
Creating the runtime is not covered by the AC abstraction and so API changes
in GeckoView Nightly can break the build and leaves us with no option to fix
it from a shared code base. Separating the creation of GeckoRuntime
allows us to adapt individually and also to configure the runtimes
differently.
* For #4396 - Rename BookmarkInteractor methods
Following the naming model used in other Interactors this too will use reactive
method names in the form of "on..." instead of the previous imperative model.
Kept the imperative naming model for the methods from `SelectionInteractor` as
they are a new addition and I'm not sure about the future direction.
* For #4396 - Add a BookmarkController
It abstracts the Fragment behavior in a contract through which various
Interactors can inform about the specific View changes and can ask for
modifications in their container Fragment.
This contract and it's implementation - `DefaultBookmarkController` are the
result of extracting the container Fragment's business logic from
`BookmarkFragmentInteractor` in it's own standalone component.
* For #4396 - Refactored Bookmark related tests
Added a new `BookmarkControllerTest` tests class which complements the new
`BookmarkController` to ensure that it properly operates on `BookmarkFragment`
Also refactored the existing `BookmarkFragmentInteractorTest` to accommodate
`BookmarkFragmentInteractor`'s now more specialized behavior.
The user has the option to go to 'Shortcuts' -> 'Search engine settings' to
modify the default search engine. When returning from that settings screen we
need to update it to account for any changes.
For this we will check the current default engine against a previously stored
value in a newly added 'defaultEngineSource' property from SearchState class.
Also, I modified 'SearchStoreTest' by adding the new parameter to the
'SearchState' constructor.
* For #3633 - Adds SearchStore
* For #3633 - Refactors AwesomeBarUIView
* For #3633 - Refactors ToolbarUIView to use lib-state
* For #3633 - Fixes a couple of state bugs
* For #3633 - Moves all user interaction to SearchInteractor
* For #3633 - Adds kdocs to SearchStore and SearchInteractor
* For #3633 - Adds documentation for the properties on SearchState
Also removes uneccessary property
* For #3633 - Creates `StateViewModel` to handle state restoration
* For #3633 - Adds a test for onTextChanged
* For #3633 - Adds tests for SearchInteractor
* For #3633 - Fixes bugs and adds documentation
* Closes#2770: Allow receiving tabs from FxA devices
Now that we're on a-c 0.54, we can land this since it supports device
capability migration.
This patch adds a SEND_TAB device capability, making Fenix a valid target
in the Send Tab device list on Desktop Firefox.
Additionally, it adds a notification manager which manages notification
channels and knows how to display "received tabs" notifications".
* Post: remove unusued test file that's causing issues
This fetches the Google Advertising ID, salts it and
then applies hashing before sending a ping with it,
at startup. Hashing and salting are used in order
to prevent ourselves to correlate advertising IDs
from the same user running different products we
own off a single device. We will never send the
client_id and the Google Advertising ID in the same
ping.