[folks] core: Keep leading ‘+’s when norm alising phone numbers
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [folks] core: Keep leading ‘+’s when norm alising phone numbers
- Date: Fri, 2 Aug 2013 08:03:37 +0000 (UTC)
commit e1da1db6af2930e9ed5045d3abb0c73c4f74d26e
Author: Philip Withnall <philip tecnocode co uk>
Date: Sun Jun 16 20:23:17 2013 +0100
core: Keep leading ‘+’s when normalising phone numbers
These are needed to indicate country codes for international numbers.
See: https://bugzilla.gnome.org/show_bug.cgi?id=685992
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=701850
NEWS | 2 +
folks/phone-details.vala | 5 ++-
tests/folks/Makefile.am | 5 +++
tests/folks/phone-field-details.vala | 66 ++++++++++++++++++++++++++++++++++
4 files changed, 76 insertions(+), 2 deletions(-)
---
diff --git a/NEWS b/NEWS
index 5857778..507bd46 100644
--- a/NEWS
+++ b/NEWS
@@ -20,6 +20,8 @@ Bugs fixed:
• Bug 704922 — key-file: do not use deprecated loop_run_with_non_fatal_timeout()
• Bug 705196 — Linking a favorite TP contact with a EDS one unfavorite it
• Bug 703516 — Build failing with EDS backend
+• Bug 701850 — folks-DEBUG: phone-details.vala:160:
+ [PhoneDetails.get_normalised] unknown digit: +
API changes:
• Add PresenceDetails.client_types
diff --git a/folks/phone-details.vala b/folks/phone-details.vala
index fcdd0d9..f906990 100644
--- a/folks/phone-details.vala
+++ b/folks/phone-details.vala
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2011 Collabora Ltd.
- * Copyright (C) 2011 Philip Withnall
+ * Copyright (C) 2011, 2013 Philip Withnall
*
* This library is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
@@ -146,7 +146,8 @@ public class Folks.PhoneFieldDetails : AbstractFieldDetails<string>
var digit = this.value.slice (i, i + 1);
if (digit in PhoneFieldDetails._extension_chars ||
- digit in PhoneFieldDetails._valid_digits)
+ digit in PhoneFieldDetails._valid_digits ||
+ (i == 0 && digit == "+"))
{
/* lets keep valid digits */
normalised_number += digit;
diff --git a/tests/folks/Makefile.am b/tests/folks/Makefile.am
index 336483d..95f0493 100644
--- a/tests/folks/Makefile.am
+++ b/tests/folks/Makefile.am
@@ -66,6 +66,7 @@ noinst_PROGRAMS = \
aggregation \
avatar-cache \
object-cache \
+ phone-field-details \
init \
$(NULL)
@@ -103,6 +104,10 @@ object_cache_SOURCES = \
object-cache.vala \
$(NULL)
+phone_field_details_SOURCES = \
+ phone-field-details.vala \
+ $(NULL)
+
init_SOURCES = \
init.vala \
$(NULL)
diff --git a/tests/folks/phone-field-details.vala b/tests/folks/phone-field-details.vala
new file mode 100644
index 0000000..896a303
--- /dev/null
+++ b/tests/folks/phone-field-details.vala
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2013 Philip Withnall
+ *
+ * This library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Philip Withnall <philip tecnocode co uk>
+ */
+
+using Gee;
+using Folks;
+
+public class PhoneFieldDetailsTests : Folks.TestCase
+{
+ public PhoneFieldDetailsTests ()
+ {
+ base ("PhoneFieldDetails");
+
+ this.add_test ("normalisation", this.test_normalisation);
+ }
+
+ private struct NormalisationPair
+ {
+ string unnormalised;
+ string normalised;
+ }
+
+ public void test_normalisation ()
+ {
+ /* Array of pairs of strings, mapping unnormalised phone numbers to their
+ * expected normalised form. */
+ const NormalisationPair[] normalisation_pairs = {
+ { "1-800-123-4567", "18001234567" },
+ { "+1-800-123-4567", "+18001234567" },
+ { "+1-800-123-4567P123", "+18001234567P123" },
+ };
+
+ foreach (var s in normalisation_pairs)
+ {
+ var pfd1 = new PhoneFieldDetails (s.unnormalised);
+ assert (pfd1.get_normalised () == s.normalised);
+ }
+ }
+}
+
+public int main (string[] args)
+{
+ Test.init (ref args);
+
+ var tests = new PhoneFieldDetailsTests ();
+ tests.register ();
+ Test.run ();
+ tests.final_tear_down ();
+
+ return 0;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]