Skip to content

Commit 51cfcee

Browse files
committed
Add and more test cases
1 parent b663791 commit 51cfcee

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

tests/plugins/email_address_test.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,57 @@ class TestEmailAddressDetector:
5252
('user@gmail.com', True),
5353
('user@yahoo.com', True),
5454
('user@hotmail.com', True),
55+
56+
# Additional test cases
57+
58+
# Valid email addresses with different domain extensions
59+
('user@domain.co.uk', True),
60+
('user@domain.io', True),
61+
('user@domain.org', True),
62+
('user@sub.domain.com', True),
63+
64+
# Valid email addresses with numbers
65+
('user123@example.com', True),
66+
('123user@example.com', True),
67+
('user123@123example.com', True),
68+
69+
# Valid email addresses, part of larger text with special characters
70+
('Contact us at: user@example.com!', True),
71+
('Email: user@example.com for more info.', True),
72+
73+
# Invalid email addresses with missing components
74+
('user@example', False),
75+
('user@.example.com', False),
76+
('@example.com', False),
77+
('user@', False),
78+
79+
# Invalid email addresses with special characters
80+
('user@exa*mple.com', False),
81+
('user@examp!e.com', False),
82+
('user@exampl$.com', False),
83+
('user@exam^ple.com', False),
84+
85+
# Unusual formats, mark as false
86+
('"user"@example.com', False), # Quoted local part
87+
('user@[123.123.123.123]', False), # IP address domain
88+
89+
# Invalid email addresses, incorrect use of special characters
90+
('user@exa,mple.com', False),
91+
('user@examp<le.com', False),
92+
('user@exampl>com', False),
93+
('user@exampl;e.com', False),
94+
95+
# Edge cases - rare but valid email formats
96+
('user+mailbox/department=shipping@example.com', True),
97+
('customer/department=shipping@example.com', True),
98+
('!def!xyz%abc@example.com', True),
99+
('_Yosemite.Sam@example.com', True),
100+
101+
# Edge cases - position of . (dot)
102+
('user@example..com', False), # Double dot in domain
103+
('.user@example.com', True), # Leading dot in local part
104+
('user@.example.com', False), # Leading dot in domain
105+
('user@example.com.', True), # Trailing dot in domain
55106
],
56107
)
57108
def test_analyze_line(self, payload, should_flag):

0 commit comments

Comments
 (0)