From e9b44d490617dd53b2197cc94596db50ff3cfa02 Mon Sep 17 00:00:00 2001 From: Kejun Xia Date: Mon, 22 Jun 2015 20:24:48 +1000 Subject: [PATCH] Test if navigation controller can display navigation history --- .../TestNavigationController.java | 49 ++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) rename library/android-mvc-controller/src/test/java/com/shipdream/lib/android/mvc/controller/{ => internal}/TestNavigationController.java (91%) diff --git a/library/android-mvc-controller/src/test/java/com/shipdream/lib/android/mvc/controller/TestNavigationController.java b/library/android-mvc-controller/src/test/java/com/shipdream/lib/android/mvc/controller/internal/TestNavigationController.java similarity index 91% rename from library/android-mvc-controller/src/test/java/com/shipdream/lib/android/mvc/controller/TestNavigationController.java rename to library/android-mvc-controller/src/test/java/com/shipdream/lib/android/mvc/controller/internal/TestNavigationController.java index 0044dca..8e1ed8d 100644 --- a/library/android-mvc-controller/src/test/java/com/shipdream/lib/android/mvc/controller/TestNavigationController.java +++ b/library/android-mvc-controller/src/test/java/com/shipdream/lib/android/mvc/controller/internal/TestNavigationController.java @@ -14,15 +14,20 @@ * limitations under the License. */ -package com.shipdream.lib.android.mvc.controller; +package com.shipdream.lib.android.mvc.controller.internal; import com.shipdream.lib.android.mvc.NavLocation; +import com.shipdream.lib.android.mvc.controller.BaseNavigationControllerTest; +import com.shipdream.lib.android.mvc.controller.NavigationController; import org.junit.Assert; import org.junit.Test; import org.mockito.ArgumentCaptor; +import org.slf4j.Logger; import static junit.framework.Assert.assertEquals; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.times; @@ -264,6 +269,48 @@ public void should_not_raise_navigate_back_event_when_fast_back_navigate_from_nu verify(backListener, times(0)).onEvent(event.capture()); } + @Test + public void should_be_able_to_log_navigation_history() throws Exception { + // Arrange + Logger logger = mock(Logger.class); + ((NavigationControllerImpl)navigationController).dumpHistoryOnLocationChange = true; + ((NavigationControllerImpl) navigationController).mLogger = logger; + + // Act + navigationController.navigateTo(this, "any location", "back to location"); + + // Verify + verify(logger, atLeast(1)).trace(anyString()); + + // Arrange + reset(logger); + + // Act + navigationController.navigateTo(this, "any location"); + + // Verify + verify(logger, atLeast(1)).trace(anyString()); + + // Arrange + reset(logger); + + // Act + navigationController.navigateBack(this); + + // Verify + verify(logger, atLeast(1)).trace(anyString()); + + // Arrange + reset(logger); + navigationController.navigateTo(this, "some location"); + + // Act + navigationController.navigateBack(this, null); + + // Verify + verify(logger, atLeast(1)).trace(anyString()); + } + /** * Prepare 4 locations in the history */