Bug 1395427 p4 - Add form history items deletions to TPS tests. r?tcsc draft
authorEdouard Oger <eoger@fastmail.com>
Fri, 22 Sep 2017 15:19:44 -0400
changeset 671234 aa5caf1e0168969db1f01cd535546d418f5e9eaf
parent 671233 67b8a285910207821f403ddb2be312843aefd03a
child 733465 817590e056e4815104477231f6991b5c80b9623d
push id81882
push userbmo:eoger@fastmail.com
push dateWed, 27 Sep 2017 17:08:01 +0000
reviewerstcsc
bugs1395427
milestone58.0a1
Bug 1395427 p4 - Add form history items deletions to TPS tests. r?tcsc MozReview-Commit-ID: 3oUBqLuHpoG
services/sync/tests/tps/test_formdata.js
services/sync/tps/extensions/tps/resource/modules/forms.jsm
--- 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);
   },
 };