Skip to content

Commit 1aab807

Browse files
refactor emulator tests
1 parent c526fb1 commit 1aab807

6 files changed

Lines changed: 33 additions & 107 deletions

File tree

.github/actions/emulator-step/action.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ runs:
1414
with:
1515
api-level: ${{ inputs.api-level }}
1616
arch: x86_64
17-
profile: Medium Phone
17+
profile: medium_phone
1818
force-avd-creation: false
1919
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
2020
disable-animations: true
2121
script: ${{ inputs.script }}
22+

.github/workflows/android-ci.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44
push:
55
paths-ignore:
66
- '**/*.md'
7-
- '.github/workflows/android-test-ci.yml'
87
- '.github/workflows/android-emulator-test.yml'
98
- '.github/workflows/codeql-analysis.yml'
109
- '.github/workflows/close-empty-xml.yml'
@@ -13,7 +12,6 @@ on:
1312
pull_request:
1413
paths-ignore:
1514
- '**/*.md'
16-
- '.github/workflows/android-test-ci.yml'
1715
- '.github/workflows/android-emulator-test.yml'
1816
- '.github/workflows/codeql-analysis.yml'
1917
- '.github/workflows/close-empty-xml.yml'

.github/workflows/android-test-ci.yml

Lines changed: 0 additions & 58 deletions
This file was deleted.

app/src/androidTest/kotlin/com/vrem/wifianalyzer/ChannelAvailableInstrumentedTest.kt

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,21 +27,13 @@ import org.hamcrest.Matchers.allOf
2727
internal class ChannelAvailableInstrumentedTest : Runnable {
2828
override fun run() {
2929
selectMenuItem(7, "Available Channels")
30-
verify2GHzSection()
31-
verify5GHzSection()
32-
verify6GHzSection()
30+
verifySections()
3331
pressBack()
3432
}
3533

36-
private fun verify2GHzSection() {
37-
onView(allOf(withText("2.4 GHz"), isDisplayed())).check(matches(isDisplayed()))
38-
}
39-
40-
private fun verify5GHzSection() {
41-
onView(allOf(withText("5 GHz"), isDisplayed())).check(matches(isDisplayed()))
42-
}
43-
44-
private fun verify6GHzSection() {
45-
onView(allOf(withText("6 GHz"), isDisplayed())).check(matches(isDisplayed()))
34+
private fun verifySections() {
35+
listOf("2.4 GHz", "5 GHz", "6 GHz").forEach { section ->
36+
onView(allOf(withText(section), isDisplayed())).check(matches(isDisplayed()))
37+
}
4638
}
4739
}

app/src/androidTest/kotlin/com/vrem/wifianalyzer/InstrumentedTestUtils.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import android.view.MotionEvent
2222
import android.view.View
2323
import android.view.ViewGroup
2424
import androidx.appcompat.widget.Toolbar
25+
import androidx.recyclerview.widget.RecyclerView
2526
import androidx.test.espresso.Espresso.onView
2627
import androidx.test.espresso.ViewAction
2728
import androidx.test.espresso.action.GeneralClickAction
@@ -31,6 +32,8 @@ import androidx.test.espresso.action.ViewActions.click
3132
import androidx.test.espresso.assertion.ViewAssertions.doesNotExist
3233
import androidx.test.espresso.assertion.ViewAssertions.matches
3334
import androidx.test.espresso.matcher.BoundedMatcher
35+
import androidx.test.espresso.contrib.RecyclerViewActions
36+
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
3437
import androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom
3538
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
3639
import androidx.test.espresso.matcher.ViewMatchers.withClassName
@@ -155,3 +158,9 @@ internal fun selectMenuItem(
155158

156159
onView(isAssignableFrom(Toolbar::class.java)).check(matches(withToolbarTitle(expectedTitle)))
157160
}
161+
162+
internal fun scrollToAndVerify(text: String, recyclerViewId: Int = androidx.preference.R.id.recycler_view) {
163+
onView(withId(recyclerViewId))
164+
.perform(RecyclerViewActions.scrollTo<RecyclerView.ViewHolder>(hasDescendant(withText(text))))
165+
onView(withText(text)).check(matches(isDisplayed()))
166+
}

app/src/androidTest/kotlin/com/vrem/wifianalyzer/SettingsInstrumentedTest.kt

Lines changed: 17 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -17,46 +17,30 @@
1717
*/
1818
package com.vrem.wifianalyzer
1919

20-
import androidx.recyclerview.widget.RecyclerView
21-
import androidx.test.espresso.Espresso.onView
2220
import androidx.test.espresso.Espresso.pressBack
23-
import androidx.test.espresso.assertion.ViewAssertions.matches
24-
import androidx.test.espresso.contrib.RecyclerViewActions
25-
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
26-
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
27-
import androidx.test.espresso.matcher.ViewMatchers.withId
28-
import androidx.test.espresso.matcher.ViewMatchers.withText
2921

3022
internal class SettingsInstrumentedTest : Runnable {
3123
override fun run() {
3224
selectMenuItem(10, "Settings")
33-
verifyVisibleSettings()
34-
verifyScrollableSettings()
25+
verifySettings()
3526
pressBack()
3627
}
3728

38-
private fun verifyVisibleSettings() {
39-
onView(withText("Scan Interval")).check(matches(isDisplayed()))
40-
onView(withText("Sort Access Points By")).check(matches(isDisplayed()))
41-
onView(withText("Group Access Points By")).check(matches(isDisplayed()))
42-
onView(withText("Connection Display")).check(matches(isDisplayed()))
43-
onView(withText("Access Point Display")).check(matches(isDisplayed()))
44-
onView(withText("Graph Maximum Signal Strength")).check(matches(isDisplayed()))
45-
onView(withText("Channel Graph Legend Display")).check(matches(isDisplayed()))
46-
onView(withText("Time Graph Legend Display")).check(matches(isDisplayed()))
47-
}
48-
49-
private fun verifyScrollableSettings() {
50-
scrollToAndVerify("Theme")
51-
scrollToAndVerify("Keep screen on")
52-
scrollToAndVerify("Country")
53-
scrollToAndVerify("Language")
54-
scrollToAndVerify("Reset")
55-
}
56-
57-
private fun scrollToAndVerify(text: String) {
58-
onView(withId(androidx.preference.R.id.recycler_view))
59-
.perform(RecyclerViewActions.scrollTo<RecyclerView.ViewHolder>(hasDescendant(withText(text))))
60-
onView(withText(text)).check(matches(isDisplayed()))
29+
private fun verifySettings() {
30+
listOf(
31+
"Scan Interval",
32+
"Sort Access Points By",
33+
"Group Access Points By",
34+
"Connection Display",
35+
"Access Point Display",
36+
"Graph Maximum Signal Strength",
37+
"Channel Graph Legend Display",
38+
"Time Graph Legend Display",
39+
"Theme",
40+
"Keep screen on",
41+
"Country",
42+
"Language",
43+
"Reset"
44+
).forEach { scrollToAndVerify(it) }
6145
}
6246
}

0 commit comments

Comments
 (0)