import 'package:flutter_test/flutter_test.dart'; import 'package:fluffychat/utils/matrix_identifier_string_extension.dart'; void main() { group('Matrix Identifier String Extension', () { test('parseIdentifierIntoParts', () { var res = '#alias:beep'.parseIdentifierIntoParts(); expect(res.primaryIdentifier, '#alias:beep'); expect(res.secondaryIdentifier, null); expect(res.queryString, null); res = 'blha'.parseIdentifierIntoParts(); expect(res, null); res = '#alias:beep/\$event'.parseIdentifierIntoParts(); expect(res.primaryIdentifier, '#alias:beep'); expect(res.secondaryIdentifier, '\$event'); expect(res.queryString, null); res = '#alias:beep?blubb'.parseIdentifierIntoParts(); expect(res.primaryIdentifier, '#alias:beep'); expect(res.secondaryIdentifier, null); expect(res.queryString, 'blubb'); res = '#alias:beep/\$event?blubb'.parseIdentifierIntoParts(); expect(res.primaryIdentifier, '#alias:beep'); expect(res.secondaryIdentifier, '\$event'); expect(res.queryString, 'blubb'); res = '#/\$?:beep/\$event?blubb?b'.parseIdentifierIntoParts(); expect(res.primaryIdentifier, '#/\$?:beep'); expect(res.secondaryIdentifier, '\$event'); expect(res.queryString, 'blubb?b'); res = 'https://matrix.to/#/#alias:beep'.parseIdentifierIntoParts(); expect(res.primaryIdentifier, '#alias:beep'); expect(res.secondaryIdentifier, null); expect(res.queryString, null); res = 'https://matrix.to/#/%23alias%3abeep'.parseIdentifierIntoParts(); expect(res.primaryIdentifier, '#alias:beep'); expect(res.secondaryIdentifier, null); expect(res.queryString, null); res = 'https://matrix.to/#/%23alias%3abeep?boop%F0%9F%A7%A1%F0%9F%A6%8A' .parseIdentifierIntoParts(); expect(res.primaryIdentifier, '#alias:beep'); expect(res.secondaryIdentifier, null); expect(res.queryString, 'boop%F0%9F%A7%A1%F0%9F%A6%8A'); }); }); }