dom/phonenumberutils/tests/test_phonenumberservice.xul

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 <?xml version="1.0"?>
     3 <!-- Any copyright is dedicated to the Public Domain.
     4    - http://creativecommons.org/publicdomain/zero/1.0/ -->
     6 <?xml-stylesheet type="text/css" href="chrome://global/skin"?>
     7 <?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
     9 <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    10         title="Mozilla Bug 781379">
    11   <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
    12   <!-- test results are displayed in the html:body -->
    13   <body xmlns="http://www.w3.org/1999/xhtml">
    14   <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=809213"
    15      target="_blank">Mozilla Bug 809213</a>
    16   </body>
    18 <script type="application/javascript;version=1.8">
    20 "use strict";
    22 Components.utils.import("resource://gre/modules/Services.jsm");
    23 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
    25 Services.prefs.setIntPref("dom.phonenumber.substringmatching.BR", 8);
    26 Services.prefs.setCharPref("ril.lastKnownSimMcc", "724");
    28 var pm = SpecialPowers.Cc["@mozilla.org/permissionmanager;1"]
    29                       .getService(SpecialPowers.Ci.nsIPermissionManager);
    31 pm.addFromPrincipal(window.document.nodePrincipal, "phonenumberservice",
    32                     SpecialPowers.Ci.nsIPermissionManager.ALLOW_ACTION);
    34 function onUnwantedSuccess() {
    35   ok(false, "onUnwantedSuccess: shouldn't get here");
    36 }
    38 function onFailure() {
    39   ok(false, "in on Failure!");
    40 }
    42 var req;
    43 var index = 0;
    44 var mozPhoneNumberService = window.navigator.mozPhoneNumberService;
    45 ok(mozPhoneNumberService, "mozPhoneNumberService exists");
    46 var steps = [
    47   function() {
    48     req = mozPhoneNumberService.fuzzyMatch("123", "123");
    49     req.onsuccess = function(e) {
    50       is(req.result, true, "same number");
    51       next();
    52     };
    53     req.onerror = onFailure;
    54   },
    55   function() {
    56     req = mozPhoneNumberService.fuzzyMatch("abcdef", "222333");
    57     req.onsuccess = function(e) {
    58       is(req.result, true, "normalize first number");
    59       next();
    60     };
    61     req.onerror = onFailure;
    62   },
    63   function() {
    64     req = mozPhoneNumberService.fuzzyMatch("abc333", "222def");
    65     req.onsuccess = function(e) {
    66       is(req.result, true, "normalize first and second number");
    67       next();
    68     };
    69     req.onerror = onFailure;
    70   },
    71   function() {
    72     req = mozPhoneNumberService.fuzzyMatch("1234567", "1234568");
    73     req.onsuccess = function(e) {
    74       is(req.result, false, "different numbers should not match");
    75       next();
    76     };
    77     req.onerror = onFailure;
    78   },
    79   function() {
    80     req = mozPhoneNumberService.fuzzyMatch("1234567", "123456");
    81     req.onsuccess = function(e) {
    82       is(req.result, false, "different length numbers should not match");
    83       next();
    84     };
    85     req.onerror = onFailure;
    86   },
    87   function() {
    88     req = mozPhoneNumberService.fuzzyMatch("1234567", "123456---");
    89     req.onsuccess = function(e) {
    90       is(req.result, false, "invalid number should not match valid number");
    91       next();
    92     };
    93     req.onerror = onFailure;
    94   },
    95   function() {
    96     req = mozPhoneNumberService.fuzzyMatch("111", undefined);
    97     req.onsuccess = function(e) {
    98       is(req.result, false, "missing second argument should not match");
    99       next();
   100     };
   101     req.onerror = onFailure;
   102   },
   103   function() {
   104     req = mozPhoneNumberService.fuzzyMatch(undefined, "111");
   105     req.onsuccess = function(e) {
   106       is(req.result, false, "missing first argument should not match");
   107       next();
   108     };
   109     req.onerror = onFailure;
   110   },
   111   function() {
   112     req = mozPhoneNumberService.fuzzyMatch(null, "");
   113     req.onsuccess = function(e) {
   114       is(req.result, true, "missing first argument should fuzzy match empty string");
   115       next();
   116     };
   117     req.onerror = onFailure;
   118   },
   119   function() {
   120     req = mozPhoneNumberService.fuzzyMatch("+552155555555", "2155555555");
   121     req.onsuccess = function(e) {
   122       is(req.result, true, "test internationalization of number");
   123       next();
   124     };
   125     req.onerror = onFailure;
   126   },
   127   function() {
   128     req = mozPhoneNumberService.fuzzyMatch("aaa123456789", "zzzzz123456789");
   129     req.onsuccess = function(e) {
   130       is(req.result, true, "substring matching should be in effect");
   131       next();
   132     };
   133     req.onerror = onFailure;
   134   },
   135   function () {
   136     ok(true, "all done!\n");
   137     SimpleTest.finish();
   138   }
   139 ];
   141 function next() {
   142   ok(true, "Begin!");
   143   if (index >= steps.length) {
   144     ok(false, "Shouldn't get here!");
   145     return;
   146   }
   147   try {
   148     var i = index++;
   149     steps[i]();
   150   } catch(ex) {
   151     ok(false, "Caught exception", ex);
   152   }
   153 }
   155 SimpleTest.waitForExplicitFinish();
   156 addLoadEvent(next);
   157 </script>
   158 </window>

mercurial