summaryrefslogtreecommitdiff
path: root/app/src/androidTest
diff options
context:
space:
mode:
authorMohamed Zenadi <zeapo@users.noreply.github.com>2015-01-04 21:49:56 +0100
committerMohamed Zenadi <zeapo@users.noreply.github.com>2015-01-04 21:49:56 +0100
commitdf8994d84f3923ba64cb36ecdad54aa29e28f2a0 (patch)
tree7eb85fa141183222ca565cb8ee6d5c977cd88729 /app/src/androidTest
parent33689cefc7a429e4f51607a013f6adc9c01ede94 (diff)
parent6922652173e05433bb9524b036baafb96c91ca1b (diff)
Merge pull request #57 from zeapo/feature/refactor-git
Refactoring of the git process
Diffstat (limited to 'app/src/androidTest')
-rw-r--r--app/src/androidTest/java/com/zeapo/pwdstore/ApplicationTest.java13
-rw-r--r--app/src/androidTest/java/com/zeapo/pwdstore/GitActivityClone.java111
-rw-r--r--app/src/androidTest/java/com/zeapo/pwdstore/GitActivityTest.java74
3 files changed, 185 insertions, 13 deletions
diff --git a/app/src/androidTest/java/com/zeapo/pwdstore/ApplicationTest.java b/app/src/androidTest/java/com/zeapo/pwdstore/ApplicationTest.java
deleted file mode 100644
index e0cf8c74..00000000
--- a/app/src/androidTest/java/com/zeapo/pwdstore/ApplicationTest.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.zeapo.pwdstore;
-
-import android.app.Application;
-import android.test.ApplicationTestCase;
-
-/**
- * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
- */
-public class ApplicationTest extends ApplicationTestCase<Application> {
- public ApplicationTest() {
- super(Application.class);
- }
-} \ No newline at end of file
diff --git a/app/src/androidTest/java/com/zeapo/pwdstore/GitActivityClone.java b/app/src/androidTest/java/com/zeapo/pwdstore/GitActivityClone.java
new file mode 100644
index 00000000..10d33472
--- /dev/null
+++ b/app/src/androidTest/java/com/zeapo/pwdstore/GitActivityClone.java
@@ -0,0 +1,111 @@
+package com.zeapo.pwdstore;
+
+import android.app.Activity;
+import android.app.Instrumentation;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.test.ActivityInstrumentationTestCase2;
+import android.util.Log;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Spinner;
+
+import com.robotium.solo.Solo;
+import com.zeapo.pwdstore.git.GitActivity;
+import com.zeapo.pwdstore.utils.PasswordRepository;
+
+import org.apache.commons.io.FileUtils;
+
+import java.io.File;
+
+public class GitActivityClone extends ActivityInstrumentationTestCase2<GitActivity> {
+ private static final String TAG = "GitActTest";
+ private Activity gitActivity;
+ private Instrumentation mInstrumentation;
+ private SharedPreferences settings;
+
+ private Spinner protocolSpinner;
+ private Spinner connectionModeSpinner;
+ private EditText uri;
+ private EditText server_url;
+ private EditText server_port;
+ private EditText server_path;
+ private EditText server_user;
+
+ public GitActivityClone() {
+ super(GitActivity.class);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ mInstrumentation = getInstrumentation();
+
+ Intent intent = new Intent();
+ intent.putExtra("Operation", GitActivity.REQUEST_CLONE);
+ setActivityIntent(intent);
+
+ gitActivity = getActivity(); // get a references to the app under test
+ assertNotNull(gitActivity);
+
+ settings = PreferenceManager.getDefaultSharedPreferences(gitActivity.getApplicationContext());
+
+ uri = (EditText) gitActivity.findViewById(R.id.clone_uri);
+ server_url = ((EditText) gitActivity.findViewById(R.id.server_url));
+ server_port = ((EditText) gitActivity.findViewById(R.id.server_port));
+ server_path = ((EditText) gitActivity.findViewById(R.id.server_path));
+ server_user = ((EditText) gitActivity.findViewById(R.id.server_user));
+ protocolSpinner = (Spinner) gitActivity.findViewById(R.id.clone_protocol);
+ connectionModeSpinner = (Spinner) gitActivity.findViewById(R.id.connection_mode);
+
+ assertNotNull(uri);
+ assertNotNull(server_url);
+ assertNotNull(server_port);
+ assertNotNull(server_path);
+ assertNotNull(server_user);
+ assertNotNull(protocolSpinner);
+ assertNotNull(connectionModeSpinner);
+
+ assertEquals(protocolSpinner.getSelectedItem(), settings.getString("git_remote_protocol", "ssh://"));
+ assertEquals(connectionModeSpinner.getSelectedItem(), settings.getString("git_remote_auth", "ssh-key"));
+ }
+
+ public void testCloneSshUser() throws Exception {
+ final Solo solo = new Solo(getInstrumentation(), getActivity());
+ FileUtils.deleteDirectory(new File(gitActivity.getFilesDir() + gitActivity.getResources().getString(R.string.store_git)));
+ // create the repository static variable in PasswordRepository
+ PasswordRepository.getRepository(new File(gitActivity.getFilesDir() + gitActivity.getResources().getString(R.string.store_git)));
+
+ gitActivity.runOnUiThread(new Runnable() {
+ public void run() {
+ protocolSpinner.setSelection(0); // ssh://
+ }
+ });
+
+ mInstrumentation.waitForIdleSync();
+
+ solo.clearEditText(server_user);
+ solo.enterText(server_user, "testpwd");
+ solo.clearEditText(server_path);
+ solo.enterText(server_path, "repo-test");
+ solo.clearEditText(server_url);
+ solo.enterText(server_url, "192.168.1.28");
+
+ mInstrumentation.waitForIdleSync();
+
+ gitActivity.runOnUiThread(new Runnable() {
+ public void run() {
+ connectionModeSpinner.setSelection(1); // user/pwd
+ ((Button) gitActivity.findViewById(R.id.clone_button)).performClick();
+ }
+ });
+
+ mInstrumentation.waitForIdleSync();
+
+ assertTrue("Could not find the dialog!", solo.searchText(gitActivity.getResources().getString(R.string.passphrase_dialog_title)));
+ solo.enterText(solo.getEditText("Password"), "test");
+ solo.clickOnButton(gitActivity.getResources().getString(R.string.dialog_ok));
+
+ mInstrumentation.waitForIdleSync();
+ }
+}
diff --git a/app/src/androidTest/java/com/zeapo/pwdstore/GitActivityTest.java b/app/src/androidTest/java/com/zeapo/pwdstore/GitActivityTest.java
new file mode 100644
index 00000000..83995b51
--- /dev/null
+++ b/app/src/androidTest/java/com/zeapo/pwdstore/GitActivityTest.java
@@ -0,0 +1,74 @@
+package com.zeapo.pwdstore;
+
+import android.app.Activity;
+import android.app.Instrumentation;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.ActivityTestCase;
+import android.test.InstrumentationTestCase;
+import android.util.Log;
+import android.widget.EditText;
+import android.widget.Spinner;
+
+import com.zeapo.pwdstore.git.GitActivity;
+
+public class GitActivityTest extends ActivityInstrumentationTestCase2<GitActivity> {
+ private Activity gitActivity;
+ private Instrumentation mInstrumentation;
+ private SharedPreferences settings;
+
+ private Spinner protocolSpinner;
+ private Spinner connectionModeSpinner;
+ private EditText uri;
+ private EditText server_url;
+ private EditText server_port;
+ private EditText server_path;
+ private EditText server_user;
+
+ public GitActivityTest() {
+ super(GitActivity.class);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ mInstrumentation = getInstrumentation();
+
+ Intent intent = new Intent();
+ intent.putExtra("Operation", GitActivity.EDIT_SERVER);
+ setActivityIntent(intent);
+
+ gitActivity = getActivity(); // get a references to the app under test
+ assertNotNull(gitActivity);
+
+ settings = PreferenceManager.getDefaultSharedPreferences(gitActivity.getApplicationContext());
+
+ uri = (EditText) gitActivity.findViewById(R.id.clone_uri);
+ server_url = ((EditText) gitActivity.findViewById(R.id.server_url));
+ server_port = ((EditText) gitActivity.findViewById(R.id.server_port));
+ server_path = ((EditText) gitActivity.findViewById(R.id.server_path));
+ server_user = ((EditText) gitActivity.findViewById(R.id.server_user));
+ protocolSpinner = (Spinner) gitActivity.findViewById(R.id.clone_protocol);
+ connectionModeSpinner = (Spinner) gitActivity.findViewById(R.id.connection_mode);
+
+ assertEquals(protocolSpinner.getSelectedItem(), settings.getString("git_remote_protocol", "ssh://"));
+ assertEquals(connectionModeSpinner.getSelectedItem(), settings.getString("git_remote_auth", "ssh-key"));
+ }
+
+ /**
+ * If we change from ssh protocol to https we automatically switch to username/password auth
+ * @throws Exception
+ */
+ public void testSpinnerChange() throws Exception{
+ gitActivity.runOnUiThread(new Runnable() {
+ public void run() {
+ protocolSpinner.requestFocus();
+ protocolSpinner.setSelection(1); // 1 < is https://
+ }
+ });
+ mInstrumentation.waitForIdleSync();
+
+ assertEquals(connectionModeSpinner.getSelectedItem(), "username/password"); // 1 < is username/password
+ }
+}