Bug 1353041 - fix Safari import of folders, r=Mossop draft
authorGijs Kruitbosch <gijskruitbosch@gmail.com>
Mon, 03 Apr 2017 17:46:47 +0100
changeset 555128 6ed5de167ec39cd256e00629c3ac6f3175408d4e
parent 554710 7a3f514cf8490d271ee373a1d2999e4ea4dee2d7
child 622541 8bfab4b11eeb837233df74f4d3ce7386dd3e7834
push id52164
push usergijskruitbosch@gmail.com
push dateMon, 03 Apr 2017 17:46:40 +0000
reviewersMossop
bugs1353041
milestone55.0a1
Bug 1353041 - fix Safari import of folders, r=Mossop MozReview-Commit-ID: Jw0lmIi5aZK
browser/components/migration/SafariProfileMigrator.js
browser/components/migration/tests/unit/Library/Safari/Bookmarks.plist
browser/components/migration/tests/unit/test_Safari_bookmarks.js
--- a/browser/components/migration/SafariProfileMigrator.js
+++ b/browser/components/migration/SafariProfileMigrator.js
@@ -174,17 +174,17 @@ Bookmarks.prototype = {
           return null;
         }
         let title;
         if (entry.has("URIDictionary"))
           title = entry.get("URIDictionary").get("title");
         return { url, title };
       }
       return null;
