added parsing for repository signing key property to provisioning files
This commit is contained in:
parent
4a5ad0a33d
commit
96def8adca
@ -1,5 +1,8 @@
|
||||
package org.fdroid.fdroid;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Environment;
|
||||
import android.util.Base64;
|
||||
|
||||
@ -35,7 +38,7 @@ public class Provisioner {
|
||||
/**
|
||||
* search for provision files and process them
|
||||
*/
|
||||
public void scanAndProcess() {
|
||||
public void scanAndProcess(Context context) {
|
||||
|
||||
List<File> files = findProvisionFiles();
|
||||
List<ProvisionPlaintext> plaintexts = extractProvisionsPlaintext(files);
|
||||
@ -52,6 +55,10 @@ public class Provisioner {
|
||||
+ " " + repo.getName()
|
||||
+ " " + repo.getUrl()
|
||||
+ " " + repo.getUsername());
|
||||
|
||||
Intent i = new Intent(Intent.ACTION_VIEW);
|
||||
i.setData(Uri.parse(repo.getUrl()));
|
||||
context.startActivity(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -81,9 +88,9 @@ public class Provisioner {
|
||||
for (int i = 0; i < text.length(); i++) {
|
||||
char c = text.charAt(i);
|
||||
if ((c >= 'a' && c <= 'm') || (c >= 'A' && c <= 'M')) {
|
||||
sb.append(c + 13);
|
||||
sb.append((char)(c + 13));
|
||||
} else if ((c >= 'n' && c <= 'z') || (c >= 'N' && c <= 'Z')) {
|
||||
sb.append(c - 13);
|
||||
sb.append((char)(c - 13));
|
||||
} else {
|
||||
sb.append(c);
|
||||
}
|
||||
@ -204,6 +211,7 @@ public class Provisioner {
|
||||
|
||||
private String name;
|
||||
private String url;
|
||||
private String sigfp;
|
||||
private String username;
|
||||
private String password;
|
||||
|
||||
@ -223,6 +231,14 @@ public class Provisioner {
|
||||
this.url = url;
|
||||
}
|
||||
|
||||
public String getSigfp() {
|
||||
return sigfp;
|
||||
}
|
||||
|
||||
public void setSigfp(String sigfp) {
|
||||
this.sigfp = sigfp;
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
package org.fdroid.fdroid;
|
||||
|
||||
import org.fdroid.fdroid.shadows.ShadowLog;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
@ -19,6 +21,11 @@ import java.util.List;
|
||||
@SuppressWarnings("LineLength")
|
||||
public class ProvisionerTest {
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
ShadowLog.stream = System.out;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void provisionLookup() throws IOException {
|
||||
// wired hack for getting resource dir path ...
|
||||
@ -59,7 +66,7 @@ public class ProvisionerTest {
|
||||
List<Provisioner.ProvisionPlaintext> result = p.extractProvisionsPlaintext(files);
|
||||
|
||||
Assert.assertEquals(result.size(), 1);
|
||||
Assert.assertEquals("{\"username\": \"user2\", \"name\": \"test repo a\", \"password\": \"other secret\", \"url\": \"https://example.com/repo\"}", result.get(0).getRepositoryProvision());
|
||||
Assert.assertEquals("{\"username\": \"user2\", \"password\": \"other secret\", \"name\": \"Example Repo\", \"url\": \"https://example.com/fdroid/repo\", \"sigfp\": \"1111222233334444555566667777888899990000aaaabbbbccccddddeeeeffff\"}", result.get(0).getRepositoryProvision());
|
||||
Assert.assertTrue(String.valueOf(result.get(0).getProvisionPath()).endsWith("demo_credentials_user2.fdrp"));
|
||||
}
|
||||
|
||||
@ -70,7 +77,7 @@ public class ProvisionerTest {
|
||||
List<Provisioner.ProvisionPlaintext> result = p.extractProvisionsPlaintext(files);
|
||||
|
||||
Assert.assertEquals(result.size(), 1);
|
||||
Assert.assertEquals("{\"username\": \"user1\", \"password\": \"secret1\", \"name\": \"test repo a\", \"url\": \"https://example.com/repo\"}", result.get(0).getRepositoryProvision());
|
||||
Assert.assertEquals("{\"sigfp\": \"1111222233334444555566667777888899990000aaaabbbbccccddddeeeeffff\", \"name\": \"Example Repo\", \"password\": \"secret1\", \"url\": \"https://example.com/fdroid/repo\", \"username\": \"user1\"}", result.get(0).getRepositoryProvision());
|
||||
Assert.assertTrue(String.valueOf(result.get(0).getProvisionPath()).endsWith("demo_credentials_user1.fdrp"));
|
||||
}
|
||||
|
||||
@ -79,22 +86,24 @@ public class ProvisionerTest {
|
||||
|
||||
List<Provisioner.ProvisionPlaintext> plaintexts = Arrays.asList(new Provisioner.ProvisionPlaintext(), new Provisioner.ProvisionPlaintext());
|
||||
plaintexts.get(0).setProvisionPath("/some/dir/abc.fdrp");
|
||||
plaintexts.get(0).setRepositoryProvision("{\"username\": \"user1\", \"password\": \"secret1\", \"name\": \"test repo a\", \"url\": \"https://example.com/repo\"}");
|
||||
plaintexts.get(0).setRepositoryProvision("{\"username\": \"user1\", \"password\": \"secret1\", \"name\": \"test repo a\", \"url\": \"https://example.com/fdroid/repo\", \"sigfp\": \"1111222233334444555566667777888899990000aaaabbbbccccddddeeeeffff\"}");
|
||||
plaintexts.get(1).setProvisionPath("/some/dir/def.fdrp");
|
||||
plaintexts.get(1).setRepositoryProvision("{\"username\": \"user2\", \"name\": \"test repo a\", \"password\": \"other secret\", \"url\": \"https://example.com/repo\"}");
|
||||
plaintexts.get(1).setRepositoryProvision("{\"username\": \"user2\", \"name\": \"test repo a\", \"password\": \"other secret\", \"url\": \"https://example.com/fdroid/repo\", \"sigfp\": \"1111222233334444555566667777888899990000aaaabbbbccccddddeeeeffff\"}");
|
||||
|
||||
Provisioner p = new Provisioner();
|
||||
List<Provisioner.Provision> result = p.parseProvisions(plaintexts);
|
||||
|
||||
Assert.assertEquals("/some/dir/abc.fdrp", result.get(0).getProvisonPath());
|
||||
Assert.assertEquals("test repo a", result.get(0).getRepositoryProvision().getName());
|
||||
Assert.assertEquals("https://example.com/repo", result.get(0).getRepositoryProvision().getUrl());
|
||||
Assert.assertEquals("https://example.com/fdroid/repo", result.get(0).getRepositoryProvision().getUrl());
|
||||
Assert.assertEquals("1111222233334444555566667777888899990000aaaabbbbccccddddeeeeffff", result.get(0).getRepositoryProvision().getSigfp());
|
||||
Assert.assertEquals("user1", result.get(0).getRepositoryProvision().getUsername());
|
||||
Assert.assertEquals("secret1", result.get(0).getRepositoryProvision().getPassword());
|
||||
|
||||
Assert.assertEquals("/some/dir/def.fdrp", result.get(1).getProvisonPath());
|
||||
Assert.assertEquals("test repo a", result.get(1).getRepositoryProvision().getName());
|
||||
Assert.assertEquals("https://example.com/repo", result.get(1).getRepositoryProvision().getUrl());
|
||||
Assert.assertEquals("https://example.com/fdroid/repo", result.get(1).getRepositoryProvision().getUrl());
|
||||
Assert.assertEquals("1111222233334444555566667777888899990000aaaabbbbccccddddeeeeffff", result.get(1).getRepositoryProvision().getSigfp());
|
||||
Assert.assertEquals("user2", result.get(1).getRepositoryProvision().getUsername());
|
||||
Assert.assertEquals("other secret", result.get(1).getRepositoryProvision().getPassword());
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user