Pārlūkot izejas kodu

commandsHandler test

Daniel Zlotin 8 gadus atpakaļ
vecāks
revīzija
c9a489a0f1

+ 3
- 9
lib/android/app/src/main/java/com/reactnativenavigation/controllers/CommandsHandler.java Parādīt failu

7
 import com.reactnativenavigation.NavigationActivity;
7
 import com.reactnativenavigation.NavigationActivity;
8
 import com.reactnativenavigation.NavigationApplication;
8
 import com.reactnativenavigation.NavigationApplication;
9
 import com.reactnativenavigation.layout.LayoutFactory;
9
 import com.reactnativenavigation.layout.LayoutFactory;
10
+import com.reactnativenavigation.layout.LayoutNode;
10
 import com.reactnativenavigation.layout.StackLayout;
11
 import com.reactnativenavigation.layout.StackLayout;
11
 import com.reactnativenavigation.layout.bottomtabs.BottomTabsCreator;
12
 import com.reactnativenavigation.layout.bottomtabs.BottomTabsCreator;
12
-import com.reactnativenavigation.layout.parse.LayoutNode;
13
-import com.reactnativenavigation.utils.UiThread;
14
 
13
 
15
 import org.json.JSONObject;
14
 import org.json.JSONObject;
16
 
15
 
17
 public class CommandsHandler {
16
 public class CommandsHandler {
18
 
17
 
19
 	public void setRoot(final NavigationActivity activity, final JSONObject layoutTree) {
18
 	public void setRoot(final NavigationActivity activity, final JSONObject layoutTree) {
19
+		final LayoutNode layoutTreeRoot = LayoutNode.parse(layoutTree);
20
 		LayoutFactory factory =
20
 		LayoutFactory factory =
21
 				new LayoutFactory(activity, new LayoutFactory.ReactRootViewCreator() {
21
 				new LayoutFactory(activity, new LayoutFactory.ReactRootViewCreator() {
22
 					@Override
22
 					@Override
29
 					}
29
 					}
30
 				}, new BottomTabsCreator());
30
 				}, new BottomTabsCreator());
31
 
31
 
32
-		final LayoutNode layoutTreeRoot = LayoutNode.parse(layoutTree);
33
 		final View rootView = factory.create(layoutTreeRoot);
32
 		final View rootView = factory.create(layoutTreeRoot);
34
 		activity.setContentView(rootView);
33
 		activity.setContentView(rootView);
35
 	}
34
 	}
52
 	}
51
 	}
53
 
52
 
54
 	public void pop(final NavigationActivity activity, String onContainerId) {
53
 	public void pop(final NavigationActivity activity, String onContainerId) {
55
-		UiThread.post(new Runnable() {
56
-			@Override
57
-			public void run() {
58
-				((StackLayout) activity.getContentView()).pop();
59
-			}
60
-		});
54
+		((StackLayout) activity.getContentView()).pop();
61
 	}
55
 	}
62
 }
56
 }

+ 4
- 1
lib/android/app/src/main/java/com/reactnativenavigation/layout/Container.java Parādīt failu

15
 		super(context);
15
 		super(context);
16
 		this.id = id;
16
 		this.id = id;
17
 		addView(reactRootViewCreator.create(id, name));
17
 		addView(reactRootViewCreator.create(id, name));
18
+	}
18
 
19
 
20
+	public String getContainerId() {
21
+		return id;
19
 	}
22
 	}
20
 
23
 
21
-//    @Override
24
+	//    @Override
22
 //    protected void onAttachedToWindow() {
25
 //    protected void onAttachedToWindow() {
23
 //        Log.d(TAG, "onAttachedToWindow: " + id);
26
 //        Log.d(TAG, "onAttachedToWindow: " + id);
24
 //        super.onAttachedToWindow();
27
 //        super.onAttachedToWindow();

+ 0
- 1
lib/android/app/src/main/java/com/reactnativenavigation/layout/LayoutFactory.java Parādīt failu

8
 
8
 
9
 import com.reactnativenavigation.layout.bottomtabs.BottomTabsCreator;
9
 import com.reactnativenavigation.layout.bottomtabs.BottomTabsCreator;
10
 import com.reactnativenavigation.layout.bottomtabs.BottomTabsLayout;
10
 import com.reactnativenavigation.layout.bottomtabs.BottomTabsLayout;
11
-import com.reactnativenavigation.layout.parse.LayoutNode;
12
 import com.reactnativenavigation.utils.CompatUtils;
11
 import com.reactnativenavigation.utils.CompatUtils;
13
 
12
 
14
 import java.util.List;
13
 import java.util.List;

