1 package org.robolectric.shadows; 2 3 import java.lang.reflect.Method; 4 import org.junit.runner.RunWith; 5 import org.junit.runners.model.FrameworkMethod; 6 import org.junit.runners.model.InitializationError; 7 import org.robolectric.RobolectricTestRunner; 8 import org.robolectric.internal.bytecode.Sandbox; 9 import org.robolectric.shadows.ShadowNewPackageManagerTest.ManifestParserTestRunner; 10 11 /** Test shadow package mgr with new framework manifest parser */ 12 @RunWith(ManifestParserTestRunner.class) 13 public final class ShadowNewPackageManagerTest extends ShadowPackageManagerTest { 14 15 /** 16 * Custom test runner that turns on framework manifest parsing. 17 * 18 * <p>A custom test runnner is needed because it needs to change state before 19 * setUpApplicationState is called. 20 */ 21 public static class ManifestParserTestRunner extends RobolectricTestRunner { 22 23 public ManifestParserTestRunner(Class<?> testClass) throws InitializationError { 24 super(testClass); 25 } 26 27 @Override 28 protected void beforeTest(Sandbox sandbox, FrameworkMethod method, Method bootstrappedMethod) 29 throws Throwable { 30 System.setProperty("use_framework_manifest_parser", "true"); 31 super.beforeTest(sandbox, method, bootstrappedMethod); 32 } 33 34 @Override 35 protected void afterTest(FrameworkMethod method, Method bootstrappedMethod) { 36 System.setProperty("use_framework_manifest_parser", "false"); 37 super.afterTest(method, bootstrappedMethod); 38 } 39 } 40 } 41