import 'package:flutter_test/flutter_test.dart'; import 'package:tane/domain/message_rules.dart'; void main() { group('containsUrl', () { test('flags explicit schemes and www', () { expect(containsUrl('look https://evil.example/login'), isTrue); expect(containsUrl('http://foo'), isTrue); expect(containsUrl('go to www.example.org now'), isTrue); }); test('flags bare domains with a common TLD', () { expect(containsUrl('see tomate.com'), isTrue); expect(containsUrl('my-shop.store has it'), isTrue); expect(containsUrl('grab it at bit.ly'), isFalse); // ly not in the list }); test('leaves ordinary seed talk alone', () { expect(containsUrl('tengo 3.5kg de tomate rosa'), isFalse); expect(containsUrl('variedad F1 vs polinización abierta'), isFalse); expect(containsUrl('nos vemos a las 12.30'), isFalse); expect(containsUrl('semillas de calabaza, ¿cambiamos?'), isFalse); expect(containsUrl(''), isFalse); }); test('is case-insensitive', () { expect(containsUrl('HTTPS://EXAMPLE.COM'), isTrue); expect(containsUrl('Example.COM'), isTrue); }); }); }