lib/android/app/src/main/java/com/reactnativenavigation/layout/parse/LayoutNode.java → lib/android/app/src/main/java/com/reactnativenavigation/layout/LayoutNode.java Parādīt failu

1
-package com.reactnativenavigation.layout.parse;
1
+package com.reactnativenavigation.layout;
2
 
2
 
3
 import android.support.annotation.NonNull;
3
 import android.support.annotation.NonNull;
4
 
4
 

+ 8
- 0
lib/android/app/src/test/java/com/reactnativenavigation/BaseTest.java Parādīt failu

1
 package com.reactnativenavigation;
1
 package com.reactnativenavigation;
2
 
2
 
3
+import com.facebook.react.uimanager.DisplayMetricsHolder;
4
+
5
+import org.junit.Before;
3
 import org.junit.runner.RunWith;
6
 import org.junit.runner.RunWith;
4
 import org.robolectric.RobolectricTestRunner;
7
 import org.robolectric.RobolectricTestRunner;
5
 import org.robolectric.annotation.Config;
8
 import org.robolectric.annotation.Config;
7
 @RunWith(RobolectricTestRunner.class)
10
 @RunWith(RobolectricTestRunner.class)
8
 @Config(sdk = 25, constants = BuildConfig.class, manifest = "/../../../../../src/test/AndroidManifest.xml")
11
 @Config(sdk = 25, constants = BuildConfig.class, manifest = "/../../../../../src/test/AndroidManifest.xml")
9
 public abstract class BaseTest {
12
 public abstract class BaseTest {
13
+
14
+	@Before
15
+	public void beforeEach() {
16
+		DisplayMetricsHolder.initDisplayMetrics(NavigationApplication.instance);
17
+	}
10
 }
18
 }

+ 28
- 0
lib/android/app/src/test/java/com/reactnativenavigation/controllers/CommandsHandlerTest.java Parādīt failu

1
+package com.reactnativenavigation.controllers;
2
+
3
+import com.reactnativenavigation.BaseTest;
4
+import com.reactnativenavigation.NavigationActivity;
5
+import com.reactnativenavigation.layout.Container;
6
+
7
+import org.json.JSONObject;
8
+import org.junit.Test;
9
+import org.robolectric.Robolectric;
10
+
11
+import static org.assertj.core.api.Java6Assertions.assertThat;
12
+
13
+public class CommandsHandlerTest extends BaseTest {
14
+
15
+	@Test
16
+	public void setRootCreatesTheLayout_SetsOnActivity() throws Exception {
17
+		CommandsHandler uut = new CommandsHandler();
18
+		JSONObject json = new JSONObject("{" +
19
+				"id: containerId123," +
20
+				"type: Container" +
21
+				"}");
22
+		NavigationActivity activity = Robolectric.setupActivity(NavigationActivity.class);
23
+		uut.setRoot(activity, json);
24
+
25
+		assertThat(activity.getContentView()).isInstanceOf(Container.class);
26
+		assertThat(((Container) activity.getContentView()).getContainerId()).isEqualTo("containerId123");
27
+	}
28
+}

+ 0
- 1
lib/android/app/src/test/java/com/reactnativenavigation/layout/LayoutFactoryTest.java Parādīt failu

9
 import com.reactnativenavigation.layout.bottomtabs.BottomTabs;
9
 import com.reactnativenavigation.layout.bottomtabs.BottomTabs;
10
 import com.reactnativenavigation.layout.bottomtabs.BottomTabsCreator;
10
 import com.reactnativenavigation.layout.bottomtabs.BottomTabsCreator;
11
 import com.reactnativenavigation.layout.bottomtabs.BottomTabsLayout;
11
 import com.reactnativenavigation.layout.bottomtabs.BottomTabsLayout;
12
-import com.reactnativenavigation.layout.parse.LayoutNode;
13
 
12
 
14
 import org.json.JSONException;
13
 import org.json.JSONException;
15
 import org.json.JSONObject;
14
 import org.json.JSONObject;

lib/android/app/src/test/java/com/reactnativenavigation/layout/parse/LayoutNodeTest.java → lib/android/app/src/test/java/com/reactnativenavigation/layout/LayoutNodeTest.java Parādīt failu

1
-package com.reactnativenavigation.layout.parse;
1
+package com.reactnativenavigation.layout;
2
 
2
 
3
 import com.reactnativenavigation.BaseTest;
3
 import com.reactnativenavigation.BaseTest;
4
+import com.reactnativenavigation.layout.LayoutNode;
4
 
5
 
5
 import org.json.JSONObject;
6
 import org.json.JSONObject;
6
 import org.junit.Test;
7
 import org.junit.Test;