added other tests, added github action workflow
This commit is contained in:
parent
dd1754041b
commit
5f6a8969c2
|
@ -0,0 +1,43 @@
|
||||||
|
# Name of your workflow.
|
||||||
|
name: flutter drive
|
||||||
|
on:
|
||||||
|
# Trigger the workflow on push or pull request,
|
||||||
|
# but only for the main branch
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
# A workflow run is made up of one or more jobs.
|
||||||
|
jobs:
|
||||||
|
# id of job, a string that is unique to the "jobs" node above.
|
||||||
|
drive:
|
||||||
|
# Creates a build matrix for your jobs. You can define different
|
||||||
|
# variations of an environment to run each job in.
|
||||||
|
strategy:
|
||||||
|
# A set of different configurations of the virtual
|
||||||
|
# environment.
|
||||||
|
# matrix:
|
||||||
|
# When set to true, GitHub cancels all in-progress jobs if any
|
||||||
|
# matrix job fails.
|
||||||
|
fail-fast: false
|
||||||
|
# The type of machine to run the job on.
|
||||||
|
runs-on: macOS-latest
|
||||||
|
# Contains a sequence of tasks.
|
||||||
|
steps:
|
||||||
|
# A name for your step to display on GitHub.
|
||||||
|
- name: "Start Simulator"
|
||||||
|
run: |
|
||||||
|
xcrun simctl list
|
||||||
|
xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-12 com.apple.CoreSimulator.SimRuntime.iOS-14-4 | xargs xcrun simctl boot
|
||||||
|
# The branch or tag ref that triggered the workflow will be
|
||||||
|
# checked out.
|
||||||
|
# https://github.com/actions/checkout
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
# Sets up a flutter environment.
|
||||||
|
# https://github.com/marketplace/actions/flutter-action
|
||||||
|
- uses: subosito/flutter-action@v1.4.0
|
||||||
|
with:
|
||||||
|
channel: 'master' # 'stable' or 'dev' or 'beta'
|
||||||
|
- name: "Run Flutter Driver tests"
|
||||||
|
run: |
|
||||||
|
flutter pub get
|
||||||
|
./scripts/test.sh $(ipconfig getifaddr en0)
|
|
@ -0,0 +1,772 @@
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Dart Packages" type="DartPackagesLibraryType">
|
||||||
|
<properties>
|
||||||
|
<option name="packageNameToDirsMap">
|
||||||
|
<entry key="_fe_analyzer_shared">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/_fe_analyzer_shared-12.0.0/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="analyzer">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-0.40.6/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="archive">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/archive-3.0.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/archive-2.0.13/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="args">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/args-1.6.0/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="async">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.5.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.5.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="boolean_selector">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="characters">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/characters-1.1.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/characters-1.1.0-nullsafety.5/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="charcode">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.2.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.2.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="cli_util">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/cli_util-0.2.0/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="clock">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/clock-1.1.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/clock-1.1.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="collection">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.15.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.15.0-nullsafety.5/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="convert">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/convert-2.1.1/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="coverage">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/coverage-0.14.2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="crypto">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/crypto-3.0.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/crypto-2.1.5/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="cupertino_icons">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-1.0.2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="device_info">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/device_info-2.0.0-nullsafety.2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="device_info_platform_interface">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/device_info_platform_interface-2.0.0-nullsafety.2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fake_async">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/fake_async-1.2.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/fake_async-1.2.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="ffi">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/ffi-0.1.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="file">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/file-6.0.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/file-6.0.0-nullsafety.4/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="flutter">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/packages/flutter/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="flutter_downloader">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.5.2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="flutter_driver">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/packages/flutter_driver/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="flutter_test">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/packages/flutter_test/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="fuchsia_remote_debug_protocol">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/packages/fuchsia_remote_debug_protocol/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="glob">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/glob-1.2.0/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="http_multi_server">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/http_multi_server-2.2.0/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="http_parser">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.4/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="integration_test">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/packages/integration_test/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="intl">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/intl-0.17.0/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="io">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/io-0.3.4/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="js">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/js-0.6.3-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="json_rpc_2">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/json_rpc_2-2.2.2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="logging">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/logging-0.11.4/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="matcher">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.10/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.10-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="meta">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.3.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.3.0-nullsafety.6/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="mime">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/mime-1.0.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/mime-0.9.7/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="mockito">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/mockito-4.1.1/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="node_interop">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/node_interop-1.2.1/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="node_io">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/node_io-1.1.1/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="node_preamble">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/node_preamble-1.4.13/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="package_config">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/package_config-1.9.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="path">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.8.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.8.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="path_provider">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-1.6.27/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="path_provider_linux">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-0.0.1+2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="path_provider_macos">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-0.0.4+8/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="path_provider_platform_interface">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_platform_interface-1.0.4/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="path_provider_windows">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-0.0.4+3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="pedantic">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/pedantic-1.10.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/pedantic-1.10.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="permission_handler">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.1.0+2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="permission_handler_platform_interface">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler_platform_interface-2.0.2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="platform">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/platform-3.0.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/platform-3.0.0-nullsafety.4/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="plugin_platform_interface">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/plugin_platform_interface-1.1.0-nullsafety.1/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="pool">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/pool-1.5.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="process">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/process-4.0.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/process-4.0.0-nullsafety.4/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="pub_semver">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/pub_semver-1.4.4/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="shelf">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/shelf-0.7.5/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="shelf_packages_handler">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/shelf_packages_handler-2.0.0/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="shelf_static">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/shelf_static-0.2.9+1/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="shelf_web_socket">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/shelf_web_socket-0.2.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="sky_engine">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/bin/cache/pkg/sky_engine/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="source_map_stack_trace">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/source_map_stack_trace-2.1.0-nullsafety.4/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="source_maps">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/source_maps-0.10.10-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="source_span">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.8.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.8.0-nullsafety.4/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="stack_trace">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0-nullsafety.6/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="stream_channel">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="string_scanner">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="sync_http">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/sync_http-0.3.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/sync_http-0.2.0/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="term_glyph">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="test">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/test-1.16.0-nullsafety.9/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="test_api">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19-nullsafety.6/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="test_core">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/test_core-0.3.12-nullsafety.9/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="typed_data">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.0-nullsafety.5/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="url_launcher">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.0-nullsafety.6/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="url_launcher_linux">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-0.1.0-nullsafety.3/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="url_launcher_macos">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-0.1.0-nullsafety.2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="url_launcher_platform_interface">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_platform_interface-2.0.0-nullsafety.1/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="url_launcher_windows">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-0.1.0-nullsafety.2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="uuid">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/uuid-3.0.0-nullsafety.0/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="vector_math">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.0-nullsafety.5/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="vm_service">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vm_service-6.0.1-nullsafety.1/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vm_service-5.5.0/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="watcher">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/watcher-0.9.7+15/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="web_socket_channel">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/web_socket_channel-1.2.0/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="webdriver">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/webdriver-3.0.0/lib" />
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/webdriver-2.1.2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="webkit_inspection_protocol">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/webkit_inspection_protocol-0.7.4/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="win32">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/win32-1.7.4+1/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="xdg_directories">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/xdg_directories-0.1.2/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="yaml">
|
||||||
|
<value>
|
||||||
|
<list>
|
||||||
|
<option value="$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/yaml-2.2.1/lib" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
</option>
|
||||||
|
</properties>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/_fe_analyzer_shared-12.0.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/analyzer-0.40.6/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/archive-2.0.13/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/archive-3.0.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/args-1.6.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.5.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/async-2.5.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/boolean_selector-2.1.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/characters-1.1.0-nullsafety.5/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/characters-1.1.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.2.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/charcode-1.2.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/cli_util-0.2.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/clock-1.1.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/clock-1.1.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.15.0-nullsafety.5/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/collection-1.15.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/convert-2.1.1/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/coverage-0.14.2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/crypto-2.1.5/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/crypto-3.0.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/cupertino_icons-1.0.2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/device_info-2.0.0-nullsafety.2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/device_info_platform_interface-2.0.0-nullsafety.2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/fake_async-1.2.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/fake_async-1.2.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/ffi-0.1.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/file-6.0.0-nullsafety.4/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/file-6.0.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.5.2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/glob-1.2.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/http_multi_server-2.2.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/http_parser-3.1.4/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/intl-0.17.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/io-0.3.4/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/js-0.6.3-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/json_rpc_2-2.2.2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/logging-0.11.4/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.10-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/matcher-0.12.10/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.3.0-nullsafety.6/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/meta-1.3.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/mime-0.9.7/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/mime-1.0.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/mockito-4.1.1/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/node_interop-1.2.1/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/node_io-1.1.1/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/node_preamble-1.4.13/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/package_config-1.9.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.8.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path-1.8.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-1.6.27/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-0.0.1+2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-0.0.4+8/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_platform_interface-1.0.4/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-0.0.4+3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/pedantic-1.10.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/pedantic-1.10.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.1.0+2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler_platform_interface-2.0.2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/platform-3.0.0-nullsafety.4/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/platform-3.0.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/plugin_platform_interface-1.1.0-nullsafety.1/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/pool-1.5.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/process-4.0.0-nullsafety.4/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/process-4.0.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/pub_semver-1.4.4/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/shelf-0.7.5/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/shelf_packages_handler-2.0.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/shelf_static-0.2.9+1/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/shelf_web_socket-0.2.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/source_map_stack_trace-2.1.0-nullsafety.4/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/source_maps-0.10.10-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.8.0-nullsafety.4/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/source_span-1.8.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0-nullsafety.6/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stack_trace-1.10.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/stream_channel-2.1.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/string_scanner-1.1.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/sync_http-0.2.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/sync_http-0.3.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/term_glyph-1.2.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/test-1.16.0-nullsafety.9/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19-nullsafety.6/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/test_api-0.2.19/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/test_core-0.3.12-nullsafety.9/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.0-nullsafety.5/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/typed_data-1.3.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.0-nullsafety.6/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-0.1.0-nullsafety.3/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-0.1.0-nullsafety.2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_platform_interface-2.0.0-nullsafety.1/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-0.1.0-nullsafety.2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/uuid-3.0.0-nullsafety.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.0-nullsafety.5/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vector_math-2.1.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vm_service-5.5.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/vm_service-6.0.1-nullsafety.1/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/watcher-0.9.7+15/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/web_socket_channel-1.2.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/webdriver-2.1.2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/webdriver-3.0.0/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/webkit_inspection_protocol-0.7.4/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/win32-1.7.4+1/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/xdg_directories-0.1.2/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/yaml-2.2.1/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/bin/cache/pkg/sky_engine/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/packages/flutter/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/packages/flutter_driver/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/packages/flutter_test/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/packages/fuchsia_remote_debug_protocol/lib" />
|
||||||
|
<root url="file://$USER_HOME$/flutter/packages/integration_test/lib" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
|
@ -1,9 +1,6 @@
|
||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Flutter Plugins">
|
<library name="Flutter Plugins">
|
||||||
<CLASSES>
|
<CLASSES />
|
||||||
<root url="file://$USER_HOME$/flutter/.pub-cache/hosted/pub.dartlang.org/device_info-2.0.0-nullsafety.2" />
|
|
||||||
<root url="file://$PROJECT_DIR$" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES />
|
<SOURCES />
|
||||||
</library>
|
</library>
|
||||||
|
|
|
@ -58,6 +58,7 @@ jobs:
|
||||||
- 'android-sdk-license-.+'
|
- 'android-sdk-license-.+'
|
||||||
- 'google-gdk-license-.+'
|
- 'google-gdk-license-.+'
|
||||||
before_install:
|
before_install:
|
||||||
|
- mkdir -p .android && touch ~/.android/repositories.cfg
|
||||||
- yes | sdkmanager --update
|
- yes | sdkmanager --update
|
||||||
- yes | sdkmanager tools
|
- yes | sdkmanager tools
|
||||||
- yes | sdkmanager "system-images;android-30;google_apis;x86"
|
- yes | sdkmanager "system-images;android-30;google_apis;x86"
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"device_info","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/device_info-2.0.0-nullsafety.2/","dependencies":[]},{"name":"flutter_downloader","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.5.2/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":["device_info"]},{"name":"integration_test","path":"/Users/lorenzopichilli/flutter/packages/integration_test/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-1.6.27/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.1.0+2/","dependencies":[]},{"name":"url_launcher","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.0-nullsafety.6/","dependencies":[]}],"android":[{"name":"device_info","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/device_info-2.0.0-nullsafety.2/","dependencies":[]},{"name":"flutter_downloader","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.5.2/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":["device_info"]},{"name":"integration_test","path":"/Users/lorenzopichilli/flutter/packages/integration_test/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-1.6.27/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.1.0+2/","dependencies":[]},{"name":"url_launcher","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.0-nullsafety.6/","dependencies":[]}],"macos":[{"name":"path_provider_macos","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-0.0.4+8/","dependencies":[]},{"name":"url_launcher_macos","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-0.1.0-nullsafety.2/","dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-0.0.1+2/","dependencies":[]},{"name":"url_launcher_linux","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-0.1.0-nullsafety.3/","dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-0.0.4+3/","dependencies":[]},{"name":"url_launcher_windows","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-0.1.0-nullsafety.2/","dependencies":[]}],"web":[]},"dependencyGraph":[{"name":"device_info","dependencies":[]},{"name":"flutter_downloader","dependencies":[]},{"name":"flutter_inappwebview","dependencies":["device_info"]},{"name":"integration_test","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_macos","path_provider_linux","path_provider_windows"]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_linux","url_launcher_macos","url_launcher_windows"]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2021-02-10 18:12:10.702361","version":"1.26.0-18.0.pre.257"}
|
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"device_info","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/device_info-2.0.0-nullsafety.2/","dependencies":[]},{"name":"flutter_downloader","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.5.2/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":["device_info"]},{"name":"integration_test","path":"/Users/lorenzopichilli/flutter/packages/integration_test/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-1.6.27/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.1.0+2/","dependencies":[]},{"name":"url_launcher","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.0-nullsafety.6/","dependencies":[]}],"android":[{"name":"device_info","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/device_info-2.0.0-nullsafety.2/","dependencies":[]},{"name":"flutter_downloader","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_downloader-1.5.2/","dependencies":[]},{"name":"flutter_inappwebview","path":"/Users/lorenzopichilli/Desktop/flutter_inappwebview/","dependencies":["device_info"]},{"name":"integration_test","path":"/Users/lorenzopichilli/flutter/packages/integration_test/","dependencies":[]},{"name":"path_provider","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider-1.6.27/","dependencies":[]},{"name":"permission_handler","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/permission_handler-5.1.0+2/","dependencies":[]},{"name":"url_launcher","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher-6.0.0-nullsafety.6/","dependencies":[]}],"macos":[{"name":"path_provider_macos","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_macos-0.0.4+8/","dependencies":[]},{"name":"url_launcher_macos","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_macos-0.1.0-nullsafety.2/","dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_linux-0.0.1+2/","dependencies":[]},{"name":"url_launcher_linux","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_linux-0.1.0-nullsafety.3/","dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-0.0.4+3/","dependencies":[]},{"name":"url_launcher_windows","path":"/Users/lorenzopichilli/flutter/.pub-cache/hosted/pub.dartlang.org/url_launcher_windows-0.1.0-nullsafety.2/","dependencies":[]}],"web":[]},"dependencyGraph":[{"name":"device_info","dependencies":[]},{"name":"flutter_downloader","dependencies":[]},{"name":"flutter_inappwebview","dependencies":["device_info"]},{"name":"integration_test","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_macos","path_provider_linux","path_provider_windows"]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_macos","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"permission_handler","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_linux","url_launcher_macos","url_launcher_windows"]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2021-02-11 10:03:25.452778","version":"1.26.0-18.0.pre.257"}
|
|
@ -1,5 +1,3 @@
|
||||||
// @dart = 2.9
|
|
||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
@ -16,8 +14,8 @@ import 'package:integration_test/integration_test.dart';
|
||||||
import '.env.dart';
|
import '.env.dart';
|
||||||
|
|
||||||
class Foo {
|
class Foo {
|
||||||
String bar;
|
String? bar;
|
||||||
String baz;
|
String? baz;
|
||||||
|
|
||||||
Foo({this.bar, this.baz});
|
Foo({this.bar, this.baz});
|
||||||
|
|
||||||
|
@ -51,7 +49,7 @@ void main() {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
final InAppWebViewController controller = await controllerCompleter.future;
|
final InAppWebViewController controller = await controllerCompleter.future;
|
||||||
final String currentUrl = await controller.getUrl();
|
final String? currentUrl = await controller.getUrl();
|
||||||
expect(currentUrl, 'https://flutter.dev/');
|
expect(currentUrl, 'https://flutter.dev/');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -72,7 +70,7 @@ void main() {
|
||||||
);
|
);
|
||||||
final InAppWebViewController controller = await controllerCompleter.future;
|
final InAppWebViewController controller = await controllerCompleter.future;
|
||||||
await controller.loadUrl(url: 'https://www.google.com/');
|
await controller.loadUrl(url: 'https://www.google.com/');
|
||||||
final String currentUrl = await controller.getUrl();
|
final String? currentUrl = await controller.getUrl();
|
||||||
expect(currentUrl, 'https://www.google.com/');
|
expect(currentUrl, 'https://www.google.com/');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -96,10 +94,10 @@ void main() {
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
onLoadStart: (controller, url) {
|
onLoadStart: (controller, url) {
|
||||||
pageStarts.add(url);
|
pageStarts.add(url!);
|
||||||
},
|
},
|
||||||
onLoadStop: (controller, url) {
|
onLoadStop: (controller, url) {
|
||||||
pageLoads.add(url);
|
pageLoads.add(url!);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -110,7 +108,7 @@ void main() {
|
||||||
};
|
};
|
||||||
await controller.loadUrl(url: 'https://flutter-header-echo.herokuapp.com/',
|
await controller.loadUrl(url: 'https://flutter-header-echo.herokuapp.com/',
|
||||||
headers: headers);
|
headers: headers);
|
||||||
final String currentUrl = await controller.getUrl();
|
final String? currentUrl = await controller.getUrl();
|
||||||
expect(currentUrl, 'https://flutter-header-echo.herokuapp.com/');
|
expect(currentUrl, 'https://flutter-header-echo.herokuapp.com/');
|
||||||
|
|
||||||
await pageStarts.stream.firstWhere((String url) => url == currentUrl);
|
await pageStarts.stream.firstWhere((String url) => url == currentUrl);
|
||||||
|
@ -147,9 +145,9 @@ void main() {
|
||||||
controller.addJavaScriptHandler(handlerName: 'handlerFooWithArgs', callback: (args) {
|
controller.addJavaScriptHandler(handlerName: 'handlerFooWithArgs', callback: (args) {
|
||||||
messagesReceived.add(args[0] as int);
|
messagesReceived.add(args[0] as int);
|
||||||
messagesReceived.add(args[1] as bool);
|
messagesReceived.add(args[1] as bool);
|
||||||
messagesReceived.add(args[2].cast<dynamic>());
|
messagesReceived.add(args[2] as List<dynamic>?);
|
||||||
messagesReceived.add(args[3].cast<String, String>());
|
messagesReceived.add(args[3]?.cast<String, String>() as Map<String, String>?);
|
||||||
messagesReceived.add(args[4].cast<String, String>());
|
messagesReceived.add(args[4]?.cast<String, String>() as Map<String, String>?);
|
||||||
handlerFooWithArgs.complete();
|
handlerFooWithArgs.complete();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -175,7 +173,7 @@ void main() {
|
||||||
|
|
||||||
expect(messagesReceived[0], 1);
|
expect(messagesReceived[0], 1);
|
||||||
expect(messagesReceived[1], true);
|
expect(messagesReceived[1], true);
|
||||||
expect(listEquals(messagesReceived[2], ["bar", 5]), true);
|
expect(listEquals(messagesReceived[2] as List<dynamic>?, ["bar", 5]), true);
|
||||||
expect(mapEquals(messagesReceived[3], {"foo": "baz"}), true);
|
expect(mapEquals(messagesReceived[3], {"foo": "baz"}), true);
|
||||||
expect(mapEquals(messagesReceived[4], {"bar":"bar_value","baz":"baz_value"}), true);
|
expect(mapEquals(messagesReceived[4], {"bar":"bar_value","baz":"baz_value"}), true);
|
||||||
});
|
});
|
||||||
|
@ -303,7 +301,7 @@ void main() {
|
||||||
});
|
});
|
||||||
|
|
||||||
group('Video playback policy', () {
|
group('Video playback policy', () {
|
||||||
String videoTestBase64;
|
String videoTestBase64 = "";
|
||||||
setUpAll(() async {
|
setUpAll(() async {
|
||||||
final ByteData videoData =
|
final ByteData videoData =
|
||||||
await rootBundle.load('test_assets/sample_video.mp4');
|
await rootBundle.load('test_assets/sample_video.mp4');
|
||||||
|
@ -480,7 +478,7 @@ void main() {
|
||||||
});
|
});
|
||||||
|
|
||||||
group('Audio playback policy', () {
|
group('Audio playback policy', () {
|
||||||
String audioTestBase64;
|
String audioTestBase64 = "";
|
||||||
setUpAll(() async {
|
setUpAll(() async {
|
||||||
final ByteData audioData =
|
final ByteData audioData =
|
||||||
await rootBundle.load('test_assets/sample_audio.ogg');
|
await rootBundle.load('test_assets/sample_audio.ogg');
|
||||||
|
@ -624,7 +622,7 @@ void main() {
|
||||||
await pageStarted.future;
|
await pageStarted.future;
|
||||||
await pageLoaded.future;
|
await pageLoaded.future;
|
||||||
|
|
||||||
final String title = await controller.getTitle();
|
final String? title = await controller.getTitle();
|
||||||
expect(title, 'Some title');
|
expect(title, 'Some title');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -676,6 +674,7 @@ void main() {
|
||||||
|
|
||||||
final InAppWebViewController controller = await controllerCompleter.future;
|
final InAppWebViewController controller = await controllerCompleter.future;
|
||||||
await pageLoaded.future;
|
await pageLoaded.future;
|
||||||
|
await controller.scrollTo(x: 0, y: 0);
|
||||||
|
|
||||||
await tester.pumpAndSettle(Duration(seconds: 3));
|
await tester.pumpAndSettle(Duration(seconds: 3));
|
||||||
|
|
||||||
|
@ -685,8 +684,8 @@ void main() {
|
||||||
|
|
||||||
await controller.scrollTo(x: X_SCROLL, y: Y_SCROLL);
|
await controller.scrollTo(x: X_SCROLL, y: Y_SCROLL);
|
||||||
await tester.pumpAndSettle(Duration(seconds: 2));
|
await tester.pumpAndSettle(Duration(seconds: 2));
|
||||||
int scrollPosX = await controller.getScrollX();
|
int? scrollPosX = await controller.getScrollX();
|
||||||
int scrollPosY = await controller.getScrollY();
|
int? scrollPosY = await controller.getScrollY();
|
||||||
expect(scrollPosX, X_SCROLL);
|
expect(scrollPosX, X_SCROLL);
|
||||||
expect(scrollPosY, Y_SCROLL);
|
expect(scrollPosY, Y_SCROLL);
|
||||||
|
|
||||||
|
@ -753,6 +752,7 @@ void main() {
|
||||||
|
|
||||||
final InAppWebViewController controller = await controllerCompleter.future;
|
final InAppWebViewController controller = await controllerCompleter.future;
|
||||||
await pageLoaded.future;
|
await pageLoaded.future;
|
||||||
|
await controller.scrollTo(x: 0, y: 0);
|
||||||
|
|
||||||
await tester.pumpAndSettle(Duration(seconds: 3));
|
await tester.pumpAndSettle(Duration(seconds: 3));
|
||||||
|
|
||||||
|
@ -762,8 +762,8 @@ void main() {
|
||||||
|
|
||||||
await controller.scrollTo(x: X_SCROLL, y: Y_SCROLL);
|
await controller.scrollTo(x: X_SCROLL, y: Y_SCROLL);
|
||||||
await tester.pumpAndSettle(Duration(seconds: 2));
|
await tester.pumpAndSettle(Duration(seconds: 2));
|
||||||
int scrollPosX = await controller.getScrollX();
|
int? scrollPosX = await controller.getScrollX();
|
||||||
int scrollPosY = await controller.getScrollY();
|
int? scrollPosY = await controller.getScrollY();
|
||||||
expect(scrollPosX, X_SCROLL);
|
expect(scrollPosX, X_SCROLL);
|
||||||
expect(scrollPosY, Y_SCROLL);
|
expect(scrollPosY, Y_SCROLL);
|
||||||
|
|
||||||
|
@ -807,7 +807,7 @@ void main() {
|
||||||
: ShouldOverrideUrlLoadingAction.ALLOW;
|
: ShouldOverrideUrlLoadingAction.ALLOW;
|
||||||
},
|
},
|
||||||
onLoadStop: (controller, url) {
|
onLoadStop: (controller, url) {
|
||||||
pageLoads.add(url);
|
pageLoads.add(url!);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -819,7 +819,7 @@ void main() {
|
||||||
.evaluateJavascript(source: 'location.href = "https://www.google.com/"');
|
.evaluateJavascript(source: 'location.href = "https://www.google.com/"');
|
||||||
|
|
||||||
await pageLoads.stream.first; // Wait for the next page load.
|
await pageLoads.stream.first; // Wait for the next page load.
|
||||||
final String currentUrl = await controller.getUrl();
|
final String? currentUrl = await controller.getUrl();
|
||||||
expect(currentUrl, 'https://www.google.com/');
|
expect(currentUrl, 'https://www.google.com/');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -848,7 +848,7 @@ void main() {
|
||||||
: ShouldOverrideUrlLoadingAction.CANCEL;
|
: ShouldOverrideUrlLoadingAction.CANCEL;
|
||||||
},
|
},
|
||||||
onLoadStop: (controller, url) {
|
onLoadStop: (controller, url) {
|
||||||
pageLoads.add(url);
|
pageLoads.add(url!);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -861,9 +861,9 @@ void main() {
|
||||||
// There should never be any second page load, since our new URL is
|
// There should never be any second page load, since our new URL is
|
||||||
// blocked. Still wait for a potential page change for some time in order
|
// blocked. Still wait for a potential page change for some time in order
|
||||||
// to give the test a chance to fail.
|
// to give the test a chance to fail.
|
||||||
await pageLoads.stream.first
|
await pageLoads.stream.map((event) => event as String?).first
|
||||||
.timeout(const Duration(milliseconds: 500), onTimeout: () => null);
|
.timeout(const Duration(milliseconds: 500), onTimeout: () => null);
|
||||||
String currentUrl = await controller.getUrl();
|
String? currentUrl = await controller.getUrl();
|
||||||
expect(currentUrl, isNot('https://www.google.com/'));
|
expect(currentUrl, isNot('https://www.google.com/'));
|
||||||
|
|
||||||
await controller.evaluateJavascript(source: 'document.querySelector("#link").click();');
|
await controller.evaluateJavascript(source: 'document.querySelector("#link").click();');
|
||||||
|
@ -898,7 +898,7 @@ void main() {
|
||||||
: ShouldOverrideUrlLoadingAction.ALLOW;
|
: ShouldOverrideUrlLoadingAction.ALLOW;
|
||||||
},
|
},
|
||||||
onLoadStop: (controller, url) {
|
onLoadStop: (controller, url) {
|
||||||
pageLoads.add(url);
|
pageLoads.add(url!);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -912,9 +912,9 @@ void main() {
|
||||||
// There should never be any second page load, since our new URL is
|
// There should never be any second page load, since our new URL is
|
||||||
// blocked. Still wait for a potential page change for some time in order
|
// blocked. Still wait for a potential page change for some time in order
|
||||||
// to give the test a chance to fail.
|
// to give the test a chance to fail.
|
||||||
await pageLoads.stream.first
|
await pageLoads.stream.map((event) => event as String?).first
|
||||||
.timeout(const Duration(milliseconds: 500), onTimeout: () => null);
|
.timeout(const Duration(milliseconds: 500), onTimeout: () => null);
|
||||||
final String currentUrl = await controller.getUrl();
|
final String? currentUrl = await controller.getUrl();
|
||||||
expect(currentUrl, isNot(contains('youtube.com')));
|
expect(currentUrl, isNot(contains('youtube.com')));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -946,7 +946,7 @@ void main() {
|
||||||
return action;
|
return action;
|
||||||
},
|
},
|
||||||
onLoadStop: (controller, url) {
|
onLoadStop: (controller, url) {
|
||||||
pageLoads.add(url);
|
pageLoads.add(url!);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -958,7 +958,7 @@ void main() {
|
||||||
.evaluateJavascript(source: 'location.href = "https://www.google.com"');
|
.evaluateJavascript(source: 'location.href = "https://www.google.com"');
|
||||||
|
|
||||||
await pageLoads.stream.first; // Wait for second page to load.
|
await pageLoads.stream.first; // Wait for second page to load.
|
||||||
final String currentUrl = await controller.getUrl();
|
final String? currentUrl = await controller.getUrl();
|
||||||
expect(currentUrl, 'https://www.google.com/');
|
expect(currentUrl, 'https://www.google.com/');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -1048,7 +1048,7 @@ void main() {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
final InAppWebViewController controller = await controllerCompleter.future;
|
final InAppWebViewController controller = await controllerCompleter.future;
|
||||||
final String currentUrl = await controller.getUrl();
|
final String? currentUrl = await controller.getUrl();
|
||||||
expect(currentUrl, contains('flutter.dev'));
|
expect(currentUrl, contains('flutter.dev'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1072,7 +1072,7 @@ void main() {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
onLoadStop: (controller, url) {
|
onLoadStop: (controller, url) {
|
||||||
pageLoads.add(url);
|
pageLoads.add(url!);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -1082,7 +1082,7 @@ void main() {
|
||||||
|
|
||||||
await controller.evaluateJavascript(source: 'window.open("about:blank", "_blank")');
|
await controller.evaluateJavascript(source: 'window.open("about:blank", "_blank")');
|
||||||
await pageLoads.stream.first;
|
await pageLoads.stream.first;
|
||||||
final String currentUrl = await controller.getUrl();
|
final String? currentUrl = await controller.getUrl();
|
||||||
expect(currentUrl, 'about:blank');
|
expect(currentUrl, 'about:blank');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1107,7 +1107,7 @@ void main() {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
onLoadStop: (controller, url) {
|
onLoadStop: (controller, url) {
|
||||||
pageLoads.add(url);
|
pageLoads.add(url!);
|
||||||
},
|
},
|
||||||
initialUrl: 'https://flutter.dev',
|
initialUrl: 'https://flutter.dev',
|
||||||
),
|
),
|
||||||
|
@ -1248,7 +1248,7 @@ void main() {
|
||||||
controllerCompleter.complete(controller);
|
controllerCompleter.complete(controller);
|
||||||
},
|
},
|
||||||
shouldInterceptAjaxRequest: (controller, ajaxRequest) async {
|
shouldInterceptAjaxRequest: (controller, ajaxRequest) async {
|
||||||
if (ajaxRequest.url.endsWith("/test-ajax-post")) {
|
if (ajaxRequest.url!.endsWith("/test-ajax-post")) {
|
||||||
ajaxRequest.responseType = 'json';
|
ajaxRequest.responseType = 'json';
|
||||||
ajaxRequest.data = "firstname=Foo2&lastname=Bar2";
|
ajaxRequest.data = "firstname=Foo2&lastname=Bar2";
|
||||||
shouldInterceptAjaxPostRequestCompleter.complete(controller);
|
shouldInterceptAjaxPostRequestCompleter.complete(controller);
|
||||||
|
@ -1256,15 +1256,15 @@ void main() {
|
||||||
return ajaxRequest;
|
return ajaxRequest;
|
||||||
},
|
},
|
||||||
onAjaxReadyStateChange: (controller, ajaxRequest) async {
|
onAjaxReadyStateChange: (controller, ajaxRequest) async {
|
||||||
if (ajaxRequest.readyState == AjaxRequestReadyState.DONE && ajaxRequest.status == 200 && ajaxRequest.url.endsWith("/test-ajax-post")) {
|
if (ajaxRequest.readyState == AjaxRequestReadyState.DONE && ajaxRequest.status == 200 && ajaxRequest.url!.endsWith("/test-ajax-post")) {
|
||||||
Map<String, dynamic> res = ajaxRequest.response;
|
Map<String, dynamic> res = ajaxRequest.response;
|
||||||
onAjaxReadyStateChangeCompleter.complete(res);
|
onAjaxReadyStateChangeCompleter.complete(res);
|
||||||
}
|
}
|
||||||
return AjaxRequestAction.PROCEED;
|
return AjaxRequestAction.PROCEED;
|
||||||
},
|
},
|
||||||
onAjaxProgress: (controller, ajaxRequest) async {
|
onAjaxProgress: (controller, ajaxRequest) async {
|
||||||
if (ajaxRequest.event.type == AjaxRequestEventType.LOAD && ajaxRequest.url.endsWith("/test-ajax-post")) {
|
if (ajaxRequest.event!.type == AjaxRequestEventType.LOAD && ajaxRequest.url!.endsWith("/test-ajax-post")) {
|
||||||
Map<String, Object> res = ajaxRequest.response;
|
Map<String, dynamic> res = ajaxRequest.response;
|
||||||
onAjaxProgressCompleter.complete(res);
|
onAjaxProgressCompleter.complete(res);
|
||||||
}
|
}
|
||||||
return AjaxRequestAction.PROCEED;
|
return AjaxRequestAction.PROCEED;
|
||||||
|
@ -1354,8 +1354,8 @@ void main() {
|
||||||
List<Cookie> cookies = await cookieManager.getCookies(url: url);
|
List<Cookie> cookies = await cookieManager.getCookies(url: url);
|
||||||
expect(cookies, isNotEmpty);
|
expect(cookies, isNotEmpty);
|
||||||
|
|
||||||
Cookie cookie = await cookieManager.getCookie(url: url, name: "myCookie");
|
Cookie? cookie = await cookieManager.getCookie(url: url, name: "myCookie");
|
||||||
expect(cookie.value.toString(), "myValue");
|
expect(cookie?.value.toString(), "myValue");
|
||||||
|
|
||||||
await cookieManager.deleteCookie(url: url, name: "myCookie");
|
await cookieManager.deleteCookie(url: url, name: "myCookie");
|
||||||
cookie = await cookieManager.getCookie(url: url, name: "myCookie");
|
cookie = await cookieManager.getCookie(url: url, name: "myCookie");
|
||||||
|
@ -1437,12 +1437,12 @@ void main() {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
shouldInterceptFetchRequest: (controller, fetchRequest) async {
|
shouldInterceptFetchRequest: (controller, fetchRequest) async {
|
||||||
if (fetchRequest.url.endsWith("/test-ajax-post")) {
|
if (fetchRequest.url!.endsWith("/test-ajax-post")) {
|
||||||
fetchRequest.body = utf8.encode("""{
|
fetchRequest.body = utf8.encode("""{
|
||||||
"firstname": "Foo2",
|
"firstname": "Foo2",
|
||||||
"lastname": "Bar2"
|
"lastname": "Bar2"
|
||||||
}
|
}
|
||||||
""");
|
""") as Uint8List;
|
||||||
shouldInterceptFetchPostRequestCompleter.complete();
|
shouldInterceptFetchPostRequestCompleter.complete();
|
||||||
}
|
}
|
||||||
return fetchRequest;
|
return fetchRequest;
|
||||||
|
@ -1468,7 +1468,7 @@ void main() {
|
||||||
final Completer<void> pageLoaded = Completer<void>();
|
final Completer<void> pageLoaded = Completer<void>();
|
||||||
|
|
||||||
httpAuthCredentialDatabase.setHttpAuthCredential(
|
httpAuthCredentialDatabase.setHttpAuthCredential(
|
||||||
protectionSpace: ProtectionSpace(host: environment["NODE_SERVER_IP"], protocol: "http", realm: "Node", port: 8081),
|
protectionSpace: ProtectionSpace(host: environment["NODE_SERVER_IP"]!, protocol: "http", realm: "Node", port: 8081),
|
||||||
credential: HttpAuthCredential(username: "USERNAME", password: "PASSWORD")
|
credential: HttpAuthCredential(username: "USERNAME", password: "PASSWORD")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1502,13 +1502,13 @@ void main() {
|
||||||
expect(h1Content, "Authorized");
|
expect(h1Content, "Authorized");
|
||||||
|
|
||||||
var credentials = await httpAuthCredentialDatabase.getHttpAuthCredentials(protectionSpace:
|
var credentials = await httpAuthCredentialDatabase.getHttpAuthCredentials(protectionSpace:
|
||||||
ProtectionSpace(host: environment["NODE_SERVER_IP"], protocol: "http", realm: "Node", port: 8081)
|
ProtectionSpace(host: environment["NODE_SERVER_IP"]!, protocol: "http", realm: "Node", port: 8081)
|
||||||
);
|
);
|
||||||
expect(credentials.length, 1);
|
expect(credentials.length, 1);
|
||||||
|
|
||||||
await httpAuthCredentialDatabase.clearAllAuthCredentials();
|
await httpAuthCredentialDatabase.clearAllAuthCredentials();
|
||||||
credentials = await httpAuthCredentialDatabase.getHttpAuthCredentials(protectionSpace:
|
credentials = await httpAuthCredentialDatabase.getHttpAuthCredentials(protectionSpace:
|
||||||
ProtectionSpace(host: environment["NODE_SERVER_IP"], protocol: "http", realm: "Node", port: 8081)
|
ProtectionSpace(host: environment["NODE_SERVER_IP"]!, protocol: "http", realm: "Node", port: 8081)
|
||||||
);
|
);
|
||||||
expect(credentials, isEmpty);
|
expect(credentials, isEmpty);
|
||||||
});
|
});
|
||||||
|
@ -1575,9 +1575,10 @@ void main() {
|
||||||
expect(consoleMessage.messageLevel, ConsoleMessageLevel.LOG);
|
expect(consoleMessage.messageLevel, ConsoleMessageLevel.LOG);
|
||||||
});
|
});
|
||||||
|
|
||||||
testWidgets('onCreateWindow', (WidgetTester tester) async {
|
group("WebView Windows", () {
|
||||||
|
testWidgets('onCreateWindow return false', (WidgetTester tester) async {
|
||||||
final Completer controllerCompleter = Completer<InAppWebViewController>();
|
final Completer controllerCompleter = Completer<InAppWebViewController>();
|
||||||
final Completer<void> newWindowOpenedCompleter = Completer<void>();
|
final Completer<void> pageLoaded = Completer<void>();
|
||||||
await tester.pumpWidget(
|
await tester.pumpWidget(
|
||||||
Directionality(
|
Directionality(
|
||||||
textDirection: TextDirection.ltr,
|
textDirection: TextDirection.ltr,
|
||||||
|
@ -1595,18 +1596,89 @@ void main() {
|
||||||
},
|
},
|
||||||
onLoadStop: (controller, url) {
|
onLoadStop: (controller, url) {
|
||||||
if (url == "https://flutter.dev/") {
|
if (url == "https://flutter.dev/") {
|
||||||
newWindowOpenedCompleter.complete();
|
pageLoaded.complete();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onCreateWindow: (controller, createWindowRequest) async {
|
onCreateWindow: (controller, createWindowRequest) async {
|
||||||
controller.loadUrl(url: createWindowRequest.url);
|
controller.loadUrl(url: createWindowRequest.url!);
|
||||||
return null;
|
return false;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
final InAppWebViewController controller = await controllerCompleter.future;
|
final InAppWebViewController controller = await controllerCompleter.future;
|
||||||
await expectLater(newWindowOpenedCompleter.future, completes);
|
await expectLater(pageLoaded.future, completes);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('onCreateWindow return true', (WidgetTester tester) async {
|
||||||
|
int? windowId;
|
||||||
|
String? windowUrl;
|
||||||
|
|
||||||
|
final Completer controllerCompleter = Completer<InAppWebViewController>();
|
||||||
|
final Completer<void> onCreateWindowCompleter = Completer<void>();
|
||||||
|
await tester.pumpWidget(
|
||||||
|
Directionality(
|
||||||
|
textDirection: TextDirection.ltr,
|
||||||
|
child: InAppWebView(
|
||||||
|
key: GlobalKey(),
|
||||||
|
initialFile: "test_assets/in_app_webview_on_create_window_test.html",
|
||||||
|
initialOptions: InAppWebViewGroupOptions(
|
||||||
|
crossPlatform: InAppWebViewOptions(
|
||||||
|
clearCache: true,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
onWebViewCreated: (controller) {
|
||||||
|
controllerCompleter.complete(controller);
|
||||||
|
},
|
||||||
|
onCreateWindow: (controller, createWindowRequest) async {
|
||||||
|
windowId = createWindowRequest.windowId;
|
||||||
|
windowUrl = createWindowRequest.url;
|
||||||
|
onCreateWindowCompleter.complete();
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
final InAppWebViewController controller = await controllerCompleter.future;
|
||||||
|
await expectLater(onCreateWindowCompleter.future, completes);
|
||||||
|
|
||||||
|
final Completer windowControllerCompleter = Completer<InAppWebViewController>();
|
||||||
|
final Completer<String> windowPageLoaded = Completer<String>();
|
||||||
|
final Completer<void> onCloseWindowCompleter = Completer<void>();
|
||||||
|
|
||||||
|
await tester.pumpWidget(
|
||||||
|
Directionality(
|
||||||
|
textDirection: TextDirection.ltr,
|
||||||
|
child: InAppWebView(
|
||||||
|
key: GlobalKey(),
|
||||||
|
initialFile: windowUrl!,
|
||||||
|
windowId: windowId!,
|
||||||
|
initialOptions: InAppWebViewGroupOptions(
|
||||||
|
crossPlatform: InAppWebViewOptions(
|
||||||
|
clearCache: true,
|
||||||
|
javaScriptCanOpenWindowsAutomatically: true,
|
||||||
|
)
|
||||||
|
),
|
||||||
|
onWebViewCreated: (controller) {
|
||||||
|
windowControllerCompleter.complete(controller);
|
||||||
|
},
|
||||||
|
onLoadStop: (controller, url) async {
|
||||||
|
windowPageLoaded.complete(url!);
|
||||||
|
await controller.evaluateJavascript(source: "window.close();");
|
||||||
|
},
|
||||||
|
onCloseWindow: (controller) {
|
||||||
|
onCloseWindowCompleter.complete();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
final String windowUrlLoaded = await windowPageLoaded.future;
|
||||||
|
|
||||||
|
expect(windowUrlLoaded, "https://flutter.dev/");
|
||||||
|
await expectLater(onCloseWindowCompleter.future, completes);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
testWidgets('onDownloadStart', (WidgetTester tester) async {
|
testWidgets('onDownloadStart', (WidgetTester tester) async {
|
||||||
|
@ -1849,7 +1921,7 @@ void main() {
|
||||||
pageLoaded.complete();
|
pageLoaded.complete();
|
||||||
},
|
},
|
||||||
onLoadResource: (controller, response) async {
|
onLoadResource: (controller, response) async {
|
||||||
resourceLoaded.add(response.url);
|
resourceLoaded.add(response.url!);
|
||||||
if (resourceLoaded.length == resourceList.length) {
|
if (resourceLoaded.length == resourceList.length) {
|
||||||
loadedResourceCompleter.complete();
|
loadedResourceCompleter.complete();
|
||||||
}
|
}
|
||||||
|
@ -1888,7 +1960,7 @@ void main() {
|
||||||
pageLoaded.complete();
|
pageLoaded.complete();
|
||||||
},
|
},
|
||||||
onUpdateVisitedHistory: (controller, url, androidIsReload) async {
|
onUpdateVisitedHistory: (controller, url, androidIsReload) async {
|
||||||
if (url.endsWith("second-push")) {
|
if (url!.endsWith("second-push")) {
|
||||||
secondPushCompleter.complete();
|
secondPushCompleter.complete();
|
||||||
} else if (url.endsWith("first-push")) {
|
} else if (url.endsWith("first-push")) {
|
||||||
firstPushCompleter.complete();
|
firstPushCompleter.complete();
|
||||||
|
@ -2047,4 +2119,65 @@ setTimeout(function() {
|
||||||
final String h1Content = await controller.evaluateJavascript(source: "document.body.querySelector('h1').textContent");
|
final String h1Content = await controller.evaluateJavascript(source: "document.body.querySelector('h1').textContent");
|
||||||
expect(h1Content, "Authorized");
|
expect(h1Content, "Authorized");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testWidgets('onPrint', (WidgetTester tester) async {
|
||||||
|
final Completer<String> onPrintCompleter = Completer<String>();
|
||||||
|
await tester.pumpWidget(
|
||||||
|
Directionality(
|
||||||
|
textDirection: TextDirection.ltr,
|
||||||
|
child: InAppWebView(
|
||||||
|
key: GlobalKey(),
|
||||||
|
initialUrl: 'https://flutter.dev/',
|
||||||
|
onLoadStop: (controller, url) async {
|
||||||
|
await controller.evaluateJavascript(source: "window.print();");
|
||||||
|
},
|
||||||
|
onPrint: (controller, url) {
|
||||||
|
onPrintCompleter.complete(url);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
final String url = await onPrintCompleter.future;
|
||||||
|
expect(url, 'https://flutter.dev/');
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('onWindowFocus', (WidgetTester tester) async {
|
||||||
|
final Completer<String> onWindowFocusCompleter = Completer<String>();
|
||||||
|
await tester.pumpWidget(
|
||||||
|
Directionality(
|
||||||
|
textDirection: TextDirection.ltr,
|
||||||
|
child: InAppWebView(
|
||||||
|
key: GlobalKey(),
|
||||||
|
initialUrl: 'https://flutter.dev/',
|
||||||
|
onLoadStop: (controller, url) async {
|
||||||
|
await controller.evaluateJavascript(source: 'window.dispatchEvent(new Event("focus"));');
|
||||||
|
},
|
||||||
|
onWindowFocus: (controller) {
|
||||||
|
onWindowFocusCompleter.complete();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
await expectLater(onWindowFocusCompleter.future, completes);
|
||||||
|
});
|
||||||
|
|
||||||
|
testWidgets('onWindowBlur', (WidgetTester tester) async {
|
||||||
|
final Completer<String> onWindowBlurCompleter = Completer<String>();
|
||||||
|
await tester.pumpWidget(
|
||||||
|
Directionality(
|
||||||
|
textDirection: TextDirection.ltr,
|
||||||
|
child: InAppWebView(
|
||||||
|
key: GlobalKey(),
|
||||||
|
initialUrl: 'https://flutter.dev/',
|
||||||
|
onLoadStop: (controller, url) async {
|
||||||
|
await controller.evaluateJavascript(source: 'window.dispatchEvent(new Event("blur"));');
|
||||||
|
},
|
||||||
|
onWindowBlur: (controller) {
|
||||||
|
onWindowBlurCompleter.complete();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
await expectLater(onWindowBlurCompleter.future, completes);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
#
|
|
||||||
# NOTE: This podspec is NOT to be published. It is only used as a local source!
|
|
||||||
# This is a generated file; do not edit or check into version control.
|
|
||||||
#
|
|
||||||
|
|
||||||
Pod::Spec.new do |s|
|
|
||||||
s.name = 'Flutter'
|
|
||||||
s.version = '1.0.0'
|
|
||||||
s.summary = 'High-performance, high-fidelity mobile apps.'
|
|
||||||
s.homepage = 'https://flutter.io'
|
|
||||||
s.license = { :type => 'MIT' }
|
|
||||||
s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' }
|
|
||||||
s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s }
|
|
||||||
s.ios.deployment_target = '8.0'
|
|
||||||
# Framework linking is handled by Flutter tooling, not CocoaPods.
|
|
||||||
# Add a placeholder to satisfy `s.dependency 'Flutter'` plugin podspecs.
|
|
||||||
s.vendored_frameworks = 'path/to/nothing'
|
|
||||||
end
|
|
|
@ -2,13 +2,12 @@
|
||||||
# This is a generated file; do not edit or check into version control.
|
# This is a generated file; do not edit or check into version control.
|
||||||
export "FLUTTER_ROOT=/Users/lorenzopichilli/flutter"
|
export "FLUTTER_ROOT=/Users/lorenzopichilli/flutter"
|
||||||
export "FLUTTER_APPLICATION_PATH=/Users/lorenzopichilli/Desktop/flutter_inappwebview/example"
|
export "FLUTTER_APPLICATION_PATH=/Users/lorenzopichilli/Desktop/flutter_inappwebview/example"
|
||||||
export "FLUTTER_TARGET=/Users/lorenzopichilli/Desktop/flutter_inappwebview/example/lib/main.dart"
|
export "FLUTTER_TARGET=lib/main.dart"
|
||||||
export "FLUTTER_BUILD_DIR=build"
|
export "FLUTTER_BUILD_DIR=build"
|
||||||
export "SYMROOT=${SOURCE_ROOT}/../build/ios"
|
export "SYMROOT=${SOURCE_ROOT}/../build/ios"
|
||||||
export "FLUTTER_BUILD_NAME=1.0.0"
|
export "FLUTTER_BUILD_NAME=1.0.0"
|
||||||
export "FLUTTER_BUILD_NUMBER=1"
|
export "FLUTTER_BUILD_NUMBER=1"
|
||||||
export "DART_DEFINES=Zmx1dHRlci5pbnNwZWN0b3Iuc3RydWN0dXJlZEVycm9ycz10cnVl,RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ=="
|
|
||||||
export "DART_OBFUSCATION=false"
|
export "DART_OBFUSCATION=false"
|
||||||
export "TRACK_WIDGET_CREATION=true"
|
export "TRACK_WIDGET_CREATION=false"
|
||||||
export "TREE_SHAKE_ICONS=false"
|
export "TREE_SHAKE_ICONS=false"
|
||||||
export "PACKAGE_CONFIG=/Users/lorenzopichilli/Desktop/flutter_inappwebview/example/.dart_tool/package_config.json"
|
export "PACKAGE_CONFIG=.packages"
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
// @dart = 2.9
|
|
||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'package:flutter_driver/flutter_driver.dart';
|
import 'package:flutter_driver/flutter_driver.dart';
|
||||||
|
|
||||||
Future<void> main() async {
|
Future<void> main() async {
|
||||||
await Future.delayed(Duration(seconds: 1));
|
|
||||||
final FlutterDriver driver = await FlutterDriver.connect();
|
final FlutterDriver driver = await FlutterDriver.connect();
|
||||||
final String data =
|
final String data =
|
||||||
await driver.requestData(null, timeout: const Duration(minutes: 1));
|
await driver.requestData(null, timeout: const Duration(minutes: 1));
|
||||||
|
|
|
@ -80,5 +80,6 @@
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" name="Dart SDK" level="project" />
|
<orderEntry type="library" name="Dart SDK" level="project" />
|
||||||
<orderEntry type="library" name="Flutter Plugins" level="project" />
|
<orderEntry type="library" name="Flutter Plugins" level="project" />
|
||||||
|
<orderEntry type="library" name="Dart Packages" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
|
@ -20,7 +20,7 @@ node index.js &
|
||||||
flutter clean
|
flutter clean
|
||||||
cd $PROJECT_DIR/example
|
cd $PROJECT_DIR/example
|
||||||
flutter clean
|
flutter clean
|
||||||
flutter driver --driver=test_driver/integration_test.dart --target=integration_test/webview_flutter_test.dart --verbose
|
flutter driver --driver=test_driver/integration_test.dart --target=integration_test/webview_flutter_test.dart
|
||||||
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo "Integration tests passed successfully."
|
echo "Integration tests passed successfully."
|
||||||
|
|
Loading…
Reference in New Issue