[android-developers] Testing with Activity Monitor
I am trying to write unit tests for my application. I have a button that initiates a call, and to test it I am trying to use an Activity Monitor to block the call, but for some reason the call is allowed to execute, causing the test to fail. My test case is written as follows: public void test2Launches() { Instrumentation instr = getInstrumentation(); IntentFilter callFilter = new IntentFilter(Intent.ACTION_CALL); Instrumentation.ActivityMonitor monitor = instr.addMonitor(callFilter, null, true); mActivity.runOnUiThread( new Runnable() { public void run() { mCallButton.requestFocus(); } } ); this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER); assertEquals(1, monitor.getHits()); } Any help on why this isn't working would be appreciated. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: Testing with Activity Monitor
The Dialer activity is not blocked, it is allowed to launch. Also, the assertEquals(1, monitor.getHits()) fails with a value of 0. On Apr 11, 6:27 pm, Dianne Hackborn hack...@android.com wrote: What is the error you are getting? On Mon, Apr 11, 2011 at 1:30 PM, Brian Phagan phagan@gmail.com wrote: I am trying to write unit tests for my application. I have a button that initiates a call, and to test it I am trying to use an Activity Monitor to block the call, but for some reason the call is allowed to execute, causing the test to fail. My test case is written as follows: public void test2Launches() { Instrumentation instr = getInstrumentation(); IntentFilter callFilter = new IntentFilter(Intent.ACTION_CALL); Instrumentation.ActivityMonitor monitor = instr.addMonitor(callFilter, null, true); mActivity.runOnUiThread( new Runnable() { public void run() { mCallButton.requestFocus(); } } ); this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER); assertEquals(1, monitor.getHits()); } Any help on why this isn't working would be appreciated. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: Testing with Activity Monitor
I have added the category to the intent filter, but still no luck. Code now looks like this: public void test2Launches() { Instrumentation instr = getInstrumentation(); IntentFilter callFilter = new IntentFilter(Intent.ACTION_CALL); callFilter.addCategory(Intent.CATEGORY_DEFAULT); Instrumentation.ActivityMonitor monitor = instr.addMonitor(callFilter, null, true); assertNotNull(mCallButton); mActivity.runOnUiThread( new Runnable() { public void run() { mCallButton.requestFocus(); } } ); this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER); assertEquals(1, monitor.getHits()); } On Apr 11, 6:50 pm, Dianne Hackborn hack...@android.com wrote: Your intent filter also needs to handle CATEGORY_DEFAULT. This should be the exact same thing you would put in the manifest to handle an intent. On Mon, Apr 11, 2011 at 4:43 PM, Brian Phagan phagan@gmail.com wrote: The Dialer activity is not blocked, it is allowed to launch. Also, the assertEquals(1, monitor.getHits()) fails with a value of 0. On Apr 11, 6:27 pm, Dianne Hackborn hack...@android.com wrote: What is the error you are getting? On Mon, Apr 11, 2011 at 1:30 PM, Brian Phagan phagan@gmail.com wrote: I am trying to write unit tests for my application. I have a button that initiates a call, and to test it I am trying to use an Activity Monitor to block the call, but for some reason the call is allowed to execute, causing the test to fail. My test case is written as follows: public void test2Launches() { Instrumentation instr = getInstrumentation(); IntentFilter callFilter = new IntentFilter(Intent.ACTION_CALL); Instrumentation.ActivityMonitor monitor = instr.addMonitor(callFilter, null, true); mActivity.runOnUiThread( new Runnable() { public void run() { mCallButton.requestFocus(); } } ); this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER); assertEquals(1, monitor.getHits()); } Any help on why this isn't working would be appreciated. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en
[android-developers] Re: Testing with Activity Monitor
04-12 00:38:32.894: INFO/ActivityManager(59): Starting activity: Intent { act=android.intent.action.CALL dat=tel:5733415688 cmp=com.android.phone/.OutgoingCallBroadcaster } On Apr 11, 7:28 pm, Dianne Hackborn hack...@android.com wrote: What do you see in the log as the actual intent being started? On Mon, Apr 11, 2011 at 5:24 PM, Brian Phagan phagan@gmail.com wrote: I have added the category to the intent filter, but still no luck. Code now looks like this: public void test2Launches() { Instrumentation instr = getInstrumentation(); IntentFilter callFilter = new IntentFilter(Intent.ACTION_CALL); callFilter.addCategory(Intent.CATEGORY_DEFAULT); Instrumentation.ActivityMonitor monitor = instr.addMonitor(callFilter, null, true); assertNotNull(mCallButton); mActivity.runOnUiThread( new Runnable() { public void run() { mCallButton.requestFocus(); } } ); this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER); assertEquals(1, monitor.getHits()); } On Apr 11, 6:50 pm, Dianne Hackborn hack...@android.com wrote: Your intent filter also needs to handle CATEGORY_DEFAULT. This should be the exact same thing you would put in the manifest to handle an intent. On Mon, Apr 11, 2011 at 4:43 PM, Brian Phagan phagan@gmail.com wrote: The Dialer activity is not blocked, it is allowed to launch. Also, the assertEquals(1, monitor.getHits()) fails with a value of 0. On Apr 11, 6:27 pm, Dianne Hackborn hack...@android.com wrote: What is the error you are getting? On Mon, Apr 11, 2011 at 1:30 PM, Brian Phagan phagan@gmail.com wrote: I am trying to write unit tests for my application. I have a button that initiates a call, and to test it I am trying to use an Activity Monitor to block the call, but for some reason the call is allowed to execute, causing the test to fail. My test case is written as follows: public void test2Launches() { Instrumentation instr = getInstrumentation(); IntentFilter callFilter = new IntentFilter(Intent.ACTION_CALL); Instrumentation.ActivityMonitor monitor = instr.addMonitor(callFilter, null, true); mActivity.runOnUiThread( new Runnable() { public void run() { mCallButton.requestFocus(); } } ); this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER); assertEquals(1, monitor.getHits()); } Any help on why this isn't working would be appreciated. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups Android Developers group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -- Dianne Hackborn