Ladybird: Add Espresso test on Android to verify we can load our views

The simple smoke test makes sure that we can boot up an android emulator
with our package in it, and that the WebView is visible on boot.

More tests to come with more features :^)
This commit is contained in:
Andrew Kaster 2023-09-03 21:12:19 +02:00 committed by Andrew Kaster
parent f87388ff72
commit 52d6c49ccc
2 changed files with 41 additions and 0 deletions

View file

@ -75,5 +75,6 @@ dependencies {
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.ext:junit-ktx:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
}

View file

@ -0,0 +1,40 @@
package org.serenityos.ladybird
import androidx.test.ext.junit.rules.activityScenarioRule
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
import androidx.test.espresso.matcher.ViewMatchers.withId
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
import org.junit.Rule
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class SmokeTest {
@get:Rule
var activityScenarioRule = activityScenarioRule<LadybirdActivity>()
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("org.serenityos.ladybird", appContext.packageName)
}
@Test
fun loadWebView() {
// We can actually load a web view, and it is visible
onView(withId(R.id.web_view)).check(matches(isDisplayed()))
}
}