TF-2667 Write unit test for Domain & MailAddress class
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
|
||||
import 'package:core/utils/mail/domain.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
void main() {
|
||||
test('Domain.of(args) should not be case sensitive', () {
|
||||
expect(Domain.of('Domain'), equals(Domain.of('domain')));
|
||||
});
|
||||
|
||||
group('Domain.of(arg) should throw an AssertionError with a list of invalid domains', () {
|
||||
final listDomainInValid = [
|
||||
'domain\$bad.com',
|
||||
'',
|
||||
'aab..ddd',
|
||||
'aab.cc.1com',
|
||||
'abc.abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcd.com',
|
||||
'domain\$bad.com',
|
||||
'domain/bad.com',
|
||||
'domain\\bad.com',
|
||||
'domain@bad.com',
|
||||
'domain@bad.com',
|
||||
'domain%bad.com',
|
||||
'#domain.com',
|
||||
'bad-.com',
|
||||
'bad_.com',
|
||||
'-bad.com',
|
||||
'bad_.com',
|
||||
'[domain.tld',
|
||||
'domain.tld]',
|
||||
'a[aaa]a',
|
||||
'[aaa]a',
|
||||
'a[aaa]',
|
||||
'[]'
|
||||
];
|
||||
for (var arg in listDomainInValid) {
|
||||
test(arg, () {
|
||||
expect(() => Domain.of(arg), throwsA(const TypeMatcher<AssertionError>()));
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
group('Domain.of(arg) should not throw any exceptions with the list of valid domains', () {
|
||||
final listDomainValid = [
|
||||
'127.0.0.1',
|
||||
'domain.tld',
|
||||
'do-main.tld',
|
||||
'do_main.tld',
|
||||
'ab.dc.de.fr',
|
||||
'123.456.789.a23',
|
||||
'acv.abcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabcdefghijabc.fr',
|
||||
'ab--cv.fr',
|
||||
'ab__cd.fr',
|
||||
'domain',
|
||||
'[domain]',
|
||||
'127.0.0.1'
|
||||
];
|
||||
for (var arg in listDomainValid) {
|
||||
test(arg, () {
|
||||
expect(() => Domain.of(arg), returnsNormally);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
test('Domain.of(args) should remove brackets', () {
|
||||
expect(Domain.of('[domain]'), equals(Domain.of('domain')));
|
||||
});
|
||||
|
||||
test('Domain.of(args) should throw AssertionError when args is null', () {
|
||||
expect(() => Domain.of(null), throwsA(const TypeMatcher<AssertionError>()));
|
||||
});
|
||||
|
||||
test('Domain.of(args) should allow 253 long domain', () {
|
||||
expect(Domain.of('${'aaaaaaaaa.' * 25}aaa').domainName.length, 253);
|
||||
});
|
||||
|
||||
test('Domain.of(args) should throw AssertionError when too long', () {
|
||||
expect(() => Domain.of('a' * 254), throwsA(const TypeMatcher<AssertionError>()));
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user