@@ -8,12 +8,17 @@ import androidx.test.espresso.Espresso.onData
88import androidx.test.espresso.Espresso.onView
99import androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu
1010import androidx.test.espresso.action.ViewActions.click
11+ import androidx.test.espresso.intent.Intents
12+ import androidx.test.espresso.intent.matcher.IntentMatchers.hasComponent
1113import androidx.test.espresso.matcher.ViewMatchers
1214import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed
1315import androidx.test.espresso.matcher.ViewMatchers.withId
16+ import androidx.test.espresso.matcher.ViewMatchers.withText
1417import androidx.test.espresso.screenshot.captureToBitmap
1518import androidx.test.ext.junit.rules.activityScenarioRule
1619import androidx.test.ext.junit.runners.AndroidJUnit4
20+ import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
21+ import com.xxmassdeveloper.mpchartexample.notimportant.DemoBase.Companion.optionMenus
1722import com.xxmassdeveloper.mpchartexample.notimportant.MainActivity
1823import org.hamcrest.CoreMatchers.allOf
1924import org.hamcrest.CoreMatchers.anything
@@ -23,9 +28,7 @@ import org.junit.Rule
2328import org.junit.Test
2429import org.junit.rules.TestName
2530import 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 )
3134class 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}
0 commit comments