зеркало из https://github.com/mozilla/gecko-dev.git
159 строки
4.5 KiB
XML
159 строки
4.5 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!-- Any copyright is dedicated to the Public Domain.
|
|
- http://creativecommons.org/publicdomain/zero/1.0/ -->
|
|
|
|
<?xml-stylesheet type="text/css" href="chrome://global/skin"?>
|
|
<?xml-stylesheet type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
|
|
|
|
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
|
title="Mozilla Bug 781379">
|
|
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"/>
|
|
<!-- test results are displayed in the html:body -->
|
|
<body xmlns="http://www.w3.org/1999/xhtml">
|
|
<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=809213"
|
|
target="_blank">Mozilla Bug 809213</a>
|
|
</body>
|
|
|
|
<script type="application/javascript;version=1.8">
|
|
|
|
"use strict";
|
|
|
|
Components.utils.import("resource://gre/modules/Services.jsm");
|
|
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
|
|
|
Services.prefs.setIntPref("dom.phonenumber.substringmatching.BR", 8);
|
|
Services.prefs.setCharPref("ril.lastKnownSimMcc", "310");
|
|
|
|
var pm = SpecialPowers.Cc["@mozilla.org/permissionmanager;1"]
|
|
.getService(SpecialPowers.Ci.nsIPermissionManager);
|
|
|
|
pm.addFromPrincipal(window.document.nodePrincipal, "phonenumberservice",
|
|
SpecialPowers.Ci.nsIPermissionManager.ALLOW_ACTION);
|
|
|
|
function onUnwantedSuccess() {
|
|
ok(false, "onUnwantedSuccess: shouldn't get here");
|
|
}
|
|
|
|
function onFailure() {
|
|
ok(false, "in on Failure!");
|
|
}
|
|
|
|
var req;
|
|
var index = 0;
|
|
var mozPhoneNumberService = window.navigator.mozPhoneNumberService;
|
|
ok(mozPhoneNumberService, "mozPhoneNumberService exists");
|
|
var steps = [
|
|
function() {
|
|
req = mozPhoneNumberService.fuzzyMatch("123", "123");
|
|
req.onsuccess = function(e) {
|
|
is(req.result, true, "same number");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function() {
|
|
req = mozPhoneNumberService.fuzzyMatch("abcdef", "222333");
|
|
req.onsuccess = function(e) {
|
|
is(req.result, true, "normalize first number");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function() {
|
|
req = mozPhoneNumberService.fuzzyMatch("abc333", "222def");
|
|
req.onsuccess = function(e) {
|
|
is(req.result, true, "normalize first and second number");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function() {
|
|
req = mozPhoneNumberService.fuzzyMatch("1234567", "1234568");
|
|
req.onsuccess = function(e) {
|
|
is(req.result, false, "different numbers should not match");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function() {
|
|
req = mozPhoneNumberService.fuzzyMatch("1234567", "123456");
|
|
req.onsuccess = function(e) {
|
|
is(req.result, false, "different length numbers should not match");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function() {
|
|
req = mozPhoneNumberService.fuzzyMatch("1234567", "123456---");
|
|
req.onsuccess = function(e) {
|
|
is(req.result, false, "invalid number should not match valid number");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function() {
|
|
req = mozPhoneNumberService.fuzzyMatch("111", undefined);
|
|
req.onsuccess = function(e) {
|
|
is(req.result, false, "missing second argument should not match");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function() {
|
|
req = mozPhoneNumberService.fuzzyMatch(undefined, "111");
|
|
req.onsuccess = function(e) {
|
|
is(req.result, false, "missing first argument should not match");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function() {
|
|
req = mozPhoneNumberService.fuzzyMatch(null, "");
|
|
req.onsuccess = function(e) {
|
|
is(req.result, true, "missing first argument should fuzzy match empty string");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function() {
|
|
req = mozPhoneNumberService.fuzzyMatch("+552155555555", "2155555555");
|
|
req.onsuccess = function(e) {
|
|
is(req.result, true, "test internationalization of number");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function() {
|
|
req = mozPhoneNumberService.fuzzyMatch("aaa123456789", "zzzzz123456789");
|
|
req.onsuccess = function(e) {
|
|
is(req.result, true, "substring matching should be in effect");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function () {
|
|
ok(true, "all done!\n");
|
|
SimpleTest.finish();
|
|
}
|
|
];
|
|
|
|
function next() {
|
|
ok(true, "Begin!");
|
|
if (index >= steps.length) {
|
|
ok(false, "Shouldn't get here!");
|
|
return;
|
|
}
|
|
try {
|
|
var i = index++;
|
|
steps[i]();
|
|
} catch(ex) {
|
|
ok(false, "Caught exception", ex);
|
|
}
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
addLoadEvent(next);
|
|
</script>
|
|
</window>
|