import 'package:flutter_test/flutter_test.dart'; import 'package:forge/src/services/flatpak_permissions_service.dart'; void main() { group('FlatpakPermissionsService Parser Tests', () { test('parses basic permissions from manifest correctly', () { const manifest = ''' [Application] name=org.example.App [Context] shared=ipc;network; sockets=pulseaudio;x11; devices=dri; filesystems=host; '''; const overrides = ''; final perms = FlatpakPermissionsService.parsePermissions('org.example.App', manifest, overrides); expect(perms.network, isTrue); expect(perms.socketPulseaudio, isTrue); expect(perms.socketX11, isTrue); expect(perms.deviceDri, isTrue); expect(perms.filesystemHost, isTrue); expect(perms.filesystemHome, isTrue); // host implies home expect(perms.hasOverrides, isFalse); }); test('respects user overrides (disabling network and x11)', () { const manifest = ''' [Context] shared=ipc;network; sockets=pulseaudio;x11;wayland; '''; const overrides = ''' [Context] shared=!network; sockets=!x11; '''; final perms = FlatpakPermissionsService.parsePermissions('org.example.App', manifest, overrides); expect(perms.network, isFalse); expect(perms.socketX11, isFalse); expect(perms.socketWayland, isTrue); expect(perms.socketPulseaudio, isTrue); expect(perms.hasOverrides, isTrue); }); }); }