Commit Graph

145 Commits

Author SHA1 Message Date
Diego Perez
fdf453aa9d Fix broken perf tests
Do not dispose Bridge on tearDown. The concept of disposing the Bridge
only made sense when we were loading it dynamically. Some classes have
static initializers that will fail after the dispose (like Typeface).

Test: N/A
Change-Id: I9c934432232bda02a4d26425587096fb6dc957b0
(cherry picked from commit f1532e36e1)
2017-04-03 14:11:23 +00:00
Diego Perez
a55b3ba642 Handle the case where no session exists
In some cases, if an error happens, no session will exist in
BridgeRenderSession.

Test: Added small regression test
Change-Id: Ic9be381767626766395c65044542c197ed7649e7
2017-03-30 12:21:07 +01:00
Diego Perez
25cbb6c009 Fix font golden image using Oracle JDK
Test: Fixes test
Change-Id: Ie90d55ee73d6342524ba2b8b267d190cb5218fc8
2017-03-27 14:20:31 +01:00
TreeHugger Robot
42a872ac4a Merge "Updating font test after the TextView fix" 2017-03-27 11:13:01 +00:00
Diego Perez
f170175402 Updating font test after the TextView fix
Test: Updated
Change-Id: Ia427cc25936b7a6aed035a4068d53151c74e839d
2017-03-24 14:55:38 +00:00
Diego Perez
d7437d649e Dispose font cache on bridge.dispose
Test: N/A
Change-Id: I81404740835814a018bfd70cf70b5c22933f19f5
2017-03-24 11:10:38 +00:00
Charlie Tsai
3ccd67dc9c Merge "Replace rectangle shadow algorithm" 2017-03-19 01:18:39 +00:00
Charlie Tsai
e18bf49be6 Replace rectangle shadow algorithm
Test: Rectangle Shadow test
Change-Id: Id9635df8769e85d835dc6f99201b86e5bba110d2
2017-03-18 21:34:00 +00:00
Diego Perez
e49ba39172 Workaround for broken BitmapShader in AdaptiveIconDrawable
This removes the need of using BitmapShader while we debug the problem
in layoutlib.

Bug: 36204957
Test: Added new test for adaptive icons
Change-Id: I4ff9968b996a1563be8caa0873e7aec8fb5cb151
2017-03-14 14:45:36 +00:00
Charlie Tsai
3f7408fcd9 Merge "Add the test function for rectangle shadow" 2017-03-02 16:51:56 +00:00
Charlie Tsai
79062f6fc3 Add the test function for rectangle shadow
Add an XML layout file which contains some buttons
with different elevations to test the shadow generation
algorithm.

Test: Added new rectangle shadow
Change-Id: Ifcb5a48200846c33d89f66c162521f2c8565c95d
2017-03-01 17:56:10 +00:00
Diego Perez
06a7ff3557 Add perf tests to Main
Test: N/A
Change-Id: I907ebdc28043e3ac92bae6b6a19451c2ca24423f
2017-03-01 16:06:59 +00:00
Jerome Gaillard
434968aa2f Add stroke width property used by animated vector drawables
This is for example used in displaying a checked radio button.

Test: Modified widget render test to include a checked radio button
Change-Id: I43074ce038f69f28c0cf5fb396d393722b02b142
2017-02-27 14:44:46 +00:00
Diego Perez
3d3e69ce6d Fix BridgeContext.resolveThemeAttribute color parsing
When passed a color, resolveThemeAttribute was not parsing the value
into the .data field.

Bug: http://b.android.com/232870
Test: Added new test
Change-Id: I9d91e3a70c24f1e71d9d89977fe79b0965e98893
2017-02-20 11:08:26 +00:00
Diego Perez
b9014f356a Merge "Add BridgeXmlPullAttributesTest to the Main suite" 2017-02-16 17:47:10 +00:00
Jerome Gaillard
3a73332350 Fix LayoutlibTestCallback.getResourceId
Return null instead of triggering a NPE when there are no resource of
the asked type.

