171f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau/*
271f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau * Copyright (C) 2009 The Android Open Source Project
371f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau *
471f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau * Licensed under the Apache License, Version 2.0 (the "License");
571f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau * you may not use this file except in compliance with the License.
671f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau * You may obtain a copy of the License at
771f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau *
871f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau *      http://www.apache.org/licenses/LICENSE-2.0
971f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau *
1071f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau * Unless required by applicable law or agreed to in writing, software
1171f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau * distributed under the License is distributed on an "AS IS" BASIS,
1271f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1371f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau * See the License for the specific language governing permissions and
1471f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau * limitations under the License.
1571f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau */
1671f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
1771f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
1807d483e5da80176484bff536d118cc061f28e586Tom Taylorpackage com.android.mms;
1971f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
2071f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lauimport com.android.mms.R;
2171f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lauimport com.android.mms.ui.ComposeMessageActivity;
2271f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
2371f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lauimport android.app.Instrumentation;
2471f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
2571f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lauimport android.test.suitebuilder.annotation.LargeTest;
2671f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lauimport android.test.ActivityInstrumentationTestCase2;
2771f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
2871f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lauimport android.util.Log;
2971f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lauimport android.view.KeyEvent;
3071f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lauimport android.widget.Button;
3171f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
3271f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau/**
3371f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau *
3471f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau * Junit / Instrumentation test case for mms stability test
3571f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau *
3671f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau */
3771f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
3871f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Laupublic class MmsStability extends ActivityInstrumentationTestCase2 <ComposeMessageActivity> {
3971f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    private static String TAG = "MmsStability";
4071f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    private static int NO_OF_MESSAGE_SEND = 5; //Total number of messages
4171f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    private static String MESSAGE_CONTENT = "This is a system stability " +
4271f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau                             "test for MMS. This test case send 5 message " +
4371f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau                             "to the number which will reply automatically";
4471f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    private static int WAIT_TIME = 2000; //Set the short wait time for 2 sec.
4571f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    private static String RECIPIENT_NUMBER = "46645";
4671f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
4771f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    public MmsStability() {
4871f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau        super("com.android.mms", ComposeMessageActivity.class);
4971f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    }
5071f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
5171f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    @Override
5271f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    protected void setUp() throws Exception {
5371f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau        getActivity();
5471f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau        super.setUp();
5571f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    }
5671f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
5771f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    @Override
5871f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    protected void tearDown() throws Exception {
5971f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau        super.tearDown();
6071f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    }
6171f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
6271f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau // Create the object with the run() method
6371f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    Runnable runnable = new sendMms();
6471f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
6571f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    class sendMms implements Runnable {
6671f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau        // This method is called when the thread runs
6771f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau        public void run() {
6871f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            Instrumentation inst = getInstrumentation();
6971f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
7071f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            Button mSendButton = (Button) getActivity().getWindow().findViewById(R.id.send_button);
7171f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            mSendButton.performClick();
7271f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
7371f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            boolean messageSend = mSendButton.performClick();
7471f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            if (!messageSend) {
7571f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau                assertTrue("Fails to send mms", false);
7671f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau                Log.v(TAG, "messageSend is true");
7771f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            }
7871f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau        }
7971f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    }
8071f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
8171f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    // Send 5 mms to the same contact.
8271f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    @LargeTest
8313d289abe209ad91ac310655ffb762f74c5a7f49Yu Shan Emily Lau    public void testSend5MMS(){
8471f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau        try{
8571f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            Instrumentation inst = getInstrumentation();
8671f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            //This number will send automatic reply
8771f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            inst.sendStringSync(RECIPIENT_NUMBER);
8871f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
8971f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);
9071f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau
9171f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            for (int i = 0; i < NO_OF_MESSAGE_SEND; i++) {
9271f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau                // Enter the message
9371f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau                inst.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
9471f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau                inst.sendStringSync(MESSAGE_CONTENT);
9571f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau                // Send the mms message
9671f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau                inst.runOnMainSync(runnable);
9771f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau                Thread.sleep(WAIT_TIME);
9871f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            }
9971f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            assertTrue("Send MMS", true);
10071f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau        } catch (Exception e){
10171f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            assertTrue("Fails to send mms", false);
10271f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau            Log.v(TAG, e.toString());
10371f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau        }
10471f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau    }
105217bc6faaba728027141ad5f67030946d141d468Yu Shan Emily Lau
106217bc6faaba728027141ad5f67030946d141d468Yu Shan Emily Lau    @LargeTest
10713d289abe209ad91ac310655ffb762f74c5a7f49Yu Shan Emily Lau    public void testLaunchMMS() {
108217bc6faaba728027141ad5f67030946d141d468Yu Shan Emily Lau        // Added a do nothing test case to capture
109217bc6faaba728027141ad5f67030946d141d468Yu Shan Emily Lau        // the mms power usage base line.
110217bc6faaba728027141ad5f67030946d141d468Yu Shan Emily Lau        try {
111217bc6faaba728027141ad5f67030946d141d468Yu Shan Emily Lau            Thread.sleep(WAIT_TIME);
112217bc6faaba728027141ad5f67030946d141d468Yu Shan Emily Lau        } catch (Exception e) {
113217bc6faaba728027141ad5f67030946d141d468Yu Shan Emily Lau            assertTrue("MMS do nothing", false);
114217bc6faaba728027141ad5f67030946d141d468Yu Shan Emily Lau        }
115217bc6faaba728027141ad5f67030946d141d468Yu Shan Emily Lau        assertTrue("MMS do nothing", true);
116217bc6faaba728027141ad5f67030946d141d468Yu Shan Emily Lau    }
11771f6d218070b3fc12ded92aa83222c972013d466Yu Shan Emily Lau}
118