app/src/test/java/com/geekorum/ttrss/settings/SettingsActivityTest.kt
author Da Risk <da_risk@geekorum.com>
Mon, 15 Sep 2025 14:00:07 -0400
changeset 1370 13e39ef920a8
parent 1326 306f40d101c6
permissions -rw-r--r--
update license headers
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
134
d7a3563591ae Move SettingsActivity to settings package
Da Risk <da_risk@geekorum.com>
parents: 0
diff changeset
     1
/*
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     2
 * Geekttrss is a RSS feed reader application on the Android Platform.
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     3
 *
1370
13e39ef920a8 update license headers
Da Risk <da_risk@geekorum.com>
parents: 1326
diff changeset
     4
 * Copyright (C) 2017-2025 by Frederic-Charles Barthelery.
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     5
 *
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     6
 * This file is part of Geekttrss.
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     7
 *
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     8
 * Geekttrss is free software: you can redistribute it and/or modify
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     9
 * it under the terms of the GNU General Public License as published by
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    10
 * the Free Software Foundation, either version 3 of the License, or
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    11
 * (at your option) any later version.
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    12
 *
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    13
 * Geekttrss is distributed in the hope that it will be useful,
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    16
 * GNU General Public License for more details.
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    17
 *
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    18
 * You should have received a copy of the GNU General Public License
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    19
 * along with Geekttrss.  If not, see <http://www.gnu.org/licenses/>.
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    20
 */
134
d7a3563591ae Move SettingsActivity to settings package
Da Risk <da_risk@geekorum.com>
parents: 0
diff changeset
    21
package com.geekorum.ttrss.settings
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    22
926
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    23
import android.app.Application
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    24
import androidx.recyclerview.widget.RecyclerView
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    25
import androidx.test.core.app.ApplicationProvider
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    26
import androidx.test.espresso.Espresso.onView
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    27
import androidx.test.espresso.action.ViewActions.click
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    28
import androidx.test.espresso.contrib.RecyclerViewActions.actionOnItem
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    29
import androidx.test.espresso.intent.Intents
1011
1c0485b702e5 app: fix SettingsActivityTest
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    30
import androidx.test.espresso.intent.rule.IntentsRule
1326
306f40d101c6 app: fix SettingsActivityTest after removal of custom license activity
Da Risk <da_risk@geekorum.com>
parents: 1174
diff changeset
    31
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
306f40d101c6 app: fix SettingsActivityTest after removal of custom license activity
Da Risk <da_risk@geekorum.com>
parents: 1174
diff changeset
    32
import androidx.test.espresso.matcher.ViewMatchers.withId
306f40d101c6 app: fix SettingsActivityTest after removal of custom license activity
Da Risk <da_risk@geekorum.com>
parents: 1174
diff changeset
    33
import androidx.test.espresso.matcher.ViewMatchers.withText
1011
1c0485b702e5 app: fix SettingsActivityTest
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    34
import androidx.test.ext.junit.rules.ActivityScenarioRule
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    35
import androidx.test.ext.junit.runners.AndroidJUnit4
1011
1c0485b702e5 app: fix SettingsActivityTest
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    36
import androidx.test.ext.truth.content.IntentSubject.assertThat
1326
306f40d101c6 app: fix SettingsActivityTest after removal of custom license activity
Da Risk <da_risk@geekorum.com>
parents: 1174
diff changeset
    37
import com.geekorum.aboutoss.ui.material3.OpenSourceLicensesActivity
134
d7a3563591ae Move SettingsActivity to settings package
Da Risk <da_risk@geekorum.com>
parents: 0
diff changeset
    38
import com.geekorum.ttrss.R
926
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    39
import dagger.hilt.android.testing.HiltAndroidRule
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    40
import dagger.hilt.android.testing.HiltAndroidTest
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    41
import dagger.hilt.android.testing.HiltTestApplication
1037
5f14112904de app: convert SettingsActivity chrome to compose
Da Risk <da_risk@geekorum.com>
parents: 1011
diff changeset
    42
import org.junit.Ignore
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    43
import org.junit.Rule
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    44
import org.junit.runner.RunWith
926
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    45
import org.robolectric.annotation.Config
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    46
import kotlin.test.Test
1011
1c0485b702e5 app: fix SettingsActivityTest
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    47
import androidx.preference.R as prefR
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    48
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    49
@RunWith(AndroidJUnit4::class)
926
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    50
@HiltAndroidTest
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    51
@Config(application = HiltTestApplication::class)
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    52
class SettingsActivityTest {
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    53
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    54
    @get:Rule
926
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    55
    val hiltRule = HiltAndroidRule(this)
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    56
926
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    57
    @get:Rule
1011
1c0485b702e5 app: fix SettingsActivityTest
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    58
    val intentsRule = IntentsRule()
1c0485b702e5 app: fix SettingsActivityTest
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    59
1c0485b702e5 app: fix SettingsActivityTest
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    60
    @get:Rule
1c0485b702e5 app: fix SettingsActivityTest
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    61
    val activityScenarioRule = ActivityScenarioRule(SettingsActivity::class.java)
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    62
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    63
    @Test
1037
5f14112904de app: convert SettingsActivity chrome to compose
Da Risk <da_risk@geekorum.com>
parents: 1011
diff changeset
    64
    @Ignore("Doesn't seem to pass with robolectric when mixing compose and views")
926
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    65
    fun testThatClickOnOpenSourceLicensesOpensOpenSourcesLicensesActivity() {
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    66
        // click on OSS licenses
1011
1c0485b702e5 app: fix SettingsActivityTest
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    67
        onView(withId(prefR.id.recycler_view))
926
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    68
            .perform(
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    69
                actionOnItem<RecyclerView.ViewHolder>(
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    70
                    hasDescendant(withText(R.string.pref_title_oss_license)),
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    71
                    click()
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    72
                )
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    73
            )
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    74
926
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    75
        val receivedIntent = Intents.getIntents().single()
1011
1c0485b702e5 app: fix SettingsActivityTest
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    76
        assertThat(receivedIntent).hasComponentClass(OpenSourceLicensesActivity::class.java)
926
1abf47e0d16a app: replace play-services-oss-licenses with our own OpenSourceLicensesActivity
Da Risk <da_risk@geekorum.com>
parents: 882
diff changeset
    77
        val applicationContext = ApplicationProvider.getApplicationContext<Application>()
1011
1c0485b702e5 app: fix SettingsActivityTest
Da Risk <da_risk@geekorum.com>
parents: 943
diff changeset
    78
        assertThat(receivedIntent).hasComponentPackage(applicationContext.packageName)
0
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    79
    }
14443efede32 Initial commit
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    80
}