Skip to content

Commit 6a78b32

Browse files
Joshua Selbofacebook-github-bot
Joshua Selbo
authored andcommitted
Migrate react-native Android tests to Robolectric v4 (#28927)
Summary: Pull Request resolved: #28927 Changelog: [Android] [Changed] Test Modernization Reviewed By: mdvacca Differential Revision: D21598788 fbshipit-source-id: 6fd9c30220d6d69cc68f13bf1f5ad5a4bc2b039a
1 parent 6f75065 commit 6a78b32

File tree

27 files changed

+460
-334
lines changed

27 files changed

+460
-334
lines changed

ReactAndroid/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@ dependencies {
454454
extractJNI("com.facebook.fbjni:fbjni:0.0.2")
455455

456456
testImplementation("junit:junit:${JUNIT_VERSION}")
457-
testImplementation("org.powermock:powermock-api-mockito:${POWERMOCK_VERSION}")
457+
testImplementation("org.powermock:powermock-api-mockito2:${POWERMOCK_VERSION}")
458458
testImplementation("org.powermock:powermock-module-junit4-rule:${POWERMOCK_VERSION}")
459459
testImplementation("org.powermock:powermock-classloading-xstream:${POWERMOCK_VERSION}")
460460
testImplementation("org.mockito:mockito-core:${MOCKITO_CORE_VERSION}")

ReactAndroid/gradle.properties

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ POM_NAME=ReactNative
55
POM_ARTIFACT_ID=react-native
66
POM_PACKAGING=aar
77

8-
MOCKITO_CORE_VERSION=2.19.1
9-
POWERMOCK_VERSION=1.6.2
10-
ROBOLECTRIC_VERSION=3.0
8+
MOCKITO_CORE_VERSION=2.26.0
9+
POWERMOCK_VERSION=2.0.2
10+
ROBOLECTRIC_VERSION=4.3.1
1111
JUNIT_VERSION=4.12
1212
FEST_ASSERT_CORE_VERSION=2.0M10
1313

ReactAndroid/src/main/libraries/fbcore/src/test/java/com/facebook/powermock/BUCK

+88-78
Original file line numberDiff line numberDiff line change
@@ -2,164 +2,174 @@ load("//tools/build_defs:fb_native_wrapper.bzl", "fb_native")
22
load("//tools/build_defs/oss:rn_defs.bzl", "rn_android_library", "rn_prebuilt_jar")
33

44
rn_android_library(
5-
name = "powermock",
6-
visibility = ["//ReactAndroid/..."],
5+
name = "powermock2",
6+
visibility = ["PUBLIC"],
77
exported_deps = [
8-
":javassist",
9-
":mockito-all",
10-
":powermock-api-mockito",
8+
":javassist-prebuilt",
9+
":powermock-api-mockito2",
1110
":powermock-api-support",
1211
":powermock-classloading-base",
13-
":powermock-classloading-xstream",
12+
":powermock-classloading-xstream-prebuilt",
1413
":powermock-core",
15-
":powermock-module-junit4-rule",
14+
":powermock-module-junit-common-prebuilt",
15+
":powermock-module-junit-rule-prebuilt",
1616
":powermock-reflect",
17-
":xmlpull",
18-
":xpp3",
19-
":xstream",
17+
":xstream-prebuilt",
18+
],
19+
)
20+
21+
rn_android_library(
22+
name = "powermock-reflect",
23+
visibility = ["PUBLIC"],
24+
exported_deps = [
25+
":byte-buddy",
26+
":objenesis",
27+
":powermock-reflect-prebuilt",
2028
],
2129
)
2230

2331
rn_prebuilt_jar(
24-
name = "powermock-core",
25-
binary_jar = ":download-powermock-core.jar",
32+
name = "byte-buddy",
33+
binary_jar = ":byte-buddy-binary.jar",
2634
visibility = ["//ReactAndroid/..."],
2735
)
2836

2937
fb_native.remote_file(
30-
name = "download-powermock-core.jar",
31-
sha1 = "ea04e79244e19dcf0c3ccf6863c5b028b4b58c9c",
32-
url = "mvn:org.powermock:powermock-core:jar:1.6.2",
38+
name = "byte-buddy-binary.jar",
39+
sha1 = "211a2b4d3df1eeef2a6cacf78d74a1f725e7a840",
40+
url = "mvn:net.bytebuddy:byte-buddy:jar:1.9.10",
3341
)
3442

3543
rn_prebuilt_jar(
36-
name = "powermock-api-mockito",
37-
binary_jar = ":download-powermock-api-mockito.jar",
44+
name = "byte-buddy-agent",
45+
binary_jar = ":byte-buddy-agent-binary.jar",
3846
visibility = ["//ReactAndroid/..."],
3947
)
4048

4149
fb_native.remote_file(
42-
name = "download-powermock-api-mockito.jar",
43-
sha1 = "c213230ae20a7b422f3d622a261d0e3427d2464c",
44-
url = "mvn:org.powermock:powermock-api-mockito:jar:1.6.2",
50+
name = "byte-buddy-agent-binary.jar",
51+
sha1 = "9674aba5ee793e54b864952b001166848da0f26b",
52+
url = "mvn:net.bytebuddy:byte-buddy-agent:jar:1.9.10",
4553
)
4654

4755
rn_prebuilt_jar(
48-
name = "powermock-api-support",
49-
binary_jar = ":download-powermock-api-support.jar",
56+
name = "objenesis",
57+
binary_jar = ":objenesis-binary.jar",
5058
visibility = ["//ReactAndroid/..."],
5159
)
5260

5361
fb_native.remote_file(
54-
name = "download-powermock-api-support.jar",
55-
sha1 = "93b21413b4ee99b7bc0dd34e1416fdca96866aaf",
56-
url = "mvn:org.powermock:powermock-api-support:jar:1.6.2",
62+
name = "objenesis-binary.jar",
63+
sha1 = "639033469776fd37c08358c6b92a4761feb2af4b",
64+
url = "mvn:org.objenesis:objenesis:jar:2.6",
5765
)
5866

5967
rn_prebuilt_jar(
60-
name = "powermock-module-junit4-rule",
61-
binary_jar = ":download-powermock-module-junit4-rule.jar",
62-
visibility = ["//ReactAndroid/..."],
68+
name = "powermock-reflect-prebuilt",
69+
binary_jar = ":powermock-reflect.jar",
6370
)
6471

6572
fb_native.remote_file(
66-
name = "download-powermock-module-junit4-rule.jar",
67-
sha1 = "4847638c5729b9f203e21144b0bdb5d34d888473",
68-
url = "mvn:org.powermock:powermock-module-junit4-rule:jar:1.6.2",
73+
name = "powermock-reflect.jar",
74+
sha1 = "9a8b85397c5a72923962ee9e6bf774e8458803bb",
75+
url = "mvn:org.powermock:powermock-reflect:jar:2.0.7",
6976
)
7077

7178
rn_prebuilt_jar(
72-
name = "powermock-classloading-xstream",
73-
binary_jar = ":download-powermock-classloading-xstream.jar",
74-
visibility = ["//ReactAndroid/..."],
79+
name = "powermock-api-mockito2",
80+
binary_jar = ":powermock-api-mockito2.jar",
7581
)
7682

7783
fb_native.remote_file(
78-
name = "download-powermock-classloading-xstream.jar",
79-
sha1 = "3ced31cd7024fe365b9f3c8082d22c02434577da",
80-
url = "mvn:org.powermock:powermock-classloading-xstream:jar:1.6.2",
84+
name = "powermock-api-mockito2.jar",
85+
sha1 = "9f40156d9f6f65c6459a65e34f3c7c4fef8b3c49",
86+
url = "mvn:org.powermock:powermock-api-mockito2:jar:2.0.7",
87+
)
88+
89+
rn_prebuilt_jar(
90+
name = "powermock-api-support",
91+
binary_jar = ":powermock-api-support.jar",
92+
)
93+
94+
fb_native.remote_file(
95+
name = "powermock-api-support.jar",
96+
sha1 = "e311918de98f5d8b726031ca840664691599fd71",
97+
url = "mvn:org.powermock:powermock-api-support:jar:2.0.7",
8198
)
8299

83100
rn_prebuilt_jar(
84101
name = "powermock-classloading-base",
85-
binary_jar = ":download-powermock-classloading-base.jar",
86-
visibility = ["//ReactAndroid/..."],
102+
binary_jar = ":powermock-classloading-base.jar",
87103
)
88104

89105
fb_native.remote_file(
90-
name = "download-powermock-classloading-base.jar",
91-
sha1 = "c8bfc10731a02d3b241892cf2c334a754d473ca7",
92-
url = "mvn:org.powermock:powermock-classloading-base:jar:1.6.2",
106+
name = "powermock-classloading-base.jar",
107+
sha1 = "58ae5d3087ddfee5a591131d337907401276f7d4",
108+
url = "mvn:org.powermock:powermock-classloading-base:jar:2.0.7",
93109
)
94110

95111
rn_prebuilt_jar(
96-
name = "xstream",
97-
binary_jar = ":download-xstream.jar",
98-
visibility = ["//ReactAndroid/..."],
112+
name = "powermock-classloading-xstream-prebuilt",
113+
binary_jar = ":powermock-classloading-xstream.jar",
99114
)
100115

101116
fb_native.remote_file(
102-
name = "download-xstream.jar",
103-
sha1 = "97e5013f391487cce4de6b0eebcde21549e91872",
104-
url = "mvn:com.thoughtworks.xstream:xstream:jar:1.4.2",
117+
name = "powermock-classloading-xstream.jar",
118+
sha1 = "2ec4d94a584f12b0aa1165279e92ef3d5fda1b93",
119+
url = "mvn:org.powermock:powermock-classloading-xstream:jar:2.0.7",
105120
)
106121

107122
rn_prebuilt_jar(
108-
name = "powermock-reflect",
109-
binary_jar = ":download-powermock-reflect.jar",
110-
visibility = ["//ReactAndroid/..."],
123+
name = "powermock-core",
124+
binary_jar = ":powermock-core.jar",
111125
)
112126

113127
fb_native.remote_file(
114-
name = "download-powermock-reflect.jar",
115-
sha1 = "1af1bbd1207c3ecdcf64973e6f9d57dcd17cc145",
116-
url = "mvn:org.powermock:powermock-reflect:jar:1.6.2",
128+
name = "powermock-core.jar",
129+
sha1 = "484c06b406c5a21a4a2ad39f6fe36a0f77834aa9",
130+
url = "mvn:org.powermock:powermock-core:jar:2.0.7",
117131
)
118132

119133
rn_prebuilt_jar(
120-
name = "javassist",
121-
binary_jar = ":download-javassist.jar",
122-
visibility = ["//ReactAndroid/..."],
134+
name = "powermock-module-junit-common-prebuilt",
135+
binary_jar = ":powermock-module-junit-common.jar",
123136
)
124137

125138
fb_native.remote_file(
126-
name = "download-javassist.jar",
127-
sha1 = "a9cbcdfb7e9f86fbc74d3afae65f2248bfbf82a0",
128-
url = "mvn:org.javassist:javassist:jar:3.20.0-GA",
139+
name = "powermock-module-junit-common.jar",
140+
sha1 = "e890f92292aa525000a8fa95a8ca4015e3eb78b8",
141+
url = "mvn:org.powermock:powermock-module-junit4-common:jar:2.0.7",
129142
)
130143

131144
rn_prebuilt_jar(
132-
name = "mockito-all",
133-
binary_jar = ":download-mockito-all.jar",
134-
visibility = ["//ReactAndroid/..."],
145+
name = "powermock-module-junit-rule-prebuilt",
146+
binary_jar = ":powermock-module-junit-rule.jar",
135147
)
136148

137149
fb_native.remote_file(
138-
name = "download-mockito-all.jar",
139-
sha1 = "539df70269cc254a58cccc5d8e43286b4a73bf30",
140-
url = "mvn:org.mockito:mockito-all:jar:1.10.19",
150+
name = "powermock-module-junit-rule.jar",
151+
sha1 = "d0d14709ffec2c3cbad0e3d6256bc8ace682398d",
152+
url = "mvn:org.powermock:powermock-module-junit4-rule:jar:2.0.7",
141153
)
142154

143155
rn_prebuilt_jar(
144-
name = "xmlpull",
145-
binary_jar = ":download-xmlpull.jar",
146-
visibility = ["//ReactAndroid/..."],
156+
name = "javassist-prebuilt",
157+
binary_jar = ":javassist.jar",
147158
)
148159

149160
fb_native.remote_file(
150-
name = "download-xmlpull.jar",
151-
sha1 = "2b8e230d2ab644e4ecaa94db7cdedbc40c805dfa",
152-
url = "mvn:xmlpull:xmlpull:jar:1.1.3.1",
161+
name = "javassist.jar",
162+
sha1 = "f63e6aa899e15eca8fdaa402a79af4c417252213",
163+
url = "mvn:org.javassist:javassist:jar:3.27.0-GA",
153164
)
154165

155166
rn_prebuilt_jar(
156-
name = "xpp3",
157-
binary_jar = ":download-xpp3.jar",
158-
visibility = ["//ReactAndroid/..."],
167+
name = "xstream-prebuilt",
168+
binary_jar = ":xstream.jar",
159169
)
160170

161171
fb_native.remote_file(
162-
name = "download-xpp3.jar",
163-
sha1 = "19d4e90b43059058f6e056f794f0ea4030d60b86",
164-
url = "mvn:xpp3:xpp3_min:jar:1.1.4c",
172+
name = "xstream.jar",
173+
sha1 = "6c120c45a8c480bb2fea5b56502e3993ddd74fd2",
174+
url = "mvn:com.thoughtworks.xstream:xstream:jar:1.4.11.1",
165175
)

ReactAndroid/src/main/third-party/android/androidx/BUCK

+20
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,15 @@ fb_native.android_library(
281281
],
282282
)
283283

284+
fb_native.android_library(
285+
name = "test-monitor",
286+
visibility = ["PUBLIC"],
287+
exported_deps = [
288+
":annotation",
289+
":test-monitor-binary",
290+
],
291+
)
292+
284293
fb_native.android_library(
285294
name = "vectordrawable",
286295
visibility = ["PUBLIC"],
@@ -448,6 +457,11 @@ fb_native.android_prebuilt_aar(
448457
aar = ":swiperefreshlayout-binary-aar",
449458
)
450459

460+
fb_native.android_prebuilt_aar(
461+
name = "test-monitor-binary",
462+
aar = ":test-monitor-binary-aar",
463+
)
464+
451465
fb_native.android_prebuilt_aar(
452466
name = "vectordrawable-binary",
453467
aar = ":vectordrawable-binary-aar",
@@ -625,6 +639,12 @@ fb_native.remote_file(
625639
url = "mvn:androidx.swiperefreshlayout:swiperefreshlayout:aar:1.0.0",
626640
)
627641

642+
fb_native.remote_file(
643+
name = "test-monitor-binary-aar",
644+
sha1 = "d2f75d117c055f35c8ebbd4f96fabc2137df9e4d",
645+
url = "mvn:androidx.test:monitor:aar:1.2.0",
646+
)
647+
628648
fb_native.remote_file(
629649
name = "vectordrawable-binary-aar",
630650
sha1 = "33d1eb71849dffbad12add134a25eb63cad4a1eb",

ReactAndroid/src/main/third-party/java/asm/BUCK

+10-10
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ rn_prebuilt_jar(
2121

2222
fb_native.remote_file(
2323
name = "download-asm.jar",
24-
sha1 = "2fd56467a018aafe6ec6a73ccba520be4a7e1565",
25-
url = "mvn:org.ow2.asm:asm:jar:5.0.1",
24+
sha1 = "d74d4ba0dee443f68fb2dcb7fcdb945a2cd89912",
25+
url = "mvn:org.ow2.asm:asm:jar:7.0",
2626
)
2727

2828
rn_prebuilt_jar(
@@ -33,8 +33,8 @@ rn_prebuilt_jar(
3333

3434
fb_native.remote_file(
3535
name = "download-asm-commons.jar",
36-
sha1 = "7b7147a390a93a14d2edfdcf3f7b0e87a0939c3e",
37-
url = "mvn:org.ow2.asm:asm-commons:jar:5.0.1",
36+
sha1 = "478006d07b7c561ae3a92ddc1829bca81ae0cdd1",
37+
url = "mvn:org.ow2.asm:asm-commons:jar:7.0",
3838
)
3939

4040
rn_prebuilt_jar(
@@ -45,8 +45,8 @@ rn_prebuilt_jar(
4545

4646
fb_native.remote_file(
4747
name = "download-asm-tree.jar",
48-
sha1 = "1b1e6e9d869acd704056d0a4223071a511c619e6",
49-
url = "mvn:org.ow2.asm:asm-tree:jar:5.0.1",
48+
sha1 = "29bc62dcb85573af6e62e5b2d735ef65966c4180",
49+
url = "mvn:org.ow2.asm:asm-tree:jar:7.0",
5050
)
5151

5252
rn_prebuilt_jar(
@@ -57,8 +57,8 @@ rn_prebuilt_jar(
5757

5858
fb_native.remote_file(
5959
name = "download-asm-util.jar",
60-
sha1 = "7c8caddfbd0b2d7b844f8fcc75175b9cb9cf4724",
61-
url = "mvn:org.ow2.asm:asm-util:jar:5.0.1",
60+
sha1 = "18d4d07010c24405129a6dbb0e92057f8779fb9d",
61+
url = "mvn:org.ow2.asm:asm-util:jar:7.0",
6262
)
6363

6464
rn_prebuilt_jar(
@@ -69,6 +69,6 @@ rn_prebuilt_jar(
6969

7070
fb_native.remote_file(
7171
name = "download-asm-analysis.jar",
72-
sha1 = "e286fbee48efacb4e7c175f7948d9d8b2ab52352",
73-
url = "mvn:org.ow2.asm:asm-analysis:jar:5.0.1",
72+
sha1 = "4b310d20d6f1c6b7197a75f1b5d69f169bc8ac1f",
73+
url = "mvn:org.ow2.asm:asm-analysis:jar:7.0",
7474
)

0 commit comments

Comments
 (0)