pump method
Pumps a SuperReader widget tree with the desired configuration, and returns
a TestDocumentContext, which includes the artifacts connected to the widget
tree, e.g., the DocumentEditor, DocumentComposer, etc.
Implementation
Future<TestDocumentContext> pump() async {
assert(_document != null);
final layoutKey = GlobalKey();
final documentContext = SuperReaderContext(
editor: createDefaultDocumentEditor(
document: _document!,
composer: MutableDocumentComposer(),
),
getDocumentLayout: () => layoutKey.currentState as DocumentLayout,
scroller: DocumentScroller(),
);
final testContext = TestDocumentContext._(
focusNode: _focusNode ?? FocusNode(),
document: _document!,
layoutKey: layoutKey,
documentContext: documentContext,
);
final superDocument = _buildConstrainedContent(
_buildAncestorScrollable(
child: SuperReaderIosControlsScope(
controller: SuperReaderIosControlsController(
toolbarBuilder: _iOSToolbarBuilder,
),
child: SuperReader(
focusNode: testContext.focusNode,
autofocus: _autoFocus,
tapRegionGroupId: _tapRegionGroupId,
editor: documentContext.editor,
documentLayoutKey: layoutKey,
selectionStyle: _selectionStyles,
gestureMode: _gestureMode ?? _defaultGestureMode,
stylesheet: _stylesheet,
componentBuilders: [
..._addedComponents,
...(_componentBuilders ?? readOnlyDefaultComponentBuilders),
],
scrollController: _scrollController,
androidToolbarBuilder: _androidToolbarBuilder,
),
),
),
);
await _widgetTester.pumpWidget(
_buildWidgetTree(superDocument),
);
return testContext;
}