Skip to content

Commit 7185e85

Browse files
srawlinsCommit Queue
authored andcommitted
analyzer: mock SDK: correct declarations in html library
* A few included signatures need ClipboardEvent and KeyboardEvent, so we add those. * The Element class is not abstract. * All of the parameters of the `Element.html` constructor, and the `Element.createFragment` and `Element.setInnerHtml` functions are nullable. * `Element.onCut` is a stream of ClipboardEvents. * Many of the fields that were declared on HtmlElement are actually declared on Element; moving them to Element makes the mock SDK more consistent and simpler. * Setters do not have a specified return type. * `onKeyUp` and `onKeyDown` return streams of KeyboardEvents. * Simplify `AnchorElement.new`; we generally don't keep function bodies in the mock SDK. * `AnchorElement.href` is a getter/setter pair. * There is no `AnchorElement._privateField`. * `ButtonElement.autofocus` is a getter/setter pair. * `EmbedElement.src` is a getter/setter pair. * Neither EmbedElement nor ImageElement extend HtmlEment. They extend HtmlElement. * ImageElement.src is a getter/setter pair. * InputElement.value is a getter/setter pair, and is nullable. * InputElement.validationMessage is a getter. * IFrameElement.src is a getter/setter pair. * OptionElement constructors use `=` for parameter default values. * ScriptElement src and type properties are getter/setter pairs. * `TableSectionElement.addRow` needs a return value. * TableSectionElement does not have `instanceRuntimeType` or `internal_`. * `AudioElement._`'s optional parameter has a nullable type. * WindowBase is abstract. * Window does not extend WindowBase, it implements it. * NodeValidator and NodeTreeSanitizer are abstract. * All of the parameters of the `DocumentFragment.html` constructor are nullable. Change-Id: I026db9b34a28c7a43bc4275838cc6c5e180f8bce Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/451660 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Samuel Rawlins <[email protected]>
1 parent d4f0b33 commit 7185e85

File tree

1 file changed

+82
-82
lines changed

1 file changed

+82
-82
lines changed

pkg/analyzer/lib/src/test_utilities/mock_sdk.dart

