Skip to content

Commit

Permalink
Cases for URNs
Browse files Browse the repository at this point in the history
  • Loading branch information
smaye81 committed Feb 4, 2025
1 parent cf74167 commit 505a007
Showing 1 changed file with 47 additions and 9 deletions.
56 changes: 47 additions & 9 deletions tools/protovalidate-conformance/internal/cases/cases_strings.go
Original file line number Diff line number Diff line change
Expand Up @@ -1034,10 +1034,14 @@ func stringSuite() suites.Suite {
},
),
},
"uri/valid": {
"uri/valid/url": {
Message: &cases.StringURI{Val: "https://example.com/foo/bar?baz=quux"},
Expected: results.Success(true),
},
"uri/valid/urn": {
Message: &cases.StringURI{Val: "urn:isbn:0451450523"},
Expected: results.Success(true),
},
"uri/invalid/empty": {
Message: &cases.StringURI{Val: ""},
Expected: results.Violations(
Expand All @@ -1048,8 +1052,18 @@ func stringSuite() suites.Suite {
},
),
},
"uri/invalid/encoding": {
Message: &cases.StringURI{Val: "http://example.com/foo/bar?baz=%x"},
"uri/invalid/urn/encoding": {
Message: &cases.StringURI{Val: "urn:isbn:0451450523?baz=%x"},
Expected: results.Violations(
&validate.Violation{
Field: results.FieldPath("val"),
Rule: results.FieldPath("string.uri"),
ConstraintId: proto.String("string.uri"),
},
),
},
"uri/invalid/urn/no_scheme": {
Message: &cases.StringURI{Val: ":isbn:0451450523"},
Expected: results.Violations(
&validate.Violation{
Field: results.FieldPath("val"),
Expand All @@ -1076,7 +1090,7 @@ func stringSuite() suites.Suite {
},
),
},
"uri/invalid/relative": {
"uri/invalid/url/relative": {
Message: &cases.StringURI{Val: "/foo/bar?baz=quux"},
Expected: results.Violations(
&validate.Violation{
Expand All @@ -1086,7 +1100,7 @@ func stringSuite() suites.Suite {
},
),
},
"uri/invalid/absolute/encoding": {
"uri/invalid/url/absolute/encoding": {
Message: &cases.StringURI{Val: "https://example.com/foo/bar?baz=%x"},
Expected: results.Violations(
&validate.Violation{
Expand All @@ -1096,7 +1110,7 @@ func stringSuite() suites.Suite {
},
),
},
"uri/invalid/relative/encoding": {
"uri/invalid/url/relative/encoding": {
Message: &cases.StringURI{Val: "/foo/bar?baz=%x"},
Expected: results.Violations(
&validate.Violation{
Expand All @@ -1106,15 +1120,19 @@ func stringSuite() suites.Suite {
},
),
},
"uri_ref/valid/absolute": {
"uri_ref/valid/urn": {
Message: &cases.StringURI{Val: "urn:isbn:0451450523"},
Expected: results.Success(true),
},
"uri_ref/valid/url/absolute": {
Message: &cases.StringURIRef{Val: "https://example.com/foo/bar?baz=quux"},
Expected: results.Success(true),
},
"uri_ref/valid/relative": {
"uri_ref/valid/url/relative": {
Message: &cases.StringURIRef{Val: "/foo/bar?baz=quux"},
Expected: results.Success(true),
},
"uri_ref/invalid": {
"uri_ref/invalid/url": {
Message: &cases.StringURIRef{Val: "!@#$%^&*"},
Expected: results.Violations(
&validate.Violation{
Expand All @@ -1124,6 +1142,26 @@ func stringSuite() suites.Suite {
},
),
},
"uri_ref/invalid/urn/encoding": {
Message: &cases.StringURI{Val: "urn:isbn:0451450523?baz=%x"},
Expected: results.Violations(
&validate.Violation{
Field: results.FieldPath("val"),
Rule: results.FieldPath("string.uri"),
ConstraintId: proto.String("string.uri"),
},
),
},
"uri_ref/invalid/urn/no_scheme": {
Message: &cases.StringURI{Val: ":isbn:0451450523"},
Expected: results.Violations(
&validate.Violation{
Field: results.FieldPath("val"),
Rule: results.FieldPath("string.uri"),
ConstraintId: proto.String("string.uri"),
},
),
},
"uri_ref/invalid/not_checked/empty": {
Message: &cases.StringNotURIRef{Val: ""},
Expected: results.Success(true),
Expand Down

0 comments on commit 505a007

Please sign in to comment.