[gnome-maps] utils: Add function for detecting invalid URLs
- From: Marcus Lundblad <mlundblad src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-maps] utils: Add function for detecting invalid URLs
- Date: Wed, 25 Nov 2020 21:31:12 +0000 (UTC)
commit 380e9885a204d1a41cd846e55e4767391c2514a5
Author: James Westman <james flyingpimonster net>
Date: Mon Nov 23 20:58:24 2020 -0600
utils: Add function for detecting invalid URLs
meson.build | 1 +
src/utils.js | 11 +++++++++++
tests/utilsTest.js | 8 ++++++++
3 files changed, 20 insertions(+)
---
diff --git a/meson.build b/meson.build
index 27244958..164c7227 100644
--- a/meson.build
+++ b/meson.build
@@ -25,6 +25,7 @@ maps_gir_version = '1.0'
desktop_file_validate = find_program('desktop-file-validate', required: false)
appstream_util = find_program('appstream-util', required: false)
+glib = dependency('glib-2.0', version: '>= 2.66.0')
gio = dependency('gio-2.0', version: '>= 2.44.0')
gjs = dependency('gjs-1.0', version: '>= 1.50.0')
girepository = dependency('gobject-introspection-1.0', version: '>= 0.10.1')
diff --git a/src/utils.js b/src/utils.js
index 3ef85fbb..12c54f14 100644
--- a/src/utils.js
+++ b/src/utils.js
@@ -458,3 +458,14 @@ function getCountryCodeForCoordinates(lat, lon) {
return location.get_country();
}
+/* Determines whether a URI is valid and its scheme is HTTP or HTTPS. */
+function isValidWebsite(website) {
+ try {
+ GLib.Uri.is_valid(website, GLib.UriFlags.NONE);
+ } catch(e) {
+ return false;
+ }
+
+ let scheme = GLib.Uri.parse_scheme(website);
+ return scheme === "http" || scheme === "https";
+}
diff --git a/tests/utilsTest.js b/tests/utilsTest.js
index 5f46aaab..7cdf905e 100644
--- a/tests/utilsTest.js
+++ b/tests/utilsTest.js
@@ -37,6 +37,7 @@ function main() {
prettyTimeTest();
prettyDistanceTest();
normalizeStringTest();
+ validWebsiteTest();
}
function osmTypeToStringTest() {
@@ -101,3 +102,10 @@ function normalizeStringTest() {
JsUnit.assertEquals('aao', Utils.normalizeString('åäö'));
JsUnit.assertEquals('aao', Utils.normalizeString('a\u030aa\u0308o\u0308'));
}
+
+function validWebsiteTest() {
+ JsUnit.assertEquals(true, Utils.isValidWebsite("https://gnome.org"));
+ JsUnit.assertEquals(true, Utils.isValidWebsite("http://gnome.org"));
+ JsUnit.assertEquals(false, Utils.isValidWebsite("ftp://gnome.org"));
+ JsUnit.assertEquals(false, Utils.isValidWebsite("www.gnome.org"));
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]