tree 16a82a1b63f9ed5cd8e6351afb4b7be28193574d
parent 137be8db5d5b7f00530fca1591292849ce6779c9
author Nate Bosch <nbosch@google.com> 1610587317 -0800
committer GitHub <noreply@github.com> 1610587317 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJf/5y1CRBK7hj4Ov3rIwAAdHIIACQ1p+LHTsn2NXyGt6J1PpGc
 JkUe+VGneWr3N61Frh8ZbPLYcYpdeNVRxev0XVkpodd6S3MsXfsYoe94WD4/HDyn
 Gk+/xOPILEwmtGsfdeJzAVSD+kPAW3Q0miUWfKmF/xntQbi5lFGpujRuXLfV6pmc
 CjxXe7jj1b1QcRRa+I33nhS5JXXrp0418SO1xJT2WguLeicUbWQacFf2EVW3s/cG
 QDOmC9dZl+tXFnfdCL7MB3wt8GLwhZ1R/Me7f8ogd1l2f55/f0w/YQCJllzl/V4f
 +UA2dBPt1nUiym+SwR1YXY4+vil6gU6nt8VqCWaZspSQPSPUYP24qQqZEaEk4nQ=
 =rOOI
 -----END PGP SIGNATURE-----
 

Find test data files from package: URI (#149)

In Dart 2.12 the `Platform.packageConfig` changes from `.packages` to
`.dart_tool/package_config.json` which causes the data file discovery to
fail. Switch to resolving a `package:html` URI and assuming the pub
package layout which is more reliable and stable than the package config
file location.

- Migrate from `Platform.packageConfig` to `Isolate.resolvePackageUri`.
- Change the utility methods to be asynchronous and update the `main`
  for tests to `async`.
- Rename from `testDir` to `testDirectory`.
- Rename methods away from `get*`