50 lines
1.4 KiB
Dart
50 lines
1.4 KiB
Dart
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);
|
|
});
|
|
});
|
|
}
|