From 921e9006f6b41f5a360bb8217c0c342de2e9fc8e Mon Sep 17 00:00:00 2001 From: utzcoz Date: Mon, 13 Apr 2020 14:40:16 +0800 Subject: [PATCH] Add unit tests for FABWrapper and FreeformHackHelper Test: run ./gradlew test and all tests passed. Signed-off-by: utzcoz --- .../com/farmerbb/taskbar/util/FABWrapperTest.java | 66 ++++++++++++++++++++++ .../taskbar/util/FreeformHackHelperTest.java | 47 +++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 app/src/test/java/com/farmerbb/taskbar/util/FABWrapperTest.java create mode 100644 app/src/test/java/com/farmerbb/taskbar/util/FreeformHackHelperTest.java diff --git a/app/src/test/java/com/farmerbb/taskbar/util/FABWrapperTest.java b/app/src/test/java/com/farmerbb/taskbar/util/FABWrapperTest.java new file mode 100644 index 00000000..17ad8373 --- /dev/null +++ b/app/src/test/java/com/farmerbb/taskbar/util/FABWrapperTest.java @@ -0,0 +1,66 @@ +package com.farmerbb.taskbar.util; + +import android.content.Context; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.lifecycle.Lifecycle; +import androidx.test.core.app.ActivityScenario; +import androidx.test.core.app.ApplicationProvider; + +import com.farmerbb.taskbar.R; +import com.farmerbb.taskbar.activity.HomeActivity; +import com.farmerbb.taskbar.activity.MainActivity; +import com.google.android.material.floatingactionbutton.FloatingActionButton; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +@RunWith(RobolectricTestRunner.class) +public class FABWrapperTest { + private Context context; + private FABWrapper wrapper; + private ActivityScenario scenario; + + @Before + public void setUp() { + context = ApplicationProvider.getApplicationContext(); + scenario = ActivityScenario.launch(MainActivity.class); + scenario.moveToState(Lifecycle.State.RESUMED); + scenario.onActivity(activity -> wrapper = new FABWrapper(activity)); + } + + @After + public void tearDown() { + scenario.moveToState(Lifecycle.State.DESTROYED); + } + + @Test + public void testViewForNonAndroidX86Version() { + assertTrue(wrapper.view instanceof FloatingActionButton); + int padding = context.getResources().getDimensionPixelSize(R.dimen.tb_fake_fab_padding); + assertEquals(padding, wrapper.view.getPaddingLeft()); + assertEquals(padding, wrapper.view.getPaddingTop()); + assertEquals(padding, wrapper.view.getPaddingRight()); + assertEquals(padding, wrapper.view.getPaddingBottom()); + } + + @Test + public void testShow() { + wrapper.show(); + assertEquals(View.VISIBLE, wrapper.view.getVisibility()); + } + + @Test + public void testHide() { + wrapper.show(); + wrapper.hide(); + assertEquals(View.GONE, wrapper.view.getVisibility()); + } +} \ No newline at end of file diff --git a/app/src/test/java/com/farmerbb/taskbar/util/FreeformHackHelperTest.java b/app/src/test/java/com/farmerbb/taskbar/util/FreeformHackHelperTest.java new file mode 100644 index 00000000..9ffaf982 --- /dev/null +++ b/app/src/test/java/com/farmerbb/taskbar/util/FreeformHackHelperTest.java @@ -0,0 +1,47 @@ +package com.farmerbb.taskbar.util; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +@RunWith(RobolectricTestRunner.class) +public class FreeformHackHelperTest { + private FreeformHackHelper freeformHackHelper = FreeformHackHelper.getInstance(); + + @Test + public void testGetInstance() { + assertNotNull(freeformHackHelper); + for (int i = 1; i <= 20; i++) { + assertEquals(freeformHackHelper, FreeformHackHelper.getInstance()); + } + } + + @Test + public void testSetFreeformHackActive() { + assertFalse(freeformHackHelper.isFreeformHackActive()); + freeformHackHelper.setFreeformHackActive(true); + assertTrue(freeformHackHelper.isFreeformHackActive()); + freeformHackHelper.setFreeformHackActive(false); + } + + @Test + public void testSetInFreeformWorkspace() { + assertFalse(freeformHackHelper.isInFreeformWorkspace()); + freeformHackHelper.setInFreeformWorkspace(true); + assertTrue(freeformHackHelper.isInFreeformWorkspace()); + freeformHackHelper.setInFreeformWorkspace(false); + } + + @Test + public void testSetTouchAbsorberActive() { + assertFalse(freeformHackHelper.isTouchAbsorberActive()); + freeformHackHelper.setTouchAbsorberActive(true); + assertTrue(freeformHackHelper.isTouchAbsorberActive()); + freeformHackHelper.setTouchAbsorberActive(false); + } +} -- 2.11.0