-    }).filter(e => !!e);
+    }, this).filter(e => !!e);
   },
 };
 
 function History(aHistoryFile) {
   this._file = aHistoryFile;
 }
 History.prototype = {
   type: MigrationUtils.resourceTypes.HISTORY,
index 40783c7b150109eed37a7f4a6a007488caa8577e..8046d5e9c984ed9f908d748d813a383b0d3c00ab
GIT binary patch
literal 1956
zc${sNON<m%6o%_9C`ijwdQb?@h}@wbx2kS|i1*g53xhK_!t^|NwKd%}Gv)MjH$63s
zvokT#g$C64TDUNZ!3Bw1S4P9i1Q!!P<I2Q@#E@W&Zj5d`J=H@RLM^&;Pi}qZod5i%
z#+$WtHZ#pzvZ89b@kn-Xu3T6%l8m!PV|pfTO_xf2d^DU&Yt>d#FAb$xExG@~&_WX;
z8@nPRttG=rYc_4v%Y~gZ;x=WbhdiHhgt;qFKtqZ`CyYcyO*`V|<rR-Vclf5PsVg6S
zY}M*=VM7<KubR}ebRtb!02A2rZ5lA-a>qlMIu5{WjwlXn?Ad`wY_nWg|3G<zt;TB$
zBS)dpM(f`H&34CY3I`4XHgvcj1%e>zngn5+P{e5DBPU{<1jNHG4ZeKh>0SGrTk_g<
z+WHL}Hy3-#g|#P=xSG}{`+<18Q9rp*uZ)#W^q<UH5IkEt(Z|zD1}em@1xVsJ4mbTU
zLV|iwyGMN#M2?Awu)UBumT)Os-1H=1>&b<rC6cT%HIQU+HO}G{pvhF0H4p6HKR-X;
z8#kM^q_@(T*<UWKd!X6=B%WB@@>D5nkE%r5H}j&mZrfhm0d-iIm`=zjvO#}@2{sW(
z=p$hUmXBSVh%kaWAmyfZ%GplNv{Gx#RhN=3ZrM4UhV5fc-o59U;$9#V;k%B<O@uA%
zA}pwlNEC7829$=xro>|`CvWT~FT_)gMhE<CX{>$9xv1AHTJ4Gh$6^>t^cnVnOI$>)
z2!5!`Ef^dO-^sZfy1C;pg$~vpVsOZ**!7E~O*Jj%VH_eFnG9jf1H=O1BWQqGoVeV^
zW=_T3)X7F;vLpWCN-YI*9-56O;#Ru5G8NbBN$t=~Tq%#wEN%&gk1X9ivpk+z7PlTU
zFmTTeRn`tYfAH+Rn*&LGu5HZF#&$#n;vt3_Luj9}2qT-B#P&GjCJ&a3`~sbA8`*Yv
z7zW%zcIdzan1G(z%VraJ)e4Dga`Ou78yq>8)N(aKE{aFsO(rZmu$YfR;)5%^0Hc6d
z7*S3LhjDT$I%;h0GU9wXoi>wd8uvC@lc4j_v61CSjz9L|K=C->eb5>l&JiIIMcBj+
z>>9I>6Sz1CgcI7H-GyHkdm^qR<Df}rj4zFfP9Uehd}63rYL8OjfJ9z|+{lIEg>NEe
z1wLYC6bg@cj>oK=zJ8gW&8JzGv^wD7k)iyYb4SNc7tgc}9fY8dO^^WhBJ2ti1tJO&
zv6$sKt`k}|en{1|v_1_I)I0FAqy0;PzIskCzcOB|03FOL%m@qkm{Hgn&O8M9T;xL4
z40Pe#a=I3AS@I;#rtTG91wRc<CEG^w=(aHTV4i4VGA+K^mdCPeXoaH)yWk=}^kEF1
z1?$9w<65pOLfj?K@>(XfW+%(^&=?$Y=uEv?Jm0paNnH|Pf*jw2Z>9;F2iz90`^<N3
z>W9J&a%fK%6h4j3xOyR-Z7g@tIz0q2n#W2fv$=_h!GbKUkk(1Nq+SV2LMlsdN^eUa
zNLQsB(jDn9>0eou_sXVxP#%;|$y4$r`F;6{{FVHj{FD5P{HuIh{!`hc6qO#uRfuv}
zIi{RfGG$J=sJy3qtbDHgpj=meRBkK3D|eND)UE1vb%%ONJ*!sL^XgmbMfFqlntEOR
zTm4TnG^ClDr449<+9@s3-q9{;?`l`IueEQqYuX*{uJ(tn>nrqv-lH=;(uF>*Cwg69
z&_C0^&@b!X>fh@>>%SQ*ja9~KW2dpl*k}00IU_d4jn|Dgj7!Fc#z)f9qsaNcbV0iB
HF+TYpz7-w`
--- a/browser/components/migration/tests/unit/test_Safari_bookmarks.js
+++ b/browser/components/migration/tests/unit/test_Safari_bookmarks.js
@@ -10,21 +10,25 @@ add_task(function* () {
   // Wait for the imported bookmarks.  Check that "From Safari"
   // folders are created on the toolbar.
   let source = MigrationUtils.getLocalizedString("sourceNameSafari");
   let label = MigrationUtils.getLocalizedString("importedBookmarksFolder", [source]);
 
   let expectedParents = [ PlacesUtils.toolbarFolderId ];
   let itemCount = 0;
 
+  let gotFolder = false;
   let bmObserver = {
     onItemAdded(aItemId, aParentId, aIndex, aItemType, aURI, aTitle) {
       if (aTitle != label) {
         itemCount++;
       }
+      if (aItemType == PlacesUtils.bookmarks.TYPE_FOLDER && aTitle == "Stuff") {
+        gotFolder = true;
+      }
       if (expectedParents.length > 0 && aTitle == label) {
         let index = expectedParents.indexOf(aParentId);
         Assert.ok(index != -1, "Found expected parent");
         expectedParents.splice(index, 1);
       }
     },
     onBeginUpdateBatch() {},
     onEndUpdateBatch() {},
@@ -35,12 +39,13 @@ add_task(function* () {
   };
   PlacesUtils.bookmarks.addObserver(bmObserver, false);
 
   yield promiseMigration(migrator, MigrationUtils.resourceTypes.BOOKMARKS);
   PlacesUtils.bookmarks.removeObserver(bmObserver);
 
   // Check the bookmarks have been imported to all the expected parents.
   Assert.ok(!expectedParents.length, "No more expected parents");
+  Assert.ok(gotFolder, "Should have seen the folder get imported");
   Assert.equal(itemCount, 13, "Should import all 13 items.");
   // Check that the telemetry matches:
   Assert.equal(MigrationUtils._importQuantities.bookmarks, itemCount, "Telemetry reporting correct.");
 });