Skip to content
Browse files

MDL-41806 Add assessors to moodle_url class

New assessors for scheme, host and port.
  • Loading branch information...
1 parent 83f26f6 commit d06ffbdf2d06aa7495dd47685cfc99f7d875a196 @simoncoggins simoncoggins committed Sep 16, 2013
Showing with 63 additions and 0 deletions.
  1. +30 −0 lib/tests/weblib_test.php
  2. +33 −0 lib/weblib.php
View
30 lib/tests/weblib_test.php
@@ -320,6 +320,36 @@ public function test_https_out_as_local_url_error() {
$url4->out_as_local_url();
}
+ public function test_moodle_url_get_scheme() {
+ // Should return the scheme only.
+ $url = new moodle_url('http://www.example.org:447/my/file/is/here.txt?really=1');
+ $this->assertSame('http', $url->get_scheme());
+
+ // Should work for secure URLs.
+ $url = new moodle_url('https://www.example.org:447/my/file/is/here.txt?really=1');
+ $this->assertSame('https', $url->get_scheme());
+
+ // Should return an empty string if no scheme is specified.
+ $url = new moodle_url('www.example.org:447/my/file/is/here.txt?really=1');
+ $this->assertSame('', $url->get_scheme());
+ }
+
+ public function test_moodle_url_get_host() {
+ // Should return the host part only.
+ $url = new moodle_url('http://www.example.org:447/my/file/is/here.txt?really=1');
+ $this->assertSame('www.example.org', $url->get_host());
+ }
+
+ public function test_moodle_url_get_port() {
+ // Should return the port if one provided.
+ $url = new moodle_url('http://www.example.org:447/my/file/is/here.txt?really=1');
+ $this->assertSame(447, $url->get_port());
+
+ // Should return an empty string if port not specified.
+ $url = new moodle_url('http://www.example.org/some/path/here.php');
+ $this->assertSame('', $url->get_port());
+ }
+
public function test_clean_text() {
$text = "lala <applet>xx</applet>";
$this->assertSame($text, clean_text($text, FORMAT_PLAIN));
View
33 lib/weblib.php
@@ -822,6 +822,39 @@ public function get_param($name) {
return null;
}
}
+
+ /**
+ * Returns the 'scheme' portion of a URL. For example, if the URL is
+ * http://www.example.org:447/my/file/is/here.txt?really=1 then this will
+ * return 'http' (without the colon).
+ *
+ * @return string Scheme of the URL.
+ */
+ public function get_scheme() {
+ return $this->scheme;
+ }
+
+ /**
+ * Returns the 'host' portion of a URL. For example, if the URL is
+ * http://www.example.org:447/my/file/is/here.txt?really=1 then this will
+ * return 'www.example.org'.
+ *
+ * @return string Host of the URL.
+ */
+ public function get_host() {
+ return $this->host;
+ }
+
+ /**
+ * Returns the 'port' portion of a URL. For example, if the URL is
+ * http://www.example.org:447/my/file/is/here.txt?really=1 then this will
+ * return '447'.
+ *
+ * @return string Port of the URL.
+ */
+ public function get_port() {
+ return $this->port;
+ }
}
/**

0 comments on commit d06ffbd

Please sign in to comment.
Something went wrong with that request. Please try again.