Initial commit

This commit is contained in:
Krzysztof Cieślik
2026-06-13 21:43:53 +02:00
commit 22a3e0fe7e
80 changed files with 4175 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
package com.example.retroha
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.Espresso.pressBack
import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.action.ViewActions.replaceText
import androidx.test.espresso.action.ViewActions.closeSoftKeyboard
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class AppNavigationTest {
@get:Rule
val activityRule = ActivityScenarioRule(MainActivity::class.java)
@Test
fun testSettingsNavigationAndForms() {
Thread.sleep(1000)
onView(withId(R.id.btnSettings)).perform(click())
Thread.sleep(500)
onView(withId(R.id.btnEntitySelection)).check(matches(isDisplayed()))
onView(withId(R.id.btnInstructions)).check(matches(isDisplayed()))
onView(withId(R.id.btnGoToConnection)).check(matches(isDisplayed()))
onView(withId(R.id.btnEntitySelection)).perform(click())
Thread.sleep(500)
onView(withId(R.id.etSearch)).check(matches(isDisplayed()))
onView(withId(R.id.etSearch)).perform(replaceText("light"), closeSoftKeyboard())
Thread.sleep(500)
pressBack()
Thread.sleep(500)
onView(withId(R.id.btnInstructions)).perform(click())
Thread.sleep(500)
pressBack()
Thread.sleep(500)
onView(withId(R.id.btnGoToConnection)).perform(click())
Thread.sleep(500)
onView(withId(R.id.etUrl)).check(matches(isDisplayed()))
onView(withId(R.id.etToken)).check(matches(isDisplayed()))
onView(withId(R.id.etRefreshInterval)).perform(replaceText("60"), closeSoftKeyboard())
Thread.sleep(500)
pressBack()
Thread.sleep(500)
pressBack()
Thread.sleep(500)
onView(withId(R.id.gridView)).check(matches(isDisplayed()))
}
}

View File

@@ -0,0 +1,23 @@
package com.example.retroha
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class AutomatedClickTest {
@get:Rule
val activityRule = ActivityScenarioRule(MainActivity::class.java)
@Test
fun clickThroughAllTabs() {
Thread.sleep(1000)
val tabs = listOf("OŚWIETLENIE", "GNIAZDKA", "MOC", "POGODA", "WSZYSTKO")
tabs.forEach { tabName ->
onView(withText(tabName)).perform(click())
Thread.sleep(500)
}
}
}

View File

@@ -0,0 +1,14 @@
package com.example.retroha
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.Assert.*
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.example.retroha", appContext.packageName)
}
}

View File

@@ -0,0 +1,65 @@
package com.example.retroha
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import java.util.Random
import androidx.test.espresso.ViewInteraction
import android.view.View
import org.hamcrest.Matcher
import androidx.test.espresso.UiController
import androidx.test.espresso.ViewAction
import android.view.ViewGroup
import android.widget.GridView
import org.hamcrest.Description
import org.hamcrest.TypeSafeMatcher
@RunWith(AndroidJUnit4::class)
class MonkeyStressTest {
@get:Rule
val activityRule = ActivityScenarioRule(MainActivity::class.java)
private val random = Random()
@Test
fun runMonkeyTest() {
val iterations = 50
val tabs = listOf("WSZYSTKO", "OŚWIETLENIE", "GNIAZDKA", "MOC", "POGODA")
for (i in 1..iterations) {
val actionType = random.nextInt(3)
try {
when (actionType) {
0 -> {
val tab = tabs[random.nextInt(tabs.size)]
onView(withText(tab)).perform(click())
}
1 -> {
onView(withId(R.id.gridView)).perform(clickRandomItem())
}
2 -> {
onView(withId(R.id.btnSettings)).perform(click())
Thread.sleep(500)
androidx.test.espresso.Espresso.pressBack()
}
}
} catch (e: Exception) {
}
Thread.sleep(200)
}
}
private fun clickRandomItem(): ViewAction {
return object : ViewAction {
override fun getConstraints(): Matcher<View> = withId(R.id.gridView)
override fun getDescription(): String = "Kliknięcie losowego elementu w GridView"
override fun perform(uiController: UiController, view: View) {
val gridView = view as GridView
if (gridView.childCount > 0) {
val randomIndex = random.nextInt(gridView.childCount)
gridView.getChildAt(randomIndex).performClick()
}
}
}
}
}