Skip to content

Commit de50f7f

Browse files
hessjcgkgala2
andauthored
test: Make the domain name regex match the go connector and add tests. (#2179)
Co-authored-by: kgala2 <[email protected]>
1 parent 7cf98c3 commit de50f7f

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

core/src/main/java/com/google/cloud/sql/core/CloudSqlInstanceName.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ public class CloudSqlInstanceName {
5151
* $: Matches the end of the string.<br>
5252
*/
5353
private static final Pattern DOMAIN_NAME =
54-
Pattern.compile("^(?=.{1,255}$)(?!-)[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*\\.[A-Za-z]{2,}$");
54+
Pattern.compile(
55+
"^(?:[_a-z0-9](?:[_a-z0-9-]{0,61}[a-z0-9])?\\.)+(?:[a-z](?:[a-z0-9-]{0,61}[a-z0-9])?)?$");
5556

5657
private final String projectId;
5758
private final String regionId;

core/src/test/java/com/google/cloud/sql/core/CloudSqlInstanceNameTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,14 @@ public void parseBadConnectionName() {
6060

6161
assertThat(ex).hasMessageThat().contains("Cloud SQL connection name is invalid");
6262
}
63+
64+
@Test
65+
public void testValidDomains() {
66+
assertThat(CloudSqlInstanceName.isValidDomain("prod-db.mycompany.example.com")).isTrue();
67+
assertThat(CloudSqlInstanceName.isValidDomain("example.com.")).isTrue();
68+
assertThat(CloudSqlInstanceName.isValidDomain("-example.com")).isFalse();
69+
assertThat(CloudSqlInstanceName.isValidDomain("example")).isFalse();
70+
assertThat(CloudSqlInstanceName.isValidDomain("127.0.0.1")).isFalse();
71+
assertThat(CloudSqlInstanceName.isValidDomain("0:0:0:0:0:0:0:1")).isFalse();
72+
}
6373
}

0 commit comments

Comments
 (0)