Test: RenderTests.testFonts
Change-Id: Ib45ebdf2178e62cbd987082512fcbb009de3f1b2
2017-02-15 15:59:04 +00:00
Diego Perez
c5a8e06f2e Merge "Add dynamic font support" 2017-02-15 10:36:22 +00:00
Diego Perez
789c4b4b14 Add dynamic font support
This CL allows loading fonts from resources.

Test: Added new fonts test
Change-Id: Ic82239121cc3f78f2a22b22de42e54575c1f2d98
2017-02-14 18:24:16 +00:00
Diego Perez
44467a0f61 Remove custom service Class -> name mapping
Keeping the mapping manually is very error prone and the
SystemServiceRegistry already does it for us.

Bug: http://b.android.com/231975
Test: Added new test
Change-Id: I507c4a9d5f0821a5a237ee27f5e97c5cd9040223
2017-02-13 15:57:50 +00:00
Diego Perez
97344168cb Add BridgeXmlPullAttributesTest to the Main suite
Test: Not needed
Change-Id: Ic00e6ef6b0fffd7ad480d37cfd57b2859efe1fbb
(cherry picked from commit 836d53375c0bc98fa5ee5f591901895cc1a305bd)
2017-02-08 10:22:40 +00:00
Diego Perez
c357e35897 Merge "Upgrade thumbnails size by 4x" 2017-02-08 10:21:39 +00:00
Diego Perez
c0919ba4cb Upgrade thumbnails size by 4x
Test: Updates existing tests
Change-Id: I822ea4b35ee56b8c2e193b7123e6e99719499359
2017-02-07 11:10:57 +00:00
Diego Perez
abb080d749 Fix support for enum attributes in BridgeContext
Test: Updated BridgeXmlPullAttributesTest
Bug: http://b.android.com/231347
Change-Id: I5fd8b46155ccea6c9b65787f311a0887fa4b4806
2017-02-07 10:29:09 +00:00
Diego Perez
373259f296 Adds test to collect performance metrics
Test: Adds performance tests
Change-Id: I7d112ddad4efb2c1c84ac177d230225cc031f7f3
2017-01-16 18:14:34 +00:00
Diego Perez
66dc364046 Add Main back to run in buildbot
Main is now a Suite that contains all the test needed for CI

Test: No new tests needed
Change-Id: I4374faacfa38f00d404151276580de636984638c
2017-01-16 18:13:54 +00:00
Diego Perez
27c2ce3c40 Refactor tests structure
Move all the render test utility methods to a separate class and leave
only tests in RenderTests class (old Main).
The idea is to improve the organization to allow to create a set of
performance tests and also to allow the tests to grow more structured.

Test: Just moved tests around
Change-Id: I3b773d0745700dd2a52f937b9b668a2d374b8686
2017-01-16 18:13:44 +00:00
Jerome Gaillard
1ea5da6d70 Update Config.getTime method after the N release
And update the relevant golden files as the time in the status bar
is changed.

Test: Run layoutlib tests
Change-Id: I421b5495291f2d62091366bc0c066e77e0f3e107
2017-01-16 18:13:35 +00:00
Diego Perez
74f50acfc4 Merge changes Ia7a8a27f,I0646aab6,Ia324f18d,I38c6c6df,Ic9214929, ...
* changes:
  Add missing attributes to old themes
  Fix plurals support in layoutlib
  Do not log errors while loading string arrays
  Hack to deal with android:pointerIcon in layoutlib
  Force animateFirstValue to false
  Avoid passing antialias when measuring scaled text
  Catch all exceptions in NativeAllocationRegistry free
