From 8bb1d444c6a9ee0c22acbbff059688f3a87ef52c Mon Sep 17 00:00:00 2001
From: Ernir Erlingsson <ernir@ymirmobile.com>
Date: Fri, 29 Apr 2016 11:47:50 +0200
Subject: [PATCH] interlude

---
 briar-android/proguard-rules.txt              | 18 ++++++--
 .../briarproject/android/ActivityModule.java  |  8 ++--
 .../briarproject/android/SetupActivity.java   |  4 +-
 .../android/util/StrengthMeter.java           | 14 ++++---
 .../activity/SetupActivityTest.java           | 42 +++++++++++++++++--
 .../activity/TestActivityModule.java          | 19 ---------
 .../controller/SetupControllerTest.java       |  2 +
 7 files changed, 72 insertions(+), 35 deletions(-)
 delete mode 100644 briar-android/test/java/briarproject/activity/TestActivityModule.java

diff --git a/briar-android/proguard-rules.txt b/briar-android/proguard-rules.txt
index df28bc5075..8ff4600e0c 100644
--- a/briar-android/proguard-rules.txt
+++ b/briar-android/proguard-rules.txt
@@ -3,6 +3,7 @@
 -dontpreverify
 -dontobfuscate
 -verbose
+-useuniqueclassmembernames
 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
 # For comfortability in case we do obfuscate
 # -renamesourcefileattribute SourceFile
@@ -48,9 +49,20 @@
 -keep class roboguice.** { *; }
 -keep class dagger.** { *; }
 -keep class com.google.** { *; }
--keep class javax.** { *; }
--keep class org.eclipse.** { *; }
--keep class com.squareup.** { *; }
+
+-dontwarn org.hamcrest.**
+-dontwarn com.squareup.**
+-dontwarn com.google.android.**
+
+-keep class com.google.android.** {
+   *;
+}
+-keep class com.google.common.** {
+   *;
+}
+-keep class org.hamcrest.** {
+   *;
+}
 
 -dontwarn org.h2.**
 -dontnote org.h2.**
