test(automotive): assert the picture-in-picture vetoes on every host
41ffaa7f2gated picture-in-picture on FEATURE_AUTOMOTIVE and added a settings case for it, but the assertion that case leads with — a stored auto-PiP true surviving a read — needs supportsPictureInPicture() to be true, and that gate ends in Platform.isAndroid || isIOS || isMacOS. The term is false and unmockable on the Linux and Windows runners, so the case passed on a macOS host and could never pass in CI: sanity checks have been red for six commits on this one failure out of 4723.f13f5af6erecorded it as a pre-existing Windows-host failure, but it entered in this window and is red on Linux too. Extract the gate's decision into a pure pictureInPictureAllowed that takes the host's own capability as a parameter, the way driver_distraction.dart already splits automotivePlaybackAllowed from its ambient wrapper. The boolean algebra is unchanged, so the three callers keep their behaviour; what changes is that the automotive and TV vetoes become observable where every Platform branch is false, instead of being vacuous on the host that gates the release. The settings case keeps the pref-level contract on both host classes: a stored true survives where the host supports PiP, and the gate pins it off where it does not. Verified with the host term forced false to emulate a Linux runner: both files stay green, as does the full suite on macOS.
This commit is contained in:
@@ -236,7 +236,13 @@ void main() {
|
||||
final settings = await SettingsService.getInstance();
|
||||
await settings.write(SettingsService.autoPip, true);
|
||||
|
||||
expect(settings.read(SettingsService.autoPip), isTrue);
|
||||
// The pref can only surface a stored true where the host itself supports
|
||||
// PiP. That term is Platform.isAndroid/isIOS/isMacOS, unmockable and false
|
||||
// on the Linux and Windows CI hosts, where the gate pins the pref off no
|
||||
// matter what is stored. pictureInPictureAllowed covers the automotive
|
||||
// veto itself on every host.
|
||||
final hostSupportsPip = PlatformDetector.supportsPictureInPicture();
|
||||
expect(settings.read(SettingsService.autoPip), hostSupportsPip ? isTrue : isFalse);
|
||||
|
||||
TvDetectionService.debugSetAutomotiveOverride(true);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user