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
5package org.chromium.mojo;
6
7import android.content.Context;
8import android.test.InstrumentationTestCase;
9
10import org.chromium.base.JNINamespace;
11import org.chromium.base.library_loader.LibraryLoader;
12
13/**
14 * Base class to test mojo. Setup the environment.
15 */
16@JNINamespace("mojo::android")
17public class MojoTestCase extends InstrumentationTestCase {
18
19    private long mTestEnvironmentPointer;
20
21    /**
22     * @see junit.framework.TestCase#setUp()
23     */
24    @Override
25    protected void setUp() throws Exception {
26        super.setUp();
27        LibraryLoader.ensureInitialized();
28        nativeInitApplicationContext(getInstrumentation().getTargetContext());
29        mTestEnvironmentPointer = nativeSetupTestEnvironment();
30    }
31
32    /**
33     * @see android.test.InstrumentationTestCase#tearDown()
34     */
35    @Override
36    protected void tearDown() throws Exception {
37        nativeTearDownTestEnvironment(mTestEnvironmentPointer);
38        super.tearDown();
39    }
40
41    private native void nativeInitApplicationContext(Context context);
42
43    private native long nativeSetupTestEnvironment();
44
45    private native void nativeTearDownTestEnvironment(long testEnvironment);
46
47    protected native void nativeRunLoop(long timeoutMS);
48
49}
50