diff --git a/briar-android/build.gradle b/briar-android/build.gradle
index fac88cf8cef71d2f591e072375e6900245624e6b..409de97f17e76d64d50720a1bde572e8d00ccced 100644
--- a/briar-android/build.gradle
+++ b/briar-android/build.gradle
@@ -35,6 +35,7 @@ dependencies {
 
 	testCompile project(path: ':bramble-core', configuration: 'testOutput')
 	testCompile 'org.robolectric:robolectric:3.0'
+	testCompile 'org.robolectric:shadows-support-v4:3.0'
 	testCompile 'org.mockito:mockito-core:2.8.9'
 }
 
diff --git a/briar-android/src/test/java/org/briarproject/briar/android/login/PasswordFragmentTest.java b/briar-android/src/test/java/org/briarproject/briar/android/login/PasswordFragmentTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..9fb2be4fcf361a775ac2baca17e417d976d862e4
--- /dev/null
+++ b/briar-android/src/test/java/org/briarproject/briar/android/login/PasswordFragmentTest.java
@@ -0,0 +1,72 @@
+package org.briarproject.briar.android.login;
+
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+
+import org.briarproject.briar.BuildConfig;
+import org.briarproject.briar.R;
+import org.briarproject.briar.android.TestBriarApplication;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricGradleTestRunner;
+import org.robolectric.annotation.Config;
+
+import static junit.framework.Assert.assertEquals;
+import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.STRONG;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.shadows.support.v4.SupportFragmentTestUtil.startFragment;
+
+@RunWith(RobolectricGradleTestRunner.class)
+@Config(constants = BuildConfig.class, sdk = 21,
+		application = TestBriarApplication.class,
+		packageName = "org.briarproject.briar")
+public class PasswordFragmentTest {
+
+	private PasswordFragment passwordFragment = new PasswordFragment();
+	private EditText passwordEntry;
+	private EditText passwordConfirmation;
+	private Button createAccountButton;
+
+	@Mock
+	private SetupController setupController;
+
+	@Before
+	public void setUp() {
+		MockitoAnnotations.initMocks(this);
+		startFragment(passwordFragment, SetupActivity.class);
+
+		View v = passwordFragment.getView();
+		passwordEntry = (EditText) v.findViewById(R.id.password_entry);
+		passwordConfirmation = (EditText) v.findViewById(R.id.password_confirm);
+		createAccountButton = (Button) v.findViewById(R.id.next);
+	}
+
+	@Test
+	public void testCreateAccountUI() {
+		passwordFragment.setupController = setupController;
+		when(setupController.needsDozeWhitelisting()).thenReturn(false);
+		when(setupController.estimatePasswordStrength(anyString()))
+				.thenReturn(STRONG);
+
+		String safePass = "really.safe.password";
+		passwordEntry.setText(safePass);
+		passwordConfirmation.setText(safePass);
+		// Confirm that the create account button is clickable
+		assertEquals(createAccountButton.isEnabled(), true);
+		createAccountButton.performClick();
+
+		// assert controller has been called properly
+		verify(setupController, times(1))
+				.setPassword(safePass);
+		verify(setupController, times(1))
+				.showDozeOrCreateAccount();
+	}
+
+}
diff --git a/briar-android/src/test/java/org/briarproject/briar/android/login/SetupActivityTest.java b/briar-android/src/test/java/org/briarproject/briar/android/login/SetupActivityTest.java
index 38c45f044ee65ed64a56693e6d4c41d599bc2723..1d3c9336ba1b7f7d6f0ab0accbff6e482580802a 100644
--- a/briar-android/src/test/java/org/briarproject/briar/android/login/SetupActivityTest.java
+++ b/briar-android/src/test/java/org/briarproject/briar/android/login/SetupActivityTest.java
@@ -1,7 +1,6 @@
 package org.briarproject.briar.android.login;
 
 import android.content.Context;
-import android.content.Intent;
 import android.content.SharedPreferences;
 import android.support.design.widget.TextInputLayout;
 import android.widget.Button;
@@ -14,7 +13,6 @@ import org.briarproject.briar.BuildConfig;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.TestBriarApplication;
 import org.briarproject.briar.android.controller.handler.ResultHandler;
-import org.briarproject.briar.android.navdrawer.NavDrawerActivity;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -23,11 +21,8 @@ import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricGradleTestRunner;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowActivity;
-import org.robolectric.shadows.ShadowLooper;
 
 import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertNotNull;
 import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.NONE;
 import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.QUITE_STRONG;
 import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.QUITE_WEAK;
@@ -37,7 +32,6 @@ import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.timeout;
 import static org.mockito.Mockito.verify;
-import static org.robolectric.Shadows.shadowOf;
 
 @RunWith(RobolectricGradleTestRunner.class)
 @Config(constants = BuildConfig.class, sdk = 21,
@@ -98,32 +92,6 @@ public class SetupActivityTest {
 		assertEquals(createAccountButton.isEnabled(), true);
 	}
 
-	@Test
-	public void testCreateAccountUI() {
-		proceedToPasswordFragment();
-		String safePass = "really.safe.password";
-		passwordEntry.setText(safePass);
-		passwordConfirmation.setText(safePass);
-		// Confirm that the create account button is clickable
-		assertEquals(createAccountButton.isEnabled(), true);
-		createAccountButton.performClick();
-		// wait a second since there's no easy way to get a callback
-		try {
-			Thread.sleep(1000);
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-		ShadowLooper.runUiThreadTasks();
-		// execute the callback
-		assertTrue(setupActivity.isFinishing());
-		// Confirm that the correct Activity has been started
-		ShadowActivity shadowActivity = shadowOf(setupActivity);
-		Intent intent = shadowActivity.peekNextStartedActivity();
-		assertNotNull(intent.getComponent());
-		assertEquals(intent.getComponent().getClassName(),
-				NavDrawerActivity.class.getName());
-	}
-
 	@Test
 	public void testAccountCreation() {
 		SetupController controller = setupActivity.getController();
diff --git a/briar-android/src/test/java/org/briarproject/briar/android/login/TestSetupActivity.java b/briar-android/src/test/java/org/briarproject/briar/android/login/TestSetupActivity.java
index 0595329be7f367f8cdc9edaa66b9e0395a52f8b1..0592a736e4353e22622b0df393a9cd989a964d94 100644
--- a/briar-android/src/test/java/org/briarproject/briar/android/login/TestSetupActivity.java
+++ b/briar-android/src/test/java/org/briarproject/briar/android/login/TestSetupActivity.java
@@ -10,7 +10,4 @@ public class TestSetupActivity extends SetupActivity {
 		return setupController;
 	}
 
-	void setController(SetupController setupController) {
-		this.setupController = setupController;
-	}
 }