package com.android.tests.basic;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.MediumTest;
import android.widget.TextView;
import android.test.UiThreadTest;
import android.os.Looper;
public class MainTest extends ActivityInstrumentationTestCase2<Main> {
private TextView mTextView;
private StringProvider stringProvider;
/**
* Creates an {@link ActivityInstrumentationTestCase2} that tests the {@link Main} activity.
*/
public MainTest() {
super(Main.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
final Main a = getActivity();
// ensure a valid handle to the activity has been returned
assertNotNull(a);
mTextView = (TextView) a.findViewById(R.id.dateText);
}
/**
* The name 'test preconditions' is a convention to signal that if this
* test doesn't pass, the test case was not set up properly and it might
* explain any and all failures in other tests. This is not guaranteed
* to run before other tests, as junit uses reflection to find the tests.
*/
@MediumTest
public void testPreconditions() {
assertNotNull(mTextView);
}
public void testTextViewContent() {
assertEquals(
"1234,com.android.tests.basic.IndirectlyReferencedClass",
mTextView.getText().toString());
}
/** Test using a obfuscated class */
public void testObfuscatedCode() {
final Main a = getActivity();
StringProvider sp = a.getStringProvider();
assertEquals("42", sp.getString(42));
assertEquals("com.android.tests.basic.a", StringProvider.class.getName());
}
public void testUseTestClass() {
UsedTestClass o = new UsedTestClass();
o.doSomething();
assertEquals("com.android.tests.basic.UsedTestClass", UsedTestClass.class.getName());
}
@UiThreadTest
public void testAnnotationNotStripped() {
assertTrue("Should be running on UI thread", Looper.myLooper() == Looper.getMainLooper());
}
}