12d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen/*
22d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen * Copyright (C) 2009 The Android Open Source Project
32d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen *
42d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen * Licensed under the Apache License, Version 2.0 (the "License");
52d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen * you may not use this file except in compliance with the License.
62d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen * You may obtain a copy of the License at
72d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen *
82d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen *      http://www.apache.org/licenses/LICENSE-2.0
92d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen *
102d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen * Unless required by applicable law or agreed to in writing, software
112d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen * distributed under the License is distributed on an "AS IS" BASIS,
122d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen * See the License for the specific language governing permissions and
142d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen * limitations under the License.
152d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen */
162d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
172d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenpackage com.android.mediaframeworktest.functional;
182d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
192d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenimport com.android.mediaframeworktest.MediaFrameworkTest;
202d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenimport com.android.mediaframeworktest.MediaNames;
212d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
222d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenimport android.test.ActivityInstrumentationTestCase2;
232d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenimport android.util.Log;
242d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenimport android.test.suitebuilder.annotation.LargeTest;
252d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenimport android.test.suitebuilder.annotation.MediumTest;
262d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenimport android.test.suitebuilder.annotation.Suppress;
272d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
282d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenimport android.media.MediaPlayer;
292d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenimport android.os.Parcel;
302d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
312d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenimport java.util.Calendar;
322d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenimport java.util.Random;
332d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
342d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen// Tests for the invoke method in the MediaPlayer.
352d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissenpublic class MediaPlayerInvokeTest extends ActivityInstrumentationTestCase2<MediaFrameworkTest> {
362d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen   private static final String TAG = "MediaPlayerInvokeTest";
372d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen   private MediaPlayer mPlayer;
382d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen   private Random rnd;
392d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
402d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen   public MediaPlayerInvokeTest() {
412d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen       super("com.android.mediaframeworktest", MediaFrameworkTest.class);
422d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen       rnd = new Random(Calendar.getInstance().getTimeInMillis());
432d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen    }
442d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
452d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen    @Override
462d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen    protected void setUp() throws Exception {
472d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen      super.setUp();
482d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen      mPlayer = new MediaPlayer();
492d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen    }
502d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
512d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen    @Override
522d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen    protected void tearDown() throws Exception {
532d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen        mPlayer.release();
542d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen        super.tearDown();
552d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen    }
562d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
572d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen    // Generate a random number, sends it to the ping test player.
582d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen    @Suppress
592d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen    @MediumTest
602d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen    public void testPing() throws Exception {
612d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen        mPlayer.setDataSource("test:invoke_mock_media_player.so?url=ping");
622d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
632d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen        Parcel request = mPlayer.newRequest();
642d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen        Parcel reply = Parcel.obtain();
652d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen
662d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen        int val = rnd.nextInt();
672d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen        request.writeInt(val);
682d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen        mPlayer.invoke(request, reply);
692d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen        assertEquals(val, reply.readInt());
702d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen   }
712d2cd32cc7293bbb48b0f0e70a0dc7eb05cac9d3Marco Nelissen}
72