Skip to content

Commit 7ad7443

Browse files
committed
Extend email format tests
Before this, a simple /@/ check passed this format test. This now extends the test a bit more, to check that local part is checked at least for something. Symbol check + dot position check is a good indication here, because: 1) It's common and doesn't need implementing complex quotes logic 2) Dot is the only symbol which validity depends on the position in the local part This should trigger most of the naive implementations (e.g. /@/) and is still not hard to implement as it doesn't include quoted strings support. JSON Schema uses RFC 5322. Refs: https://tools.ietf.org/html/rfc5322#page-17 Refs: https://tools.ietf.org/html/rfc5322#page-12
1 parent 1f34d33 commit 7ad7443

File tree

5 files changed

+175
-0
lines changed

5 files changed

+175
-0
lines changed

tests/draft2019-09/optional/format/email.json

+35
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,41 @@
1212
"description": "an invalid e-mail address",
1313
"data": "2962",
1414
"valid": false
15+
},
16+
{
17+
"description": "tilde in local part is valid",
18+
"data": "[email protected]",
19+
"valid": true
20+
},
21+
{
22+
"description": "tilde before local part is valid",
23+
"data": "[email protected]",
24+
"valid": true
25+
},
26+
{
27+
"description": "tilde after local part is valid",
28+
"data": "[email protected]",
29+
"valid": true
30+
},
31+
{
32+
"description": "dot before local part is not valid",
33+
"data": "[email protected]",
34+
"valid": false
35+
},
36+
{
37+
"description": "dot after local part is not valid",
38+
"data": "[email protected]",
39+
"valid": false
40+
},
41+
{
42+
"description": "two separated dots inside local part are valid",
43+
"data": "[email protected]",
44+
"valid": true
45+
},
46+
{
47+
"description": "two subsequent dots inside local part are not valid",
48+
"data": "[email protected]",
49+
"valid": false
1550
}
1651
]
1752
}

tests/draft3/optional/format/email.json

+35
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,41 @@
1212
"description": "an invalid e-mail address",
1313
"data": "2962",
1414
"valid": false
15+
},
16+
{
17+
"description": "tilde in local part is valid",
18+
"data": "[email protected]",
19+
"valid": true
20+
},
21+
{
22+
"description": "tilde before local part is valid",
23+
"data": "[email protected]",
24+
"valid": true
25+
},
26+
{
27+
"description": "tilde after local part is valid",
28+
"data": "[email protected]",
29+
"valid": true
30+
},
31+
{
32+
"description": "dot before local part is not valid",
33+
"data": "[email protected]",
34+
"valid": false
35+
},
36+
{
37+
"description": "dot after local part is not valid",
38+
"data": "[email protected]",
39+
"valid": false
40+
},
41+
{
42+
"description": "two separated dots inside local part are valid",
43+
"data": "[email protected]",
44+
"valid": true
45+
},
46+
{
47+
"description": "two subsequent dots inside local part are not valid",
48+
"data": "[email protected]",
49+
"valid": false
1550
}
1651
]
1752
}

tests/draft4/optional/format/email.json

+35
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,41 @@
1212
"description": "an invalid e-mail address",
1313
"data": "2962",
1414
"valid": false
15+
},
16+
{
17+
"description": "tilde in local part is valid",
18+
"data": "[email protected]",
19+
"valid": true
20+
},
21+
{
22+
"description": "tilde before local part is valid",
23+
"data": "[email protected]",
24+
"valid": true
25+
},
26+
{
27+
"description": "tilde after local part is valid",
28+
"data": "[email protected]",
29+
"valid": true
30+
},
31+
{
32+
"description": "dot before local part is not valid",
33+
"data": "[email protected]",
34+
"valid": false
35+
},
36+
{
37+
"description": "dot after local part is not valid",
38+
"data": "[email protected]",
39+
"valid": false
40+
},
41+
{
42+
"description": "two separated dots inside local part are valid",
43+
"data": "[email protected]",
44+
"valid": true
45+
},
46+
{
47+
"description": "two subsequent dots inside local part are not valid",
48+
"data": "[email protected]",
49+
"valid": false
1550
}
1651
]
1752
}

tests/draft6/optional/format/email.json

+35
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,41 @@
1212
"description": "an invalid e-mail address",
1313
"data": "2962",
1414
"valid": false
15+
},
16+
{
17+
"description": "tilde in local part is valid",
18+
"data": "[email protected]",
19+
"valid": true
20+
},
21+
{
22+
"description": "tilde before local part is valid",
23+
"data": "[email protected]",
24+
"valid": true
25+
},
26+
{
27+
"description": "tilde after local part is valid",
28+
"data": "[email protected]",
29+
"valid": true
30+
},
31+
{
32+
"description": "dot before local part is not valid",
33+
"data": "[email protected]",
34+
"valid": false
35+
},
36+
{
37+
"description": "dot after local part is not valid",
38+
"data": "[email protected]",
39+
"valid": false
40+
},
41+
{
42+
"description": "two separated dots inside local part are valid",
43+
"data": "[email protected]",
44+
"valid": true
45+
},
46+
{
47+
"description": "two subsequent dots inside local part are not valid",
48+
"data": "[email protected]",
49+
"valid": false
1550
}
1651
]
1752
}

tests/draft7/optional/format/email.json

+35
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,41 @@
1212
"description": "an invalid e-mail address",
1313
"data": "2962",
1414
"valid": false
15+
},
16+
{
17+
"description": "tilde in local part is valid",
18+
"data": "[email protected]",
19+
"valid": true
20+
},
21+
{
22+
"description": "tilde before local part is valid",
23+
"data": "[email protected]",
24+
"valid": true
25+
},
26+
{
27+
"description": "tilde after local part is valid",
28+
"data": "[email protected]",
29+
"valid": true
30+
},
31+
{
32+
"description": "dot before local part is not valid",
33+
"data": "[email protected]",
34+
"valid": false
35+
},
36+
{
37+
"description": "dot after local part is not valid",
38+
"data": "[email protected]",
39+
"valid": false
40+
},
41+
{
42+
"description": "two separated dots inside local part are valid",
43+
"data": "[email protected]",
44+
"valid": true
45+
},
46+
{
47+
"description": "two subsequent dots inside local part are not valid",
48+
"data": "[email protected]",
49+
"valid": false
1550
}
1651
]
1752
}

0 commit comments

Comments
 (0)