Index: experimental/telemetry_mini/android_go_stories.py |
diff --git a/experimental/telemetry_mini/android_go_stories.py b/experimental/telemetry_mini/android_go_stories.py |
index 18d09e74a5db78c4230c30345a5f4fbe7ae593b4..7e61ca19f50475a6485c07278277939f9d92b68e 100755 |
--- a/experimental/telemetry_mini/android_go_stories.py |
+++ b/experimental/telemetry_mini/android_go_stories.py |
@@ -40,10 +40,6 @@ BROWSERS = { |
} |
-class TwitterApp(telemetry_mini.AndroidApp): |
- PACKAGE_NAME = 'com.twitter.android' |
- |
- |
class ProcessWatcher(object): |
def __init__(self, device): |
self.device = device |
@@ -119,39 +115,41 @@ def EnsureSingleBrowser(device, browser_name, force_install=False): |
return browser |
-def RunStory(browser): |
- tracefile = 'trace.json' |
- device = browser.device |
- twitter = TwitterApp(device) |
- watcher = ProcessWatcher(device) |
+class TwitterApp(telemetry_mini.AndroidApp): |
+ PACKAGE_NAME = 'com.twitter.android' |
- with browser.Session(BROWSER_FLAGS, TRACE_CONFIG): |
- twitter.ForceStop() |
- try: |
- # Intent will launch Twitter app on Flipkart profile. |
- device.RunShellCommand( |
- 'am', 'start', '-a', 'android.intent.action.VIEW', |
- '-d', 'https://twitter.com/flipkart') |
- watcher.StartWatching(twitter) |
- # Tapping on Flikpart link on Twitter app will launch Chrome. |
- device.TapUiNode(FLIPKART_TWITTER_LINK) |
- watcher.StartWatching(browser) |
+class TwitterFlipkartStory(telemetry_mini.UserStory): |
+ def __init__(self, *args, **kwargs): |
+ super(TwitterFlipkartStory, self).__init__(*args, **kwargs) |
+ self.watcher = ProcessWatcher(self.device) |
+ self.twitter = TwitterApp(self.device) |
- time.sleep(4) |
- # Scroll content up a bit. |
- device.RunShellCommand( |
- 'input', 'swipe', '240', '568', '240', '284', '400') |
- time.sleep(1) |
+ def GetExtraStoryApps(self): |
+ return (self.twitter,) |
- browser.CollectTrace(tracefile) |
- watcher.AssertAllAlive() |
+ def RunStorySteps(self): |
+ # Intent will launch Twitter app on Flipkart profile. |
+ self.device.RunShellCommand( |
+ 'am', 'start', '-a', 'android.intent.action.VIEW', |
+ '-d', 'https://twitter.com/flipkart') |
+ self.watcher.StartWatching(self.twitter) |
- # Go "Back" and return to Twitter app. |
- device.RunShellCommand('input', 'keyevent', str(KEYCODE_BACK)) |
- time.sleep(1) |
- finally: |
- twitter.ForceStop() |
+ # Tapping on Flikpart link on Twitter app will launch Chrome. |
+ self.device.TapUiNode(FLIPKART_TWITTER_LINK) |
+ self.watcher.StartWatching(self.browser) |
+ |
+ time.sleep(10) # TODO: Replace with wait until page loaded. |
+ # Scroll content up a bit. |
+ self.device.RunShellCommand( |
+ 'input', 'swipe', '240', '568', '240', '284', '400') |
+ time.sleep(1) |
+ |
+ # Go "Back" and return to Twitter app. |
+ self.device.RunShellCommand('input', 'keyevent', str(KEYCODE_BACK)) |
+ time.sleep(1) |
+ |
+ self.watcher.AssertAllAlive() |
def main(): |
@@ -201,7 +199,10 @@ def main(): |
browser = EnsureSingleBrowser(device, args.browser, args.force_install) |
browser.SetDevToolsLocalPort(args.port) |
- RunStory(browser) |
+ |
+ story = TwitterFlipkartStory(browser) |
+ story.Run(BROWSER_FLAGS, TRACE_CONFIG, 'trace.json') |
+ |
if __name__ == '__main__': |
sys.exit(main()) |