@@ -21,15 +21,20 @@ public function tearDown(): void
2121 public function testIsValid (): void
2222 {
2323 $ this ->assertEquals ('Value must be a public domain ' , $ this ->domain ->getDescription ());
24+ // Known public domains
2425 $ this ->assertEquals (true , $ this ->domain ->isValid ('example.com ' ));
2526 $ this ->assertEquals (true , $ this ->domain ->isValid ('google.com ' ));
2627 $ this ->assertEquals (true , $ this ->domain ->isValid ('bbc.co.uk ' ));
2728 $ this ->assertEquals (true , $ this ->domain ->isValid ('appwrite.io ' ));
2829 $ this ->assertEquals (true , $ this ->domain ->isValid ('usa.gov ' ));
2930 $ this ->assertEquals (true , $ this ->domain ->isValid ('stanford.edu ' ));
31+
32+ // URLs
3033 $ this ->assertEquals (true , $ this ->domain ->isValid ('http://google.com ' ));
3134 $ this ->assertEquals (true , $ this ->domain ->isValid ('http://www.google.com ' ));
3235 $ this ->assertEquals (true , $ this ->domain ->isValid ('https://example.com ' ));
36+
37+ // Private domains
3338 $ this ->assertEquals (false , $ this ->domain ->isValid ('localhost ' ));
3439 $ this ->assertEquals (false , $ this ->domain ->isValid ('http://localhost ' ));
3540 $ this ->assertEquals (false , $ this ->domain ->isValid ('sub.demo.localhost ' ));
@@ -39,4 +44,22 @@ public function testIsValid(): void
3944 $ this ->assertEquals (false , $ this ->domain ->isValid ('wiki.team.local ' ));
4045 $ this ->assertEquals (false , $ this ->domain ->isValid ('example.test ' ));
4146 }
47+
48+ public function testAllowDomains (): void
49+ {
50+ // Adding localhost to allowed domains
51+ PublicDomain::allow (['localhost ' ]);
52+
53+ // Now localhost should be valid
54+ $ this ->assertEquals (true , $ this ->domain ->isValid ('localhost ' ));
55+ $ this ->assertEquals (true , $ this ->domain ->isValid ('http://localhost ' ));
56+ $ this ->assertEquals (false , $ this ->domain ->isValid ('test.app.internal ' ));
57+
58+ // Adding more domains to allowed domains
59+ PublicDomain::allow (['test.app.internal ' , 'home.local ' ]);
60+
61+ // Now these domains should be valid
62+ $ this ->assertEquals (true , $ this ->domain ->isValid ('test.app.internal ' ));
63+ $ this ->assertEquals (true , $ this ->domain ->isValid ('home.local ' ));
64+ }
4265}
0 commit comments