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