Skip to content

Commit 0dfbab8

Browse files
lrhnCommit Queue
authored andcommitted
Make tests/lib/js/static_interop not use minitest.
Change-Id: Id7a8a6ac0098df55b04fa089587c62b07e9cf3c2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403860 Reviewed-by: Sigmund Cherem <[email protected]> Commit-Queue: Lasse Nielsen <[email protected]> Reviewed-by: Srujan Gaddam <[email protected]>
1 parent e534983 commit 0dfbab8

34 files changed

+940
-824
lines changed

sdk/lib/_internal/js_shared/lib/js_util_patch.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ bool typeofEquals<T>(Object? o, String type) {
525525
@patch
526526
@pragma('dart2js:tryInline')
527527
T not<T>(Object? o) {
528-
return JS<dynamic>('Object', '!#', o);
528+
return JS<T>('bool', '!#', o);
529529
}
530530

531531
@patch
@@ -537,13 +537,13 @@ bool isTruthy<T>(Object? o) {
537537
@patch
538538
@pragma('dart2js:tryInline')
539539
T or<T>(Object? first, Object? second) {
540-
return JS<dynamic>('Object|bool', '# || #', first, second);
540+
return JS<dynamic>('Object|Null|bool', '# || #', first, second);
541541
}
542542

543543
@patch
544544
@pragma('dart2js:tryInline')
545545
T and<T>(Object? first, Object? second) {
546-
return JS<dynamic>('Object|bool', '# && #', first, second);
546+
return JS<dynamic>('Object|Null|bool', '# && #', first, second);
547547
}
548548

549549
@patch

tests/lib/js/static_interop_test/allowed_external_member_native_type_test.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
// valid ones are those that <: `JavaScriptObject` and users can reference,
77
// which end up only being the types in the SDK web libraries.
88

9-
@JS()
10-
library allowed_external_member_native_type_test;
11-
129
import 'dart:html';
1310
import 'dart:js_interop';
1411
import 'dart:svg';

tests/lib/js/static_interop_test/allowed_external_member_type_test.dart

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
@JS()
6-
library allowed_external_member_type_test;
7-
85
import 'dart:js_interop';
96

107
import 'package:js/js.dart' as pkgJs;
@@ -192,8 +189,13 @@ external ExtensionType interopExtensionTypeMethod(ExtensionType _);
192189
@JS()
193190
external void primitivesMethod(num a, int b, double c, bool d, String e);
194191

195-
void functionToJSTest<T extends JSAny, U extends ExtensionType,
196-
V extends StaticInterop, W, Y>() {
192+
void functionToJSTest<
193+
T extends JSAny,
194+
U extends ExtensionType,
195+
V extends StaticInterop,
196+
W,
197+
Y
198+
>() {
197199
// Test `toJS` conversions of functions.
198200
((double _) => 4.0.toJS).toJS;
199201

tests/lib/js/static_interop_test/call_utils.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ dynamic confuse(dynamic x) => x;
1515
external JSAny? eval(String script);
1616

1717
void injectJS() {
18-
eval(
19-
'''
18+
eval('''
2019
self.jsFunction = function(s) {
2120
if (this == null) {
2221
throw "`this` is null or undefined";
@@ -47,8 +46,7 @@ void injectJS() {
4746
}
4847
}
4948
self.jsClass = new NamedClass();
50-
''',
51-
);
49+
''');
5250
}
5351

5452
bool jsThisIsNullCheck(e) =>

tests/lib/js/static_interop_test/constants_test.dart

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
@JS()
6-
library constants_test;
7-
85
import 'dart:html';
96

107
import 'package:js/js.dart';

tests/lib/js/static_interop_test/disallowed_generative_constructor_static_test.dart

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
@JS()
6-
library disallowed_generative_constructor_static_test;
7-
85
import 'package:js/js.dart';
96

107
@JS()
@@ -24,16 +21,16 @@ class SyntheticConstructor {}
2421

2522
void main() {
2623
SyntheticConstructor();
27-
//^
28-
// [web] Synthetic constructors on `@staticInterop` classes can not be used.
24+
// [error column 3]
25+
// [web] Synthetic constructors on `@staticInterop` classes can not be used.
2926

3027
SyntheticConstructor.new;
31-
//^
32-
// [web] Synthetic constructors on `@staticInterop` classes can not be used.
28+
// [error column 3]
29+
// [web] Synthetic constructors on `@staticInterop` classes can not be used.
3330

3431
// Make sure that we report an error for every usage of the constant and that
3532
// we check nested constants.
3633
const [SyntheticConstructor.new];
37-
//^
38-
// [web] Synthetic constructors on `@staticInterop` classes can not be used.
34+
// [error column 3]
35+
// [web] Synthetic constructors on `@staticInterop` classes can not be used.
3936
}

tests/lib/js/static_interop_test/extension_type/external_extension_member_test.dart

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
@JS()
6-
library external_extension_member_test;
7-
85
import 'dart:js_interop';
9-
10-
import 'package:expect/legacy/minitest.dart'; // ignore: deprecated_member_use_from_same_package
6+
import 'package:expect/expect.dart';
117

128
@JS()
139
external void eval(String code);
@@ -52,24 +48,24 @@ void main() {
5248
var extension = ExtensionType();
5349

5450
// Fields.
55-
expect(extension.field, 'field');
51+
Expect.equals('field', extension.field);
5652
extension.field = 'modified';
57-
expect(extension.field, 'modified');
58-
expect(extension.renamedField, 'modified');
53+
Expect.equals('modified', extension.field);
54+
Expect.equals('modified', extension.renamedField);
5955
extension.renamedField = 'renamedField';
60-
expect(extension.renamedField, 'renamedField');
61-
expect(extension.finalField, 'finalField');
56+
Expect.equals('renamedField', extension.renamedField);
57+
Expect.equals('finalField', extension.finalField);
6258

6359
// Getters and setters.
64-
expect(extension.getSet, 'getSet');
60+
Expect.equals('getSet', extension.getSet);
6561
extension.getSet = 'modified';
66-
expect(extension.getSet, 'modified');
67-
expect(extension.renamedGetSet, 'modified');
62+
Expect.equals('modified', extension.getSet);
63+
Expect.equals('modified', extension.renamedGetSet);
6864
extension.renamedGetSet = 'renamedGetSet';
69-
expect(extension.renamedGetSet, 'renamedGetSet');
65+
Expect.equals('renamedGetSet', extension.renamedGetSet);
7066

7167
// Methods.
72-
expect(extension.method(), 'method');
73-
expect(extension.differentArgsMethod('method'), 'methodundefined');
74-
expect(extension.renamedMethod(), 'method');
68+
Expect.equals('method', extension.method());
69+
Expect.equals('methodundefined', extension.differentArgsMethod('method'));
70+
Expect.equals('method', extension.renamedMethod());
7571
}

tests/lib/js/static_interop_test/extension_type/external_member_test.dart

Lines changed: 67 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,9 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
@JS()
6-
library external_member_test;
7-
85
import 'dart:js_interop';
96

107
import 'package:expect/expect.dart';
11-
import 'package:expect/legacy/minitest.dart'; // ignore: deprecated_member_use_from_same_package
128
import 'package:expect/variations.dart';
139

1410
const soundNullSafety = !unsoundNullSafety;
@@ -41,8 +37,11 @@ extension type External<T extends JSAny?, U extends Nested>._(JSObject _) {
4137
@JS('addMethod')
4238
external T addMethodT(T a, T b);
4339
@JS('addMethod')
44-
external R addMethodGeneric<R extends JSAny?, P extends JSAny?>(P a, P b,
45-
[bool dontAddNull]);
40+
external R addMethodGeneric<R extends JSAny?, P extends JSAny?>(
41+
P a,
42+
P b, [
43+
bool dontAddNull,
44+
]);
4645

4746
external Nested nested;
4847
external Nested combineNested(Nested a, Nested b);
@@ -87,61 +86,65 @@ void main() {
8786
final external = External<JSString, Nested>();
8887

8988
// Fields.
90-
expect(external.field, 'field');
89+
Expect.equals('field', external.field);
9190
external.field = 'modified';
92-
expect(external.field, 'modified');
93-
expect(external.renamedField, 'modified');
91+
Expect.equals('modified', external.field);
92+
Expect.equals('modified', external.renamedField);
9493
external.renamedField = 'renamedField';
95-
expect(external.renamedField, 'renamedField');
96-
expect(external.finalField, 'finalField');
94+
Expect.equals('renamedField', external.renamedField);
95+
Expect.equals('finalField', external.finalField);
9796

9897
// Getters and setters.
99-
expect(external.getSet, 'getSet');
98+
Expect.equals('getSet', external.getSet);
10099
external.getSet = 'modified';
101-
expect(external.getSet, 'modified');
102-
expect(external.renamedGetSet, 'modified');
100+
Expect.equals('modified', external.getSet);
101+
Expect.equals('modified', external.renamedGetSet);
103102
external.renamedGetSet = 'renamedGetSet';
104-
expect(external.renamedGetSet, 'renamedGetSet');
103+
Expect.equals('renamedGetSet', external.renamedGetSet);
105104

106105
// Methods.
107-
expect(external.method(), 'method');
108-
expect(external.addMethod('method'), 'methodundefined');
109-
expect(external.addMethod('method', 'method'), 'methodmethod');
110-
expect(external.renamedMethod(), 'method');
106+
Expect.equals('method', external.method());
107+
Expect.equals('methodundefined', external.addMethod('method'));
108+
Expect.equals('methodmethod', external.addMethod('method', 'method'));
109+
Expect.equals('method', external.renamedMethod());
111110

112111
// Check that type parameters operate as expected on external interfaces.
113112
final value = 'value';
114113
final jsValue = value.toJS;
115114
external.fieldT = jsValue;
116-
expect(external.fieldT.toDart, value);
117-
expect(external.addMethodT(jsValue, jsValue).toDart, '$value$value');
118-
expect(
119-
external.addMethodGeneric<JSNumber, JSNumber>(0.toJS, 0.toJS).toDartInt,
120-
0);
115+
Expect.equals(value, external.fieldT.toDart);
116+
Expect.equals('$value$value', external.addMethodT(jsValue, jsValue).toDart);
117+
Expect.equals(
118+
0,
119+
external.addMethodGeneric<JSNumber, JSNumber>(0.toJS, 0.toJS).toDartInt,
120+
);
121121

122122
external.nested = Nested(jsValue);
123-
expect((external.nested as Nested<JSString>).value.toDart, value);
124-
expect(
125-
(external.combineNested(Nested(value.toJS), Nested(jsValue))
126-
as Nested<JSString>)
127-
.value
128-
.toDart,
129-
'$value$value');
123+
Expect.equals(value, (external.nested as Nested<JSString>).value.toDart);
124+
Expect.equals(
125+
'$value$value',
126+
(external.combineNested(Nested(value.toJS), Nested(jsValue))
127+
as Nested<JSString>)
128+
.value
129+
.toDart,
130+
);
130131

131132
external.nestedU = Nested(jsValue);
132-
expect((external.nestedU as Nested<JSString>).value.toDart, value);
133-
expect(
134-
(external.combineNestedU(Nested(jsValue), Nested(jsValue))
135-
as Nested<JSString>)
136-
.value
137-
.toDart,
138-
'$value$value');
139-
expect(
140-
external
141-
.combineNestedGeneric(Nested(jsValue), Nested(jsValue))
142-
.value
143-
.toDart,
144-
'$value$value');
133+
Expect.equals(value, (external.nestedU as Nested<JSString>).value.toDart);
134+
Expect.equals(
135+
'$value$value',
136+
(external.combineNestedU(Nested(jsValue), Nested(jsValue))
137+
as Nested<JSString>)
138+
.value
139+
.toDart,
140+
);
141+
Expect.equals(
142+
'$value$value',
143+
external
144+
.combineNestedGeneric(Nested(jsValue), Nested(jsValue))
145+
.value
146+
.toDart,
147+
);
145148

146149
// Try invalid generics.
147150
(external as External<JSNumber, Nested>).fieldT = 0.toJS;
@@ -151,15 +154,25 @@ void main() {
151154
Expect.throws(() => external.fieldT.toDart.toLowerCase());
152155
(external as External<JSNumber?, Nested>).fieldT = null;
153156
Expect.throwsWhen(
154-
soundNullSafety && checkedImplicitDowncasts, () => external.fieldT);
155-
Expect.throws(() => external
156-
.addMethodGeneric<JSNumber, JSString>(value.toJS, value.toJS)
157-
.toDartInt);
158-
Expect.throws(() => external
159-
.addMethodGeneric<JSString, JSNumber>(0.toJS, 0.toJS)
160-
.toDart
161-
.toLowerCase());
162-
Expect.throwsWhen(soundNullSafety && checkedImplicitDowncasts,
163-
() => external.addMethodGeneric<JSString, JSString?>(null, null, true));
157+
soundNullSafety && checkedImplicitDowncasts,
158+
() => external.fieldT,
159+
);
160+
Expect.throws(
161+
() =>
162+
external
163+
.addMethodGeneric<JSNumber, JSString>(value.toJS, value.toJS)
164+
.toDartInt,
165+
);
166+
Expect.throws(
167+
() =>
168+
external
169+
.addMethodGeneric<JSString, JSNumber>(0.toJS, 0.toJS)
170+
.toDart
171+
.toLowerCase(),
172+
);
173+
Expect.throwsWhen(
174+
soundNullSafety && checkedImplicitDowncasts,
175+
() => external.addMethodGeneric<JSString, JSString?>(null, null, true),
176+
);
164177
external.addMethodGeneric<JSString?, JSString?>(''.toJS, null, true);
165178
}

0 commit comments

Comments
 (0)