Skip to content
Snippets Groups Projects
Commit e93ccdc5 authored by Koen's avatar Koen
Browse files

Added additional tests for dummy data.

parent a5d079b1
No related branches found
No related tags found
No related merge requests found
...@@ -306,7 +306,9 @@ ...@@ -306,7 +306,9 @@
<AndroidTestResultsTableState> <AndroidTestResultsTableState>
<option name="preferredColumnWidths"> <option name="preferredColumnWidths">
<map> <map>
<entry key="29211JEGR13699" value="120" />
<entry key="Duration" value="90" /> <entry key="Duration" value="90" />
<entry key="Google&#10; Pixel 6a" value="120" />
<entry key="R5CNC07TZCY" value="120" /> <entry key="R5CNC07TZCY" value="120" />
<entry key="Tests" value="360" /> <entry key="Tests" value="360" />
<entry key="samsung&#10; SM-G998B" value="120" /> <entry key="samsung&#10; SM-G998B" value="120" />
...@@ -368,6 +370,20 @@ ...@@ -368,6 +370,20 @@
</AndroidTestResultsTableState> </AndroidTestResultsTableState>
</value> </value>
</entry> </entry>
<entry key="1489134328">
<value>
<AndroidTestResultsTableState>
<option name="preferredColumnWidths">
<map>
<entry key="29211JEGR13699" value="120" />
<entry key="Duration" value="90" />
<entry key="Google&#10; Pixel 6a" value="120" />
<entry key="Tests" value="360" />
</map>
</option>
</AndroidTestResultsTableState>
</value>
</entry>
<entry key="1814633309"> <entry key="1814633309">
<value> <value>
<AndroidTestResultsTableState> <AndroidTestResultsTableState>
...@@ -427,6 +443,20 @@ ...@@ -427,6 +443,20 @@
</AndroidTestResultsTableState> </AndroidTestResultsTableState>
</value> </value>
</entry> </entry>
<entry key="2076253436">
<value>
<AndroidTestResultsTableState>
<option name="preferredColumnWidths">
<map>
<entry key="29211JEGR13699" value="120" />
<entry key="Duration" value="90" />
<entry key="Google&#10; Pixel 6a" value="120" />
<entry key="Tests" value="360" />
</map>
</option>
</AndroidTestResultsTableState>
</value>
</entry>
</map> </map>
</option> </option>
</component> </component>
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
......
package com.futo.polycentric.core
import android.util.Log
import org.junit.Assert.assertEquals
import org.junit.Test
import userpackage.Protocol
class GenerateTestProfileTests {
@Test
fun scenarioKoenFuto() {
Store.initializeMemoryStore()
val s1p1 = ProcessHandle.create()
s1p1.addServer(TestConstants.SERVER)
s1p1.setUsername("scenarioKoenFuto subject")
val claims = listOf(
s1p1.claim(Claims.youtube("@koen-futo")),
s1p1.claim(Claims.youtube("UCR7KMD7jkSefYYWgSwNPEBA")),
s1p1.claim(Claims.rumble("c/c-3366838")),
s1p1.claim(Claims.rumble("user/koenfuto")),
)
Synchronization.fullyBackFillServers(s1p1, s1p1.system)
val s2p1 = ProcessHandle.create()
s2p1.addServer(TestConstants.SERVER)
s2p1.setUsername("scenarioKoenFuto authority")
val vouches = arrayListOf<Pointer>()
for (claim in claims) {
vouches.add(s2p1.vouch(claim))
}
Synchronization.fullyBackFillServers(s2p1, s2p1.system)
//Verify the bundle
for (i in 0 until vouches.size) {
val claimPointer = claims[i];
val vouchPointer = vouches[i];
val queryReferences = ApiMethods.getQueryReferences(TestConstants.SERVER, claimPointer.toReference(), null,
Protocol.QueryReferencesRequestEvents.newBuilder()
.setFromType(ContentType.VOUCH.value)
.build())
assertEquals(1, queryReferences.itemsCount)
val item = queryReferences.getItems(0)
val vouchEvent = SignedEvent.fromProto(item.event)
assertEquals(vouchPointer, vouchEvent.toPointer())
assertEquals(1, vouchEvent.event.references.size)
assertEquals(claimPointer.toProto().toByteString(), vouchEvent.event.references[0].reference)
}
Log.i("EXPORT_BUNDLE s1p1", createExportBundle(s1p1))
Log.i("EXPORT_BUNDLE s2p1", createExportBundle(s2p1))
Log.i("verifier pub key", s2p1.system.key.toBase64())
}
@Test
fun scenarioEveryClaimType() {
Store.initializeMemoryStore()
val s1p1 = ProcessHandle.create()
s1p1.addServer(TestConstants.SERVER)
s1p1.setUsername("scenarioEveryClaimType subject")
val claims = listOf(
s1p1.claim(Claims.hackerNews("eron_wolf")),
s1p1.claim(Claims.youtube("@FUTOTECH")),
s1p1.claim(Claims.odysee("@FUTO")),
s1p1.claim(Claims.rumble("rossmanngroup")),
s1p1.claim(Claims.discord("thekinocorner")),
s1p1.claim(Claims.instagram("@the_kino_corner")),
s1p1.claim(Claims.twitch("thekinocorner")),
s1p1.claim(Claims.url("https://futo.org/grants"))
)
Synchronization.fullyBackFillServers(s1p1, s1p1.system)
val s2p1 = ProcessHandle.create()
s2p1.addServer(TestConstants.SERVER)
s2p1.setUsername("scenarioEveryClaimType authority")
val vouches = arrayListOf<Pointer>()
for (claim in claims) {
vouches.add(s2p1.vouch(claim))
}
Synchronization.fullyBackFillServers(s2p1, s2p1.system)
//Verify the bundle
for (i in 0 until vouches.size) {
val claimPointer = claims[i];
val vouchPointer = vouches[i];
val queryReferences = ApiMethods.getQueryReferences(TestConstants.SERVER, claimPointer.toReference(), null,
Protocol.QueryReferencesRequestEvents.newBuilder()
.setFromType(ContentType.VOUCH.value)
.build())
assertEquals(1, queryReferences.itemsCount)
val item = queryReferences.getItems(0)
val vouchEvent = SignedEvent.fromProto(item.event)
assertEquals(vouchPointer, vouchEvent.toPointer())
assertEquals(1, vouchEvent.event.references.size)
assertEquals(claimPointer.toProto().toByteString(), vouchEvent.event.references[0].reference)
}
Log.i("EXPORT_BUNDLE s1p1", createExportBundle(s1p1))
Log.i("EXPORT_BUNDLE s2p1", createExportBundle(s2p1))
}
private fun createExportBundle(processHandle: ProcessHandle): String {
val relevantContentTypes = listOf(ContentType.SERVER.value, ContentType.AVATAR.value, ContentType.USERNAME.value);
val crdtSetItems = arrayListOf<Pair<SignedEvent, StorageTypeCRDTSetItem>>()
val crdtItems = arrayListOf<Pair<SignedEvent, StorageTypeCRDTItem>>()
Store.instance.enumerateSignedEvents(processHandle.system) { signedEvent ->
if (!relevantContentTypes.contains(signedEvent.event.contentType)) {
return@enumerateSignedEvents;
}
val event = signedEvent.event;
event.lwwElementSet?.let { lwwElementSet ->
val foundIndex = crdtSetItems.indexOfFirst { pair ->
pair.second.contentType == event.contentType && pair.second.value.contentEquals(lwwElementSet.value)
}
var found = false
if (foundIndex != -1) {
val foundPair = crdtSetItems[foundIndex]
if (foundPair.second.unixMilliseconds < lwwElementSet.unixMilliseconds) {
foundPair.second.operation = lwwElementSet.operation
foundPair.second.unixMilliseconds = lwwElementSet.unixMilliseconds
found = true
}
}
if (!found) {
crdtSetItems.add(Pair(signedEvent, StorageTypeCRDTSetItem(event.contentType, lwwElementSet.value, lwwElementSet.unixMilliseconds, lwwElementSet.operation)))
}
}
event.lwwElement?.let { lwwElement ->
val foundIndex = crdtItems.indexOfFirst { pair ->
pair.second.contentType == event.contentType
}
var found = false
if (foundIndex != -1) {
val foundPair = crdtItems[foundIndex]
if (foundPair.second.unixMilliseconds < lwwElement.unixMilliseconds) {
foundPair.second.value = lwwElement.value
foundPair.second.unixMilliseconds = lwwElement.unixMilliseconds
found = true
}
}
if (!found) {
crdtItems.add(Pair(signedEvent, StorageTypeCRDTItem(event.contentType, lwwElement.value, lwwElement.unixMilliseconds)))
}
}
};
val relevantEvents = arrayListOf<SignedEvent>();
for (pair in crdtSetItems) {
relevantEvents.add(pair.first);
}
for (pair in crdtItems) {
relevantEvents.add(pair.first);
}
val exportBundle = Protocol.ExportBundle.newBuilder()
.setKeyPair(processHandle.processSecret.system.toProto())
.setEvents(
Protocol.Events.newBuilder()
.addAllEvents(relevantEvents.map { it.toProto() })
.build())
.build();
val urlInfo = Protocol.URLInfo.newBuilder()
.setUrlType(3)
.setBody(exportBundle.toByteString())
.build();
return "polycentric://" + urlInfo.toByteArray().toBase64Url()
}
}
\ No newline at end of file
...@@ -103,7 +103,7 @@ class ProcessHandleTests { ...@@ -103,7 +103,7 @@ class ProcessHandleTests {
Store.initializeMemoryStore() Store.initializeMemoryStore()
val s1p1 = ProcessHandle.create() val s1p1 = ProcessHandle.create()
s1p1.addServer(SERVER) s1p1.addServer(TestConstants.SERVER)
s1p1.setDescription("hello") s1p1.setDescription("hello")
val claim = Claims.hackerNews("pg") val claim = Claims.hackerNews("pg")
...@@ -114,13 +114,13 @@ class ProcessHandleTests { ...@@ -114,13 +114,13 @@ class ProcessHandleTests {
val s2p1 = ProcessHandle.create() val s2p1 = ProcessHandle.create()
Synchronization.fullyBackFillClient(s2p1, s1p1.system, SERVER) Synchronization.fullyBackFillClient(s2p1, s1p1.system, TestConstants.SERVER)
val s1State = SystemState.fromStorageTypeSystemState(Store.instance.getSystemState(s1p1.system)) val s1State = SystemState.fromStorageTypeSystemState(Store.instance.getSystemState(s1p1.system))
assertEquals("hello", s1State.description) assertEquals("hello", s1State.description)
val resolved = ApiMethods.getResolveClaim(SERVER, s1p1.system.toProto(), claim) val resolved = ApiMethods.getResolveClaim(TestConstants.SERVER, s1p1.system.toProto(), claim)
assertEquals(2, resolved.eventsList.size) assertEquals(2, resolved.eventsList.size)
} }
...@@ -129,7 +129,7 @@ class ProcessHandleTests { ...@@ -129,7 +129,7 @@ class ProcessHandleTests {
Store.initializeMemoryStore() Store.initializeMemoryStore()
val s1p1 = ProcessHandle.create() val s1p1 = ProcessHandle.create()
s1p1.addServer(SERVER) s1p1.addServer(TestConstants.SERVER)
Log.i("ProcessHandleTests", s1p1.processSecret.toProto().toByteArray().toBase64()); Log.i("ProcessHandleTests", s1p1.processSecret.toProto().toByteArray().toBase64());
val claim = Claims.hackerNews("pg") val claim = Claims.hackerNews("pg")
...@@ -138,7 +138,7 @@ class ProcessHandleTests { ...@@ -138,7 +138,7 @@ class ProcessHandleTests {
Synchronization.fullyBackFillServers(s1p1, s1p1.system) Synchronization.fullyBackFillServers(s1p1, s1p1.system)
val resolved = ApiMethods.getResolveClaim(SERVER, s1p1.system.toProto(), claim) val resolved = ApiMethods.getResolveClaim(TestConstants.SERVER, s1p1.system.toProto(), claim)
assertEquals(2, resolved.eventsList.size) assertEquals(2, resolved.eventsList.size)
val resolvedEvents = resolved.eventsList.map { i -> SignedEvent.fromProto(i) } val resolvedEvents = resolved.eventsList.map { i -> SignedEvent.fromProto(i) }
...@@ -180,7 +180,7 @@ class ProcessHandleTests { ...@@ -180,7 +180,7 @@ class ProcessHandleTests {
val subject = Models.referenceFromBuffer(("https://fake.com/" + Math.random().toString()).toByteArray()) val subject = Models.referenceFromBuffer(("https://fake.com/" + Math.random().toString()).toByteArray())
val createHandle = { username: String -> val createHandle = { username: String ->
val handle = ProcessHandle.create() val handle = ProcessHandle.create()
handle.addServer(SERVER) handle.addServer(TestConstants.SERVER)
handle.setUsername(username) handle.setUsername(username)
Synchronization.fullyBackFillServers(handle, handle.system) Synchronization.fullyBackFillServers(handle, handle.system)
handle handle
...@@ -231,7 +231,7 @@ class ProcessHandleTests { ...@@ -231,7 +231,7 @@ class ProcessHandleTests {
babbage.fullyBackfillServers() babbage.fullyBackfillServers()
turing.fullyBackfillServers() turing.fullyBackfillServers()
val queryReferences = ApiMethods.getQueryReferences(SERVER, subject, null, val queryReferences = ApiMethods.getQueryReferences(TestConstants.SERVER, subject, null,
Protocol.QueryReferencesRequestEvents.newBuilder() Protocol.QueryReferencesRequestEvents.newBuilder()
.setFromType(ContentType.POST.value) .setFromType(ContentType.POST.value)
.addAllCountLwwElementReferences(arrayListOf( .addAllCountLwwElementReferences(arrayListOf(
...@@ -305,13 +305,13 @@ class ProcessHandleTests { ...@@ -305,13 +305,13 @@ class ProcessHandleTests {
Store.initializeMemoryStore() Store.initializeMemoryStore()
val s1p1 = ProcessHandle.create() val s1p1 = ProcessHandle.create()
s1p1.addServer(SERVER) s1p1.addServer(TestConstants.SERVER)
s1p1.setUsername("test1") s1p1.setUsername("test1")
Synchronization.fullyBackFillServers(s1p1, s1p1.system) Synchronization.fullyBackFillServers(s1p1, s1p1.system)
run { run {
val events = ApiMethods.getQueryLatest( val events = ApiMethods.getQueryLatest(
SERVER, TestConstants.SERVER,
s1p1.system.toProto(), s1p1.system.toProto(),
listOf(ContentType.USERNAME.value) listOf(ContentType.USERNAME.value)
) )
...@@ -331,7 +331,7 @@ class ProcessHandleTests { ...@@ -331,7 +331,7 @@ class ProcessHandleTests {
run { run {
val events = ApiMethods.getQueryLatest( val events = ApiMethods.getQueryLatest(
SERVER, TestConstants.SERVER,
s1p1.system.toProto(), s1p1.system.toProto(),
listOf(ContentType.USERNAME.value) listOf(ContentType.USERNAME.value)
) )
...@@ -352,7 +352,7 @@ class ProcessHandleTests { ...@@ -352,7 +352,7 @@ class ProcessHandleTests {
Store.initializeMemoryStore() Store.initializeMemoryStore()
val s1p1 = ProcessHandle.create() val s1p1 = ProcessHandle.create()
s1p1.addServer(SERVER) s1p1.addServer(TestConstants.SERVER)
s1p1.setDescription("howdy") s1p1.setDescription("howdy")
val claim = Claims.hackerNews("fake_user") val claim = Claims.hackerNews("fake_user")
...@@ -362,7 +362,7 @@ class ProcessHandleTests { ...@@ -362,7 +362,7 @@ class ProcessHandleTests {
Synchronization.fullyBackFillServers(s1p1, s1p1.system) Synchronization.fullyBackFillServers(s1p1, s1p1.system)
val resolved = ApiMethods.getResolveClaim( val resolved = ApiMethods.getResolveClaim(
SERVER, TestConstants.SERVER,
s1p1.system.toProto(), s1p1.system.toProto(),
claim claim
) )
...@@ -370,7 +370,7 @@ class ProcessHandleTests { ...@@ -370,7 +370,7 @@ class ProcessHandleTests {
assertEquals(1, validClaims.size) assertEquals(1, validClaims.size)
val events = ApiMethods.getQueryIndex( val events = ApiMethods.getQueryIndex(
SERVER, TestConstants.SERVER,
validClaims[0].system.toProto(), validClaims[0].system.toProto(),
ContentType.DESCRIPTION.value ContentType.DESCRIPTION.value
) )
...@@ -384,7 +384,7 @@ class ProcessHandleTests { ...@@ -384,7 +384,7 @@ class ProcessHandleTests {
val systemState = SystemState.fromStorageTypeSystemState(storageSystemState) val systemState = SystemState.fromStorageTypeSystemState(storageSystemState)
assertEquals("howdy", systemState.description) assertEquals("howdy", systemState.description)
val queryReferences = ApiMethods.getQueryReferences(SERVER, claimPointer.toReference(), null, val queryReferences = ApiMethods.getQueryReferences(TestConstants.SERVER, claimPointer.toReference(), null,
Protocol.QueryReferencesRequestEvents.newBuilder() Protocol.QueryReferencesRequestEvents.newBuilder()
.setFromType(ContentType.VOUCH.value) .setFromType(ContentType.VOUCH.value)
.build()); .build());
...@@ -412,8 +412,4 @@ class ProcessHandleTests { ...@@ -412,8 +412,4 @@ class ProcessHandleTests {
} }
} }
} }
companion object {
private const val SERVER = "https://srv1-stg.polycentric.io"
}
} }
\ No newline at end of file
package com.futo.polycentric.core
class TestConstants {
companion object {
const val SERVER = "https://srv1-stg.polycentric.io"
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment