From 2fdebada11fe43f4cb8ea99ca4c5024bfdb03509 Mon Sep 17 00:00:00 2001 From: Tiger Oakes Date: Fri, 12 Jun 2020 11:29:58 -0700 Subject: [PATCH] Add tests for about viewholder --- .../viewholders/AboutItemViewHolderTest.kt | 51 +++++++++++++++++++ .../settings/logins/LoginDetailViewTest.kt | 9 ++++ 2 files changed, 60 insertions(+) create mode 100644 app/src/test/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolderTest.kt diff --git a/app/src/test/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolderTest.kt b/app/src/test/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolderTest.kt new file mode 100644 index 000000000..a2e1e4253 --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/settings/about/viewholders/AboutItemViewHolderTest.kt @@ -0,0 +1,51 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.settings.about.viewholders + +import android.view.LayoutInflater +import android.view.View +import io.mockk.mockk +import io.mockk.verify +import kotlinx.android.synthetic.main.about_list_item.view.* +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mozilla.fenix.helpers.FenixRobolectricTestRunner +import org.mozilla.fenix.settings.about.AboutItem +import org.mozilla.fenix.settings.about.AboutPageItem +import org.mozilla.fenix.settings.about.AboutPageListener + +@RunWith(FenixRobolectricTestRunner::class) +class AboutItemViewHolderTest { + + private val item = AboutPageItem.Item(AboutItem.Libraries, "Libraries") + private lateinit var view: View + private lateinit var listener: AboutPageListener + + @Before + fun setup() { + view = LayoutInflater.from(testContext).inflate(AboutItemViewHolder.LAYOUT_ID, null) + listener = mockk(relaxed = true) + } + + @Test + fun `bind title`() { + val holder = AboutItemViewHolder(view, listener) + holder.bind(item) + + assertEquals("Libraries", view.about_item_title.text) + } + + @Test + fun `call listener on click`() { + val holder = AboutItemViewHolder(view, listener) + holder.bind(item) + view.performClick() + + verify { listener.onAboutItemClicked(AboutItem.Libraries) } + } +} diff --git a/app/src/test/java/org/mozilla/fenix/settings/logins/LoginDetailViewTest.kt b/app/src/test/java/org/mozilla/fenix/settings/logins/LoginDetailViewTest.kt index 2ffb5a9b0..36e57d97f 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/logins/LoginDetailViewTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/logins/LoginDetailViewTest.kt @@ -52,4 +52,13 @@ class LoginDetailViewTest { assertEquals("admin", view.usernameText.text) assertEquals("password", view.passwordText.text) } + + @Test + fun `bind null currentItem`() { + detailView.update(state.copy(currentItem = null)) + + assertEquals("", view.webAddressText.text) + assertEquals("", view.usernameText.text) + assertEquals("", view.passwordText.text) + } }