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