diff options
Diffstat (limited to 'tests/src/com/android/messaging/ui/FragmentTestCase.java')
-rw-r--r-- | tests/src/com/android/messaging/ui/FragmentTestCase.java | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/tests/src/com/android/messaging/ui/FragmentTestCase.java b/tests/src/com/android/messaging/ui/FragmentTestCase.java deleted file mode 100644 index eb65dc6..0000000 --- a/tests/src/com/android/messaging/ui/FragmentTestCase.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.messaging.ui; - -import android.app.Fragment; -import android.app.FragmentManager; -import android.content.res.Configuration; -import android.view.View; - -/** - * Helper class that extends Bugle.ui.ActivityInstrumentationTestCase to provide common behavior - * across fragment tests. - */ -public abstract class FragmentTestCase<T extends Fragment> - extends BugleActivityInstrumentationTestCase<TestActivity> { - - protected T mFragment; - protected Class<T> mFragmentClass; - - public FragmentTestCase(final Class<T> fragmentClass) { - super(TestActivity.class); - mFragmentClass = fragmentClass; - } - - @Override - protected void setUp() throws Exception { - super.setUp(); - } - - protected T getFragment() { - // Fragment creation deferred (typically until test time) so that factory/appcontext is - // ready. - if (mFragment == null) { - try { - mFragment = mFragmentClass.newInstance(); - } catch (final InstantiationException e) { - throw new IllegalStateException("Failed to instantiate fragment"); - } catch (final IllegalAccessException e) { - throw new IllegalStateException("Failed to instantiate fragment"); - } - } - - return mFragment; - } - - protected void attachFragment() { - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - final FragmentManager fragmentManager = getActivity().getFragmentManager(); - fragmentManager.beginTransaction().add(mFragment, null /* tag */).commit(); - } - }); - - getInstrumentation().waitForIdleSync(); - } - - @Override - protected void tearDown() throws Exception { - // In landscape mode, sleep for a second first. - // The reason is: our UI tests don't wait for the UI thread to finish settling down - // before exiting (because they can't know when the UI thread is done). In portrait mode, - // things generally work fine here -- the UI thread is done by the time the test is done. - // In landscape mode, though, since the launcher is in portrait mode, there is a lot of - // extra work that happens in our UI when the app launches into landscape mode, and the - // UI is often not done by the time the test finishes running. So then our teardown - // nulls out the Factory, and then the UI keeps running and derefs the null factory, - // and things blow up. - // So ... as a cheap hack, sleep for one second before finishing the teardown of UI - // tests, but only do it in landscape mode (so that developers running it in portrait - // mode can still run the tests faster). - if (this.getInstrumentation().getTargetContext().getResources(). - getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - super.tearDown(); - } - - protected void clickButton(final View view) { - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - view.performClick(); - } - }); - getInstrumentation().waitForIdleSync(); - } - - protected void setFocus(final View view, final boolean focused) { - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - if (focused) { - view.requestFocus(); - } else { - view.clearFocus(); - } - } - }); - getInstrumentation().waitForIdleSync(); - } -}
\ No newline at end of file |