8000 Merge branch 'release/5.90.0' into main · codezwc/Android-1@fc341cf · GitHub
[go: up one dir, main page]

Skip to content 8000

Commit fc341cf

Browse files
committed
Merge branch 'release/5.90.0' into main
2 parents 3248aaf + 04c41e4 commit fc341cf

File tree

51 files changed

+1242
-617
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1242
-617
lines changed

app/src/androidTest/assets/bookmarks_chrome.html

Lines changed: 0 additions & 16 deletions
This file was deleted.

app/src/androidTest/assets/bookmarks_ddg.html

Lines changed: 0 additions & 20 deletions
This file was deleted.

app/src/androidTest/assets/bookmarks_firefox.html

Lines changed: 0 additions & 23 deletions
This file was deleted.

app/src/androidTest/assets/bookmarks_invalid.html

Lines changed: 0 additions & 1 deletion
This file was deleted.

app/src/androidTest/java/com/duckduckgo/app/bookmarks/service/RealBookmarkParserTest.kt

Lines changed: 0 additions & 196 deletions
This file was deleted.

app/src/androidTest/java/com/duckduckgo/app/bookmarks/service/RealBookmarksExporterTest.kt renamed to app/src/androidTest/java/com/duckduckgo/app/bookmarks/service/SavedSitesExporterTest.kt

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@ import androidx.test.platform.app.InstrumentationRegistry
2323
import com.duckduckgo.app.CoroutineTestRule
2424
import com.duckduckgo.app.bookmarks.db.BookmarkEntity
2525
import com.duckduckgo.app.bookmarks.db.BookmarksDao
26+
import com.duckduckgo.app.bookmarks.model.FavoritesDataRepository
27+
import com.duckduckgo.app.bookmarks.model.FavoritesRepository
28+
import com.duckduckgo.app.bookmarks.model.SavedSite
29+
import com.duckduckgo.app.browser.favicon.FaviconManager
2630
import com.duckduckgo.app.global.db.AppDatabase
31+
import com.nhaarman.mockitokotlin2.mock
2732
import kotlinx.coroutines.ExperimentalCoroutinesApi
2833
import kotlinx.coroutines.runBlocking
2934
import org.junit.After
@@ -32,8 +37,9 @@ import org.junit.Before
3237
import org.junit.Rule
3338
import org.junit.Test
3439
import java.io.File
40+
import dagger.Lazy
3541

