Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
briar
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
680
Issues
680
List
Boards
Labels
Service Desk
Milestones
Merge Requests
12
Merge Requests
12
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
briar
briar
Commits
1be400eb
Unverified
Commit
1be400eb
authored
Mar 03, 2016
by
Ernir Erlingsson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Switched Roboguice/Guice out for Dagger 2
parent
e5d70381
Changes
89
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
89 changed files
with
1634 additions
and
796 deletions
+1634
-796
briar-android-tests/.gitignore
briar-android-tests/.gitignore
+5
-0
briar-android-tests/build.gradle
briar-android-tests/build.gradle
+39
-0
briar-android-tests/proguard-rules.pro
briar-android-tests/proguard-rules.pro
+17
-0
briar-android-tests/src/androidTest/java/com/ymirmobile/briar_android_tests/ApplicationTest.java
...a/com/ymirmobile/briar_android_tests/ApplicationTest.java
+13
-0
briar-android-tests/src/main/AndroidManifest.xml
briar-android-tests/src/main/AndroidManifest.xml
+12
-0
briar-android-tests/src/main/res/values/strings.xml
briar-android-tests/src/main/res/values/strings.xml
+3
-0
briar-android-tests/src/test/java/org/briarproject/protocol/ProtocolIntegrationTest.java
...va/org/briarproject/protocol/ProtocolIntegrationTest.java
+27
-31
briar-android-tests/src/test/java/org/briarproject/protocol/ProtocolTestComponent.java
...java/org/briarproject/protocol/ProtocolTestComponent.java
+26
-0
briar-android-tests/src/test/java/org/briarproject/sync/ConstantsComponent.java
...c/test/java/org/briarproject/sync/ConstantsComponent.java
+28
-0
briar-android-tests/src/test/java/org/briarproject/sync/ConstantsTest.java
...ts/src/test/java/org/briarproject/sync/ConstantsTest.java
+20
-36
briar-android-tests/src/test/java/org/briarproject/sync/SimplexMessagingComponent.java
...java/org/briarproject/sync/SimplexMessagingComponent.java
+54
-0
briar-android-tests/src/test/java/org/briarproject/sync/SimplexMessagingIntegrationTest.java
...rg/briarproject/sync/SimplexMessagingIntegrationTest.java
+48
-85
briar-android/build.gradle
briar-android/build.gradle
+6
-3
briar-android/proguard-rules.txt
briar-android/proguard-rules.txt
+6
-1
briar-android/src/im/delight/android/identicons/AsymmetricIdenticon.java
...rc/im/delight/android/identicons/AsymmetricIdenticon.java
+1
-4
briar-android/src/im/delight/android/identicons/SymmetricIdenticon.java
...src/im/delight/android/identicons/SymmetricIdenticon.java
+1
-4
briar-android/src/org/briarproject/android/AndroidComponent.java
...ndroid/src/org/briarproject/android/AndroidComponent.java
+70
-0
briar-android/src/org/briarproject/android/AndroidModule.java
...r-android/src/org/briarproject/android/AndroidModule.java
+31
-15
briar-android/src/org/briarproject/android/AppModule.java
briar-android/src/org/briarproject/android/AppModule.java
+25
-0
briar-android/src/org/briarproject/android/BaseActivity.java
briar-android/src/org/briarproject/android/BaseActivity.java
+7
-101
briar-android/src/org/briarproject/android/BriarActivity.java
...r-android/src/org/briarproject/android/BriarActivity.java
+10
-4
briar-android/src/org/briarproject/android/BriarApplication.java
...ndroid/src/org/briarproject/android/BriarApplication.java
+11
-0
briar-android/src/org/briarproject/android/BriarService.java
briar-android/src/org/briarproject/android/BriarService.java
+9
-6
briar-android/src/org/briarproject/android/NavDrawerActivity.java
...droid/src/org/briarproject/android/NavDrawerActivity.java
+23
-23
briar-android/src/org/briarproject/android/PasswordActivity.java
...ndroid/src/org/briarproject/android/PasswordActivity.java
+12
-5
briar-android/src/org/briarproject/android/SetupActivity.java
...r-android/src/org/briarproject/android/SetupActivity.java
+31
-17
briar-android/src/org/briarproject/android/SplashScreenActivity.java
...id/src/org/briarproject/android/SplashScreenActivity.java
+32
-29
briar-android/src/org/briarproject/android/StartupFailureActivity.java
.../src/org/briarproject/android/StartupFailureActivity.java
+5
-0
briar-android/src/org/briarproject/android/TestingActivity.java
...android/src/org/briarproject/android/TestingActivity.java
+8
-3
briar-android/src/org/briarproject/android/contact/ContactListFragment.java
...org/briarproject/android/contact/ContactListFragment.java
+17
-5
briar-android/src/org/briarproject/android/contact/ConversationActivity.java
...rg/briarproject/android/contact/ConversationActivity.java
+14
-8
briar-android/src/org/briarproject/android/forum/AvailableForumsActivity.java
...g/briarproject/android/forum/AvailableForumsActivity.java
+9
-3
briar-android/src/org/briarproject/android/forum/CreateForumActivity.java
...c/org/briarproject/android/forum/CreateForumActivity.java
+7
-1
briar-android/src/org/briarproject/android/forum/ForumActivity.java
...oid/src/org/briarproject/android/forum/ForumActivity.java
+9
-3
briar-android/src/org/briarproject/android/forum/ForumListFragment.java
...src/org/briarproject/android/forum/ForumListFragment.java
+8
-2
briar-android/src/org/briarproject/android/forum/ReadForumPostActivity.java
...org/briarproject/android/forum/ReadForumPostActivity.java
+7
-1
briar-android/src/org/briarproject/android/forum/ShareForumActivity.java
...rc/org/briarproject/android/forum/ShareForumActivity.java
+8
-2
briar-android/src/org/briarproject/android/forum/WriteForumPostActivity.java
...rg/briarproject/android/forum/WriteForumPostActivity.java
+11
-5
briar-android/src/org/briarproject/android/fragment/BaseFragment.java
...d/src/org/briarproject/android/fragment/BaseFragment.java
+20
-3
briar-android/src/org/briarproject/android/fragment/DashboardFragment.java
.../org/briarproject/android/fragment/DashboardFragment.java
+7
-6
briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java
...briarproject/android/identity/CreateIdentityActivity.java
+10
-4
briar-android/src/org/briarproject/android/invitation/AddContactActivity.java
...g/briarproject/android/invitation/AddContactActivity.java
+10
-4
briar-android/src/org/briarproject/android/invitation/ChooseIdentityView.java
...g/briarproject/android/invitation/ChooseIdentityView.java
+3
-4
briar-android/src/org/briarproject/android/panic/ExitActivity.java
...roid/src/org/briarproject/android/panic/ExitActivity.java
+6
-0
briar-android/src/org/briarproject/android/panic/PanicPreferencesActivity.java
.../briarproject/android/panic/PanicPreferencesActivity.java
+6
-0
briar-android/src/org/briarproject/android/panic/PanicResponderActivity.java
...rg/briarproject/android/panic/PanicResponderActivity.java
+14
-2
briar-android/src/org/briarproject/android/util/AuthorView.java
...android/src/org/briarproject/android/util/AuthorView.java
+1
-3
briar-android/src/org/briarproject/plugins/AndroidPluginsModule.java
...id/src/org/briarproject/plugins/AndroidPluginsModule.java
+4
-1
briar-android/src/org/briarproject/system/AndroidLocationUtils.java
...oid/src/org/briarproject/system/AndroidLocationUtils.java
+2
-2
briar-android/src/org/briarproject/system/AndroidSystemModule.java
...roid/src/org/briarproject/system/AndroidSystemModule.java
+26
-7
briar-api/build.gradle
briar-api/build.gradle
+7
-7
briar-api/src/org/briarproject/api/crypto/CryptoExecutor.java
...r-api/src/org/briarproject/api/crypto/CryptoExecutor.java
+11
-3
briar-api/src/org/briarproject/api/db/DatabaseExecutor.java
briar-api/src/org/briarproject/api/db/DatabaseExecutor.java
+2
-2
briar-api/src/org/briarproject/api/lifecycle/IoExecutor.java
briar-api/src/org/briarproject/api/lifecycle/IoExecutor.java
+2
-2
briar-core/src/org/briarproject/contact/ContactManagerImpl.java
...core/src/org/briarproject/contact/ContactManagerImpl.java
+15
-2
briar-core/src/org/briarproject/contact/ContactModule.java
briar-core/src/org/briarproject/contact/ContactModule.java
+10
-8
briar-core/src/org/briarproject/crypto/CryptoModule.java
briar-core/src/org/briarproject/crypto/CryptoModule.java
+40
-16
briar-core/src/org/briarproject/data/DataModule.java
briar-core/src/org/briarproject/data/DataModule.java
+24
-8
briar-core/src/org/briarproject/db/DatabaseModule.java
briar-core/src/org/briarproject/db/DatabaseModule.java
+12
-12
briar-core/src/org/briarproject/event/EventModule.java
briar-core/src/org/briarproject/event/EventModule.java
+10
-6
briar-core/src/org/briarproject/forum/ForumManagerImpl.java
briar-core/src/org/briarproject/forum/ForumManagerImpl.java
+110
-43
briar-core/src/org/briarproject/forum/ForumModule.java
briar-core/src/org/briarproject/forum/ForumModule.java
+49
-23
briar-core/src/org/briarproject/forum/ForumSharingManagerImpl.java
...e/src/org/briarproject/forum/ForumSharingManagerImpl.java
+6
-2
briar-core/src/org/briarproject/identity/IdentityManagerImpl.java
...re/src/org/briarproject/identity/IdentityManagerImpl.java
+14
-2
briar-core/src/org/briarproject/identity/IdentityModule.java
briar-core/src/org/briarproject/identity/IdentityModule.java
+11
-14
briar-core/src/org/briarproject/invitation/InvitationModule.java
...ore/src/org/briarproject/invitation/InvitationModule.java
+32
-5
briar-core/src/org/briarproject/lifecycle/LifecycleModule.java
...-core/src/org/briarproject/lifecycle/LifecycleModule.java
+22
-10
briar-core/src/org/briarproject/messaging/MessagingManagerImpl.java
.../src/org/briarproject/messaging/MessagingManagerImpl.java
+95
-35
briar-core/src/org/briarproject/messaging/MessagingModule.java
...-core/src/org/briarproject/messaging/MessagingModule.java
+20
-12
briar-core/src/org/briarproject/plugins/ConnectionRegistryImpl.java
.../src/org/briarproject/plugins/ConnectionRegistryImpl.java
+2
-2
briar-core/src/org/briarproject/plugins/PluginsModule.java
briar-core/src/org/briarproject/plugins/PluginsModule.java
+39
-13
briar-core/src/org/briarproject/properties/PropertiesModule.java
...ore/src/org/briarproject/properties/PropertiesModule.java
+10
-11
briar-core/src/org/briarproject/properties/TransportPropertyManagerImpl.java
...briarproject/properties/TransportPropertyManagerImpl.java
+98
-49
briar-core/src/org/briarproject/reliability/ReliabilityModule.java
...e/src/org/briarproject/reliability/ReliabilityModule.java
+22
-6
briar-core/src/org/briarproject/settings/SettingsManagerImpl.java
...re/src/org/briarproject/settings/SettingsManagerImpl.java
+2
-1
briar-core/src/org/briarproject/settings/SettingsModule.java
briar-core/src/org/briarproject/settings/SettingsModule.java
+10
-6
briar-core/src/org/briarproject/sync/MessageFactoryImpl.java
briar-core/src/org/briarproject/sync/MessageFactoryImpl.java
+2
-1
briar-core/src/org/briarproject/sync/SyncModule.java
briar-core/src/org/briarproject/sync/SyncModule.java
+65
-13
briar-core/src/org/briarproject/sync/ValidationManagerImpl.java
...core/src/org/briarproject/sync/ValidationManagerImpl.java
+2
-2
briar-core/src/org/briarproject/transport/TransportModule.java
...-core/src/org/briarproject/transport/TransportModule.java
+19
-9
briar-desktop/src/org/briarproject/lifecycle/DesktopLifecycleModule.java
...rc/org/briarproject/lifecycle/DesktopLifecycleModule.java
+3
-1
briar-desktop/src/org/briarproject/plugins/DesktopPluginsModule.java
...op/src/org/briarproject/plugins/DesktopPluginsModule.java
+4
-2
briar-desktop/src/org/briarproject/system/DesktopSystemModule.java
...ktop/src/org/briarproject/system/DesktopSystemModule.java
+4
-3
briar-tests/build.gradle
briar-tests/build.gradle
+0
-1
briar-tests/src/org/briarproject/TestDatabaseModule.java
briar-tests/src/org/briarproject/TestDatabaseModule.java
+9
-5
briar-tests/src/org/briarproject/TestLifecycleModule.java
briar-tests/src/org/briarproject/TestLifecycleModule.java
+49
-18
briar-tests/src/org/briarproject/TestSystemModule.java
briar-tests/src/org/briarproject/TestSystemModule.java
+18
-7
build.gradle
build.gradle
+4
-0
settings.gradle
settings.gradle
+1
-1
No files found.
briar-android-tests/.gitignore
0 → 100644
View file @
1be400eb
bin
gen
build
local.properties
.settings
briar-android-tests/build.gradle
0 → 100644
View file @
1be400eb
apply
plugin:
'com.android.library'
sourceCompatibility
=
1.6
targetCompatibility
=
1.6
apply
plugin:
'witness'
apply
plugin:
'com.neenbedankt.android-apt'
repositories
{
maven
{
url
'http://repo1.maven.org/maven2'
}
}
android
{
compileSdkVersion
23
buildToolsVersion
"23.0.2"
defaultConfig
{
minSdkVersion
10
targetSdkVersion
23
versionCode
1
versionName
"1.0"
}
buildTypes
{
release
{
minifyEnabled
false
proguardFiles
getDefaultProguardFile
(
'proguard-android.txt'
),
'proguard-rules.pro'
}
}
}
dependencies
{
compile
fileTree
(
dir:
'libs'
,
include:
[
'*.jar'
])
compile
project
(
':briar-api'
)
compile
project
(
':briar-core'
)
testCompile
'junit:junit:4.12'
compile
'com.android.support:appcompat-v7:23.2.0'
testApt
'com.google.dagger:dagger-compiler:2.0.2'
provided
'javax.annotation:jsr250-api:1.0'
compile
'cglib:cglib-nodep:3.1'
testCompile
project
(
':briar-tests'
)
}
briar-android-tests/proguard-rules.pro
0 → 100644
View file @
1be400eb
# Add project specific ProGuard rules here.
#
By
default
,
the
flags
in
this
file
are
appended
to
flags
specified
#
in
/
home
/
ernir
/
dev
/
sdk
/
tools
/
proguard
/
proguard
-
android
.
txt
#
You
can
edit
the
include
path
and
order
by
changing
the
proguardFiles
#
directive
in
build
.
gradle
.
#
#
For
more
details
,
see
#
http
://
developer
.
android
.
com
/
guide
/
developing
/
tools
/
proguard
.
html
#
Add
any
project
specific
keep
options
here
:
#
If
your
project
uses
WebView
with
JS
,
uncomment
the
following
#
and
specify
the
fully
qualified
class
name
to
the
JavaScript
interface
#
class
:
#-
keepclassmembers
class
fqcn
.
of
.
javascript
.
interface
.
for
.
webview
{
#
public
*
;
#
}
briar-android-tests/src/androidTest/java/com/ymirmobile/briar_android_tests/ApplicationTest.java
0 → 100644
View file @
1be400eb
package
com.ymirmobile.briar_android_tests
;
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
briar-android-tests/src/main/AndroidManifest.xml
0 → 100644
View file @
1be400eb
<manifest
package=
"org.briarproject"
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<application
android:allowBackup=
"true"
android:label=
"@string/app_name"
android:supportsRtl=
"true"
>
</application>
</manifest>
briar-android-tests/src/main/res/values/strings.xml
0 → 100644
View file @
1be400eb
<resources>
<string
name=
"app_name"
>
briar-android-tests
</string>
</resources>
briar-
tests/src/org/briarproject
/ProtocolIntegrationTest.java
→
briar-
android-tests/src/test/java/org/briarproject/protocol
/ProtocolIntegrationTest.java
View file @
1be400eb
package
org.briarproject
;
import
com.google.inject.Guice
;
import
com.google.inject.Injector
;
package
org.briarproject.protocol
;
import
org.briarproject.BriarTestCase
;
import
org.briarproject.TestUtils
;
import
org.briarproject.api.TransportId
;
import
org.briarproject.api.contact.ContactId
;
import
org.briarproject.api.crypto.SecretKey
;
...
...
@@ -22,14 +21,15 @@ import org.briarproject.api.sync.Request;
import
org.briarproject.api.transport.StreamContext
;
import
org.briarproject.api.transport.StreamReaderFactory
;
import
org.briarproject.api.transport.StreamWriterFactory
;
import
org.briarproject.crypto.CryptoModule
;
import
org.briarproject.data.DataModule
;
import
org.briarproject.db.DatabaseModule
;
import
org.briarproject.event.EventModule
;
import
org.briarproject.sync.SyncModule
;
import
org.briarproject.transport.TransportModule
;
import
org.junit.Test
;
import
static
org
.
briarproject
.
api
.
sync
.
SyncConstants
.
MAX_GROUP_DESCRIPTOR_LENGTH
;
import
static
org
.
briarproject
.
api
.
transport
.
TransportConstants
.
TAG_LENGTH
;
import
static
org
.
junit
.
Assert
.
assertArrayEquals
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertFalse
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.InputStream
;
...
...
@@ -37,48 +37,43 @@ import java.io.OutputStream;
import
java.util.Arrays
;
import
java.util.Collection
;
import
static
org
.
briarproject
.
api
.
sync
.
SyncConstants
.
MAX_GROUP_DESCRIPTOR_LENGTH
;
import
static
org
.
briarproject
.
api
.
transport
.
TransportConstants
.
TAG_LENGTH
;
import
static
org
.
junit
.
Assert
.
assertArrayEquals
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertFalse
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
import
javax.inject.Inject
;
public
class
ProtocolIntegrationTest
extends
BriarTestCase
{
private
final
StreamReaderFactory
streamReaderFactory
;
private
final
StreamWriterFactory
streamWriterFactory
;
private
final
PacketReaderFactory
packetReaderFactory
;
private
final
PacketWriterFactory
packetWriterFactory
;
@Inject
StreamReaderFactory
streamReaderFactory
;
@Inject
StreamWriterFactory
streamWriterFactory
;
@Inject
PacketReaderFactory
packetReaderFactory
;
@Inject
PacketWriterFactory
packetWriterFactory
;
private
final
ContactId
contactId
;
private
final
TransportId
transportId
;
private
final
SecretKey
tagKey
,
headerKey
;
private
final
Message
message
,
message1
;
private
final
Collection
<
MessageId
>
messageIds
;
private
final
ProtocolTestComponent
component
;
public
ProtocolIntegrationTest
()
throws
Exception
{
Injector
i
=
Guice
.
createInjector
(
new
TestDatabaseModule
(),
new
TestLifecycleModule
(),
new
TestSystemModule
(),
new
CryptoModule
(),
new
DatabaseModule
(),
new
EventModule
(),
new
SyncModule
(),
new
DataModule
(),
new
TransportModule
());
streamReaderFactory
=
i
.
getInstance
(
StreamReaderFactory
.
class
);
streamWriterFactory
=
i
.
getInstance
(
StreamWriterFactory
.
class
);
packetReaderFactory
=
i
.
getInstance
(
PacketReaderFactory
.
class
);
packetWriterFactory
=
i
.
getInstance
(
PacketWriterFactory
.
class
);
component
=
DaggerProtocolTestComponent
.
builder
().
build
();
component
.
inject
(
this
);
contactId
=
new
ContactId
(
234
);
transportId
=
new
TransportId
(
"id"
);
// Create the transport keys
tagKey
=
TestUtils
.
createSecretKey
();
headerKey
=
TestUtils
.
createSecretKey
();
// Create a group
GroupFactory
groupFactory
=
i
.
getInstance
(
GroupFactory
.
class
);
GroupFactory
groupFactory
=
component
.
getGroupFactory
(
);
ClientId
clientId
=
new
ClientId
(
TestUtils
.
getRandomId
());
byte
[]
descriptor
=
new
byte
[
MAX_GROUP_DESCRIPTOR_LENGTH
];
Group
group
=
groupFactory
.
createGroup
(
clientId
,
descriptor
);
// Add two messages to the group
MessageFactory
messageFactory
=
i
.
getInstance
(
MessageFactory
.
class
);
MessageFactory
messageFactory
=
component
.
getMessageFactory
(
);
long
timestamp
=
System
.
currentTimeMillis
();
String
messageBody
=
"Hello world"
;
message
=
messageFactory
.
createMessage
(
group
.
getId
(),
timestamp
,
...
...
@@ -159,4 +154,5 @@ public class ProtocolIntegrationTest extends BriarTestCase {
assertEquals
(
m1
.
getTimestamp
(),
m2
.
getTimestamp
());
assertArrayEquals
(
m1
.
getRaw
(),
m2
.
getRaw
());
}
}
briar-android-tests/src/test/java/org/briarproject/protocol/ProtocolTestComponent.java
0 → 100644
View file @
1be400eb
package
org.briarproject.protocol
;
import
org.briarproject.TestDatabaseModule
;
import
org.briarproject.TestSystemModule
;
import
org.briarproject.api.sync.GroupFactory
;
import
org.briarproject.api.sync.MessageFactory
;
import
org.briarproject.crypto.CryptoModule
;
import
org.briarproject.data.DataModule
;
import
org.briarproject.db.DatabaseModule
;
import
org.briarproject.event.EventModule
;
import
org.briarproject.sync.SyncModule
;
import
org.briarproject.transport.TransportModule
;
import
javax.inject.Singleton
;
import
dagger.Component
;
@Singleton
@Component
(
modules
=
{
TestDatabaseModule
.
class
,
TestSystemModule
.
class
,
CryptoModule
.
class
,
DatabaseModule
.
class
,
EventModule
.
class
,
SyncModule
.
class
,
DataModule
.
class
,
TransportModule
.
class
})
public
interface
ProtocolTestComponent
{
void
inject
(
ProtocolIntegrationTest
testCase
);
GroupFactory
getGroupFactory
();
MessageFactory
getMessageFactory
();
}
briar-android-tests/src/test/java/org/briarproject/sync/ConstantsComponent.java
0 → 100644
View file @
1be400eb
package
org.briarproject.sync
;
import
org.briarproject.TestDatabaseModule
;
import
org.briarproject.TestLifecycleModule
;
import
org.briarproject.TestSystemModule
;
import
org.briarproject.contact.ContactModule
;
import
org.briarproject.crypto.CryptoModule
;
import
org.briarproject.data.DataModule
;
import
org.briarproject.db.DatabaseModule
;
import
org.briarproject.event.EventModule
;
import
org.briarproject.forum.ForumModule
;
import
org.briarproject.identity.IdentityModule
;
import
org.briarproject.messaging.MessagingModule
;
import
org.briarproject.transport.TransportModule
;
import
javax.inject.Singleton
;
import
dagger.Component
;
@Singleton
@Component
(
modules
=
{
TestDatabaseModule
.
class
,
TestLifecycleModule
.
class
,
TestSystemModule
.
class
,
ContactModule
.
class
,
CryptoModule
.
class
,
DatabaseModule
.
class
,
EventModule
.
class
,
SyncModule
.
class
,
DataModule
.
class
,
TransportModule
.
class
,
ForumModule
.
class
,
IdentityModule
.
class
,
MessagingModule
.
class
})
public
interface
ConstantsComponent
{
void
inject
(
ConstantsTest
testCase
);
}
briar-
tests/src
/org/briarproject/sync/ConstantsTest.java
→
briar-
android-tests/src/test/java
/org/briarproject/sync/ConstantsTest.java
View file @
1be400eb
package
org.briarproject.sync
;
import
com.google.inject.Guice
;
import
com.google.inject.Injector
;
import
org.briarproject.BriarTestCase
;
import
org.briarproject.TestDatabaseModule
;
import
org.briarproject.TestLifecycleModule
;
import
org.briarproject.TestSystemModule
;
import
org.briarproject.TestUtils
;
import
org.briarproject.api.UniqueId
;
import
org.briarproject.api.crypto.CryptoComponent
;
...
...
@@ -21,22 +15,6 @@ import org.briarproject.api.identity.AuthorFactory;
import
org.briarproject.api.messaging.MessagingConstants
;
import
org.briarproject.api.messaging.PrivateMessage
;
import
org.briarproject.api.messaging.PrivateMessageFactory
;
import
org.briarproject.api.sync.GroupId
;
import
org.briarproject.api.sync.MessageId
;
import
org.briarproject.clients.ClientsModule
;
import
org.briarproject.contact.ContactModule
;
import
org.briarproject.crypto.CryptoModule
;
import
org.briarproject.data.DataModule
;
import
org.briarproject.db.DatabaseModule
;
import
org.briarproject.event.EventModule
;
import
org.briarproject.forum.ForumModule
;
import
org.briarproject.identity.IdentityModule
;
import
org.briarproject.messaging.MessagingModule
;
import
org.briarproject.transport.TransportModule
;
import
org.junit.Test
;
import
java.util.Random
;
import
static
org
.
briarproject
.
api
.
forum
.
ForumConstants
.
MAX_FORUM_POST_BODY_LENGTH
;
import
static
org
.
briarproject
.
api
.
identity
.
AuthorConstants
.
MAX_AUTHOR_NAME_LENGTH
;
import
static
org
.
briarproject
.
api
.
identity
.
AuthorConstants
.
MAX_PUBLIC_KEY_LENGTH
;
...
...
@@ -45,26 +23,32 @@ import static org.briarproject.api.messaging.MessagingConstants.MAX_PRIVATE_MESS
import
static
org
.
briarproject
.
api
.
sync
.
SyncConstants
.
MAX_PACKET_PAYLOAD_LENGTH
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
import
org.briarproject.api.sync.GroupId
;
import
org.briarproject.api.sync.MessageId
;
import
org.junit.Test
;
import
java.util.Random
;
import
javax.inject.Inject
;
public
class
ConstantsTest
extends
BriarTestCase
{
// TODO: Break this up into tests that are relevant for each package
@Inject
CryptoComponent
crypto
;
@Inject
AuthorFactory
authorFactory
;
@Inject
PrivateMessageFactory
privateMessageFactory
;
@Inject
ForumPostFactory
forumPostFactory
;
private
final
CryptoComponent
crypto
;
private
final
AuthorFactory
authorFactory
;
private
final
PrivateMessageFactory
privateMessageFactory
;
private
final
ForumPostFactory
forumPostFactory
;
private
final
ConstantsComponent
component
;
public
ConstantsTest
()
throws
Exception
{
Injector
i
=
Guice
.
createInjector
(
new
TestDatabaseModule
(),
new
TestLifecycleModule
(),
new
TestSystemModule
(),
new
ClientsModule
(),
new
ContactModule
(),
new
CryptoModule
(),
new
DatabaseModule
(),
new
DataModule
(),
new
EventModule
(),
new
ForumModule
(),
new
IdentityModule
(),
new
MessagingModule
(),
new
SyncModule
(),
new
TransportModule
());
crypto
=
i
.
getInstance
(
CryptoComponent
.
class
);
authorFactory
=
i
.
getInstance
(
AuthorFactory
.
class
);
privateMessageFactory
=
i
.
getInstance
(
PrivateMessageFactory
.
class
);
forumPostFactory
=
i
.
getInstance
(
ForumPostFactory
.
class
);
component
=
DaggerConstantsComponent
.
builder
().
build
();
component
.
inject
(
this
);
}
@Test
...
...
briar-android-tests/src/test/java/org/briarproject/sync/SimplexMessagingComponent.java
0 → 100644
View file @
1be400eb
package
org.briarproject.sync
;
import
org.briarproject.TestDatabaseModule
;
import
org.briarproject.TestSystemModule
;
import
org.briarproject.api.contact.ContactManager
;
import
org.briarproject.api.db.DatabaseComponent
;
import
org.briarproject.api.event.EventBus
;
import
org.briarproject.api.identity.IdentityManager
;
import
org.briarproject.api.lifecycle.LifecycleManager
;
import
org.briarproject.api.messaging.MessagingManager
;
import
org.briarproject.api.messaging.PrivateMessageFactory
;
import
org.briarproject.api.sync.PacketReaderFactory
;
import
org.briarproject.api.sync.PacketWriterFactory
;
import
org.briarproject.api.transport.KeyManager
;
import
org.briarproject.api.transport.StreamReaderFactory
;
import
org.briarproject.api.transport.StreamWriterFactory
;
import
org.briarproject.contact.ContactModule
;
import
org.briarproject.crypto.CryptoModule
;
import
org.briarproject.data.DataModule
;
import
org.briarproject.db.DatabaseModule
;
import
org.briarproject.event.EventModule
;
import
org.briarproject.identity.IdentityModule
;
import
org.briarproject.lifecycle.LifecycleModule
;
import
org.briarproject.messaging.MessagingModule
;
import
org.briarproject.transport.TransportModule
;
import
javax.inject.Singleton
;
import
dagger.Component
;
/**
* Created by Ernir Erlingsson (ernir@ymirmobile.com) on 3.3.2016.
*/
@Singleton
@Component
(
modules
=
{
TestDatabaseModule
.
class
,
TestSystemModule
.
class
,
LifecycleModule
.
class
,
ContactModule
.
class
,
CryptoModule
.
class
,
DatabaseModule
.
class
,
EventModule
.
class
,
SyncModule
.
class
,
DataModule
.
class
,
TransportModule
.
class
,
IdentityModule
.
class
,
MessagingModule
.
class
})
public
interface
SimplexMessagingComponent
{
void
inject
(
SimplexMessagingIntegrationTest
testCase
);
LifecycleManager
getLifeCycleManager
();
DatabaseComponent
getDatabaseComponent
();
IdentityManager
getIdentityManager
();
ContactManager
getContactManager
();
MessagingManager
getMessagingManager
();
KeyManager
getKeyManager
();
PrivateMessageFactory
getPrivateMessageFactory
();
PacketWriterFactory
getPacketWriterFactory
();
EventBus
getEventBus
();
StreamWriterFactory
getStreamWriterFactory
();
StreamReaderFactory
getStreamReaderFactory
();
PacketReaderFactory
getPacketReaderFactory
();
}
briar-
tests/src
/org/briarproject/sync/SimplexMessagingIntegrationTest.java
→
briar-
android-tests/src/test/java
/org/briarproject/sync/SimplexMessagingIntegrationTest.java
View file @
1be400eb
package
org.briarproject.sync
;
import
com.google.inject.Guice
;
import
com.google.inject.Injector
;
import
org.briarproject.BriarTestCase
;
import
org.briarproject.ImmediateExecutor
;
import
org.briarproject.TestDatabaseModule
;
import
org.briarproject.TestSystemModule
;
import
org.briarproject.TestUtils
;
import
org.briarproject.api.TransportId
;
import
org.briarproject.api.contact.ContactId
;
import
org.briarproject.api.contact.ContactManager
;
import
org.briarproject.api.crypto.SecretKey
;
import
org.briarproject.api.db.DatabaseComponent
;
import
org.briarproject.api.db.
Transaction
;
import
org.briarproject.api.db.
StorageStatus
;
import
org.briarproject.api.event.Event
;
import
org.briarproject.api.event.EventBus
;
import
org.briarproject.api.event.EventListener
;
...
...
@@ -36,33 +31,24 @@ import org.briarproject.api.transport.KeyManager;
import
org.briarproject.api.transport.StreamContext
;
import
org.briarproject.api.transport.StreamReaderFactory
;
import
org.briarproject.api.transport.StreamWriterFactory
;
import
org.briarproject.clients.ClientsModule
;
import
org.briarproject.contact.ContactModule
;
import
org.briarproject.crypto.CryptoModule
;
import
org.briarproject.data.DataModule
;
import
org.briarproject.db.DatabaseModule
;
import
org.briarproject.event.EventModule
;
import
org.briarproject.identity.IdentityModule
;
import
org.briarproject.lifecycle.LifecycleModule
;
import
org.briarproject.messaging.MessagingModule
;
import
org.briarproject.transport.TransportModule
;
import
org.briarproject.plugins.ImmediateExecutor
;
import
org.junit.After
;
import
org.junit.Before
;
import
org.junit.Test
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertFalse
;
import
static
org
.
junit
.
Assert
.
assertNotNull
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
import
static
org
.
briarproject
.
api
.
identity
.
AuthorConstants
.
MAX_PUBLIC_KEY_LENGTH
;
import
static
org
.
briarproject
.
api
.
transport
.
TransportConstants
.
TAG_LENGTH
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.File
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
static
org
.
briarproject
.
api
.
identity
.
AuthorConstants
.
MAX_PUBLIC_KEY_LENGTH
;
import
static
org
.
briarproject
.
api
.
transport
.
TransportConstants
.
TAG_LENGTH
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
import
static
org
.
junit
.
Assert
.
assertFalse
;
import
static
org
.
junit
.
Assert
.
assertNotNull
;
import
static
org
.
junit
.
Assert
.
assertTrue
;
public
class
SimplexMessagingIntegrationTest
extends
BriarTestCase
{
private
static
final
int
MAX_LATENCY
=
2
*
60
*
1000
;
// 2 minutes
...
...
@@ -76,22 +62,16 @@ public class SimplexMessagingIntegrationTest extends BriarTestCase {
private
final
AuthorId
aliceId
=
new
AuthorId
(
TestUtils
.
getRandomId
());
private
final
AuthorId
bobId
=
new
AuthorId
(
TestUtils
.
getRandomId
());
private
Injector
alice
,
bob
;
// private Injector alice, bob;
private
SimplexMessagingComponent
alice
,
bob
;
@Before
public
void
setUp
()
{
assertTrue
(
testDir
.
mkdirs
());
alice
=
createInjector
(
aliceDir
);
bob
=
createInjector
(
bobDir
);
}
private
Injector
createInjector
(
File
dir
)
{
return
Guice
.
createInjector
(
new
TestDatabaseModule
(
dir
),
new
TestSystemModule
(),
new
ClientsModule
(),
new
ContactModule
(),
new
CryptoModule
(),
new
DatabaseModule
(),
new
DataModule
(),
new
EventModule
(),
new
IdentityModule
(),
new
LifecycleModule
(),
new
MessagingModule
(),
new
SyncModule
(),
new
TransportModule
());
alice
=
DaggerSimplexMessagingComponent
.
builder
()
.
testDatabaseModule
(
new
TestDatabaseModule
(
aliceDir
)).
build
();
bob
=
DaggerSimplexMessagingComponent
.
builder
()
.
testDatabaseModule
(
new
TestDatabaseModule
(
bobDir
)).
build
();
}
@Test
...
...
@@ -101,43 +81,34 @@ public class SimplexMessagingIntegrationTest extends BriarTestCase {
private
byte
[]
write
()
throws
Exception
{
// Instantiate Alice's services
LifecycleManager
lifecycleManager
=
alice
.
getInstance
(
LifecycleManager
.
class
);
DatabaseComponent
db
=
alice
.
getInstance
(
DatabaseComponent
.
class
);
IdentityManager
identityManager
=
alice
.
getInstance
(
IdentityManager
.
class
);
ContactManager
contactManager
=
alice
.
getInstance
(
ContactManager
.
class
);
MessagingManager
messagingManager
=
alice
.
getInstance
(
MessagingManager
.
class
);
KeyManager
keyManager
=
alice
.
getInstance
(
KeyManager
.
class
);
PrivateMessageFactory
privateMessageFactory
=
alice
.
getInstance
(
PrivateMessageFactory
.
class
);
PacketWriterFactory
packetWriterFactory
=
alice
.
getInstance
(
PacketWriterFactory
.
class
);
EventBus
eventBus
=
alice
.
getInstance
(
EventBus
.
class
);
StreamWriterFactory
streamWriterFactory
=
alice
.
getInstance
(
StreamWriterFactory
.
class
);
LifecycleManager
lifecycleManager
=
alice
.
getLifeCycleManager
();
DatabaseComponent
db
=
alice
.
getDatabaseComponent
();
IdentityManager
identityManager
=
alice
.
getIdentityManager
();
ContactManager
contactManager
=
alice
.
getContactManager
();
MessagingManager
messagingManager
=
alice
.
getMessagingManager
();
KeyManager
keyManager
=
alice
.
getKeyManager
();
PrivateMessageFactory
privateMessageFactory
=
alice
.
getPrivateMessageFactory
();
PacketWriterFactory
packetWriterFactory
=
alice
.
getPacketWriterFactory
();
EventBus
eventBus
=
alice
.
getEventBus
();
StreamWriterFactory
streamWriterFactory
=
alice
.
getStreamWriterFactory
();
// Start the lifecycle manager
lifecycleManager
.
startServices
();
lifecycleManager
.
waitForStartup
();
// Add a transport
Transaction
txn
=
db
.
startTransaction
();
try
{
db
.
addTransport
(
txn
,
transportId
,
MAX_LATENCY
);
txn
.
setComplete
();
}
finally
{
db
.
endTransaction
(
txn
);
}
db
.
addTransport
(
transportId
,
MAX_LATENCY
);
// Add an identity for Alice
LocalAuthor
aliceAuthor
=
new
LocalAuthor
(
aliceId
,
"Alice"
,
new
byte
[
MAX_PUBLIC_KEY_LENGTH
],
new
byte
[
123
],
timestamp
);
new
byte
[
MAX_PUBLIC_KEY_LENGTH
],
new
byte
[
123
],
timestamp
,
StorageStatus
.
ADDING
);
identityManager
.
addLocalAuthor
(
aliceAuthor
);
// Add Bob as a contact
Author
bobAuthor
=
new
Author
(
bobId
,
"Bob"
,
new
byte
[
MAX_PUBLIC_KEY_LENGTH
]);
ContactId
contactId
=
contactManager
.
addContact
(
bobAuthor
,
aliceId
,
master
,
timestamp
,
true
,
true
);
ContactId
contactId
=
contactManager
.
addContact
(
bobAuthor
,
aliceId
);
// Derive and store the transport keys
keyManager
.
addContact
(
contactId
,
master
,
timestamp
,
true
);
// Send Bob a message
GroupId
groupId
=
messagingManager
.
getConversationId
(
contactId
);
...
...
@@ -172,45 +143,37 @@ public class SimplexMessagingIntegrationTest extends BriarTestCase {
private
void
read
(
byte
[]
stream
)
throws
Exception
{
// Instantiate Bob's services
LifecycleManager
lifecycleManager
=
bob
.
getInstance
(
LifecycleManager
.
class
);
DatabaseComponent
db
=
bob
.
getInstance
(
DatabaseComponent
.
class
);
IdentityManager
identityManager
=
bob
.
getInstance
(
IdentityManager
.
class
);
ContactManager
contactManager
=
bob
.
getInstance
(
ContactManager
.
class
);
KeyManager
keyManager
=
bob
.
getInstance
(
KeyManager
.
class
);
StreamReaderFactory
streamReaderFactory
=
bob
.
getInstance
(
StreamReaderFactory
.
class
);
PacketReaderFactory
packetReaderFactory
=
bob
.
getInstance
(
PacketReaderFactory
.
class
);
EventBus
eventBus
=
bob
.
getInstance
(
EventBus
.
class
);
LifecycleManager
lifecycleManager
=
bob
.
getLifeCycleManager
();
DatabaseComponent
db
=
bob
.
getDatabaseComponent
();
IdentityManager
identityManager
=
bob
.
getIdentityManager
();
ContactManager
contactManager
=
bob
.
getContactManager
();
KeyManager
keyManager
=
bob
.
getKeyManager
();