1c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau/*
2c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau * Copyright (C) 2009 The Android Open Source Project
3c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau *
4c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau * Licensed under the Apache License, Version 2.0 (the "License");
5c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau * you may not use this file except in compliance with the License.
6c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau * You may obtain a copy of the License at
7c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau *
8c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau *      http://www.apache.org/licenses/LICENSE-2.0
9c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau *
10c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau * Unless required by applicable law or agreed to in writing, software
11c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau * distributed under the License is distributed on an "AS IS" BASIS,
12c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau * See the License for the specific language governing permissions and
14c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau * limitations under the License.
15c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau */
16c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau
17c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Laupackage com.android.music.tests;
18c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau
19c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lauimport android.app.Instrumentation;
20c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lauimport com.android.music.TrackBrowserActivity;
21c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lauimport android.view.KeyEvent;
22c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lauimport android.widget.ListView;
23c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau
24c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lauimport android.test.ActivityInstrumentationTestCase2;
25c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lauimport android.test.suitebuilder.annotation.LargeTest;
26c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau
27c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau/**
28c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau * Junit / Instrumentation test case for the Music Player
29c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau */
30c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau
31c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Laupublic class MusicPlayerStability extends ActivityInstrumentationTestCase2 <TrackBrowserActivity>{
32c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    private static String TAG = "musicplayerstability";
33c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    private static int PLAY_TIME = 30000;
34c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    private ListView mTrackList;
35c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau
36c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    public MusicPlayerStability() {
37c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau        super("com.android.music",TrackBrowserActivity.class);
38c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    }
39c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau
40c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    @Override
41c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    protected void setUp() throws Exception {
42c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau        getActivity();
43c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau        super.setUp();
44c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    }
45c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau
46c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    @Override
47c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    protected void tearDown() throws Exception {
48c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau        super.tearDown();
49c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    }
50c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau
51c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    /**
52c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau     * Test case 1: This test case is for the power and general stability
53c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau     * measurment. We don't need to do the validation. This test case simply
54c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau     * play the mp3 for 30 seconds then stop.
55c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau     * The sdcard should have the target mp3 files.
56c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau     */
57c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    @LargeTest
58b1808db8eeef41beadf87ed4c0fa13e911e28ed4Yu Shan Emily Lau    public void testPlay30sMP3() throws Exception {
59c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau        // Launch the songs list. Pick the fisrt song and play
60c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau        try {
61c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau            Instrumentation inst = getInstrumentation();
6271a020a9dc541fe62e7935f8c1e55a1f7682d7aaYu Shan Emily Lau            //Make sure the song list shown up
6371a020a9dc541fe62e7935f8c1e55a1f7682d7aaYu Shan Emily Lau            Thread.sleep(2000);
64c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau            inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
65c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau            mTrackList = getActivity().getListView();
6671a020a9dc541fe62e7935f8c1e55a1f7682d7aaYu Shan Emily Lau            int scrollCount = mTrackList.getMaxScrollAmount();
67c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau            //Make sure there is at least one song in the sdcard
6871a020a9dc541fe62e7935f8c1e55a1f7682d7aaYu Shan Emily Lau            if (scrollCount != -1) {
69c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau                inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);
70c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau            } else {
71c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau                assertTrue("testPlayMP3", false);
72c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau            }
73c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau            Thread.sleep(PLAY_TIME);
74c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau        } catch (Exception e) {
75c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau            assertTrue("testPlayMP3", false);
76c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau        }
77c19ee799c733726d593e8257d48e4acab82b016eYu Shan Emily Lau    }
7882b4bf7645c64e2d2af020b8ebce33268ce3c259Yu Shan Emily Lau
7982b4bf7645c64e2d2af020b8ebce33268ce3c259Yu Shan Emily Lau    @LargeTest
80b1808db8eeef41beadf87ed4c0fa13e911e28ed4Yu Shan Emily Lau    public void testLaunchMusicPlayer() throws Exception {
8182b4bf7645c64e2d2af020b8ebce33268ce3c259Yu Shan Emily Lau        // Launch music player and sleep for 30 seconds to capture
8282b4bf7645c64e2d2af020b8ebce33268ce3c259Yu Shan Emily Lau        // the music player power usage base line.
8382b4bf7645c64e2d2af020b8ebce33268ce3c259Yu Shan Emily Lau        try {
8482b4bf7645c64e2d2af020b8ebce33268ce3c259Yu Shan Emily Lau            Thread.sleep(PLAY_TIME);
8582b4bf7645c64e2d2af020b8ebce33268ce3c259Yu Shan Emily Lau        } catch (Exception e) {
8682b4bf7645c64e2d2af020b8ebce33268ce3c259Yu Shan Emily Lau            assertTrue("MusicPlayer Do Nothing", false);
8782b4bf7645c64e2d2af020b8ebce33268ce3c259Yu Shan Emily Lau        }
8882b4bf7645c64e2d2af020b8ebce33268ce3c259Yu Shan Emily Lau        assertTrue("MusicPlayer Do Nothing", true);
8982b4bf7645c64e2d2af020b8ebce33268ce3c259Yu Shan Emily Lau    }
90b1808db8eeef41beadf87ed4c0fa13e911e28ed4Yu Shan Emily Lau}
91