Skip to content

Commit

Permalink
Test if navigation controller can display navigation history
Browse files Browse the repository at this point in the history
  • Loading branch information
kejunxia committed Jun 22, 2015
1 parent 416d19c commit e9b44d4
Showing 1 changed file with 48 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
*/
Expand Down

0 comments on commit e9b44d4

Please sign in to comment.