Lines changed: 82 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,69 +1097,69 @@ library dart.dom.html;
10971097
10981098
import 'dart:async';
10991099
1100+
class ClipboardEvent extends Event {}
1101+
11001102
class Event {}
11011103
11021104
class MouseEvent extends Event {}
11031105
11041106
class FocusEvent extends Event {}
11051107
1106-
class KeyEvent extends Event {}
1108+
class KeyboardEvent extends Event {}
1109+
1110+
class KeyEvent implements KeyboardEvent {}
11071111
11081112
abstract class ElementStream<T extends Event> implements Stream<T> {}
11091113
1110-
abstract class Element {
1111-
factory Element.html(String html,
1112-
{NodeValidator validator, NodeTreeSanitizer treeSanitizer}) =>
1113-
new HtmlElement();
1114+
class Element {
1115+
factory Element.html(
1116+
String? html, {
1117+
NodeValidator? validator,
1118+
NodeTreeSanitizer? treeSanitizer,
1119+
}) => new HtmlElement();
11141120
11151121
/// Stream of `cut` events handled by this [Element].
1116-
ElementStream<Event> get onCut => throw 0;
1122+
ElementStream<ClipboardEvent> get onCut => throw 0;
11171123
11181124
String get id => throw 0;
11191125
11201126
set id(String value) => throw 0;
11211127
1122-
DocumentFragment createFragment(String html,
1123-
{NodeValidator validator, NodeTreeSanitizer treeSanitizer}) => null;
1128+
DocumentFragment createFragment(
1129+
String? html, {
1130+
NodeValidator? validator,
1131+
NodeTreeSanitizer? treeSanitizer,
1132+
}) => throw 0;
11241133
1125-
void setInnerHtml(String html,
1126-
{NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {}
1127-
}
1134+
void setInnerHtml(
1135+
String? html, {
1136+
NodeValidator? validator,
1137+
NodeTreeSanitizer? treeSanitizer,
1138+
}) {}
11281139
1129-
class HtmlElement extends Element {
1130-
int tabIndex;
1140+
int? get tabIndex => throw 0;
11311141
ElementStream<Event> get onChange => throw 0;
11321142
ElementStream<MouseEvent> get onClick => throw 0;
1133-
ElementStream<KeyEvent> get onKeyUp => throw 0;
1134-
ElementStream<KeyEvent> get onKeyDown => throw 0;
1135-
1143+
ElementStream<KeyboardEvent> get onKeyUp => throw 0;
1144+
ElementStream<KeyboardEvent> get onKeyDown => throw 0;
11361145
bool get hidden => throw 0;
11371146
set hidden(bool value) {}
1147+
set className(String value) {}
1148+
set tabIndex(int? value) {}
11381149
1139-
void set className(String s) {}
1140-
void set readOnly(bool b) {}
1141-
void set tabIndex(int i) {}
1150+
String? get _innerHtml => throw 0;
1151+
String? get innerHtml => throw 0;
11421152
1143-
String _innerHtml;
1144-
String get innerHtml {
1145-
throw 'not the real implementation';
1146-
}
1147-
1148-
set innerHtml(String value) {
1149-
// stuff
1150-
}
1153+
set innerHtml(String? html) {}
11511154
}
11521155
1156+
class HtmlElement extends Element {}
1157+
11531158
class AnchorElement extends HtmlElement {
1154-
factory AnchorElement({String href}) {
1155-
AnchorElement e = JS('returns:AnchorElement;creates:AnchorElement;new:true',
1156-
'#.createElement(#)', document, "a");
1157-
if (href != null) e.href = href;
1158-
return e;
1159-
}
1159+
factory AnchorElement({String? href}) => throw 0;
11601160
1161-
String href;
1162-
String _privateField;
1161+
String? get href => throw 0;
1162+
set href(String? value) {}
11631163
}
11641164
11651165
class BodyElement extends HtmlElement {
@@ -1174,11 +1174,13 @@ class ButtonElement extends HtmlElement {
11741174
}
11751175
factory ButtonElement() => document.createElement("button");
11761176
1177-
bool autofocus;
1177+
bool get autofocus => throw 0;
1178+
set autofocus(bool value) {}
11781179
}
11791180
1180-
class EmbedElement extends HtmlEment {
1181-
String src;
1181+
class EmbedElement extends HtmlElement {
1182+
String get src => throw 0;
1183+
set src(String value) {}
11821184
}
11831185
11841186
class HeadingElement extends HtmlElement {
@@ -1190,63 +1192,64 @@ class HeadingElement extends HtmlElement {
11901192
factory HeadingElement.h3() => document.createElement("h3");
11911193
}
11921194
1193-
class ImageElement extends HtmlEment {
1194-
String src;
1195+
class ImageElement extends HtmlElement {
1196+
String? get src => throw 0;
1197+
set src(String? value) {}
11951198
}
11961199
11971200
class InputElement extends HtmlElement {
11981201
factory InputElement._() {
11991202
throw new UnsupportedError("Not supported");
12001203
}
12011204
factory InputElement() => document.createElement("input");
1202-
1203-
String value;
1204-
String validationMessage;
1205+
String? get value => throw 0;
1206+
set value(String? value) {}
1207+
String get validationMessage => throw 0;
12051208
}
12061209
12071210
class IFrameElement extends HtmlElement {
12081211
factory IFrameElement._() {
12091212
throw new UnsupportedError("Not supported");
12101213
}
1211-
factory IFrameElement() => JS(
1212-
'returns:IFrameElement;creates:IFrameElement;new:true',
1213-
'#.createElement(#)',
1214-
document,
1215-
"iframe");
1216-
1217-
String src;
1218-
set srcdoc(String? value) native;
1214+
factory IFrameElement() => throw 0;
1215+
String? get src => throw 0;
1216+
set src(Stirng? value) {}
1217+
set srcdoc(String? value) {}
12191218
}
12201219
12211220
class OptionElement extends HtmlElement {
1222-
factory OptionElement(
1223-
{String data: '', String value: '', bool selected: false}) {}
1221+
factory OptionElement({
1222+
String data = '',
1223+
String value = '',
1224+
bool selected = false,
1225+
}) => throw 0;
12241226
1225-
factory OptionElement._(
1226-
[String data, String value, bool defaultSelected, bool selected]) {}
1227+
factory OptionElement._([
1228+
String? data,
1229+
String? value,
1230+
bool? defaultSelected,
1231+
bool? selected,
1232+
]) => throw 0;
12271233
}
12281234
12291235
class ScriptElement extends HtmlElement {
1230-
String src;
1231-
String type;
1236+
String get src => throw 0;
1237+
set src(String value) {}
1238+
1239+
String get type => throw 0;
1240+
set type(String value) {}
12321241
}
12331242
12341243
class TableSectionElement extends HtmlElement {
12351244
List<TableRowElement> get rows => throw 0;
12361245
1237-
TableRowElement addRow() {}
1246+
TableRowElement addRow() => throw 0;
12381247
12391248
TableRowElement insertRow(int index) => throw 0;
12401249
12411250
factory TableSectionElement._() {
12421251
throw new UnsupportedError("Not supported");
12431252
}
1244-
1245-
@Deprecated("Internal Use Only")
1246-
external static Type get instanceRuntimeType;
1247-
1248-
@Deprecated("Internal Use Only")
1249-
TableSectionElement.internal_() : super.internal_();
12501253
}
12511254
12521255
class TemplateElement extends HtmlElement {
@@ -1257,35 +1260,32 @@ class TemplateElement extends HtmlElement {
12571260
}
12581261
12591262
class AudioElement extends MediaElement {
1260-
factory AudioElement._([String src]) {
1261-
if (src != null) {
1262-
return AudioElement._create_1(src);
1263-
}
1264-
return AudioElement._create_2();
1265-
}
1263+
factory AudioElement._([String? src]) => throw 0;
12661264
1267-
static AudioElement _create_1(src) => JS('AudioElement', 'new Audio(#)', src);
1268-
static AudioElement _create_2() => JS('AudioElement', 'new Audio()');
1269-
AudioElement.created() : super.created();
1265+
static AudioElement _create_1(src) => throw 0;
1266+
static AudioElement _create_2() => throw 0;
12701267
1271-
factory AudioElement([String src]) => new AudioElement._(src);
1268+
factory AudioElement([String? src]) => throw 0;
12721269
}
12731270
1274-
class MediaElement extends Element {}
1271+
class MediaElement extends HtmlElement {}
12751272
1276-
class WindowBase {}
1273+
abstract class WindowBase {}
12771274
1278-
class Window extends WindowBase {
1279-
WindowBase open(String url, String name, [String options]) => null;
1275+
class Window implements WindowBase {
1276+
WindowBase open(String url, String name, [String? options]) => throw 0;
12801277
}
12811278
1282-
class NodeValidator {}
1279+
abstract class NodeValidator {}
12831280
1284-
class NodeTreeSanitizer {}
1281+
abstract class NodeTreeSanitizer {}
12851282
12861283
class DocumentFragment {
1287-
DocumentFragment.html(String html,
1288-
{NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {}
1284+
factory DocumentFragment.html(
1285+
String? html, {
1286+
NodeValidator? validator,
1287+
NodeTreeSanitizer? treeSanitizer,
1288+
}) => throw 0;
12891289
}
12901290
12911291
dynamic JS(a, b, c, d) {}

0 commit comments

Comments
 (0)