зеркало из https://github.com/mozilla/gecko-dev.git
205 строки
5.5 KiB
HTML
205 строки
5.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=877302
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 949537 substring matching for WebContacts</title>
|
|
<script type="text/javascript" src="/MochiKit/MochiKit.js"></script>
|
|
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
</head>
|
|
<body>
|
|
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=949537">Mozilla Bug 949537</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none">
|
|
|
|
</div>
|
|
<pre id="test">
|
|
<script type="text/javascript;version=1.8" src="http://mochi.test:8888/tests/dom/contacts/tests/shared.js"></script>
|
|
<script class="testbody" type="text/javascript">
|
|
"use strict";
|
|
|
|
var landlineNumber = "+56 2 27654321";
|
|
|
|
var number = {
|
|
local: "87654321",
|
|
international: "+56 9 87654321"
|
|
};
|
|
|
|
var properties = {
|
|
name: ["Testname2"],
|
|
tel: [{value: number.international}]
|
|
};
|
|
|
|
var req;
|
|
var steps = [
|
|
function () {
|
|
ok(true, "Adding a contact with a Chilean number");
|
|
createResult1 = new mozContact(properties);
|
|
req = navigator.mozContacts.save(createResult1);
|
|
req.onsuccess = function () {
|
|
ok(createResult1.id, "The contact now has an ID.");
|
|
sample_id1 = createResult1.id;
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function () {
|
|
ok(true, "Searching for Chilean number with prefix");
|
|
req = mozContacts.find({
|
|
filterBy: ["tel"],
|
|
filterOp: "match",
|
|
filterValue: number.international
|
|
});
|
|
req.onsuccess = function () {
|
|
ise(req.result.length, 1, "Found exactly 1 contact.");
|
|
findResult1 = req.result[0];
|
|
ise(findResult1.id, sample_id1, "Same ID");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function () {
|
|
ok(true, "Searching for Chilean number using local number");
|
|
req = mozContacts.find({
|
|
filterBy: ["tel"],
|
|
filterOp: "match",
|
|
filterValue: number.local
|
|
});
|
|
req.onsuccess = function () {
|
|
ise(req.result.length, 1, "Found 0 contacts.");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
|
|
clearDatabase,
|
|
|
|
function () {
|
|
ok(true, "Adding contact with mobile number");
|
|
createResult1 = new mozContact({tel: [{value: number.international}]});
|
|
req = navigator.mozContacts.save(createResult1);
|
|
req.onsuccess = function () {
|
|
ok(createResult1.id, "The contact now has an ID.");
|
|
sample_id1 = createResult1.id;
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function () {
|
|
ok(true, "Retrieving all contacts");
|
|
req = mozContacts.find({});
|
|
req.onsuccess = function () {
|
|
ise(req.result.length, 1, "One contact.");
|
|
findResult1 = req.result[0];
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function () {
|
|
ok(true, "Retrieving by last 8 digits");
|
|
req = mozContacts.find({
|
|
filterBy: ["tel"],
|
|
filterOp: "match",
|
|
filterValue: number.international.slice(-8)
|
|
});
|
|
req.onsuccess = function () {
|
|
ise(req.result.length, 1, "Found exactly 1 contact.");
|
|
findResult1 = req.result[0];
|
|
ise(findResult1.id, sample_id1, "Same ID");
|
|
ise(findResult1.tel[0].value, number.international, "Same Value");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function () {
|
|
ok(true, "Retrieving by last 9 digits");
|
|
req = mozContacts.find({
|
|
filterBy: ["tel"],
|
|
filterOp: "match",
|
|
filterValue: number.international.slice(-9)
|
|
});
|
|
req.onsuccess = function () {
|
|
ise(req.result.length, 1, "Found exactly 1 contact.");
|
|
findResult1 = req.result[0];
|
|
ise(findResult1.id, sample_id1, "Same ID");
|
|
ise(findResult1.tel[0].value, number.international, "Same Value");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function () {
|
|
ok(true, "Retrieving by last 6 digits");
|
|
req = mozContacts.find({
|
|
filterBy: ["tel"],
|
|
filterOp: "match",
|
|
filterValue: number.international.slice(-6)
|
|
});
|
|
req.onsuccess = function () {
|
|
ise(req.result.length, 0, "Found exactly zero contacts.");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
|
|
clearDatabase,
|
|
|
|
function () {
|
|
ok(true, "Adding contact with landline number");
|
|
createResult1 = new mozContact({tel: [{value: landlineNumber}]});
|
|
req = navigator.mozContacts.save(createResult1);
|
|
req.onsuccess = function () {
|
|
ok(createResult1.id, "The contact now has an ID.");
|
|
sample_id1 = createResult1.id;
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function () {
|
|
ok(true, "Retrieving all contacts");
|
|
req = mozContacts.find({});
|
|
req.onsuccess = function () {
|
|
ise(req.result.length, 1, "One contact.");
|
|
findResult1 = req.result[0];
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
function () {
|
|
ok(true, "Retrieving by last 7 digits (local number) with landline calling prefix");
|
|
req = mozContacts.find({
|
|
filterBy: ["tel"],
|
|
filterOp: "match",
|
|
filterValue: "022" + landlineNumber.slice(-7)
|
|
});
|
|
req.onsuccess = function () {
|
|
ise(req.result.length, 1, "Found exactly 1 contact.");
|
|
findResult1 = req.result[0];
|
|
ise(findResult1.id, sample_id1, "Same ID");
|
|
ise(findResult1.tel[0].value, landlineNumber, "Same Value");
|
|
next();
|
|
};
|
|
req.onerror = onFailure;
|
|
},
|
|
|
|
clearDatabase,
|
|
|
|
function () {
|
|
ok(true, "all done!\n");
|
|
SimpleTest.finish();
|
|
}
|
|
];
|
|
|
|
SpecialPowers.pushPrefEnv({
|
|
set: [
|
|
["dom.phonenumber.substringmatching.CL", 8],
|
|
["ril.lastKnownSimMcc", "730"]
|
|
]
|
|
}, start_tests);
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|