FakeOsIntentsPlatform class
The platform, replaced by something a test can look inside.
Without one, everything OsIntents offers beyond running a handler is
invisible in tests: the default implementation of the platform interface
answers false and an empty list to keep a plugin-less desktop build
working, so a test of code that donates, publishes static answers or pushes
a launcher shortcut passes whether or not that code did anything at all.
late FakeOsIntentsPlatform platform;
setUp(() async {
platform = FakeOsIntentsPlatform.install();
await OsIntents.install($osIntentsRegistry);
});
test('completing a task donates it', () async {
await completeTask('t-1');
expect(platform.donations.single.id, 'completeTask');
});
It is also the only way to exercise the path the OS actually takes.
IntentHarness calls a handler directly; invokeIntent goes through the
dispatcher OsIntents.install registered, so what it returns is the wire
map the system would have been handed — including how a thrown exception is
turned into an error the user can be shown.
- Inheritance
-
- Object
- PlatformInterface
- OsIntentsPlatform
- FakeOsIntentsPlatform
Constructors
- FakeOsIntentsPlatform({bool donationsAccepted = true, int shortcutSlots = 15})
Properties
- backgroundReadyCalled ↔ bool
-
getter/setter pair
-
donations
→ List<
RecordedDonation> -
Every donation, in order.
final
- donationsAccepted → bool
-
Whether OsIntents.donate reports that the platform took the donation.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- readyCalled ↔ bool
-
Whether the app reported its handlers registered, per isolate.
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
shortcuts
→ List<
Map< String, Object?> > -
Dynamic shortcuts currently on the fake launcher, lowest rank first.
final
- shortcutSlots → int
-
How many dynamic shortcuts this launcher holds. 0 stands in for iOS.
final
-
staticValues
↔ Map<
String, Object?> -
What was last published for
Execution.static_intents, keyed by id.getter/setter pair
Methods
-
debugInvokeBackground(
String id, Map< String, Object?> args) → Future<Map< String, Object?> ?> -
Forces an invocation through the headless engine, for development.
override
-
debugStaticValue(
String id) → Future< String?> -
What a static intent would answer with, read out of what was published.
override
-
donate(
String id, Map< String, Object?> args) → Future<bool> -
Tells the system this intent just happened, so it can offer it later.
override
-
dynamicShortcuts(
) → Future< List< String> > -
Ids of the dynamic shortcuts currently published, in rank order.
override
-
invokeIntent(
String id, {Map< String, Object?> args = const {}, bool background = false}) → Future<Map< String, Object?> > - Invokes an intent the way the system does, through the installed dispatcher.
-
maxDynamicShortcuts(
) → Future< int> -
How many dynamic shortcuts this launcher will hold, or 0 where there are
none.
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
publishStaticValues(
Map< String, Object?> values) → Future<void> -
Publishes values the
Execution.static_path reads without an engine.override -
pushDynamicShortcut(
Map< String, Object?> shortcut) → Future<bool> -
Publishes a launcher shortcut the app manages itself.
override
-
queryEntities(
String method, Map< String, Object?> args, {bool background = false}) → Future<List< Map< >String, Object?> > - Answers an entity query the way the system does.
-
ready(
{bool background = false}) → Future< void> -
Signals that Dart handlers are registered.
override
-
removeDynamicShortcuts(
List< String> ? ids) → Future<void> -
Removes dynamic shortcuts by id. Unknown ids are ignored.
override
-
setEntityHandler(
EntityQueryHandler handler, {bool background = false}) → void -
Installs the callback that answers entity queries.
override
-
setInvocationHandler(
IntentInvocationHandler handler, {bool background = false}) → void -
Installs the callback the native side routes invocations to.
override
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
install(
{bool donationsAccepted = true, int shortcutSlots = 15}) → FakeOsIntentsPlatform - Installs a fresh fake and forgets whatever a previous test installed.