Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 /* | 1 /* | 
| 2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. | 
| 3 * | 3 * | 
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license | 
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source | 
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found | 
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may | 
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. | 
| 9 */ | 9 */ | 
| 10 | 10 | 
| 11 package org.appspot.apprtc.test; | 11 package org.appspot.apprtc.test; | 
| 12 | 12 | 
| 13 import static android.support.test.espresso.action.ViewActions.click; | 13 import static android.support.test.espresso.action.ViewActions.click; | 
| 14 import static android.support.test.espresso.matcher.ViewMatchers.withId; | 14 import static android.support.test.espresso.matcher.ViewMatchers.withId; | 
| 15 import static android.support.test.espresso.Espresso.onView; | 15 import static android.support.test.espresso.Espresso.onView; | 
| 16 | 16 | 
| 17 import android.content.Context; | 17 import android.content.Context; | 
| 18 import android.content.Intent; | 18 import android.content.Intent; | 
| 19 import android.net.Uri; | 19 import android.net.Uri; | 
| 20 import android.os.Environment; | 20 import android.os.Environment; | 
| 21 import android.support.test.espresso.contrib.CountingIdlingResource; | |
| 22 import android.support.test.espresso.Espresso; | |
| 21 import android.support.test.espresso.IdlingPolicies; | 23 import android.support.test.espresso.IdlingPolicies; | 
| 24 import android.support.test.espresso.IdlingResource; | |
| 22 import android.support.test.filters.LargeTest; | 25 import android.support.test.filters.LargeTest; | 
| 23 import android.support.test.rule.ActivityTestRule; | 26 import android.support.test.rule.ActivityTestRule; | 
| 24 import android.support.test.runner.AndroidJUnit4; | 27 import android.support.test.runner.AndroidJUnit4; | 
| 25 import android.support.test.InstrumentationRegistry; | 28 import android.support.test.InstrumentationRegistry; | 
| 26 import java.util.UUID; | 29 import java.util.UUID; | 
| 27 import java.util.concurrent.TimeUnit; | 30 import java.util.concurrent.TimeUnit; | 
| 28 import org.appspot.apprtc.CallActivity; | 31 import org.appspot.apprtc.CallActivity; | 
| 29 import org.appspot.apprtc.ConnectActivity; | 32 import org.appspot.apprtc.ConnectActivity; | 
| 30 import org.appspot.apprtc.R; | 33 import org.appspot.apprtc.R; | 
| 34 import org.junit.After; | |
| 35 import org.junit.Before; | |
| 31 import org.junit.Rule; | 36 import org.junit.Rule; | 
| 32 import org.junit.Test; | 37 import org.junit.Test; | 
| 33 import org.junit.runner.RunWith; | 38 import org.junit.runner.RunWith; | 
| 34 | 39 | 
| 35 /** | 40 /** | 
| 36 * Used to start a loopback call with video input from file and video output als o to file. | 41 * Used to start a loopback call with video input from file and video output als o to file. | 
| 37 * The test case is a building block in other testing for video quality. | 42 * The test case is a building block in other testing for video quality. | 
| 38 */ | 43 */ | 
| 39 @RunWith(AndroidJUnit4.class) | 44 @RunWith(AndroidJUnit4.class) | 
| 40 @LargeTest | 45 @LargeTest | 
| 41 public class ConnectActivityStubbedInputOutputTest { | 46 public class ConnectActivityStubbedInputOutputTest { | 
| 42 private static final String TAG = "ConnectActivityStubbedInputOutputTest"; | 47 private static final String TAG = "ConnectActivityStubbedInputOutputTest"; | 
| 43 | 48 | 
| 44 @Rule | 49 @Rule | 
| 45 public ActivityTestRule<ConnectActivity> rule = | 50 public ActivityTestRule<CallActivity> rule = | 
| 46 new ActivityTestRule<ConnectActivity>(ConnectActivity.class) { | 51 new ActivityTestRule<CallActivity>(CallActivity.class) { | 
| 47 @Override | 52 @Override | 
| 48 protected Intent getActivityIntent() { | 53 protected Intent getActivityIntent() { | 
| 49 Context context = InstrumentationRegistry.getInstrumentation().getTarg etContext(); | 54 Context context = | 
| 50 Intent intent = new Intent("android.intent.action.VIEW", Uri.parse("ht tps://appr.tc"), | 55 InstrumentationRegistry | 
| 51 context, ConnectActivity.class); | 56 .getContext(); // InstrumentationRegistry.getInstrumentation() .getTargetContext(); | 
| 57 Intent intent = new Intent("android.intent.action.VIEW", Uri.parse("ht tps://appr.tc")); | |
| 58 // context, IdlingResourceCallActivity.class); | |
| 
 
kjellander_webrtc
2017/03/10 10:40:38
Please remove commented code.
 
 | |
| 59 // intent.setClassName( | |
| 60 // "org.appsport.apprtc.test", "org.appsport.apprtc.test.IdlingReso urceCallActivity2"); | |
| 61 // Intent intent = new Intent("android.intent.action.VIEW", Uri.parse( "https://appr.tc"), | |
| 62 // context, IdlingResourceCallActivity.class); | |
| 52 | 63 | 
| 53 intent.putExtra(CallActivity.EXTRA_USE_VALUES_FROM_INTENT, true); | 64 intent.putExtra(CallActivity.EXTRA_USE_VALUES_FROM_INTENT, true); | 
| 54 | 65 | 
| 55 intent.putExtra(CallActivity.EXTRA_LOOPBACK, true); | 66 intent.putExtra(CallActivity.EXTRA_LOOPBACK, true); | 
| 56 intent.putExtra(CallActivity.EXTRA_AUDIOCODEC, "OPUS"); | 67 intent.putExtra(CallActivity.EXTRA_AUDIOCODEC, "OPUS"); | 
| 57 intent.putExtra(CallActivity.EXTRA_VIDEOCODEC, "VP8"); | 68 intent.putExtra(CallActivity.EXTRA_VIDEOCODEC, "VP8"); | 
| 58 intent.putExtra(CallActivity.EXTRA_CAPTURETOTEXTURE_ENABLED, false); | 69 intent.putExtra(CallActivity.EXTRA_CAPTURETOTEXTURE_ENABLED, false); | 
| 59 intent.putExtra(CallActivity.EXTRA_CAMERA2, false); | 70 intent.putExtra(CallActivity.EXTRA_CAMERA2, false); | 
| 60 intent.putExtra(CallActivity.EXTRA_ROOMID, UUID.randomUUID().toString( ).substring(0, 8)); | 71 intent.putExtra(CallActivity.EXTRA_ROOMID, UUID.randomUUID().toString( ).substring(0, 8)); | 
| 61 | 72 | 
| 62 intent.putExtra(CallActivity.EXTRA_VIDEO_FILE_AS_CAMERA, | 73 intent.putExtra(CallActivity.EXTRA_VIDEO_FILE_AS_CAMERA, | 
| 63 Environment.getExternalStorageDirectory().getAbsolutePath() | 74 Environment.getExternalStorageDirectory().getAbsolutePath() | 
| 64 + "/chromium_tests_root/resources/reference_video_640x360_30fp s.y4m"); | 75 + "/chromium_tests_root/resources/reference_video_640x360_30fp s.y4m"); | 
| 65 | 76 | 
| 66 intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE, | 77 intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE, | 
| 67 Environment.getExternalStorageDirectory().getAbsolutePath() + "/ou tput.y4m"); | 78 Environment.getExternalStorageDirectory().getAbsolutePath() + "/ou tput.y4m"); | 
| 68 intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_WIDTH, 64 0); | 79 intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_WIDTH, 64 0); | 
| 69 intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_HEIGHT, 3 60); | 80 intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_HEIGHT, 3 60); | 
| 70 | 81 | 
| 71 return intent; | 82 return intent; | 
| 72 } | 83 } | 
| 73 }; | 84 }; | 
| 74 | 85 | 
| 86 private static class BusyResource implements CallActivity.CountingResource { | |
| 87 CountingIdlingResource countingIdlingResource = new CountingIdlingResource(" BusyResource"); | |
| 88 | |
| 89 @Override | |
| 90 public void increment() { | |
| 91 countingIdlingResource.increment(); | |
| 92 } | |
| 93 | |
| 94 @Override | |
| 95 public void decrement() { | |
| 96 countingIdlingResource.decrement(); | |
| 97 } | |
| 98 } | |
| 99 private IdlingResource idlingResource; | |
| 100 | |
| 101 @Before | |
| 102 public void registerIdlingResource() { | |
| 103 // idlingResource = rule.getActivity().getIdlingResource(); | |
| 104 BusyResource busyR = new BusyResource(); | |
| 105 idlingResource = busyR.countingIdlingResource; | |
| 106 rule.getActivity().setCountingResource(busyR); | |
| 107 Espresso.registerIdlingResources(idlingResource); | |
| 108 } | |
| 109 | |
| 110 @After | |
| 111 public void unregisterIdlingResources() { | |
| 112 if (idlingResource != null) { | |
| 113 Espresso.unregisterIdlingResources(idlingResource); | |
| 114 } | |
| 115 } | |
| 116 | |
| 75 @Test | 117 @Test | 
| 76 public void testLoopback() throws InterruptedException { | 118 public void testLoopback() throws InterruptedException { | 
| 77 // The time to write down the data during closing of the program can take a while. | 119 // The time to write down the data during closing of the program can take a while. | 
| 78 IdlingPolicies.setMasterPolicyTimeout(240000, TimeUnit.MILLISECONDS); | 120 IdlingPolicies.setMasterPolicyTimeout(240000, TimeUnit.MILLISECONDS); | 
| 79 | 121 | 
| 80 // During the time we sleep it will record video. | 122 // During the time we sleep it will record video. | 
| 81 Thread.sleep(10000); | 123 Thread.sleep(10000); | 
| 82 | 124 | 
| 83 // Click on hang-up button. | 125 // Click on hang-up button. | 
| 84 onView(withId(R.id.button_call_disconnect)).perform(click()); | 126 // onView(withId(R.id.button_call_disconnect)).perform(click()); | 
| 
 
kjellander_webrtc
2017/03/10 10:40:38
Should this be restored?
 
 | |
| 85 } | 127 } | 
| 86 } | 128 } | 
| OLD | NEW |