소스 검색

Adds Espresso UI Tests

- Adds Espesso UI Test for Setup Fragment for the following scenarios
  - Check If the App Chooser Dialog appears
  - No Apps Chosen in App Chooser Dialog
Subbramanian Lakshmanan 7 년 전
부모
커밋
b41ba29990
2개의 변경된 파일69개의 추가작업 그리고 0개의 파일을 삭제
  1. 2 0
      app/build.gradle
  2. 67 0
      app/src/androidTest/java/com/sduduzog/slimlauncher/SetupFragmentTest.kt

+ 2 - 0
app/build.gradle

@@ -65,4 +65,6 @@ dependencies {
     androidTestImplementation 'androidx.annotation:annotation:1.0.0'
     androidTestImplementation 'androidx.test:runner:1.1.0-beta02'
     androidTestImplementation 'androidx.test:rules:1.1.0-beta02'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-intents:3.0.2'
 }

+ 67 - 0
app/src/androidTest/java/com/sduduzog/slimlauncher/SetupFragmentTest.kt

@@ -0,0 +1,67 @@
+package com.sduduzog.slimlauncher
+
+
+import android.view.View
+import android.view.ViewGroup
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.RootMatchers
+import androidx.test.espresso.matcher.ViewMatchers.*
+import androidx.test.filters.LargeTest
+import androidx.test.rule.ActivityTestRule
+import androidx.test.runner.AndroidJUnit4
+import org.hamcrest.Description
+import org.hamcrest.Matcher
+import org.hamcrest.Matchers
+import org.hamcrest.Matchers.allOf
+import org.hamcrest.TypeSafeMatcher
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@LargeTest
+@RunWith(AndroidJUnit4::class)
+class SetupFragmentTest {
+
+    @Rule
+    @JvmField
+    var mActivityTestRule = ActivityTestRule(MainActivity::class.java)
+
+    @Test
+    fun isAlertDialogShown() {
+        val appCompatButton = onView(
+                allOf(withId(R.id.setupButton),
+                        withText("start"), isDisplayed()))
+        appCompatButton.perform(click())
+
+        val frameLayout = onView(
+                allOf(withId(android.R.id.content), isDisplayed()))
+        frameLayout.check(matches(isDisplayed()))
+
+        val alertDialogTitle = onView(
+                allOf(withText(R.string.choose_apps_title)))
+        alertDialogTitle.check(matches(isDisplayed()))
+    }
+
+    @Test
+    fun noAppsSelected() {
+        val appCompatButton = onView(
+                allOf(withId(R.id.setupButton), withText("start"), isDisplayed()))
+        appCompatButton.perform(click())
+
+        val appCompatButton2 = onView(
+                allOf(withId(android.R.id.button1), withText("Done")))
+        appCompatButton2.perform(ViewActions.scrollTo(), click())
+
+        val viewGroup = onView(
+                allOf(withId(R.id.setupContainer), isDisplayed()))
+        viewGroup.check(matches(isDisplayed()))
+
+        onView(withText(R.string.no_app_selected_toast_msg)).inRoot(
+                RootMatchers.withDecorView(Matchers.not(Matchers.`is`(mActivityTestRule.activity.window.decorView))))
+                .check(matches(isDisplayed()))
+    }
+
+}