diff --git a/briar-android/src/org/briarproject/android/ActivityModule.java b/briar-android/src/org/briarproject/android/ActivityModule.java
index 70d3b00ab5..36c31ef981 100644
--- a/briar-android/src/org/briarproject/android/ActivityModule.java
+++ b/briar-android/src/org/briarproject/android/ActivityModule.java
@@ -54,8 +54,9 @@ public class ActivityModule {
 
 	@ActivityScope
 	@Provides
-	protected SetupController provideSetupController() {
-		return new SetupControllerImp();
+	protected SetupController provideSetupController(
+			SetupControllerImp setupControllerImp) {
+		return setupControllerImp;
 	}
 
 	@ActivityScope
@@ -147,7 +148,8 @@ public class ActivityModule {
 	@Provides
 	@Named("IntroductionMessageFragment")
 	IntroductionMessageFragment provideIntroductionMessageFragment() {
-		IntroductionMessageFragment fragment = new IntroductionMessageFragment();
+		IntroductionMessageFragment fragment =
+				new IntroductionMessageFragment();
 		fragment.setArguments(new Bundle());
 		return fragment;
 	}
diff --git a/briar-android/src/org/briarproject/android/SetupActivity.java b/briar-android/src/org/briarproject/android/SetupActivity.java
index c3cb01cb31..a08d23be14 100644
--- a/briar-android/src/org/briarproject/android/SetupActivity.java
+++ b/briar-android/src/org/briarproject/android/SetupActivity.java
@@ -27,6 +27,8 @@ import javax.inject.Inject;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.view.View.INVISIBLE;
 import static android.view.View.VISIBLE;
+import static org.briarproject.android.TestingConstants.PREVENT_SCREENSHOTS;
+import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
 import static org.briarproject.api.crypto.PasswordStrengthEstimator.WEAK;
 import static org.briarproject.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH;
 
@@ -64,7 +66,7 @@ public class SetupActivity extends BaseActivity implements OnClickListener,
 		createAccountButton = (Button) findViewById(R.id.create_account);
 		progress = (ProgressBar) findViewById(R.id.progress_wheel);
 
-//		if (PREVENT_SCREENSHOTS) getWindow().addFlags(FLAG_SECURE);
+		if (PREVENT_SCREENSHOTS) getWindow().addFlags(FLAG_SECURE);
 
 		TextWatcher tw = new TextWatcher() {
 			@Override
diff --git a/briar-android/src/org/briarproject/android/util/StrengthMeter.java b/briar-android/src/org/briarproject/android/util/StrengthMeter.java
index eee1e54739..83fb20b8f1 100644
--- a/briar-android/src/org/briarproject/android/util/StrengthMeter.java
+++ b/briar-android/src/org/briarproject/android/util/StrengthMeter.java
@@ -23,11 +23,11 @@ import static org.briarproject.api.crypto.PasswordStrengthEstimator.WEAK;
 public class StrengthMeter extends ProgressBar {
 
 	private static final int MAX = 100;
-	private static final int RED = Color.rgb(255, 0, 0);
-	private static final int ORANGE = Color.rgb(255, 160, 0);
-	private static final int YELLOW = Color.rgb(255, 255, 0);
-	private static final int LIME = Color.rgb(180, 255, 0);
-	private static final int GREEN = Color.rgb(0, 255, 0);
+	public static final int RED = Color.rgb(255, 0, 0);
+	public static final int ORANGE = Color.rgb(255, 160, 0);
+	public static final int YELLOW = Color.rgb(255, 255, 0);
+	public static final int LIME = Color.rgb(180, 255, 0);
+	public static final int GREEN = Color.rgb(0, 255, 0);
 
 	private final ShapeDrawable bar;
 
@@ -57,6 +57,10 @@ public class StrengthMeter extends ProgressBar {
 		return MAX;
 	}
 
+	public int getColor() {
+		return bar.getPaint().getColor();
+	}
+
 	public void setStrength(float strength) {
 		if (strength < 0 || strength > 1) throw new IllegalArgumentException();
 		int colour;
diff --git a/briar-android/test/java/briarproject/activity/SetupActivityTest.java b/briar-android/test/java/briarproject/activity/SetupActivityTest.java
index a730cf91f8..86a640d27d 100644
--- a/briar-android/test/java/briarproject/activity/SetupActivityTest.java
+++ b/briar-android/test/java/briarproject/activity/SetupActivityTest.java
@@ -4,20 +4,29 @@ import android.support.design.widget.TextInputLayout;
 import android.widget.Button;
 import android.widget.EditText;
 
+import com.google.common.base.Strings;
+
 import org.briarproject.BuildConfig;
 import org.briarproject.R;
 import org.briarproject.android.ActivityModule;
 import org.briarproject.android.SetupActivity;
+import org.briarproject.android.controller.SetupController;
+import org.briarproject.android.controller.SetupControllerImp;
 import org.briarproject.android.util.StrengthMeter;
+import org.briarproject.api.crypto.PasswordStrengthEstimator;
+import org.briarproject.api.identity.AuthorConstants;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mockito;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricGradleTestRunner;
 import org.robolectric.annotation.Config;
 
+import static junit.framework.Assert.assertEquals;
+
 @RunWith(RobolectricGradleTestRunner.class)
-@Config(constants = BuildConfig.class, sdk = 22)
+@Config(constants = BuildConfig.class, sdk = 21)
 public class SetupActivityTest {
 
 	private SetupActivity setupActivity;
@@ -34,7 +43,22 @@ public class SetupActivityTest {
 
 		@Override
 		protected ActivityModule getActivityModule() {
-			return super.getActivityModule();
+			return new ActivityModule(this) {
+
+				@Override
+				protected SetupController provideSetupController(
+						SetupControllerImp setupControllerImp) {
+					SetupController setupController =
+							Mockito.mock(SetupControllerImp.class);
+					Mockito.when(
+							setupController.estimatePasswordStrength("strong"))
+							.thenReturn(PasswordStrengthEstimator.STRONG);
+//					Mockito.when(
+//							setupController.estimatePasswordStrength("qstrong"))
+//							.thenReturn(PasswordStrengthEstimator.QUITE_STRONG);
+					return setupController;
+				}
+			};
 		}
 	}
 
@@ -57,13 +81,23 @@ public class SetupActivityTest {
 				(StrengthMeter) setupActivity.findViewById(R.id.strength_meter);
 		createAccountButton =
 				(Button) setupActivity.findViewById(R.id.create_account);
-
 	}
 
 	@Test
 	public void test() {
+		String longNick =
+				Strings.padEnd("*", AuthorConstants.MAX_AUTHOR_NAME_LENGTH + 1,
+						'*');
+		nicknameEntry.setText(longNick);
+		assertEquals(nicknameEntryWrapper.getError(),
+				setupActivity.getString(R.string.name_too_long));
 
+		passwordEntry.setText("strong");
+		assertEquals(strengthMeter.getProgress(),
+				strengthMeter.getMax() * PasswordStrengthEstimator.STRONG);
 
-
+//		passwordEntry.setText("strong");
+//		assertEquals(StrengthMeter.GREEN, strengthMeter.getColor());
+//		setupActivity.
 	}
 }
diff --git a/briar-android/test/java/briarproject/activity/TestActivityModule.java b/briar-android/test/java/briarproject/activity/TestActivityModule.java
deleted file mode 100644
index e5eba02f29..0000000000
--- a/briar-android/test/java/briarproject/activity/TestActivityModule.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package briarproject.activity;
-
-import org.briarproject.android.ActivityModule;
-import org.briarproject.android.BaseActivity;
-
-public class TestActivityModule extends ActivityModule {
-
-	public TestActivityModule(BaseActivity activity) {
-		super(activity);
-	}
-
-
-	/*
-	@Override
-	protected SetupController provideSetupController(
-			SetupControllerImp setupControllerImp) {
-	}
-	*/
-}
diff --git a/briar-android/test/java/briarproject/controller/SetupControllerTest.java b/briar-android/test/java/briarproject/controller/SetupControllerTest.java
index 8564a73939..85bcfe8095 100644
--- a/briar-android/test/java/briarproject/controller/SetupControllerTest.java
+++ b/briar-android/test/java/briarproject/controller/SetupControllerTest.java
@@ -8,6 +8,8 @@ import javax.inject.Inject;
 
 public class SetupControllerTest extends BriarTestCase {
 
+
+
 	@Inject
 	SetupController setupController;
 
-- 
GitLab