Commit Graph

27 Commits

Author SHA1 Message Date
Sebastian Franco a99e1d2a14 Ensure the reorder test runs on the foldable devices
It moves some classes form the Nexus package into the launcher package
so it can be used in both projects.

It also adds more test for foldables and test multiple
grids for each test.

Bug: 289584301
Fix: 291346193
Test: ReorderWidgets
Change-Id: I04db5f685d0344b8a3f3d42b429bbde061b3d8ea
2023-08-03 16:35:29 -07:00
Sunny Goyal 7b9e28f152 Removing all usage of LauncherProvider
Also fixing a race condition in model when an item update/delete task
gets queued and executed after the model has reloaded (making the old
data obsolete)

Bug: 277345535
Bug: 263079498
Test: Presubmit
Flag: N/A
Change-Id: Ibd4bdbb3eece05b38b73a22a4be5f368df3754f0
2023-06-07 12:57:13 -07:00
TreeHugger Robot 859d0d87e2 Merge "Simplifying some test utility methods" into udc-qpr-dev 2023-06-05 23:10:06 +00:00
Vadim Tryshev d8b470cf2f Revert "Adding tracing for workspace loading that never finishes"
This reverts commit 80bb8a12da.

Reason for revert: Cleanup after the bug is fixed. Tracing is not necessary anymore.

Change-Id: I1bb2bc59dd5debb51b094f14430cd18a203ed33c
2023-06-02 15:28:18 +00:00
Sunny Goyal ee9740462e Simplifying some test utility methods
Bug: 283821111
Test: Presubmit
Flag: N/A
Change-Id: I7b9690bc0cc53d097d26cd4f0ab2dd36ba88e1cb
2023-06-02 13:30:55 +00:00
vadimt 80bb8a12da Adding tracing for workspace loading that never finishes
Test: presubmit
Bug: 267200150
Flag: N/A
Change-Id: I6cfe6be101412e9d8d9498fc06c70d1d14561441
2023-05-24 10:25:15 -07:00
Schneider Victor-tulias fff7cef9f1 Remove unused debug logs
Removing debug logs for bugs that have already been closed. These logs are filling up the logcat buffer and impeding in other test investigations.

Flag: not needed
Test: Tapl tests
Bug: 260260325
Change-Id: I4d69b904f2ea79d758cf6bef7d90d172f2eb2a91
2023-04-25 11:00:37 -07:00
Sebastian Franco e7c3d3d4ce Parsing test boards from text files to be able to add more and bigger tests
It also adds an assets folder inside of Launcher3 tests.

It also fixes a bug in fullReorder.

Test: atest ReorderWidgets
Flag: none
Bug: 229292911
Change-Id: I7dadd42a3057d353326691163bb7db71a2e9dcc4
2023-04-13 17:14:51 +00:00
Schneider Victor-tulias 6b94a960c0 Add debug logs to debug flaky workspace binding
Bug: 270216650
Test: ReorderWidgets
Change-Id: I6fa2eab98c0268000ef4c44980c2917d5ef1bc89
2023-02-22 13:05:13 -08:00
Sebastian Franco 81b82720de Making ReorderWidget test more reliable
In some cases when starting to drag you can go to the next
CellLayout wich end in an error. Now the dragging functions
will move the item to the desired CellLayout no matter what
CellLayout you start in.

Fix: 266116487
Test: atest ReorderWidgets
Change-Id: Ie3ad2ff88f734856e2c66d5d51b7578482877b5a
2023-02-13 11:02:09 -08:00
Sebastian Franco 48c7f8e035 Adding test to make sure the icons seen when unfolded are the same when folded
Bug: 188081026
Test: atest FoldableItemsIntegrity
Change-Id: I7e09c03fccb89b1d218bf196433b2fe4ad09d8e0
2023-02-01 13:22:33 -08:00
Sebastián Franco 68f5667338 Merge "Adding the avility to add icons on multiple CellLayouts on tests." into tm-qpr-dev 2023-01-24 20:02:35 +00:00
Sebastian Franco de1fe14a47 Adding the avility to add icons on multiple CellLayouts on tests.
I needed to change the code so that you can pass the CellX/Y
position to the drag function instead of the pixel coordinates
and we can pass X position bigger than one CellLayout.

Also, I notice that getCellCenter only worked for 1x1 items
so I added the option to specify the widget size.

Fix: 262431878
Test: atest ReorderWidgets#multipleCellLayoutsSimpleReorder
Change-Id: I3b09de770e8f99aa10cae8cea32e7e6bc02c7b8b
2023-01-16 10:32:40 -06:00
Sebastian Franco 877088e6c3 Change the access of cellX/Y of CellLayoutLayoutParams to private
Bug: 188081026
Test: no op change, should compile
Test: ReorderWidgets
Change-Id: I20367974e5a4cead406e18eb66dafd4d59651b2a
Merged-In: I20367974e5a4cead406e18eb66dafd4d59651b2a
2023-01-13 18:25:10 +00:00
Sebastian Franco f34f35fddb Printing the workspace items to improve flake investigation.
Recording the screen to investigates flakes on ReorderWidgets
is really useful but it requires changing the code for that and
storing the video and most of the time the useful information
is just the end state so by logging the end state makes resolving
flakes easier

Fix: 261877803
Test: atest ReorderWidgets
Change-Id: If5d9745ebb57826a55b5df9d3599eed56c48298f
2023-01-06 12:29:11 -06:00
Sebastian Franco 150e572e05 Ignore all launcher3 flaky test so that they come back online
Test dashboard: https://android-build.googleplex.com/builds/tests/search?filter=mediumFailureRate&filter=highFailureRate&query=config%3Av2%2Fgnl-eng%2Funbundled%2Flauncher%2Flauncher3_test_platform+latest%3A4d&tab=tests

