diff --git a/examples/.gitignore b/examples/.gitignore index 2d9bc2fc0..a2d01c040 100644 --- a/examples/.gitignore +++ b/examples/.gitignore @@ -1,7 +1,6 @@ linux/ macos/ windows/ -test/ # Miscellaneous *.class diff --git a/examples/lib/main.dart b/examples/lib/main.dart index 7ebea9388..9c530b161 100644 --- a/examples/lib/main.dart +++ b/examples/lib/main.dart @@ -1,5 +1,6 @@ -import 'dart:html'; import 'package:dashbook/dashbook.dart'; +import 'package:examples/platform/stub_provider.dart' + if (dart.library.html) 'platform/web_provider.dart'; import 'package:examples/stories/animations/animations.dart'; import 'package:examples/stories/bridge_libraries/audio/audio.dart'; import 'package:examples/stories/bridge_libraries/flame_isolate/isolate.dart'; @@ -29,10 +30,7 @@ import 'package:flame/game.dart'; import 'package:flutter/material.dart'; void main() { - var page = window.location.search ?? ''; - if (page.startsWith('?')) { - page = page.substring(1); - } + final page = PageProviderImpl().getPage(); final routes = { 'constant_volume_joint': ConstantVolumeJointExample.new, diff --git a/examples/lib/platform/page_provider.dart b/examples/lib/platform/page_provider.dart new file mode 100644 index 000000000..b22aaae44 --- /dev/null +++ b/examples/lib/platform/page_provider.dart @@ -0,0 +1,3 @@ +abstract class PageProvider { + String? getPage(); +} diff --git a/examples/lib/platform/stub_provider.dart b/examples/lib/platform/stub_provider.dart new file mode 100644 index 000000000..3e04b7a3e --- /dev/null +++ b/examples/lib/platform/stub_provider.dart @@ -0,0 +1,8 @@ +import 'package:examples/platform/page_provider.dart'; + +class PageProviderImpl extends PageProvider { + @override + String? getPage() { + return null; + } +} diff --git a/examples/lib/platform/web_provider.dart b/examples/lib/platform/web_provider.dart new file mode 100644 index 000000000..1a53eda7c --- /dev/null +++ b/examples/lib/platform/web_provider.dart @@ -0,0 +1,13 @@ +import 'dart:html'; +import 'package:examples/platform/page_provider.dart'; + +class PageProviderImpl extends PageProvider { + @override + String? getPage() { + var page = window.location.search ?? ''; + if (page.startsWith('?')) { + page = page.substring(1); + } + return page; + } +} diff --git a/examples/pubspec.yaml b/examples/pubspec.yaml index 1312e05c1..9b4f7ea9e 100644 --- a/examples/pubspec.yaml +++ b/examples/pubspec.yaml @@ -26,6 +26,7 @@ dependencies: padracing: ^1.0.0 provider: ^6.0.3 rogue_shooter: ^0.1.0 + test: ^1.23.1 trex_game: ^0.1.0 dev_dependencies: diff --git a/examples/test/main_test.dart b/examples/test/main_test.dart new file mode 100644 index 000000000..e566c9dcc --- /dev/null +++ b/examples/test/main_test.dart @@ -0,0 +1,6 @@ +import 'package:examples/main.dart' as examples; +import 'package:test/test.dart'; + +void main() { + test('main', examples.main); +}