1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 License, v. 2.0. If a copy of the MPL was not distributed with this
3 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 package org.mozilla.fenix.library.bookmarks
7 import androidx.fragment.app.testing.FragmentScenario
8 import androidx.fragment.app.testing.launchFragmentInContainer
9 import androidx.navigation.NavController
10 import androidx.navigation.Navigation
15 import mozilla.appservices.places.BookmarkRoot
16 import org.junit.Assert.assertEquals
17 import org.junit.Before
19 import org.junit.runner.RunWith
20 import org.mozilla.fenix.R
21 import org.mozilla.fenix.TestApplication
22 import org.mozilla.fenix.TestUtils
23 import org.robolectric.RobolectricTestRunner
24 import org.robolectric.annotation.Config
26 @RunWith(RobolectricTestRunner::class)
27 @Config(application = TestApplication::class)
28 class BookmarkFragmentTest {
30 private lateinit var scenario: FragmentScenario<BookmarkFragment>
34 TestUtils.setRxSchedulers()
36 val mockNavController = mockk<NavController>()
37 every { mockNavController.addOnDestinationChangedListener(any()) } just Runs
39 val args = BookmarkFragmentArgs(BookmarkRoot.Mobile.id).toBundle()
41 launchFragmentInContainer<BookmarkFragment>(fragmentArgs = args, themeResId = R.style.NormalTheme) {
42 BookmarkFragment().also { fragment ->
43 fragment.viewLifecycleOwnerLiveData.observeForever {
45 Navigation.setViewNavController(fragment.requireView(), mockNavController)
53 fun `test initial bookmarks fragment ui`() {
54 scenario.onFragment { fragment ->
55 assertEquals(fragment.getString(R.string.library_bookmarks), fragment.activity?.title)