• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
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.mojo;
6 
7 import android.content.Context;
8 import android.test.InstrumentationTestCase;
9 
10 import org.chromium.base.ContextUtils;
11 import org.chromium.base.annotations.JNINamespace;
12 import org.chromium.base.library_loader.LibraryLoader;
13 import org.chromium.base.library_loader.LibraryProcessType;
14 
15 /**
16  * Base class to test mojo. Setup the environment.
17  */
18 @JNINamespace("mojo::android")
19 public class MojoTestCase extends InstrumentationTestCase {
20 
21     private long mTestEnvironmentPointer;
22 
23     /**
24      * @see junit.framework.TestCase#setUp()
25      */
26     @Override
setUp()27     protected void setUp() throws Exception {
28         super.setUp();
29         Context appContext = getInstrumentation().getTargetContext().getApplicationContext();
30         ContextUtils.initApplicationContext(appContext);
31         LibraryLoader.get(LibraryProcessType.PROCESS_BROWSER).ensureInitialized(appContext);
32         nativeInit();
33         mTestEnvironmentPointer = nativeSetupTestEnvironment();
34     }
35 
36     /**
37      * @see android.test.InstrumentationTestCase#tearDown()
38      */
39     @Override
tearDown()40     protected void tearDown() throws Exception {
41         nativeTearDownTestEnvironment(mTestEnvironmentPointer);
42         super.tearDown();
43     }
44 
45     /**
46      * Runs the run loop for the given time.
47      */
runLoop(long timeoutMS)48     protected void runLoop(long timeoutMS) {
49         nativeRunLoop(timeoutMS);
50     }
51 
52     /**
53      * Runs the run loop until no handle or task are immediately available.
54      */
runLoopUntilIdle()55     protected void runLoopUntilIdle() {
56         nativeRunLoop(0);
57     }
58 
nativeInit()59     private native void nativeInit();
60 
nativeSetupTestEnvironment()61     private native long nativeSetupTestEnvironment();
62 
nativeTearDownTestEnvironment(long testEnvironment)63     private native void nativeTearDownTestEnvironment(long testEnvironment);
64 
nativeRunLoop(long timeoutMS)65     private native void nativeRunLoop(long timeoutMS);
66 
67 }
68