mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-11-04 00:33:12 +00:00
45 lines
1.4 KiB
Dart
45 lines
1.4 KiB
Dart
import 'package:flutter/services.dart';
|
|
import 'package:flutter_hbb/common/formatter/id_formatter.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
group('formatID', () {
|
|
test('groups typed IDs from the right', () {
|
|
expect(formatID('53464938'), '53 464 938');
|
|
expect(formatID('123456789'), '123 456 789');
|
|
expect(formatID('1234'), '1 234');
|
|
});
|
|
|
|
test('ignores line breaks, tabs and non-breaking spaces from a paste', () {
|
|
expect(formatID('53464938\r\n'), '53 464 938');
|
|
expect(formatID('53464938\n'), '53 464 938');
|
|
expect(formatID('\t53464938'), '53 464 938');
|
|
expect(formatID('53\u00a0464\u00a0938'), '53 464 938');
|
|
});
|
|
|
|
test('keeps the relay suffix', () {
|
|
expect(formatID(r'53464938\r'), r'53 464 938\r');
|
|
});
|
|
|
|
test('leaves non-numeric input alone', () {
|
|
expect(formatID('my-host.example.com'), 'my-host.example.com');
|
|
});
|
|
});
|
|
|
|
test('trimID drops all whitespace', () {
|
|
expect(trimID('53 464 938\r\n'), '53464938');
|
|
expect(trimID('53\u00a0464\u00a0938'), '53464938');
|
|
});
|
|
|
|
test('pasting an ID with a trailing newline formats it like typing', () {
|
|
final formatted = IDTextInputFormatter().formatEditUpdate(
|
|
TextEditingValue.empty,
|
|
const TextEditingValue(
|
|
text: '53464938\r\n',
|
|
selection: TextSelection.collapsed(offset: 10),
|
|
),
|
|
);
|
|
expect(formatted.text, '53 464 938');
|
|
});
|
|
}
|