xmpp: Communicate stream closure from the buffer

This commit is contained in:
2022-02-06 18:38:23 +01:00
parent 629236b795
commit 973982e55d
3 changed files with 42 additions and 3 deletions

View File

@@ -54,4 +54,37 @@ void main() {
expect(childb, true);
});
});
test("Test closing the stream", () async {
bool childa = false;
bool childb = false;
bool closed = false;
final buffer = XmlStreamBuffer();
final controller = StreamController<String>();
controller
.stream
.transform(buffer)
.forEach((node) {
if (node.tag == "childa") {
childa = true;
} else if (node.tag == "childb") {
childb = true;
} else if (node.tag == "stream:stream" && node.children.isEmpty) {
assert (childa);
assert (childb);
closed = true;
}
});
controller.add("<childa");
controller.add(" /><childb />");
controller.add("</stream:stream>");
await Future.delayed(const Duration(seconds: 2), () {
expect(childa, true);
expect(childb, true);
expect(closed, true);
});
});
}