1792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project/* 2792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 3792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * 4792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * you may not use this file except in compliance with the License. 6792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * You may obtain a copy of the License at 7792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * 8792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * 10792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * See the License for the specific language governing permissions and 14792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project * limitations under the License. 15792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project */ 16792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectpackage com.android.music.tests.stress; 17792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project 18792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.app.Activity; 19792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.app.ActivityManager; 20792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.app.Instrumentation; 21792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.app.Instrumentation.ActivityMonitor; 22792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.content.Intent; 23792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.os.Bundle; 24792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.os.SystemClock; 25792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.test.ActivityInstrumentationTestCase; 26792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.test.suitebuilder.annotation.LargeTest; 27792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.view.KeyEvent; 28792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.util.Log; 29792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport android.content.Context; 30792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project 31792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project 32792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport com.android.music.MusicBrowserActivity; 33792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport com.android.music.MusicUtils; 34792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport com.android.music.TrackBrowserActivity; 35792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectimport com.android.music.tests.MusicPlayerNames; 36792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project 37792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Projectpublic class MusicPlaybackStress extends ActivityInstrumentationTestCase <TrackBrowserActivity>{ 38792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project private static String TAG = "mediaplayertests"; 39792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project 40792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project public MusicPlaybackStress() { 41792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project super("com.android.music",TrackBrowserActivity.class); 42792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project } 43792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project 44792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project @Override 45792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project protected void setUp() throws Exception { 46792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project super.setUp(); 47792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project } 48792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project 49792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project @Override 50792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project protected void tearDown() throws Exception { 51792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project super.tearDown(); 52792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project } 53792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project 54792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project @LargeTest 55792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project public void testPlayAllSongs() { 56792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project Activity mediaPlaybackActivity; 57792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project try{ 58792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project Instrumentation inst = getInstrumentation(); 59792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project ActivityMonitor mediaPlaybackMon = inst.addMonitor("com.android.music.MediaPlaybackActivity", 60792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project null, false); 61792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project inst.invokeMenuActionSync(getActivity(), MusicUtils.Defs.CHILD_MENU_BASE + 3, 0); 62792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project Thread.sleep(MusicPlayerNames.WAIT_LONG_TIME); 63792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project mediaPlaybackActivity = mediaPlaybackMon.waitForActivityWithTimeout(2000); 64792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project for (int i=0;i< MusicPlayerNames.NO_SKIPPING_SONGS;i++){ 65792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project Thread.sleep(MusicPlayerNames.SKIP_WAIT_TIME); 66792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project if (i==0){ 67792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project //Set the repeat all 68792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_RIGHT); 69792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_UP); 70792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER); 71792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project 72792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project //Set focus on the next button 73792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN); 74792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project } 75792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER); 76792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project } 77792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project mediaPlaybackActivity.finish(); 78792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project }catch (Exception e){ 79792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project Log.e(TAG, e.toString()); 80792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project } 81792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project //Verification: check if it is in low memory 82792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo(); 8315f18e524579b775d6075658f0587ebcd78e7683Christian Mehlmauer ((ActivityManager)getActivity().getSystemService(Context.ACTIVITY_SERVICE)).getMemoryInfo(mi); 84792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project assertFalse(TAG, mi.lowMemory); 85792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project } 86792a2206a4f05f6bd13fce902d3663892d2947afThe Android Open Source Project} 87