import 'package:flutter/foundation.dart' show TargetPlatform; import 'package:flutter_quill/src/utils/platform.dart'; import 'package:test/test.dart'; void main() { group('Test platform checking logic', () { var platform = TargetPlatform.linux; test('Check isDesktop()', () { platform = TargetPlatform.android; expect( isDesktop( platform: platform, supportWeb: true, ), false, ); for (final desktopPlatform in [ TargetPlatform.macOS, TargetPlatform.linux, TargetPlatform.windows ]) { expect( isDesktop( supportWeb: false, overrideIsWeb: false, platform: desktopPlatform, ), true, ); expect( isDesktop( supportWeb: false, overrideIsWeb: true, platform: desktopPlatform, ), false, ); expect( isDesktop( supportWeb: true, overrideIsWeb: true, platform: desktopPlatform, ), true, ); } }); test('Check isMobile()', () { platform = TargetPlatform.macOS; expect( isMobile( platform: platform, supportWeb: true, ), false, ); for (final mobilePlatform in [ TargetPlatform.android, TargetPlatform.iOS, ]) { expect( isMobile( platform: mobilePlatform, supportWeb: false, overrideIsWeb: false, ), true, ); expect( isMobile( platform: mobilePlatform, supportWeb: false, overrideIsWeb: true, ), false, ); expect( isMobile( supportWeb: true, overrideIsWeb: true, platform: mobilePlatform, ), true, ); } }); test( 'Check supportWeb parameter when using desktop platform on web', () { platform = TargetPlatform.macOS; expect( isDesktop( platform: platform, supportWeb: true, ), true, ); expect( isDesktop( platform: platform, supportWeb: false, overrideIsWeb: false, ), true, ); expect( isDesktop( platform: platform, supportWeb: false, overrideIsWeb: true, ), false, ); }, ); test( 'Check supportWeb parameter when using mobile platform on web', () { platform = TargetPlatform.android; expect( isMobile( platform: platform, supportWeb: true, overrideIsWeb: true, ), true, ); expect( isMobile( platform: platform, supportWeb: false, overrideIsWeb: false, ), true, ); expect( isMobile( platform: platform, supportWeb: false, overrideIsWeb: true, ), false, ); }, ); }); }