36-
class RealBookmarksExporterTest {
42+
class SavedSitesExporterTest {
3743

3844
@get:Rule
3945
@Suppress("unused")
@@ -44,8 +50,11 @@ class RealBookmarksExporterTest {
4450
var coroutinesTestRule = CoroutineTestRule()
4551

4652
private lateinit var db: AppDatabase
47-
private lateinit var dao: BookmarksDao
48-
private lateinit var exporter: RealBookmarksExporter
53+
private lateinit var bookmarksDao: BookmarksDao
54+
private val mockFaviconManager: FaviconManager = mock()
55+
private val lazyFaviconManager = Lazy { mockFaviconManager }
56+
private lateinit var favoritesRepository: FavoritesRepository
57+
private lateinit var exporter: RealSavedSitesExporter
4958

5059
private lateinit var filesDir: File
5160

@@ -55,9 +64,10 @@ class RealBookmarksExporterTest {
5564
db = Room.inMemoryDatabaseBuilder(context, AppDatabase::class.java)
5665
.allowMainThreadQueries()
5766
.build()
58-
dao = db.bookmarksDao()
67+
bookmarksDao = db.bookmarksDao()
68+
favoritesRepository = FavoritesDataRepository(db.favoritesDao(), lazyFaviconManager)
5969
filesDir = context.filesDir
60-
exporter = RealBookmarksExporter(context.contentResolver, dao, RealBookmarksParser())
70+
exporter = RealSavedSitesExporter(context.contentResolver, bookmarksDao, favoritesRepository, RealSavedSitesParser())
6171
}
6272

6373
@After
@@ -68,34 +78,48 @@ class RealBookmarksExporterTest {
6878
@Test
6979
fun whenSomeBookmarksExistThenExportingSucceeds() = runBlocking {
7080
val bookmark = BookmarkEntity(id = 1, title = "example", url = "www.example.com")
71-
dao.insert(bookmark)
81+
bookmarksDao.insert(bookmark)
7282

7383
val testFile = File(filesDir, "test_bookmarks.html")
7484
val localUri = Uri.fromFile(testFile)
7585

7686
val result = exporter.export(localUri)
7787
testFile.delete()
7888

79-
assertTrue(result is ExportBookmarksResult.Success)
89+
assertTrue(result is ExportSavedSitesResult.Success)
8090
}
8191

8292
@Test
83-
fun whenFileDSomeBookmarksExistThenExportingSucceeds() = runBlocking {
93+
fun whenFileDoesNotExistThenExportingFails() = runBlocking {
8494
val bookmark = BookmarkEntity(id = 1, title = "example", url = "www.example.com")
85-
dao.insert(bookmark)
95+
bookmarksDao.insert(bookmark)
8696

8797
val localUri = Uri.parse("uridoesnotexist")
8898

8999
val result = exporter.export(localUri)
90100

91-
assertTrue(result is ExportBookmarksResult.Error)
101+
assertTrue(result is ExportSavedSitesResult.Error)
92102
}
93103

94104
@Test
95-
fun whenNoBookmarksExistThenNoBookmarksAreExported() = runBlocking {
105+
fun whenNoSavedSitesExistThenNothingIsExported() = runBlocking {
96106
val localUri = Uri.parse("whatever")
97107
val result = exporter.export(localUri)
98-
assertTrue(result is ExportBookmarksResult.NoBookmarksExported)
108+
assertTrue(result is ExportSavedSitesResult.NoSavedSitesExported)
109+
}
110+
111+
@Test
112+
fun whenSomeFavoritesExistThenExportingSucceeds() = runBlocking {
113+
val favorite = SavedSite.Favorite(id = 1, title = "example", url = "www.example.com", position = 0)
114+
favoritesRepository.insert(favorite)
115+
116+
val testFile = File(filesDir, "test_favorites.html")
117+
val localUri = Uri.fromFile(testFile)
118+
119+
val result = exporter.export(localUri)
120+
testFile.delete()
121+
122+
assertTrue(result is ExportSavedSitesResult.Success)
99123
}
100124

101125
}

app/src/androidTest/java/com/duckduckgo/app/bookmarks/service/RealBookmarksManagerTest.kt renamed to app/src/androidTest/java/com/duckduckgo/app/bookmarks/service/SavedSitesManagerTest.kt

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@ package com.duckduckgo.app.bookmarks.service
1919
import android.net.Uri
2020
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
2121
import com.duckduckgo.app.CoroutineTestRule
22+
import com.duckduckgo.app.bookmarks.model.SavedSite
2223
import com.duckduckgo.app.pixels.AppPixelName
2324
import com.duckduckgo.app.statistics.pixels.Pixel
2425
import com.nhaarman.mockitokotlin2.mock
2526
import com.nhaarman.mockitokotlin2.whenever
2627
import com.nhaarman.mockitokotlin2.verify
2728
import kotlinx.coroutines.ExperimentalCoroutinesApi
2829
import kotlinx.coroutines.runBlocking
29-
import org.junit.Assert.*
3030
import org.junit.Before
3131
import org.junit.Rule
3232
import org.junit.Test
3333

34-
class RealBookmarksManagerTest {
34+
class SavedSitesManagerTest {
3535

3636
@get:Rule
3737
@Suppress("unused")
@@ -41,59 +41,73 @@ class RealBookmarksManagerTest {
4141
@get:Rule
4242
var coroutinesTestRule = CoroutineTestRule()
4343

44-
private var importer: BookmarksImporter = mock()
45-
private var exporter: BookmarksExporter = mock()
44+
private var importer: SavedSitesImporter = mock()
45+
private var exporter: SavedSitesExporter = mock()
4646
private var pixel: Pixel = mock()
47-
private lateinit var testee: RealBookmarksManager
47+
private lateinit var testee: RealSavedSitesManager
4848

4949
@Before
5050
fun before() {
51-
testee = RealBookmarksManager(importer, exporter, pixel)
51+
testee = RealSavedSitesManager(importer, exporter, pixel)
5252
}
5353

5454
@Test
5555
fun whenBookmarksImportSucceedsThenPixelIsSent() = runBlocking {
5656
val someUri = Uri.parse("")
5757
val importedBookmarks = listOf(aBookmark())
58-
whenever(importer.import(someUri)).thenReturn(ImportBookmarksResult.Success(importedBookmarks))
58+
whenever(importer.import(someUri)).thenReturn(ImportSavedSitesResult.Success(importedBookmarks))
5959

6060
testee.import(someUri)
6161

6262
verify(pixel).fire(AppPixelName.BOOKMARK_IMPORT_SUCCESS, mapOf(Pixel.PixelParameter.BOOKMARK_COUNT to importedBookmarks.size.toString()))
6363
}
6464

6565
@Test
66-
fun whenBookmarksImportFailsThenPixelIsSent() = runBlocking {
66+
fun whenFavoritesImportSucceedsThenPixelIsSent() = runBlocking {
6767
val someUri = Uri.parse("")
68-
whenever(importer.import(someUri)).thenReturn(ImportBookmarksResult.Error(Exception()))
68+
val importedFavorites = listOf(aFavorite())
69+
whenever(importer.import(someUri)).thenReturn(ImportSavedSitesResult.Success(importedFavorites))
70+
71+
testee.import(someUri)
72+
73+
verify(pixel).fire(AppPixelName.BOOKMARK_IMPORT_SUCCESS, mapOf(Pixel.PixelParameter.BOOKMARK_COUNT to importedFavorites.size.toString()))
74+
}
75+
76+
@Test
77+
fun whenSavedSitesImportFailsThenPixelIsSent() = runBlocking {
78+
val someUri = Uri.parse("")
79+
whenever(importer.import(someUri)).thenReturn(ImportSavedSitesResult.Error(Exception()))
6980

7081
testee.import(someUri)
7182

7283
verify(pixel).fire(AppPixelName.BOOKMARK_IMPORT_ERROR)
7384
}
7485

7586
@Test
76-
fun whenBookmarksExportSucceedsThenPixelIsSent() = runBlocking {
87+
fun whenSavedSitesExportSucceedsThenPixelIsSent() = runBlocking {
7788
val someUri = Uri.parse("")
78-
whenever(exporter.export(someUri)).thenReturn(ExportBookmarksResult.Success)
89+
whenever(exporter.export(someUri)).thenReturn(ExportSavedSitesResult.Success)
7990

8091
testee.export(someUri)
8192

8293
verify(pixel).fire(AppPixelName.BOOKMARK_EXPORT_SUCCESS)
8394
}
8495

8596
@Test
86-
fun whenBookmarksExportFailsThenPixelIsSent() = runBlocking {
97+
fun whenSavedSitesExportFailsThenPixelIsSent() = runBlocking {
8798
val someUri = Uri.parse("")
88-
whenever(exporter.export(someUri)).thenReturn(ExportBookmarksResult.Error(Exception()))
99+
whenever(exporter.export(someUri)).thenReturn(ExportSavedSitesResult.Error(Exception()))
89100

90101
testee.export(someUri)
91102

92103
verify(pixel).fire(AppPixelName.BOOKMARK_EXPORT_ERROR)
93104
}
94105

95-
private fun aBookmark(): Bookmark {
96-
return Bookmark("title", "url")
106+
private fun aBookmark(): SavedSite.Bookmark {
107+
return SavedSite.Bookmark(0, "title", "url")
97108
}
98109

110+
private fun aFavorite(): SavedSite.Favorite {
111+
return SavedSite.Favorite(0, "title", "url", 0)
112+
}
99113
}

0 commit comments

Comments
 (0)
0