Beispiel #1
0
 /**
  * Run video test.
  *
  * @param testCase the test case instance we're going to run the test in.
  * @param requiredUserGesture the settings of MediaPlaybackRequiresUserGesture.
  * @return true if the event happened,
  * @throws Throwable throw exception if timeout.
  */
 public static boolean runVideoTest(
     final AwTestBase testCase,
     final boolean requiredUserGesture,
     final boolean forceVideoOverlay,
     long waitTime)
     throws Throwable {
   final JavascriptEventObserver observer = new JavascriptEventObserver();
   TestAwContentsClient client = new TestAwContentsClient();
   final AwContents awContents =
       testCase.createAwTestContainerViewOnMainSync(client).getAwContents();
   testCase
       .getInstrumentation()
       .runOnMainSync(
           new Runnable() {
             @Override
             public void run() {
               AwSettings awSettings = awContents.getSettings();
               awSettings.setJavaScriptEnabled(true);
               awSettings.setMediaPlaybackRequiresUserGesture(requiredUserGesture);
               awSettings.setForceVideoOverlayForTests(forceVideoOverlay);
               observer.register(awContents.getContentViewCore(), "javaObserver");
             }
           });
   VideoTestWebServer webServer = new VideoTestWebServer();
   try {
     String data =
         "<html><head><script>"
             + "addEventListener('DOMContentLoaded', function() { "
             + "  document.getElementById('video').addEventListener('play', function() { "
             + "    javaObserver.notifyJava(); "
             + "  }, false); "
             + "}, false); "
             + "</script></head><body>"
             + "<video id='video' autoplay control src='"
             + webServer.getOnePixelOneFrameWebmURL()
             + "' /> </body></html>";
     testCase.loadDataAsync(awContents, data, "text/html", false);
     return observer.waitForEvent(waitTime);
   } finally {
     if (webServer != null && webServer.getTestWebServer() != null) {
       webServer.getTestWebServer().shutdown();
     }
   }
 }