Skip to content

Commit 9418940

Browse files
authored
Click option menu in Espresso (#274)
* Click option menu in Espresso
1 parent e7371b5 commit 9418940

File tree

236 files changed

+51
-16
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

236 files changed

+51
-16
lines changed

MPChartExample/src/androidTest/java/com/xxmassdeveloper/mpchartexample/StartTest.kt

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,17 @@ import androidx.test.espresso.Espresso.onData
88
import androidx.test.espresso.Espresso.onView
99
import androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu
1010
import androidx.test.espresso.action.ViewActions.click
11+
import androidx.test.espresso.intent.Intents
12+
import androidx.test.espresso.intent.matcher.IntentMatchers.hasComponent
1113
import androidx.test.espresso.matcher.ViewMatchers
1214
import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
1315
import androidx.test.espresso.matcher.ViewMatchers.withId
16+
import androidx.test.espresso.matcher.ViewMatchers.withText
1417
import androidx.test.espresso.screenshot.captureToBitmap
1518
import androidx.test.ext.junit.rules.activityScenarioRule
1619
import androidx.test.ext.junit.runners.AndroidJUnit4
20+
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
21+
import com.xxmassdeveloper.mpchartexample.notimportant.DemoBase.Companion.optionMenus
1722
import com.xxmassdeveloper.mpchartexample.notimportant.MainActivity
1823
import org.hamcrest.CoreMatchers.allOf
1924
import org.hamcrest.CoreMatchers.anything
@@ -23,9 +28,7 @@ import org.junit.Rule
2328
import org.junit.Test
2429
import org.junit.rules.TestName
2530
import org.junit.runner.RunWith
26-
import androidx.test.espresso.intent.Intents
27-
import androidx.test.espresso.intent.matcher.IntentMatchers.hasComponent
28-
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
31+
2932

3033
@RunWith(AndroidJUnit4::class)
3134
class StartTest {
@@ -52,27 +55,45 @@ class StartTest {
5255
.captureToBitmap()
5356
.writeToTestStorage("${javaClass.simpleName}_${nameRule.methodName}")
5457

58+
var optionMenu = ""
5559
// iterate samples
5660
MainActivity.menuItems.forEachIndexed { index, contentItem ->
5761
contentItem.clazz?.let {
5862
Log.d(nameRule.methodName, "Intended ${index}-${it.simpleName}")
5963

60-
onData(anything())
61-
.inAdapterView(allOf(withId(R.id.listViewMain), isCompletelyDisplayed()))
62-
.atPosition(index).perform(click())
64+
try {
65+
onData(anything())
66+
.inAdapterView(allOf(withId(R.id.listViewMain), isCompletelyDisplayed()))
67+
.atPosition(index).perform(click())
68+
69+
Intents.intended(hasComponent(it.name))
70+
takeScreenshot()
71+
.writeToTestStorage("${javaClass.simpleName}_${nameRule.methodName}-${index}-${it.simpleName}-${contentItem.name}-1SampleClick")
6372

64-
Intents.intended(hasComponent(it.name))
65-
takeScreenshot()
66-
.writeToTestStorage("${javaClass.simpleName}_${nameRule.methodName}-${index}-${it.simpleName}-click")
73+
optionMenu = ""
74+
optionMenus.filter { plain -> Character.isDigit(plain.first()) }.forEach { filteredTitle ->
75+
optionMenu = "$index->$filteredTitle"
76+
openActionBarOverflowOrOptionsMenu(getInstrumentation().targetContext)
77+
screenshotOfOptionMenu("${javaClass.simpleName}_${nameRule.methodName}-${index}-${it.simpleName}-${contentItem.name}", filteredTitle)
78+
}
6779

68-
openActionBarOverflowOrOptionsMenu(getInstrumentation().targetContext)
69-
Thread.sleep(100)
70-
takeScreenshot()
71-
.writeToTestStorage("${javaClass.simpleName}_${nameRule.methodName}-${index}-${it.simpleName}-menu")
72-
Espresso.pressBack()
73-
Thread.sleep(100)
74-
Espresso.pressBack()
80+
// Espresso.pressBack()
81+
//Thread.sleep(100)
82+
Espresso.pressBack()
83+
} catch (e: Exception) {
84+
Log.e("smokeTestStart", optionMenu + e.message!!)
85+
takeScreenshot()
86+
.writeToTestStorage("${javaClass.simpleName}_${nameRule.methodName}-${index}-${it.simpleName}-Error")
87+
}
7588
}
7689
}
7790
}
91+
92+
private fun screenshotOfOptionMenu(simpleName: String, menuTitle: String) {
93+
onView(withText(menuTitle)).perform(click())
94+
Log.d(nameRule.methodName, "screenshotOfOptionMenu ${menuTitle}-${simpleName}")
95+
takeScreenshot()
96+
.writeToTestStorage("${simpleName}-2menu-click-$menuTitle")
97+
}
98+
7899
}

MPChartExample/src/main/java/com/xxmassdeveloper/mpchartexample/notimportant/DemoBase.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import android.Manifest
44
import android.content.pm.PackageManager
55
import android.graphics.Typeface
66
import android.os.Bundle
7+
import android.view.Menu
8+
import android.view.MenuItem
79
import android.view.View
810
import android.widget.Toast
911
import androidx.appcompat.app.AppCompatActivity
@@ -31,11 +33,22 @@ abstract class DemoBase : AppCompatActivity(), ActivityCompat.OnRequestPermissio
3133

3234
override fun onCreate(savedInstanceState: Bundle?) {
3335
super.onCreate(savedInstanceState)
36+
optionMenus.clear()
3437

3538
tfRegular = Typeface.createFromAsset(assets, "OpenSans-Regular.ttf")
3639
tfLight = Typeface.createFromAsset(assets, "OpenSans-Light.ttf")
3740
}
3841

42+
override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
43+
menu?.let {
44+
for (i in 0 until menu.size()) {
45+
val menuItem: MenuItem = menu.getItem(i)
46+
optionMenus.add(menuItem.title.toString())
47+
}
48+
}
49+
return super.onPrepareOptionsMenu(menu)
50+
}
51+
3952
override fun onBackPressed() {
4053
super.onBackPressed()
4154
overridePendingTransition(R.anim.move_left_in_activity, R.anim.move_right_out_activity)
@@ -84,5 +97,6 @@ abstract class DemoBase : AppCompatActivity(), ActivityCompat.OnRequestPermissio
8497
private const val PERMISSION_STORAGE = 0
8598
// Jan, Feb,... Dec
8699
val months = DateFormatSymbols().months.toList().map { it.take(3) }
100+
val optionMenus: MutableList<String> = mutableListOf()
87101
}
88102
}

screenshotsToCompare9/StartTest_smokeTestStart-1-LineChartActivity1-click.png renamed to screenshotsToCompare9/StartTest_smokeTestStart-1-LineChartActivity1-Basic-1SampleClick.png

File renamed without changes.
36.9 KB
35.8 KB
35.8 KB
37.5 KB
28.1 KB
37.4 KB
45.2 KB

0 commit comments

Comments
 (0)