2017-01-16 18:05:51 +00:00
Diego Perez
0c864fde58 Add missing attributes to old themes
Because we always use the latest framework code, some resources might
fail to resolve when using old themes (they haven't been backported).
Since this is an artifact caused by us using always the latest code, we
check for some of those values and replace them here.

Bug: http://b.android.com/225105
Test: Included new testActivityOnOldTheme
Change-Id: Ia7a8a27fb81fe0b4a1e0c9610a2033a87720864d
2017-01-16 15:37:12 +00:00
Diego Perez
df0c47e566 Do not log errors while loading string arrays
When arrays contain references, if we can not resolve them, just return
the reference string. This matches the behaviour of resource resolution
in BridgeTypeArray.

Bug: http://b.android.com/228620
Test: Updates existing tests
Change-Id: Ia324f18d9128b8abf2ba676a83d4b424914e2c88
2017-01-16 15:36:41 +00:00
Jerome Gaillard
7d7ef8400d Hack to deal with android:pointerIcon in layoutlib
android:pointerIcon is a View attribute that can be an enum or a
reference. Layoutlib cannot easily deal with the way that is handled
in the platform. As the property would not have any impact on the
result in layoutlib, that property is bypassed.

Test: Main.testAllWidgets
Change-Id: I38c6c6df45c1836d44b4f80245a453fb432ea251
2017-01-16 15:35:15 +00:00
Diego Perez
6782b0e74a Force animateFirstValue to false
This CL forces both animateFirstValue and animateLayoutChanges to false
in themes when running layoutlib. This helps with the rendering of some
widgets so they do not rely on animations.

Test: Test as part of testActivity
Change-Id: Ic9214929d3582bc3e0a196d198cc4fb36347c782
2017-01-16 15:34:58 +00:00
Diego Perez
e6052ae443 Call layout when doing an only-measure pass
Test: Modified testScrolled to check the only-measure behaviour
Change-Id: Ie86c329e0f7d9135d53274977e24f431f5edc201
(cherry picked from commit 2d657bc344717281e470430b05adaa32fbd0af00)
2017-01-16 14:29:56 +00:00
Diego Perez
8a7546e1fc Separate render and verify in tests
Test: Test refactoring. Tests still pass
Change-Id: Icdee3eb9ef1b2639418110583ac74a3fd5362166
(cherry picked from commit 564b00dd5201711c25a3580aa21be8b36bfaf923)
2017-01-11 15:58:31 +00:00
Diego Perez
5becc4872f Merge "Call onApplyWindowInsets after requestApplyWindowInsets" 2017-01-11 15:57:15 +00:00
Diego Perez
48a285ce1b Fix status and nav bar translucency
Bug: http://b.android.com/204831
Test: Added new UI tests
Change-Id: I992f4ccc391d9a4a0dda941689ec29fb44acf69b
2016-12-07 09:41:42 +00:00
Paul Duffin
10a9bd905c Merge "Use junit-host instead of junit" am: 6063357ae6 am: 6fc0c5ceca am: 32317b3c8d
am: 29bf88aca9

Change-Id: I2f75d5e80d9baa411e7816958d4a6d6d220d0ba9
2016-11-29 15:31:57 +00:00
Paul Duffin
4a064d2010 Use junit-host instead of junit
Bug: 30188076
Test: make checkbuild
Change-Id: I3496b9d7e40abf7712a56ba633a2becd0aa17c06
2016-11-29 14:52:42 +00:00
Diego Perez
5017ece983 Update allwidgets golden image
Test: Updating existing test
Change-Id: Ie66abc77ec6013a8094d6b8be2666b69c973a295
(cherry picked from commit 48d6ec53f9c75571217880ef77902f582723418b)
2016-11-25 12:36:12 +00:00
Jerome Gaillard
d38fffd38d Store failure thumbnails in CWD/out/failures
When a test fails in layoutlib, store the resulting png files in
out/failures subdirectory of the current working directory.
That avoids the risk of collisions if tests for several branches
of layoutlib are run at the same time.

Test: Run tests in layoutlib with at least one failing test
Change-Id: I31594a871e481e6aa410a165926ce544dc7ddcf2
(cherry picked from commit 82ebb9058479de56860f348ab969160e0d8294b6)
2016-11-24 16:43:30 +00:00
Diego Perez
dc3bb324ce Fix tests when running from the command line
When loading classes from the jar file, we can't just use the
URLClassLoader since it can not enumerate files in a jar directory.
Restoring the ModuleClassLoader and making all paths relative to the
system class loader (as opposed to relative to the class location).

Change-Id: Ib3f5d12dd5c964d0ba9cc6c5ec9cb556c989e653
(cherry picked from commit 2a4a6c81f8a103be5c48d8a0605a3e4416e8f7f1)
2016-11-23 11:01:44 +00:00
Diego Perez
b076ee1a83 Call onApplyWindowInsets after requestApplyWindowInsets
On layoutlib, requestApplyWindowInsets wasn't being passed up to
ViewRootImpl so onApplyWindowInsets wasn't being called.

Test: Added new test testApplyWindowInsets
Bug: http://b.android.com/169308
Change-Id: I8f3174dc2879a7e6c3db1628a1bfb1c023d88efc
2016-11-17 11:09:02 +00:00
Diego Perez
c318f0b408 More layoutlib testing infra fixes
- Remove ModuleClassLoader as it can be replaced with a URLClassLoader
  for now.
- Move CustomCalendar and CustomDate to a separate package that can be
  used both by the Bridge tests and the actual test app.
- Move empty.xml out of the test app so it compiles.
- Update test app to use the latest build tools and SDK (some attributes
  being used by the app weren't supported in API 21).
- Update gitignore to remove the new out directory.

Test: Update to existing tests
Change-Id: Ieb7324d5ae559f9c581771c57f2127cd83909015
2016-11-15 14:11:33 +00:00
Jerome Gaillard
e6f30eec36 Fix testActivity on buildbot
Follow-up to commit 896cc3a794, the class file also needed to be
updated. The golden file of testActivity is also updated to be
the one built with jdk1.8.0_60 which is the one running on buildbot.

Test: Run testActivity
Change-Id: I7f3cfc1123160005c3cb5fa4213db6ae3a48457d
(cherry picked from commit aab13aee9a11c340952c24f2410940df59996816)
2016-11-14 18:05:57 +00:00
Jerome Gaillard
7638c49c84 Change date on CustomCalendar
The date of the calendar is set by converting the epoch time based on
the local time zone. We choose at date at 12:00 GMT so that it will
be on the same day no matter which time zone is considered.

Test: part of testActivity
Change-Id: Ib36a5b45f69323265dd5ceaa17eeac553fc2d071
(cherry picked from commit 896cc3a794bb6e173c1e53e97f70007c3e24de38)
2016-11-14 11:01:33 +00:00
Jerome Gaillard
3911cee2cf Update testActivity
Put android:animateFirstView false in the test application theme
so that the date picker view displays fully.
Update the golden image to reflect the changes.

Change-Id: If57fac5c182dd69b4b4d4fcc30d6f17a8f67ad68
(cherry picked from commit 96970138fc1c8d928a6d3ec362865e6c626f56e4)
2016-11-10 16:35:09 +00:00
Diego Perez
c7c3636c2f Ignore ?attr/windowActionBar when displaying menus
When we are displaying menus we do not care about that theme setting as
we always want to display the actionbar and the menu.

Bug: http://b.android.com/212320
Change-Id: I3b6200cc42e3c525a3763d14d423ee8371acc2f1
(cherry picked from commit 71eb800c0bb21b0e4cea3b29235ac4e544e765b2)
2016-07-19 15:46:54 +00:00
Diego Perez
d43916b555 Fix leak in VPathRenderer
The pointer to the root group in the VPathRenderer is not freed anywhere
in the Java side so we need to take care of it on the "native" side.

Change-Id: I2ca60b1f0e975a0b5d29799c5f6f31b5f8d42b9d
(cherry picked from commit ffdb1b241d9458196403c8f16264aa7053487323)
2016-07-19 10:30:53 +00:00
Diego Perez
245e1be94b Updating unit tests so they match the expected output
Change-Id: Id9af601c00fc87f861adeed9f5aa99a3dc55b17e
(cherry picked from commit 768e4c952f335a825cd45b102556d5948ed09d0c)
2016-06-27 18:31:07 +00:00
Diego Perez
721ca186f1 Merge "Fix Path_Delegate reset" 2016-06-27 10:39:41 +00:00