Bug 1395427 p4 - Add form history items deletions to TPS tests. r?tcsc
MozReview-Commit-ID: 3oUBqLuHpoG
--- a/services/sync/tests/tps/test_formdata.js
+++ b/services/sync/tests/tps/test_formdata.js
@@ -26,21 +26,16 @@ var formdata1 = [
value: "failure",
date: -2
},
{ fieldname: "username",
value: "joe"
}
];
-// This is currently pointless - it *looks* like it is trying to check that
-// one of the entries in formdata1 has been removed, but (a) the delete code
-// isn't active (see comments below), and (b) the way the verification works
-// means it would never do the right thing - it only checks all the entries
-// here exist, but not that they are the only entries in the DB.
var formdata2 = [
{ fieldname: "testing",
value: "success",
date: -1
},
{ fieldname: "username",
value: "joe"
}
@@ -67,31 +62,26 @@ Phase("phase1", [
[Sync]
]);
Phase("phase2", [
[Sync],
[Formdata.verify, formdata1],
]);
-/*
- * Note: Weave does not support syncing deleted form data, so those
- * tests are disabled below. See bug 568363.
- */
-
Phase("phase3", [
[Sync],
[Formdata.delete, formdata_delete],
-// [Formdata.verifyNot, formdata_delete],
+ [Formdata.verifyNot, formdata_delete],
[Formdata.verify, formdata2],
// add new data after the first Sync, ensuring the tracker works.
[Formdata.add, formdata_new],
[Sync],
]);
Phase("phase4", [
[Sync],
[Formdata.verify, formdata2],
[Formdata.verify, formdata_new],
-//[Formdata.verifyNot, formdata_delete]
+ [Formdata.verifyNot, formdata_delete]
]);
--- a/services/sync/tps/extensions/tps/resource/modules/forms.jsm
+++ b/services/sync/tps/extensions/tps/resource/modules/forms.jsm
@@ -93,17 +93,17 @@ var FormDB = {
handleError(error) {
Logger.logError("Error occurred updating form history: " + Log.exceptionStr(error));
reject(error);
},
handleCompletion(reason) {
resolve(result);
}
}
- FormHistory.search(["guid", "lastUsed", "firstUsed"], { fieldname }, handlers);
+ FormHistory.search(["guid", "lastUsed", "firstUsed"], { fieldname, value }, handlers);
});
},
/**
* remove
*
* Removes the specified GUID from the database.
*
@@ -206,14 +206,16 @@ FormData.prototype = {
/**
* Remove
*
* Removes the row represented by this FormData instance from the
* moz_formhistory database.
*
* @return nothing
*/
- Remove() {
- /* Right now Weave doesn't handle this correctly, see bug 568363.
- */
- return FormDB.remove(this.id);
+ async Remove() {
+ const formdata = await FormDB.getDataForValue(this.fieldname, this.value);
+ if (!formdata) {
+ return;
+ }
+ await FormDB.remove(formdata.guid);
},
};