Test: dashboard should not show flaky tests
Bug: 256832045
Change-Id: I06e879dec2703455b7be728c7afd3500d2edd54a
2022-12-06 17:08:45 -08:00
Sebastian Franco 5356ff955c Creating a new alarm when drag X,Y change
If the user is changing the X and Y of the reorder, wich requires
the user to move at least one Workspace cell from the previous
position, then it doesn't make sense to wait for the previous alarm to finish
to start a new reorder.

Also, I added a new test to run on foldable devices.

Fix: 259995663
Fix: 259295374
Test: atest ReorderWidgets (it mostly fails on postsubmit)
Test: modify ReorderWidgets.fullReorder to run 20 times and it should work, before the chagne it would fail.
Change-Id: Ic6b436ea1088f8092c849e9791862947e9035c9f
2022-12-05 16:37:45 -08:00
Sebastian Franco ac53846195 Ignore test while the solution for the flaky tests improve.
Bug: 261178121
Test: atest ReorderWidgets
Change-Id: Id0c6594e00486695c63e2cda53b1a5ee39478a1f
2022-12-02 11:33:00 -08:00
Sebastian Franco 285b749bcf Wait in ReorderWidgets test for the workapce to load after changing it.
Fix: 252860608
Test: atest ReorderWidgets
Change-Id: Idf99188837a475d0327174e264ab1d23d646d75d
2022-10-27 14:42:19 -07:00
Sebastián Franco 09a98dfdbd Merge "Revert "Prevent dragging widgets to another page in tests when starting a drag."" into tm-qpr-dev 2022-09-16 16:49:26 +00:00
Sebastián Franco a798be2ff5 Revert "Prevent dragging widgets to another page in tests when starting a drag."
This reverts commit 749b2b8493.

Reason for revert: Causing tests to fail b/246972374

Change-Id: I9fc1f6d2e924f4ac5484c6674fd0adf49d04536f
2022-09-15 21:19:12 +00:00
Sebastián Franco 610db4fc94 Merge "Prevent dragging widgets to another page in tests when starting a drag." into tm-qpr-dev 2022-09-15 17:19:42 +00:00
Sebastian Franco 749b2b8493 Prevent dragging widgets to another page in tests when starting a drag.
The function Launchable.startDrag it's supposed to grab and icon or widget
and start the dragging by moving it only in the verticall position but
because it uses the coordinates of the object before entering the
SPRING_LOADED_STATE_ORDINAL state then the coordiates where it moves
are outisde of the cell layout and it moves to a new page. This only happens
if the phone is too slow and it triggers the page change, otherwise it would
be too fast.

To fix it, I'm moving the icon/widget to the center of the screen minus
getStartDragThreshold() to ensure the drag is always triggered.

Fix: 242323136
Fix: 244224955
Fix: 241019568
Fix: 241583798
Test: atest ReorderWidgets
Change-Id: I0e431b994aa4a3d5c8be45b6c73263732553b36c
2022-09-13 15:54:58 -07:00
Sebastian Franco 5434c9d370 Add hotseat icons to TestWorkspaceBuilder and submit everything in a batch
Now TestWorkspaceBuilder has the logic to add hotseat icons and
the operations to add items to the Workspace is done in batches
which is faster and more stable. To submit everything in batches
it uses the FavoriteItemsTransaction.

This improves the design because TestWorkspaceBuilder and
HomeScreenImageTest belong to the Test layer and they should
only deal with the logic to run a test and TestWorkspaceBuilder
is the Model layer and holds all the logic to interact with the
Launcher model/data, so this separates the concern of each class.

Also, chagned the name from CellLayoutBoardBuilder to
TestWorkspaceBuilder to make it clearer.

Bug: 243440737
Bug: 235518637
Bug: 242323136
Test: atest HomeScreenImageTest
Test: atest ReorderWidgets
Change-Id: I14eef064fade153b8362537743b061958bb3071d
2022-09-12 10:54:53 -07:00
Sebastian Franco 314bbf1cba Adding support to add icons in the workspace for tests
Test: atest ReorderWidgets
Bug: 243440737
Change-Id: Ic656cef079be965d17ab1b58d5f73ce955c9374c
2022-08-31 16:29:53 -07:00
Sebastian Franco 8bd1283482 Add screen recording to debug test ReorderWidgets.java flakynes
Bug: 242323136
Test: atest ReorderWidgets
Change-Id: If87dc5b37029f75c4a480fbbb62e5eaca02cde4a
2022-08-17 16:52:33 -07:00
Sebastian Franco 5cba476362 Adding test for the Widgets reordering.
TAPL design chagnes at https://docs.google.com/document/d/1PdJZZIn-85-UMRFGZuqj-tJgruIWcg31lZnrb34iBTY/edit?resourcekey=0-uAZuiLCDFV9YhOtLB7wQHQ

The tests consist of a board representing the widgets on
the CellLayout a position to move the main widget (m) to
and the resulting board.

iiiii    iiiii
-----    --x--
-xxx- -> -xmx-
--m--    -----
-----    -----

Move m to 2,2.

Then whe make sure the device corresponds with the resulting
board.

I had to add the event TestLogging.recordEvent(TestProtocol.SEQUENCE_MAIN, "Widgets.onLongClick");
on ItemLongClickListener because the tests where not expecting
a long press on a widget after is being place on the
workspace.

Also, I needed to add the option to drag a widget
to a specific point instead of the previous option
of only dragging to the workspace.

Fix: 231449779
Test: Run the test and make sure they pass.
Change-Id: I58183b7ce2ca64c999e21073cce5e0ba6e6f3a9e
2022-07-18 11:52:12 -07:00