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
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Julian Dehm
briar
Commits
ac1bfcae
Verified
Commit
ac1bfcae
authored
Apr 24, 2018
by
Julian Dehm
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make test data creation configurable.
parent
575847cb
Pipeline
#1364
passed with stage
in 7 minutes and 46 seconds
Changes
8
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
332 additions
and
31 deletions
+332
-31
briar-android/src/main/AndroidManifest.xml
briar-android/src/main/AndroidManifest.xml
+10
-0
briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java
...riarproject/briar/android/activity/ActivityComponent.java
+3
-0
briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
...briarproject/briar/android/settings/SettingsFragment.java
+1
-11
briar-android/src/main/java/org/briarproject/briar/android/test/TestDataActivity.java
...org/briarproject/briar/android/test/TestDataActivity.java
+100
-0
briar-android/src/main/res/layout/activity_test_data.xml
briar-android/src/main/res/layout/activity_test_data.xml
+170
-0
briar-android/src/main/res/xml/settings.xml
briar-android/src/main/res/xml/settings.xml
+7
-2
briar-api/src/main/java/org/briarproject/briar/api/test/TestDataCreator.java
...java/org/briarproject/briar/api/test/TestDataCreator.java
+13
-0
briar-core/src/main/java/org/briarproject/briar/test/TestDataCreatorImpl.java
...java/org/briarproject/briar/test/TestDataCreatorImpl.java
+28
-18
No files found.
briar-android/src/main/AndroidManifest.xml
View file @
ac1bfcae
...
...
@@ -352,6 +352,16 @@
/>
</activity>
<activity
android:name=
"org.briarproject.briar.android.test.TestDataActivity"
android:label=
"Create test data"
android:parentActivityName=
"org.briarproject.briar.android.settings.SettingsActivity"
>
<meta-data
android:name=
"android.support.PARENT_ACTIVITY"
android:value=
"org.briarproject.briar.android.settings.SettingsActivity"
/>
</activity>
<activity
android:name=
"org.briarproject.briar.android.panic.PanicPreferencesActivity"
android:label=
"@string/panic_setting"
...
...
briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java
View file @
ac1bfcae
...
...
@@ -70,6 +70,7 @@ import org.briarproject.briar.android.sharing.ShareForumFragment;
import
org.briarproject.briar.android.sharing.ShareForumMessageFragment
;
import
org.briarproject.briar.android.sharing.SharingModule
;
import
org.briarproject.briar.android.splash.SplashScreenActivity
;
import
org.briarproject.briar.android.test.TestDataActivity
;
import
dagger.Component
;
...
...
@@ -147,6 +148,8 @@ public interface ActivityComponent {
void
inject
(
SettingsActivity
activity
);
void
inject
(
TestDataActivity
activity
);
void
inject
(
ChangePasswordActivity
activity
);
void
inject
(
IntroductionActivity
activity
);
...
...
briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java
View file @
ac1bfcae
...
...
@@ -30,7 +30,6 @@ import org.briarproject.bramble.api.system.AndroidExecutor;
import
org.briarproject.bramble.util.StringUtils
;
import
org.briarproject.briar.R
;
import
org.briarproject.briar.android.util.UserFeedback
;
import
org.briarproject.briar.api.test.TestDataCreator
;
import
java.util.logging.Logger
;
...
...
@@ -105,8 +104,6 @@ public class SettingsFragment extends PreferenceFragmentCompat
@Inject
AndroidExecutor
androidExecutor
;
@Inject
TestDataCreator
testDataCreator
;
@Override
public
void
onAttach
(
Context
context
)
{
...
...
@@ -153,14 +150,7 @@ public class SettingsFragment extends PreferenceFragmentCompat
});
Preference
testData
=
findPreference
(
"pref_key_test_data"
);
if
(
IS_DEBUG_BUILD
)
{
testData
.
setOnPreferenceClickListener
(
preference
->
{
LOG
.
info
(
"Creating test data"
);
testDataCreator
.
createTestData
();
getActivity
().
finish
();
return
true
;
});
}
else
{
if
(!
IS_DEBUG_BUILD
)
{
testData
.
setVisible
(
false
);
}
...
...
briar-android/src/main/java/org/briarproject/briar/android/test/TestDataActivity.java
0 → 100644
View file @
ac1bfcae
package
org.briarproject.briar.android.test
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.support.v7.app.ActionBar
;
import
android.view.MenuItem
;
import
android.widget.SeekBar
;
import
android.widget.SeekBar.OnSeekBarChangeListener
;
import
android.widget.TextView
;
import
org.briarproject.briar.R
;
import
org.briarproject.briar.android.activity.ActivityComponent
;
import
org.briarproject.briar.android.activity.BriarActivity
;
import
org.briarproject.briar.android.navdrawer.NavDrawerActivity
;
import
org.briarproject.briar.api.test.TestDataCreator
;
import
javax.inject.Inject
;
public
class
TestDataActivity
extends
BriarActivity
{
@Inject
TestDataCreator
testDataCreator
;
private
TextView
[]
textviews
=
new
TextView
[
5
];
private
SeekBar
[]
seekbars
=
new
SeekBar
[
5
];
@Override
public
void
onCreate
(
Bundle
bundle
)
{
super
.
onCreate
(
bundle
);
ActionBar
actionBar
=
getSupportActionBar
();
if
(
actionBar
!=
null
)
{
actionBar
.
setHomeButtonEnabled
(
true
);
actionBar
.
setDisplayHomeAsUpEnabled
(
true
);
}
setContentView
(
R
.
layout
.
activity_test_data
);
textviews
[
0
]
=
findViewById
(
R
.
id
.
textViewContactsSb
);
textviews
[
1
]
=
findViewById
(
R
.
id
.
textViewMessagesSb
);
textviews
[
2
]
=
findViewById
(
R
.
id
.
TextViewBlogPostsSb
);
textviews
[
3
]
=
findViewById
(
R
.
id
.
TextViewForumsSb
);
textviews
[
4
]
=
findViewById
(
R
.
id
.
TextViewForumMessagesSb
);
seekbars
[
0
]
=
findViewById
(
R
.
id
.
seekBarContacts
);
seekbars
[
1
]
=
findViewById
(
R
.
id
.
seekBarMessages
);
seekbars
[
2
]
=
findViewById
(
R
.
id
.
seekBarBlogPosts
);
seekbars
[
3
]
=
findViewById
(
R
.
id
.
seekBarForums
);
seekbars
[
4
]
=
findViewById
(
R
.
id
.
seekBarForumMessages
);
for
(
int
i
=
0
;
i
<
5
;
i
++)
{
final
TextView
textView
=
textviews
[
i
];
seekbars
[
i
].
setOnSeekBarChangeListener
(
new
OnSeekBarChangeListener
()
{
@Override
public
void
onProgressChanged
(
SeekBar
seekBar
,
int
progress
,
boolean
fromUser
)
{
textView
.
setText
(
""
+
progress
);
}
@Override
public
void
onStartTrackingTouch
(
SeekBar
seekBar
)
{
}
@Override
public
void
onStopTrackingTouch
(
SeekBar
seekBar
)
{
}
});
}
findViewById
(
R
.
id
.
buttonCreateTestData
).
setOnClickListener
(
v
->
{
createTestData
();
});
}
private
void
createTestData
()
{
testDataCreator
.
createTestData
(
seekbars
[
0
].
getProgress
(),
seekbars
[
1
].
getProgress
(),
seekbars
[
2
].
getProgress
(),
seekbars
[
3
].
getProgress
(),
seekbars
[
4
].
getProgress
());
Intent
intent
=
new
Intent
(
this
,
NavDrawerActivity
.
class
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_CLEAR_TOP
);
startActivity
(
intent
);
finish
();
}
@Override
public
void
injectActivity
(
ActivityComponent
component
)
{
component
.
inject
(
this
);
}
@Override
public
boolean
onOptionsItemSelected
(
MenuItem
item
)
{
if
(
item
.
getItemId
()
==
android
.
R
.
id
.
home
)
{
onBackPressed
();
return
true
;
}
return
false
;
}
}
briar-android/src/main/res/layout/activity_test_data.xml
0 → 100644
View file @
ac1bfcae
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<ScrollView
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:padding=
"8dp"
>
<android.support.constraint.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<TextView
android:id=
"@+id/textViewContacts"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Number of contacts"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<SeekBar
android:id=
"@+id/seekBarContacts"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:max=
"50"
android:progress=
"20"
app:layout_constraintEnd_toStartOf=
"@+id/textViewContactsSb"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/textViewContacts"
/>
<TextView
android:id=
"@+id/textViewContactsSb"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:ems=
"2"
android:text=
"20"
app:layout_constraintBottom_toBottomOf=
"@+id/seekBarContacts"
app:layout_constraintEnd_toEndOf=
"parent"
/>
<TextView
android:id=
"@+id/textViewMessages"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Number of messages per contact"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/seekBarContacts"
/>
<SeekBar
android:id=
"@+id/seekBarMessages"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:max=
"50"
android:paddingTop=
"5dp"
android:progress=
"15"
app:layout_constraintEnd_toStartOf=
"@+id/textViewMessagesSb"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/textViewMessages"
/>
<TextView
android:id=
"@+id/textViewMessagesSb"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:ems=
"2"
android:text=
"20"
app:layout_constraintBottom_toBottomOf=
"@+id/seekBarMessages"
app:layout_constraintEnd_toEndOf=
"parent"
/>
<TextView
android:id=
"@+id/textViewBlogPosts"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Number of blog posts"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/seekBarMessages"
/>
<SeekBar
android:id=
"@+id/seekBarBlogPosts"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:max=
"50"
android:paddingTop=
"5dp"
android:progress=
"30"
app:layout_constraintEnd_toStartOf=
"@+id/TextViewBlogPostsSb"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/textViewBlogPosts"
/>
<TextView
android:id=
"@+id/TextViewBlogPostsSb"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:ems=
"2"
android:text=
"20"
app:layout_constraintBottom_toBottomOf=
"@+id/seekBarBlogPosts"
app:layout_constraintEnd_toEndOf=
"parent"
/>
<TextView
android:id=
"@+id/textViewForums"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Number of forums"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/seekBarBlogPosts"
/>
<SeekBar
android:id=
"@+id/seekBarForums"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:max=
"10"
android:paddingTop=
"5dp"
android:progress=
"3"
app:layout_constraintEnd_toStartOf=
"@+id/TextViewForumsSb"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/textViewForums"
/>
<TextView
android:id=
"@+id/TextViewForumsSb"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:ems=
"2"
android:text=
"20"
app:layout_constraintBottom_toBottomOf=
"@+id/seekBarForums"
app:layout_constraintEnd_toEndOf=
"parent"
/>
<TextView
android:id=
"@+id/textViewForumMessages"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Number of forum messages"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/seekBarForums"
/>
<SeekBar
android:id=
"@+id/seekBarForumMessages"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:max=
"50"
android:paddingTop=
"5dp"
android:progress=
"30"
app:layout_constraintEnd_toStartOf=
"@+id/TextViewForumMessagesSb"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/textViewForumMessages"
/>
<TextView
android:id=
"@+id/TextViewForumMessagesSb"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:ems=
"2"
android:text=
"20"
app:layout_constraintBottom_toBottomOf=
"@+id/seekBarForumMessages"
app:layout_constraintEnd_toEndOf=
"parent"
/>
<Button
android:id=
"@+id/buttonCreateTestData"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_margin=
"10dp"
android:text=
"Create test data"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/seekBarForumMessages"
/>
</android.support.constraint.ConstraintLayout>
</ScrollView>
</android.support.constraint.ConstraintLayout>
briar-android/src/main/res/xml/settings.xml
View file @
ac1bfcae
...
...
@@ -124,6 +124,11 @@
<Preference
android:key=
"pref_key_test_data"
android:title=
"Create Test Data"
/
>
android:title=
"Create Test Data"
>
</PreferenceScreen>
\ No newline at end of file
<intent
android:targetClass=
"org.briarproject.briar.android.test.TestDataActivity"
android:targetPackage=
"@string/app_package"
/>
</Preference>
</PreferenceScreen>
briar-api/src/main/java/org/briarproject/briar/api/test/TestDataCreator.java
View file @
ac1bfcae
...
...
@@ -8,4 +8,17 @@ public interface TestDataCreator {
/* Creates fake test data on the DatabaseExecutor */
void
createTestData
();
/**
* Creates a configurable amount of fake test data on the DatabaseExecutor
*
* @param numContacts Number of contacts to create.
* @param numPrivateMsgs Number of private messages to create for each
* contact.
* @param numBlogPosts Number of blog posts to create.
* @param numForums Number of forums to create.
* @param numForumPosts Number of forum posts to create per forum.
*/
void
createTestData
(
int
numContacts
,
int
numPrivateMsgs
,
int
numBlogPosts
,
int
numForums
,
int
numForumPosts
);
}
briar-core/src/main/java/org/briarproject/briar/test/TestDataCreatorImpl.java
View file @
ac1bfcae
...
...
@@ -61,12 +61,6 @@ import static org.briarproject.briar.test.TestData.GROUP_NAMES;
public
class
TestDataCreatorImpl
implements
TestDataCreator
{
private
final
static
int
NUM_CONTACTS
=
20
;
private
final
static
int
NUM_PRIVATE_MSGS
=
15
;
private
final
static
int
NUM_BLOG_POSTS
=
30
;
private
final
static
int
NUM_FORUMS
=
3
;
private
final
static
int
NUM_FORUM_POSTS
=
30
;
private
final
Logger
LOG
=
Logger
.
getLogger
(
TestDataCreatorImpl
.
class
.
getName
());
...
...
@@ -92,6 +86,12 @@ public class TestDataCreatorImpl implements TestDataCreator {
private
final
Random
random
=
new
Random
();
private
final
Map
<
Contact
,
LocalAuthor
>
localAuthors
=
new
HashMap
<>();
private
int
numContacts
=
20
;
private
int
numPrivateMsgs
=
15
;
private
int
numBlogPosts
=
30
;
private
int
numForums
=
3
;
private
int
numForumPosts
=
30
;
@Inject
TestDataCreatorImpl
(
AuthorFactory
authorFactory
,
Clock
clock
,
PrivateMessageFactory
privateMessageFactory
,
...
...
@@ -119,6 +119,16 @@ public class TestDataCreatorImpl implements TestDataCreator {
this
.
ioExecutor
=
ioExecutor
;
}
public
void
createTestData
(
int
numContacts
,
int
numPrivateMsgs
,
int
numBlogPosts
,
int
numForums
,
int
numForumPosts
){
this
.
numContacts
=
numContacts
;
this
.
numPrivateMsgs
=
numPrivateMsgs
;
this
.
numBlogPosts
=
numBlogPosts
;
this
.
numForums
=
numForums
;
this
.
numForumPosts
=
numForumPosts
;
createTestData
();
}
public
void
createTestData
()
{
ioExecutor
.
execute
(()
->
{
try
{
...
...
@@ -143,9 +153,9 @@ public class TestDataCreatorImpl implements TestDataCreator {
}
private
List
<
Contact
>
createContacts
()
throws
DbException
{
List
<
Contact
>
contacts
=
new
ArrayList
<>(
NUM_CONTACTS
);
List
<
Contact
>
contacts
=
new
ArrayList
<>(
numContacts
);
LocalAuthor
localAuthor
=
identityManager
.
getLocalAuthor
();
for
(
int
i
=
0
;
i
<
NUM_CONTACTS
;
i
++)
{
for
(
int
i
=
0
;
i
<
numContacts
;
i
++)
{
Contact
contact
=
addRandomContact
(
localAuthor
);
contacts
.
add
(
contact
);
}
...
...
@@ -210,7 +220,7 @@ public class TestDataCreatorImpl implements TestDataCreator {
String
btAddress
=
getRandomBluetoothAddress
();
String
uuid
=
getRandomUUID
();
bt
.
put
(
BluetoothConstants
.
PROP_ADDRESS
,
btAddress
);
bt
.
put
(
BluetoothConstants
.
PROP_UUID
,
uuid
);
bt
.
put
(
BluetoothConstants
.
PROP_UUID
,
uuid
);
props
.
put
(
BluetoothConstants
.
ID
,
bt
);
// LAN
...
...
@@ -275,7 +285,7 @@ public class TestDataCreatorImpl implements TestDataCreator {
throws
DbException
{
for
(
Contact
contact
:
contacts
)
{
Group
group
=
messagingManager
.
getContactGroup
(
contact
);
for
(
int
i
=
0
;
i
<
NUM_PRIVATE_MSGS
;
i
++)
{
for
(
int
i
=
0
;
i
<
numPrivateMsgs
;
i
++)
{
try
{
createPrivateMessage
(
group
.
getId
(),
i
);
}
catch
(
FormatException
e
)
{
...
...
@@ -284,7 +294,7 @@ public class TestDataCreatorImpl implements TestDataCreator {
}
}
if
(
LOG
.
isLoggable
(
INFO
))
{
LOG
.
info
(
"Created "
+
NUM_PRIVATE_MSGS
+
LOG
.
info
(
"Created "
+
numPrivateMsgs
+
" private messages per contact."
);
}
}
...
...
@@ -315,13 +325,13 @@ public class TestDataCreatorImpl implements TestDataCreator {
private
void
createBlogPosts
(
List
<
Contact
>
contacts
)
throws
DbException
{
for
(
int
i
=
0
;
i
<
NUM_BLOG_POSTS
;
i
++)
{
for
(
int
i
=
0
;
i
<
numBlogPosts
;
i
++)
{
Contact
contact
=
contacts
.
get
(
random
.
nextInt
(
contacts
.
size
()));
LocalAuthor
author
=
localAuthors
.
get
(
contact
);
addBlogPost
(
author
,
i
);
}
if
(
LOG
.
isLoggable
(
INFO
))
{
LOG
.
info
(
"Created "
+
NUM_BLOG_POSTS
+
" blog posts."
);
LOG
.
info
(
"Created "
+
numBlogPosts
+
" blog posts."
);
}
}
...
...
@@ -341,8 +351,8 @@ public class TestDataCreatorImpl implements TestDataCreator {
private
List
<
Forum
>
createForums
(
List
<
Contact
>
contacts
)
throws
DbException
{
List
<
Forum
>
forums
=
new
ArrayList
<>(
NUM_FORUMS
);
for
(
int
i
=
0
;
i
<
NUM_FORUMS
;
i
++)
{
List
<
Forum
>
forums
=
new
ArrayList
<>(
numForums
);
for
(
int
i
=
0
;
i
<
numForums
;
i
++)
{
// create forum
String
name
=
GROUP_NAMES
[
random
.
nextInt
(
GROUP_NAMES
.
length
)];
Forum
forum
=
forumManager
.
addForum
(
name
);
...
...
@@ -361,8 +371,8 @@ public class TestDataCreatorImpl implements TestDataCreator {
forums
.
add
(
forum
);
}
if
(
LOG
.
isLoggable
(
INFO
))
{
LOG
.
info
(
"Created "
+
NUM_FORUMS
+
" forums with "
+
NUM_FORUM_POSTS
+
" posts each."
);
LOG
.
info
(
"Created "
+
numForums
+
" forums with "
+
numForumPosts
+
" posts each."
);
}
return
forums
;
}
...
...
@@ -370,7 +380,7 @@ public class TestDataCreatorImpl implements TestDataCreator {
private
void
createRandomForumPosts
(
Forum
forum
,
List
<
Contact
>
contacts
)
throws
DbException
{
List
<
ForumPost
>
posts
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
NUM_FORUM_POSTS
;
i
++)
{
for
(
int
i
=
0
;
i
<
numForumPosts
;
i
++)
{
Contact
contact
=
contacts
.
get
(
random
.
nextInt
(
contacts
.
size
()));
LocalAuthor
author
=
localAuthors
.
get
(
contact
);
long
timestamp
=
clock
.
currentTimeMillis
()
-
i
*
60
*
1000
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment