mid commit

This commit is contained in:
2023-06-23 21:44:37 +01:00
parent fa77212505
commit 8e88cd98ad
6 changed files with 45 additions and 1 deletions

View File

@@ -150,7 +150,7 @@ dependencies {
implementation "org.kodein.di:kodein-di-generic-jvm:$kodein_version" implementation "org.kodein.di:kodein-di-generic-jvm:$kodein_version"
implementation "org.kodein.di:kodein-di-framework-android-x:$kodein_version" implementation "org.kodein.di:kodein-di-framework-android-x:$kodein_version"
/ * Image Carousal */ / * Image Carousal */
implementation 'com.synnapps:carouselview:0.1.6' implementation 'com.synnapps:carouselview:0.1.5'
/ * Glide */ / * Glide */
implementation 'com.github.bumptech.glide:glide:4.12.0' implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
@@ -162,4 +162,6 @@ dependencies {
def retrofit_version = "2.9.0" def retrofit_version = "2.9.0"
androidTestImplementation "com.squareup.retrofit2:retrofit:$retrofit_version" androidTestImplementation "com.squareup.retrofit2:retrofit:$retrofit_version"
androidTestImplementation "com.squareup.retrofit2:converter-gson:$retrofit_version" androidTestImplementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
/ * Spoon screenshot library */
androidTestImplementation 'com.squareup.spoon:spoon-client:1.1.1'
} }

View File

@@ -1,5 +1,7 @@
package h_mal.appttude.com.driver package h_mal.appttude.com.driver
import android.Manifest
import android.Manifest.permission.WRITE_EXTERNAL_STORAGE
import android.R import android.R
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
@@ -8,6 +10,7 @@ import android.view.WindowManager
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.test.core.app.ActivityScenario import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.Espresso.onView import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.Espresso.setFailureHandler
import androidx.test.espresso.IdlingRegistry import androidx.test.espresso.IdlingRegistry
import androidx.test.espresso.IdlingResource import androidx.test.espresso.IdlingResource
import androidx.test.espresso.Root import androidx.test.espresso.Root
@@ -19,8 +22,10 @@ import androidx.test.espresso.matcher.ViewMatchers.isRoot
import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import androidx.test.rule.GrantPermissionRule
import h_mal.appttude.com.driver.base.BaseActivity import h_mal.appttude.com.driver.base.BaseActivity
import h_mal.appttude.com.driver.helpers.BaseViewAction import h_mal.appttude.com.driver.helpers.BaseViewAction
import h_mal.appttude.com.driver.helpers.SpoonFailureHandler
import org.hamcrest.CoreMatchers import org.hamcrest.CoreMatchers
import org.hamcrest.Description import org.hamcrest.Description
import org.hamcrest.Matcher import org.hamcrest.Matcher
@@ -28,6 +33,7 @@ import org.hamcrest.TypeSafeMatcher
import org.hamcrest.core.AllOf import org.hamcrest.core.AllOf
import org.junit.After import org.junit.After
import org.junit.Before import org.junit.Before
import org.junit.Rule
open class BaseUiTest<T : BaseActivity<*, *>>( open class BaseUiTest<T : BaseActivity<*, *>>(
@@ -39,8 +45,13 @@ open class BaseUiTest<T : BaseActivity<*, *>>(
private lateinit var currentActivity: Activity private lateinit var currentActivity: Activity
@JvmField
@Rule
var permissionWrite = GrantPermissionRule.grant(WRITE_EXTERNAL_STORAGE)
@Before @Before
fun setup() { fun setup() {
setFailureHandler(SpoonFailureHandler(getInstrumentation().targetContext))
beforeLaunch() beforeLaunch()
mActivityScenarioRule = ActivityScenario.launch(activity) mActivityScenarioRule = ActivityScenario.launch(activity)
mActivityScenarioRule.onActivity { mActivityScenarioRule.onActivity {

View File

@@ -0,0 +1,27 @@
package h_mal.appttude.com.driver.helpers
import android.app.Activity
import android.content.Context
import android.view.View
import androidx.test.espresso.FailureHandler
import androidx.test.espresso.base.DefaultFailureHandler
import com.squareup.spoon.Spoon
import org.hamcrest.Matcher
class SpoonFailureHandler(targetContext: Context) : FailureHandler {
private val delegate: FailureHandler
private val context: Context
init {
delegate = DefaultFailureHandler(targetContext)
context = targetContext
}
override fun handle(error: Throwable?, viewMatcher: Matcher<View?>?) {
delegate.handle(error, viewMatcher)
if (context is Activity) {
Spoon.screenshot(context, "error")
}
}
}

View File

@@ -46,6 +46,7 @@ class HomeAdminRobot : BaseTestRobot() {
} }
fun showNoPermissionsDisplay() { fun showNoPermissionsDisplay() {
matchViewWaitFor(R.id.header)
matchText(R.id.header, DatabaseStatus.NO_PERMISSION.header) matchText(R.id.header, DatabaseStatus.NO_PERMISSION.header)
matchText(R.id.subtext, DatabaseStatus.NO_PERMISSION.subtext) matchText(R.id.subtext, DatabaseStatus.NO_PERMISSION.subtext)
} }

View File

@@ -7,6 +7,7 @@ import h_mal.appttude.com.driver.robots.homeAdmin
import h_mal.appttude.com.driver.robots.login import h_mal.appttude.com.driver.robots.login
import h_mal.appttude.com.driver.ui.user.LoginActivity import h_mal.appttude.com.driver.ui.user.LoginActivity
import org.junit.Test import org.junit.Test
import java.io.IOException
class UserListTest : FirebaseTest<LoginActivity>(LoginActivity::class.java) { class UserListTest : FirebaseTest<LoginActivity>(LoginActivity::class.java) {
@@ -30,6 +31,7 @@ class UserListTest : FirebaseTest<LoginActivity>(LoginActivity::class.java) {
} }
homeAdmin { homeAdmin {
showNoPermissionsDisplay() showNoPermissionsDisplay()
throw IOException("sadfasdfasdf")
} }
} }

View File

@@ -2,6 +2,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"> xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application <application
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
tools:ignore="MissingApplicationIcon" /> tools:ignore="MissingApplicationIcon" />