• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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