1 // Copyright 2023 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package org.chromium.base.test; 6 7 import com.google.auto.service.AutoService; 8 9 import org.robolectric.annotation.Config; 10 import org.robolectric.internal.bytecode.InstrumentationConfiguration; 11 12 import org.chromium.base.ResettersForTesting; 13 import org.chromium.base.test.util.TimeoutTimer; 14 import org.chromium.testing.local.ChromiumAndroidConfigurer; 15 16 /** Tells Robolectric which classes to exclude from its sandbox. */ 17 @AutoService(ChromiumAndroidConfigurer.ExtraConfiguration.class) 18 public class BaseRobolectricAndroidConfigurer 19 implements ChromiumAndroidConfigurer.ExtraConfiguration { 20 @Override withConfig(InstrumentationConfiguration.Builder builder, Config config)21 public void withConfig(InstrumentationConfiguration.Builder builder, Config config) { 22 builder.doNotAcquireClass(BaseRobolectricTestRunner.HelperTestRunner.class) 23 // Requires access to non-fake SystemClock. 24 .doNotAcquireClass(TimeoutTimer.class) 25 // Called from outside of sandbox classloader in BaseRobolectricTestRunner. 26 .doNotAcquireClass(ResettersForTesting.class); 27 } 28 } 29