react-native-navigation的迁移库

BaseTest.java 2.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.reactnativenavigation;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.support.v7.app.AppCompatActivity;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.FrameLayout;
  8. import com.reactnativenavigation.parse.params.Bool;
  9. import com.reactnativenavigation.utils.ViewUtils;
  10. import com.reactnativenavigation.viewcontrollers.ViewController;
  11. import org.junit.After;
  12. import org.junit.Before;
  13. import org.junit.runner.RunWith;
  14. import org.robolectric.Robolectric;
  15. import org.robolectric.RobolectricTestRunner;
  16. import org.robolectric.android.controller.ActivityController;
  17. import org.robolectric.annotation.Config;
  18. import static org.assertj.core.api.Java6Assertions.assertThat;
  19. @RunWith(RobolectricTestRunner.class)
  20. @Config(sdk = 27, application = TestApplication.class)
  21. public abstract class BaseTest {
  22. @Before
  23. public void beforeEach() {
  24. //
  25. }
  26. @After
  27. public void afterEach() {
  28. //
  29. }
  30. public Activity newActivity() {
  31. return Robolectric.setupActivity(AppCompatActivity.class);
  32. }
  33. public <T extends AppCompatActivity> ActivityController<T> newActivityController(Class<T> clazz) {
  34. return Robolectric.buildActivity(clazz);
  35. }
  36. public void assertIsChild(ViewGroup parent, View child) {
  37. assertThat(parent).isNotNull();
  38. assertThat(child).isNotNull();
  39. assertThat(ViewUtils.isChildOf(parent, child)).isTrue();
  40. }
  41. public void assertNotChildOf(ViewGroup parent, View child) {
  42. assertThat(parent).isNotNull();
  43. assertThat(child).isNotNull();
  44. assertThat(ViewUtils.isChildOf(parent, child)).isFalse();
  45. }
  46. protected void disablePushAnimation(ViewController... controllers) {
  47. for (ViewController controller : controllers) {
  48. controller.options.animations.push.enable = new Bool(false);
  49. }
  50. }
  51. protected void disableShowModalAnimation(ViewController... modals) {
  52. for (ViewController modal : modals) {
  53. modal.options.animations.showModal.enable = new Bool(false);
  54. }
  55. }
  56. protected void disableDismissModalAnimation(ViewController... modals) {
  57. for (ViewController modal : modals) {
  58. modal.options.animations.dismissModal.enable = new Bool(false);
  59. }
  60. }
  61. protected void dispatchPreDraw(View view) {
  62. view.getViewTreeObserver().dispatchOnPreDraw();
  63. }
  64. protected void dispatchOnGlobalLayout(View view) {
  65. view.getViewTreeObserver().dispatchOnGlobalLayout();
  66. }
  67. protected void addToParent(Context context, ViewController... controllers) {
  68. for (ViewController controller : controllers) {
  69. new FrameLayout(context).addView(controller.getView());
  70. }
  71. }
  72. }