Skip to content

Commit 442d3d7

Browse files
Fix tests
1 parent ca333d2 commit 442d3d7

File tree

6 files changed

+37
-28
lines changed

6 files changed

+37
-28
lines changed

pkgs/jni/test/global_env_test.dart

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ void run({required TestRunnerCallback testRunner}) {
110110
integerClass,
111111
"parseInt".toNativeChars(arena),
112112
"(Ljava/lang/String;)I".toNativeChars(arena));
113-
final args = toJValues(["hello"], allocator: arena);
113+
final args = toJValues(["hello".toJString()..releasedBy(arena)],
114+
allocator: arena);
114115
expect(
115116
() => env.CallStaticIntMethodA(
116117
integerClass, parseIntMethod, args),
@@ -171,7 +172,9 @@ void run({required TestRunnerCallback testRunner}) {
171172
final systemOut = using((arena) {
172173
final systemClass =
173174
env.FindClass("java/lang/System".toNativeChars(arena));
174-
final outField = env.GetFieldID(systemClass, "out".toNativeChars(arena),
175+
final outField = env.GetStaticFieldID(
176+
systemClass,
177+
"out".toNativeChars(arena),
175178
"Ljava/io/PrintStream;".toNativeChars(arena));
176179
env.DeleteGlobalRef(systemClass);
177180
return env.GetStaticObjectField(systemClass, outField);
@@ -210,9 +213,13 @@ void run({required TestRunnerCallback testRunner}) {
210213
using((arena) {
211214
final systemClass =
212215
env.FindClass("java/lang/System".toNativeChars(arena));
213-
final outField = env.GetFieldID(systemClass, "out".toNativeChars(arena),
216+
final outField = env.GetStaticFieldID(
217+
systemClass,
218+
"out".toNativeChars(arena),
214219
"Ljava/io/PrintStream;".toNativeChars(arena));
215-
final errField = env.GetFieldID(systemClass, "err".toNativeChars(arena),
220+
final errField = env.GetStaticFieldID(
221+
systemClass,
222+
"err".toNativeChars(arena),
216223
"Ljava/io/PrintStream;".toNativeChars(arena));
217224
final systemOut = env.GetStaticObjectField(systemClass, outField);
218225
final systemErr = env.GetStaticObjectField(systemClass, errField);

pkgs/jni/test/jobject_test.dart

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ void run({required TestRunnerCallback testRunner}) {
4949
jint.type,
5050
[],
5151
);
52-
expect(intValue, equals(176));
52+
expect(intValue, 176);
5353

5454
// Release any JObject and JClass instances using `.release()` after use.
5555
// This is not strictly required since JNI objects / classes have
@@ -70,7 +70,7 @@ void run({required TestRunnerCallback testRunner}) {
7070

7171
// Dart string is a copy, original object can be released.
7272
result.release();
73-
expect(resultString, equals("1f"));
73+
expect(resultString, "1f");
7474

7575
// Also don't forget to release the class.
7676
integerClass.release();
@@ -119,7 +119,7 @@ void run({required TestRunnerCallback testRunner}) {
119119
bits += r % 2;
120120
r = (r / 2).floor();
121121
}
122-
expect(jbc, equals(bits));
122+
expect(jbc, bits);
123123
}
124124
random.release();
125125
longClass.release();
@@ -132,25 +132,23 @@ void run({required TestRunnerCallback testRunner}) {
132132
jint.type,
133133
[JValueShort(1234), JValueShort(1324)],
134134
);
135-
expect(m, equals(1234 - 1324));
135+
expect(m, 1234 - 1324);
136136
shortClass.release();
137137
});
138138

139139
testRunner("Java char from string", () {
140140
final characterClass = JCharacter.type.jClass;
141-
final m = characterClass
142-
.staticMethodId("isLowerCase", "(C)Z")
143-
.call(characterClass, const jcharType(), [JValueChar.fromString('X')]);
141+
final m = characterClass.staticMethodId("isLowerCase", "(C)Z").call(
142+
characterClass, const jbooleanType(), [JValueChar.fromString('X')]);
144143
expect(m, isFalse);
145144
characterClass.release();
146145
});
147146

148147
testRunner("Get static field", () {
149148
final shortClass = JShort.type.jClass;
150-
final maxLong = shortClass
151-
.staticFieldId("MAX_VALUE", "S")
152-
.get(shortClass, const jshortType());
153-
expect(maxLong, equals(32767));
149+
final maxLong =
150+
shortClass.staticFieldId("MAX_VALUE", "S").get(shortClass, jshort.type);
151+
expect(maxLong, 32767);
154152
shortClass.release();
155153
});
156154

@@ -160,16 +158,16 @@ void run({required TestRunnerCallback testRunner}) {
160158
final strFromJava = longClass
161159
.staticMethodId("toOctalString", "(J)Ljava/lang/String;")
162160
.call(longClass, JString.type, [n]);
163-
expect(strFromJava, equals(n.toRadixString(8)));
161+
expect(strFromJava.toDartString(releaseOriginal: true), n.toRadixString(8));
164162
longClass.release();
165163
});
166164

167165
testRunner("Passing strings in arguments", () {
168166
final byteClass = JByte.type.jClass;
169167
final parseByte =
170168
byteClass.staticMethodId("parseByte", "(Ljava/lang/String;)B");
171-
final twelve = parseByte(byteClass, const jbyteType(), ["12"]);
172-
expect(twelve, equals(12));
169+
final twelve = parseByte(byteClass, const jbyteType(), ["12".toJString()]);
170+
expect(twelve, 12);
173171
byteClass.release();
174172
});
175173

@@ -215,7 +213,7 @@ void run({required TestRunnerCallback testRunner}) {
215213
.instanceMethodId("ordinal", "()I")
216214
.call(http, jint.type, []),
217215
);
218-
expect(ordinal, equals(1));
216+
expect(ordinal, 1);
219217
proxyTypeClass.release();
220218
});
221219

@@ -265,7 +263,7 @@ void run({required TestRunnerCallback testRunner}) {
265263
final integerClass = JInteger.type.jClass;
266264
return JClass.forName("java/lang/Integer")
267265
.staticMethodId("parseInt", "(Ljava/lang/String;)I")
268-
.call(integerClass, jint.type, ["X"]);
266+
.call(integerClass, jint.type, ["X".toJString()]);
269267
},
270268
throwsA(isA<JniException>()),
271269
);
@@ -288,6 +286,6 @@ void run({required TestRunnerCallback testRunner}) {
288286
final longClass = JLong.type.jClass;
289287
final maxLong =
290288
longClass.staticFieldId("MAX_VALUE", "J").get(longClass, jlong.type);
291-
expect(maxLong, equals(maxLongInJava));
289+
expect(maxLong, maxLongInJava);
292290
});
293291
}

pkgs/jnigen/example/in_app_java/lib/main.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import 'package:jni/jni.dart';
99
// structure.
1010
import 'android_utils.dart';
1111

12-
JObject activity = JObject.fromRef(Jni.getCurrentActivity());
13-
JObject context = JObject.fromRef(Jni.getCachedApplicationContext());
12+
JObject activity = JObject.fromReference(Jni.getCurrentActivity());
13+
JObject context = JObject.fromReference(Jni.getCachedApplicationContext());
1414

1515
final hashmap = HashMap.new2(K: JString.type, V: JString.type);
1616

pkgs/jnigen/example/notification_plugin/example/lib/main.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import 'package:jni/jni.dart';
1010
// more customization in future.
1111
import 'package:notification_plugin/notifications.dart';
1212

13-
JObject activity = JObject.fromRef(Jni.getCurrentActivity());
13+
JObject activity = JObject.fromReference(Jni.getCurrentActivity());
1414

1515
int i = 0;
1616

pkgs/jnigen/example/pdfbox_plugin/dart_example/bin/pdf_info.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ import 'package:jni/jni.dart';
1010
import 'package:pdfbox_plugin/pdfbox_plugin.dart';
1111

1212
void writeInfo(String file) {
13-
final inputFile = Jni.newInstance(
14-
"java/io/FileInputStream", "(Ljava/lang/String;)V", [file]);
13+
final fileInputStreamClass = JClass.forName("java/io/FileInputStream");
14+
final inputFile = fileInputStreamClass
15+
.constructorId("(Ljava/lang/String;)V")
16+
.call(fileInputStreamClass, JObject.type, [file.toJString()]);
1517
final pdDoc = PDDocument.load6(inputFile);
1618
int pages = pdDoc.getNumberOfPages();
1719
final info = pdDoc.getDocumentInformation();

pkgs/jnigen/example/pdfbox_plugin/example/lib/main.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,10 @@ class PDFFileInfo {
167167
PDFFileInfo.usingPDFBox(this.filename) {
168168
// Since java.io is not directly available, use package:jni API to
169169
// create a java.io.File object.
170-
final inputFile =
171-
Jni.newInstance("java/io/File", "(Ljava/lang/String;)V", [filename]);
170+
final fileClass = JClass.forName("java/io/File");
171+
final inputFile = fileClass
172+
.constructorId("(Ljava/lang/String;)V")
173+
.call(fileClass, JObject.type, [filename]);
172174
// Static method call PDDocument.load -> PDDocument
173175
final pdf = PDDocument.load(inputFile);
174176
// Instance method call getNumberOfPages() -> int

0 commit comments

Comments
 (0)