18f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania/*
28f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania * Copyright (C) 2009 The Android Open Source Project
38f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania *
48f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania * Licensed under the Apache License, Version 2.0 (the "License");
58f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania * you may not use this file except in compliance with the License.
68f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania * You may obtain a copy of the License at
78f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania *
88f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania *      http://www.apache.org/licenses/LICENSE-2.0
98f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania *
108f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania * Unless required by applicable law or agreed to in writing, software
118f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania * distributed under the License is distributed on an "AS IS" BASIS,
128f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania * See the License for the specific language governing permissions and
148f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania * limitations under the License.
158f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania */
168f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
178f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniapackage com.android.mediaframeworktest.functional;
188f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
198f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniaimport com.android.mediaframeworktest.MediaFrameworkTest;
208f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniaimport com.android.mediaframeworktest.MediaNames;
218f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
228f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniaimport android.test.ActivityInstrumentationTestCase2;
238f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniaimport android.util.Log;
248f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniaimport android.test.suitebuilder.annotation.LargeTest;
258f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniaimport android.test.suitebuilder.annotation.MediumTest;
268f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniaimport android.test.suitebuilder.annotation.Suppress;
278f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
288f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniaimport android.media.MediaPlayer;
298f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniaimport android.os.Parcel;
308f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
318f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniaimport java.util.Calendar;
328f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniaimport java.util.Random;
338f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
348f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania// Tests for the invoke method in the MediaPlayer.
358f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Cataniapublic class MediaPlayerInvokeTest extends ActivityInstrumentationTestCase2<MediaFrameworkTest> {
368f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania   private static final String TAG = "MediaPlayerInvokeTest";
378f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania   private MediaPlayer mPlayer;
388f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania   private Random rnd;
398f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
408f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania   public MediaPlayerInvokeTest() {
418f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania       super("com.android.mediaframeworktest", MediaFrameworkTest.class);
428f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania       rnd = new Random(Calendar.getInstance().getTimeInMillis());
438f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania    }
448f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
458f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania    @Override
468f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania    protected void setUp() throws Exception {
478f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania      super.setUp();
488f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania      mPlayer = new MediaPlayer();
498f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania    }
508f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
518f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania    @Override
528f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania    protected void tearDown() throws Exception {
538f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania        mPlayer.release();
548f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania        super.tearDown();
558f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania    }
568f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
578f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania    // Generate a random number, sends it to the ping test player.
585b0b63b67489ae3fb14ad2fb000f0ad8977f8f30Yu Shan Emily Lau    @Suppress
598f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania    @MediumTest
608f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania    public void testPing() throws Exception {
618f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania        mPlayer.setDataSource("test:invoke_mock_media_player.so?url=ping");
628f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
638f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania        Parcel request = mPlayer.newRequest();
648f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania        Parcel reply = Parcel.obtain();
658f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania
668f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania        int val = rnd.nextInt();
678f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania        request.writeInt(val);
687a9734d769d97470ce6fac0594dd007804d33432James Dong        mPlayer.invoke(request, reply);
698f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania        assertEquals(val, reply.readInt());
708f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania   }
718f5fcab05f1d6f644a9c30f012b8ff302f24a118Nicolas Catania}
72