@@ -21,7 +21,6 @@ import androidx.room.Room
21
21
import androidx.test.ext.junit.runners.AndroidJUnit4
22
22
import androidx.test.platform.app.InstrumentationRegistry
23
23
import com.duckduckgo.app.CoroutineTestRule
24
- import com.duckduckgo.app.FileUtilities
25
24
import com.duckduckgo.app.global.db.AppDatabase
26
25
import com.duckduckgo.app.global.formatters.time.DatabaseDateFormatter
27
26
import com.duckduckgo.savedsites.api.SavedSitesRepository
@@ -144,9 +143,7 @@ class SavedSitesSyncDataProviderTest {
144
143
}
145
144
146
145
@Test
147
- fun whenFirstSyncAndUsersHasFoldersThenChangesAreFormatted () {
148
- val updatesJSON = FileUtilities .loadText(javaClass.classLoader!! , " json/parser_folders.json" )
149
-
146
+ fun whenNewBookmarksSinceLastSyncThenChangesContainData () {
150
147
repository.insert(bookmark3)
151
148
repository.insert(bookmark4)
152
149
@@ -160,9 +157,7 @@ class SavedSitesSyncDataProviderTest {
160
157
}
161
158
162
159
@Test
163
- fun whenFirstSyncAndUsersHasFavoritesAndSubfoldersThenChangesAreFormatted () {
164
- val updatesJSON = FileUtilities .loadText(javaClass.classLoader!! , " json/parser_folders_and_favourites.json" )
165
-
160
+ fun whenNewFoldersAndBookmarksAndFavouritesSinceLastSyncThenChangesContainData () {
166
161
repository.insert(bookmark1)
167
162
repository.insert(bookmark2)
168
163
repository.insert(favourite1)
@@ -188,9 +183,10 @@ class SavedSitesSyncDataProviderTest {
188
183
}
189
184
190
185
@Test
191
- fun whenChangesAfterLastSyncInFavoritesThenChangesAreFormatted () {
186
+ fun whenNewFavouritesSinceLastSyncThenChangesContainData () {
192
187
val modificationTimestamp = DatabaseDateFormatter .iso8601()
193
188
val lastSyncTimestamp = DatabaseDateFormatter .iso8601(twoHoursAgo)
189
+ setLastSyncTime(lastSyncTimestamp)
194
190
195
191
repository.insert(bookmark3.copy(lastModified = modificationTimestamp))
196
192
repository.insert(bookmark4.copy(lastModified = modificationTimestamp))
@@ -199,30 +195,28 @@ class SavedSitesSyncDataProviderTest {
199
195
val changes = parser.changesSince(lastSyncTimestamp)
200
196
201
197
assertTrue(changes.isNotEmpty())
202
- assertTrue(changes[0 ].id == bookmark1 .id)
198
+ assertTrue(changes[0 ].id == favoritesFolder .id)
203
199
assertTrue(changes[0 ].client_last_modified == modificationTimestamp)
204
200
assertTrue(changes[0 ].deleted == null )
205
- assertTrue(changes[1 ].id == favoritesFolder.id)
201
+ assertTrue(changes[0 ].folder!! .children == listOf (bookmark1.id))
202
+ assertTrue(changes[1 ].id == bookmarksRootFolder.id)
206
203
assertTrue(changes[1 ].client_last_modified == modificationTimestamp)
207
- assertTrue(changes[1 ].deleted == null )
208
- assertTrue(changes[1 ].folder!! .children == listOf (bookmark1.id))
204
+ assertTrue(changes[1 ].folder!! .children == listOf (bookmark3.id, bookmark4.id, bookmark1.id))
209
205
assertTrue(changes[2 ].id == bookmark3.id)
210
206
assertTrue(changes[2 ].client_last_modified == modificationTimestamp)
211
207
assertTrue(changes[2 ].deleted == null )
212
208
assertTrue(changes[3 ].id == bookmark4.id)
213
209
assertTrue(changes[3 ].client_last_modified == modificationTimestamp)
214
210
assertTrue(changes[3 ].deleted == null )
215
- assertTrue(changes[4 ].id == bookmarksRootFolder.id)
216
- assertTrue(changes[4 ].client_last_modified == modificationTimestamp)
217
- assertTrue(changes[4 ].folder!! .children == listOf (bookmark3.id, bookmark4.id, bookmark1.id))
211
+ assertTrue(changes[4 ].id == favourite1.id)
218
212
assertTrue(changes[4 ].deleted == null )
219
213
}
220
214
221
215
@Test
222
- fun whenNoChangesAfterLastSyncAreEmptyThenChangesAreEmpty () {
216
+ fun whenNoChangesAfterLastSyncThenChangesAreEmpty () {
223
217
val modificationTimestamp = DatabaseDateFormatter .iso8601(twoHoursAgo)
224
218
val lastSyncTimestamp = DatabaseDateFormatter .iso8601()
225
- store.modifiedSince = lastSyncTimestamp
219
+ setLastSyncTime( lastSyncTimestamp)
226
220
227
221
repository.insert(bookmark3.copy(lastModified = modificationTimestamp))
228
222
repository.insert(bookmark4.copy(lastModified = modificationTimestamp))
@@ -233,9 +227,10 @@ class SavedSitesSyncDataProviderTest {
233
227
}
234
228
235
229
@Test
236
- fun whenBookmarkDeletedAfterLastSyncThenDataIsCorrect () {
230
+ fun whenBookmarkDeletedAfterLastSyncThenChangesContainData () {
237
231
val modificationTimestamp = DatabaseDateFormatter .iso8601()
238
232
val lastSyncTimestamp = DatabaseDateFormatter .iso8601(twoHoursAgo)
233
+ setLastSyncTime(lastSyncTimestamp)
239
234
240
235
val modifiedBookmark3 = bookmark3.copy(lastModified = modificationTimestamp)
241
236
val modifiedBookmark4 = bookmark4.copy(lastModified = modificationTimestamp)
@@ -246,18 +241,19 @@ class SavedSitesSyncDataProviderTest {
246
241
247
242
val changes = parser.changesSince(lastSyncTimestamp)
248
243
assertTrue(changes.isNotEmpty())
249
- assertTrue(changes[0 ].id == bookmark3 .id)
244
+ assertTrue(changes[0 ].id == bookmarksRootFolder .id)
250
245
assertTrue(changes[0 ].deleted == null )
251
- assertTrue(changes[1 ].id == bookmark3.parentId)
246
+ assertTrue(changes[0 ].folder!! .children == listOf (bookmark3.id))
247
+ assertTrue(changes[1 ].id == bookmark3.id)
252
248
assertTrue(changes[1 ].deleted == null )
253
- assertTrue(changes[1 ].folder!! .children == listOf (bookmark3.id))
254
249
assertTrue(changes[2 ].id == bookmark4.id)
255
250
assertTrue(changes[2 ].deleted == " 1" )
256
251
}
257
252
258
253
@Test
259
- fun whenFolderDeletedAfterLastSyncThenDataIsCorrect () {
254
+ fun whenFolderDeletedAfterLastSyncThenChangesContainData () {
260
255
val lastSyncTimestamp = DatabaseDateFormatter .iso8601(twoHoursAgo)
256
+ setLastSyncTime(lastSyncTimestamp)
261
257
262
258
repository.insert(bookmark1)
263
259
repository.insert(bookmark2)
@@ -281,8 +277,9 @@ class SavedSitesSyncDataProviderTest {
281
277
}
282
278
283
279
@Test
284
- fun whenFavouriteDeletedAfterLastSyncThenDataIsCorrect () {
280
+ fun whenFavouriteDeletedAfterLastSyncThenChangesContainData () {
285
281
val lastSyncTimestamp = DatabaseDateFormatter .iso8601(twoHoursAgo)
282
+ setLastSyncTime(lastSyncTimestamp)
286
283
287
284
repository.insert(favourite1)
288
285
repository.insert(bookmark3)
@@ -296,8 +293,9 @@ class SavedSitesSyncDataProviderTest {
296
293
}
297
294
298
295
@Test
299
- fun whenBookmarkAndFavouriteDeletedAfterLastSyncThenDataIsCorrect () {
296
+ fun whenFavouritesAndBookmarksDeletedAfterLastSyncThenChangesContainData () {
300
297
val lastSyncTimestamp = DatabaseDateFormatter .iso8601(twoHoursAgo)
298
+ setLastSyncTime(lastSyncTimestamp)
301
299
302
300
repository.insert(bookmark1)
303
301
repository.insert(favourite1)
@@ -316,23 +314,29 @@ class SavedSitesSyncDataProviderTest {
316
314
}
317
315
318
316
@Test
319
- fun whenMovingABookmarkToAnotherFolderThenDataIsCorrect () {
317
+ fun whenFolderMovedToAnotherFolderAfterLastSyncThenChangesContainData () {
320
318
val beforeLastSyncTimestamp = DatabaseDateFormatter .iso8601(threeHoursAgo)
321
- val lastSyncTimestamp = DatabaseDateFormatter .iso8601(twoHoursAgo)
322
319
val modificationTimestamp = DatabaseDateFormatter .iso8601(oneHourAgo)
320
+ val lastSyncTimestamp = DatabaseDateFormatter .iso8601(twoHoursAgo)
321
+ setLastSyncTime(lastSyncTimestamp)
323
322
324
- val modifiedBookmark1 = bookmark1.copy(lastModified = modificationTimestamp )
325
- val modifiedBookmark2 = bookmark2 .copy(lastModified = beforeLastSyncTimestamp )
323
+ val modifiedBookmark1 = bookmark1.copy(lastModified = beforeLastSyncTimestamp, parentId = subFolder.id )
324
+ val modifiedFolder = subFolder .copy(lastModified = modificationTimestamp )
326
325
327
326
repository.insert(modifiedBookmark1)
328
- repository.insert(modifiedBookmark2)
329
- repository.insert(subFolder)
330
- repository.updateBookmark(modifiedBookmark1.copy(parentId = subFolder.id), SavedSitesNames .BOOKMARKS_ROOT )
327
+ repository.insert(modifiedFolder)
331
328
332
329
val changes = parser.changesSince(lastSyncTimestamp)
333
- assertTrue(changes.filter { it.id == modifiedBookmark1.id } != null )
334
- assertTrue(changes.filter { it.id == subFolder.id } != null )
335
- assertTrue(changes.filter { it.id == SavedSitesNames .BOOKMARKS_ROOT } != null )
330
+ assertTrue(changes.isNotEmpty())
331
+ assertTrue(changes.size == 2 )
332
+ assertTrue(changes[0 ].id == bookmarksRootFolder.id)
333
+ assertTrue(changes[0 ].folder!! .children == listOf (subFolder.id))
334
+ assertTrue(changes[1 ].id == subFolder.id)
335
+ assertTrue(changes[1 ].folder!! .children == listOf (bookmark1.id))
336
+ }
337
+
338
+ private fun setLastSyncTime (lastSyncTimestamp : String ) {
339
+ store.modifiedSince = lastSyncTimestamp
336
340
}
337
341
338
342
private fun fromSavedSite (savedSite : SavedSite ): SyncBookmarkEntry {
0 commit comments