aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeapo <mohamed@zenadi.com>2015-01-04 16:27:56 +0100
committerzeapo <mohamed@zenadi.com>2015-01-04 16:27:56 +0100
commitd5e124308e4ce1a894a0108d9ea716250ac55359 (patch)
tree2ce63daacabb47ef67cf18b030cdd10ee23117e8
parente170ef281b4d8f9b4c49d41faa077b06b1c9a84a (diff)
test for clone ssh + user/pwd
-rw-r--r--app/build.gradle1
-rw-r--r--app/src/androidTest/java/com/zeapo/pwdstore/GitActivityClone.java112
2 files changed, 113 insertions, 0 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 6e107b6e..4ec80f82 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -32,6 +32,7 @@ dependencies {
compile project(':libraries:openpgp-api-lib')
compile 'org.eclipse.jgit:org.eclipse.jgit:3.6.0.201411121045-m1'
compile 'org.apache.commons:commons-io:1.3.2'
+ compile 'com.jayway.android.robotium:robotium-solo:5.2.1'
}
tasks.findAll { // make all tasks whose name starts with 'assemble'...
it.name.startsWith 'assemble'
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..efe67d8b
--- /dev/null
+++ b/app/src/androidTest/java/com/zeapo/pwdstore/GitActivityClone.java
@@ -0,0 +1,112 @@
+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://
+ connectionModeSpinner.setSelection(1); // user/pwd
+ }
+ });
+
+ 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() {
+ ((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();
+ }
+}