summaryrefslogtreecommitdiffstats
path: root/url
diff options
context:
space:
mode:
Diffstat (limited to 'url')
-rw-r--r--url/gurl.cc4
-rw-r--r--url/gurl.h3
-rw-r--r--url/gurl_unittest.cc12
3 files changed, 19 insertions, 0 deletions
diff --git a/url/gurl.cc b/url/gurl.cc
index 15de85a..a550c46 100644
--- a/url/gurl.cc
+++ b/url/gurl.cc
@@ -364,6 +364,10 @@ bool GURL::SchemeIsHTTPOrHTTPS() const {
return SchemeIs("http") || SchemeIs("https");
}
+bool GURL::SchemeIsWSOrWSS() const {
+ return SchemeIs("ws") || SchemeIs("wss");
+}
+
int GURL::IntPort() const {
if (parsed_.port.is_nonempty())
return url_parse::ParsePort(spec_.data(), parsed_.port);
diff --git a/url/gurl.h b/url/gurl.h
index d4ea10f..d145ab6 100644
--- a/url/gurl.h
+++ b/url/gurl.h
@@ -210,6 +210,9 @@ class URL_EXPORT GURL {
// Returns true if the scheme is "http" or "https".
bool SchemeIsHTTPOrHTTPS() const;
+ // Returns true is the scheme is "ws" or "wss".
+ bool SchemeIsWSOrWSS() const;
+
// We often need to know if this is a file URL. File URLs are "standard", but
// are often treated separately by some programs.
bool SchemeIsFile() const {
diff --git a/url/gurl_unittest.cc b/url/gurl_unittest.cc
index 67da8e4..767333c 100644
--- a/url/gurl_unittest.cc
+++ b/url/gurl_unittest.cc
@@ -529,3 +529,15 @@ TEST(GURLTest, IsStandard) {
GURL c("foo://bar/baz");
EXPECT_FALSE(c.IsStandard());
}
+
+TEST(GURLTest, SchemeIsHTTPOrHTTPS) {
+ EXPECT_TRUE(GURL("http://bar/").SchemeIsHTTPOrHTTPS());
+ EXPECT_TRUE(GURL("HTTPS://BAR").SchemeIsHTTPOrHTTPS());
+ EXPECT_FALSE(GURL("ftp://bar/").SchemeIsHTTPOrHTTPS());
+}
+
+TEST(GURLTest, SchemeIsWSOrWSS) {
+ EXPECT_TRUE(GURL("WS://BAR/").SchemeIsWSOrWSS());
+ EXPECT_TRUE(GURL("wss://bar/").SchemeIsWSOrWSS());
+ EXPECT_FALSE(GURL("http://bar/").SchemeIsWSOrWSS());
+}