Home | History | Annotate | Download | only in robolectric
      1 package com.xtremelabs.robolectric;
      2 
      3 import android.app.Application;
      4 import com.xtremelabs.robolectric.shadows.ShadowApplication;
      5 import org.junit.Test;
      6 import org.junit.runner.RunWith;
      7 
      8 import java.util.List;
      9 
     10 import static com.xtremelabs.robolectric.Robolectric.shadowOf;
     11 import static com.xtremelabs.robolectric.util.TestUtil.newConfig;
     12 import static org.junit.Assert.assertEquals;
     13 import static org.junit.Assert.assertTrue;
     14 
     15 @RunWith(WithTestDefaultsRunner.class)
     16 public class ApplicationResolverTest {
     17 
     18     @Test(expected = RuntimeException.class)
     19     public void shouldThrowWhenManifestContainsBadApplicationClassName() throws Exception {
     20         new ApplicationResolver(newConfig("TestAndroidManifestWithBadAppName.xml")).resolveApplication();
     21     }
     22 
     23     @Test
     24     public void shouldReturnDefaultAndroidApplicationWhenManifestDeclaresNoAppName() throws Exception {
     25         assertEquals(Application.class,
     26                 new ApplicationResolver(newConfig("TestAndroidManifest.xml")).resolveApplication().getClass());
     27     }
     28 
     29     @Test
     30     public void shouldReturnSpecifiedApplicationWhenManifestDeclaresAppName() throws Exception {
     31         assertEquals(TestApplication.class,
     32                 new ApplicationResolver(newConfig("TestAndroidManifestWithAppName.xml")).resolveApplication().getClass());
     33     }
     34 
     35     @Test
     36     public void shouldAssignThePackageNameFromTheManifest() throws Exception {
     37         Application application = new ApplicationResolver(newConfig("TestAndroidManifestWithPackageName.xml")).resolveApplication();
     38         assertEquals("com.wacka.wa", application.getPackageName());
     39     }
     40 
     41     @Test
     42     public void shouldAssignTheApplicationNameFromTheManifest() throws Exception {
     43         Application application = new ApplicationResolver(newConfig("TestAndroidManifestWithAppName.xml")).resolveApplication();
     44         assertEquals("com.xtremelabs.robolectric.TestApplication", application.getApplicationInfo().name);
     45     }
     46 
     47     @Test
     48     public void shouldRegisterReceiversFromTheManifest() throws Exception {
     49         Application application = new ApplicationResolver(newConfig("TestAndroidManifestWithReceivers.xml")).resolveApplication();
     50         List<ShadowApplication.Wrapper> receivers = shadowOf(application).getRegisteredReceivers();
     51         assertEquals(7, receivers.size());
     52         assertTrue(receivers.get(0).intentFilter.matchAction("com.xtremelabs.robolectric.ACTION1"));
     53     }
     54 }
     55