diff options
author | Chris Poultney <poultney@google.com> | 2022-12-15 19:22:58 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-12-15 19:22:58 +0000 |
commit | 766863f5b25c179d188603b68d8dea8798e11256 (patch) | |
tree | 3e72a5dfe95cf290e007ff7dcb7650e01b48ef84 /tests/robotests | |
parent | 13300aaa2380d8a1654fdbd5656b7d5cbba968c0 (diff) | |
parent | 93ea52fe0700e0788e3793968d7bc557bdb1a0b6 (diff) | |
download | ThemePicker-766863f5b25c179d188603b68d8dea8798e11256.tar.gz |
Merge "Finish moving Robolectric tests to tests/robotests" into tm-qpr-dev am: 93ea52fe07
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/ThemePicker/+/20693358
Change-Id: I8df97bcfa89aee73993ee065fd873d7eb194285c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'tests/robotests')
-rw-r--r-- | tests/robotests/src/com/android/customization/picker/clock/ClockCustomDemoFragmentTest.kt | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ClockCustomDemoFragmentTest.kt b/tests/robotests/src/com/android/customization/picker/clock/ClockCustomDemoFragmentTest.kt new file mode 100644 index 00000000..ad3dd1ce --- /dev/null +++ b/tests/robotests/src/com/android/customization/picker/clock/ClockCustomDemoFragmentTest.kt @@ -0,0 +1,99 @@ +package com.android.customization.picker.clock + +import android.os.Handler +import android.os.UserHandle +import android.view.View +import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.android.systemui.plugins.ClockId +import com.android.systemui.plugins.ClockMetadata +import com.android.systemui.plugins.ClockProvider +import com.android.systemui.plugins.ClockProviderPlugin +import com.android.systemui.plugins.PluginManager +import com.android.systemui.shared.clocks.ClockRegistry +import org.junit.Assert +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mock +import org.mockito.Mockito +import org.mockito.MockitoAnnotations +import org.robolectric.Robolectric +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config + +/** Tests of [ClockCustomDemoFragment]. */ +@RunWith(RobolectricTestRunner::class) +@Config(manifest = Config.NONE) +class ClockCustomDemoFragmentTest { + private lateinit var mActivity: AppCompatActivity + private var mClockCustomDemoFragment: ClockCustomDemoFragment? = null + private lateinit var registry: ClockRegistry + @Mock private lateinit var mockPluginManager: PluginManager + @Mock private lateinit var mockHandler: Handler + @Mock private lateinit var fakePlugin: ClockProviderPlugin + @Mock private lateinit var defaultClockProvider: ClockProvider + + private var settingValue: String = "" + + @Before + fun setUp() { + MockitoAnnotations.initMocks(this) + mActivity = Robolectric.buildActivity(AppCompatActivity::class.java).get() + mClockCustomDemoFragment = ClockCustomDemoFragment() + Mockito.`when`(defaultClockProvider.getClocks()) + .thenReturn(listOf(ClockMetadata("DEFAULT", "Default Clock"))) + registry = + object : + ClockRegistry( + mActivity, + mockPluginManager, + mockHandler, + isEnabled = true, + userHandle = UserHandle.USER_ALL, + defaultClockProvider = defaultClockProvider + ) { + override var currentClockId: ClockId + get() = settingValue + set(value) { + settingValue = value + } + + override fun getClocks(): List<ClockMetadata> { + return defaultClockProvider.getClocks() + + listOf( + ClockMetadata("CLOCK_1", "Clock 1"), + ClockMetadata("CLOCK_2", "Clock 2"), + ClockMetadata("CLOCK_NOT_IN_USE", "Clock not in use") + ) + } + } + + mClockCustomDemoFragment!!.clockRegistry = registry + mClockCustomDemoFragment!!.recyclerView = RecyclerView(mActivity) + mClockCustomDemoFragment!!.recyclerView.layoutManager = + LinearLayoutManager(mActivity, RecyclerView.VERTICAL, false) + mClockCustomDemoFragment!!.pluginListener.onPluginConnected(fakePlugin, mActivity) + } + + @Test + fun testItemCount_getCorrectClockCount() { + Assert.assertEquals(3, mClockCustomDemoFragment!!.recyclerView.adapter!!.itemCount) + } + + @Test + fun testClick_setCorrectClockId() { + mClockCustomDemoFragment!! + .recyclerView + .measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED) + mClockCustomDemoFragment!!.recyclerView.layout(0, 0, 100, 10000) + val testPosition = 1 + mClockCustomDemoFragment!! + .recyclerView + .findViewHolderForAdapterPosition(testPosition) + ?.itemView + ?.performClick() + Assert.assertEquals("CLOCK_1", settingValue) + } +} |