Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0dfbab8

Browse files
lrhnCommit Queue
authored and
Commit Queue
committed
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 <sigmund@google.com> Commit-Queue: Lasse Nielsen <lrn@google.com> Reviewed-by: Srujan Gaddam <srujzs@google.com>
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)

AltStyle によって変換されたページ (->オリジナル) /