58 lines
2.0 KiB
Dart
58 lines
2.0 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:marianum_mobile/api/marianumcloud/capabilities/nextcloud_sharing_capabilities.dart';
|
|
|
|
void main() {
|
|
group('NextcloudSharingCapabilities.fromFilesSharing', () {
|
|
test('parses a full files_sharing block', () {
|
|
final caps = NextcloudSharingCapabilities.fromFilesSharing({
|
|
'api_enabled': true,
|
|
'public': {
|
|
'enabled': true,
|
|
'multiple_links': true,
|
|
'upload': true,
|
|
'password': {'enforced': true},
|
|
'expire_date': {'enabled': true, 'days': 7, 'enforced': true},
|
|
},
|
|
'group': {'enabled': true},
|
|
'resharing': true,
|
|
});
|
|
expect(caps.apiEnabled, isTrue);
|
|
expect(caps.publicEnabled, isTrue);
|
|
expect(caps.publicMultipleLinks, isTrue);
|
|
expect(caps.publicUploadEnabled, isTrue);
|
|
expect(caps.publicPasswordEnforced, isTrue);
|
|
expect(caps.publicExpireEnabled, isTrue);
|
|
expect(caps.publicExpireDays, 7);
|
|
expect(caps.publicExpireEnforced, isTrue);
|
|
expect(caps.groupEnabled, isTrue);
|
|
expect(caps.resharing, isTrue);
|
|
});
|
|
|
|
test('falls back to the legacy group_sharing flag', () {
|
|
final caps = NextcloudSharingCapabilities.fromFilesSharing({
|
|
'api_enabled': true,
|
|
'group_sharing': true,
|
|
});
|
|
expect(caps.groupEnabled, isTrue);
|
|
});
|
|
|
|
test('missing fields default to the restrictive value', () {
|
|
final caps = NextcloudSharingCapabilities.fromFilesSharing({});
|
|
expect(caps.apiEnabled, isFalse);
|
|
expect(caps.publicEnabled, isFalse);
|
|
expect(caps.groupEnabled, isFalse);
|
|
expect(caps.resharing, isFalse);
|
|
expect(caps.publicExpireDays, isNull);
|
|
});
|
|
|
|
test('tolerates non-map / wrong-typed nested values', () {
|
|
final caps = NextcloudSharingCapabilities.fromFilesSharing({
|
|
'api_enabled': 'yes', // not a bool -> false
|
|
'public': 'nope', // not a map -> all false
|
|
});
|
|
expect(caps.apiEnabled, isFalse);
|
|
expect(caps.publicEnabled, isFalse);
|
|
});
|
|
});
|
|
}
|