1 /*
2  * Copyright (C) 2008 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.music.tests.stress;
17 
18 import android.app.Activity;
19 import android.app.ActivityManager;
20 import android.app.Instrumentation;
21 import android.app.Instrumentation.ActivityMonitor;
22 import android.content.Context;
23 import android.content.Intent;
24 import android.os.Bundle;
25 import android.os.SystemClock;
26 import android.test.ActivityInstrumentationTestCase;
27 import android.test.suitebuilder.annotation.LargeTest;
28 import android.view.KeyEvent;
29 import android.util.Log;
30 
31 import com.android.music.AlbumBrowserActivity;
32 import com.android.music.tests.MusicPlayerNames;
33 
34 public class AlbumsPlaybackStress extends ActivityInstrumentationTestCase <AlbumBrowserActivity>{
35 
36   private Activity browseActivity;
37   private String[] testing;
38   private String TAG = "AlbumsPlaybackStress";
39 
AlbumsPlaybackStress()40   public AlbumsPlaybackStress() {
41       super("com.android.music",AlbumBrowserActivity.class);
42   }
43 
44   @Override
setUp()45   protected void setUp() throws Exception {
46       super.setUp();
47   }
48 
49   @Override
tearDown()50   protected void tearDown() throws Exception {
51       super.tearDown();
52   }
53 
54   /*
55    * Test case: Keeps launching music playback from Albums and then go
56    * back to the album screen
57    * Verification: Check if it is in low memory
58    * The test depends on the test media in the sdcard
59    */
60     @LargeTest
testAlbumPlay()61     public void testAlbumPlay() {
62       Instrumentation inst = getInstrumentation();
63       try{
64         inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_RIGHT);
65         inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_RIGHT);
66         inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);
67         inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);
68         inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);
69         Thread.sleep(MusicPlayerNames.WAIT_LONG_TIME);
70         inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
71         inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
72         for(int i=0; i< MusicPlayerNames.NO_ALBUMS_TOBE_PLAYED; i++){
73           inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
74           inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);
75           inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);
76           Thread.sleep(MusicPlayerNames.WAIT_LONG_TIME);
77           inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
78           inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
79         }
80       }catch (Exception e){
81           Log.v(TAG, e.toString());
82       }
83       inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
84 
85       //Verification: check if it is in low memory
86       ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
87       ((ActivityManager)getActivity().getSystemService(Context.ACTIVITY_SERVICE)).getMemoryInfo(mi);
88       assertFalse(TAG, mi.lowMemory);
89 
90 
91   }
92 }
93