Files
rustdesk/flutter/test/uri_login_method_test.dart
T

47 lines
1.4 KiB
Dart

import 'package:flutter_hbb/common.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
test('request-approval links preserve their connection type', () {
for (final type in [
'connect',
'play',
'file-transfer',
'view-camera',
'port-forward',
'rdp',
'terminal',
'terminal-admin',
]) {
expect(
urlLinkToCmdArgs(
Uri.parse('rustdesk://$type/123456789?request-approval=true')),
['--$type', '123456789', '--request-approval'],
);
}
expect(
urlLinkToCmdArgs(Uri.parse('rustdesk://123456789?request-approval=true')),
['--connect', '123456789', '--request-approval'],
);
});
test('omitted and empty passwords retain automatic login', () {
expect(urlLinkToCmdArgs(Uri.parse('rustdesk://123456789')),
['--connect', '123456789']);
for (final query in ['password=', 'password=&request-approval=false']) {
expect(urlLinkToCmdArgs(Uri.parse('rustdesk://123456789?$query')),
['--connect', '123456789', '--password', '']);
}
});
test('request-approval ignores an explicit password in either order', () {
for (final query in [
'password=provided&request-approval=true',
'request-approval=true&password=provided',
]) {
expect(urlLinkToCmdArgs(Uri.parse('rustdesk://123456789?$query')),
['--connect', '123456789', '--request-approval']);
}
});
}