From c49c1f78d258bce0d0b85e57e23f4c820ca27f39 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Fri, 27 Aug 2021 12:08:36 +0200 Subject: [PATCH 1/6] Disable help recover account option by default --- .../conversation/ConversationActivity.java | 7 +++++++ .../conversation/ConversationViewModel.java | 18 +++++++++++++++++- .../src/main/res/menu/conversation_actions.xml | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java index 3c9cb48f8..e2e16ffe0 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java @@ -371,6 +371,13 @@ public class ConversationActivity extends BriarActivity observeOnce(viewModel.getContactItem(), this, contact -> menu.findItem(R.id.action_set_alias).setEnabled(true)); + // enable help recover account action if available + observeOnce(viewModel.amCustodian(), this, enable -> { + if (enable) { + menu.findItem(R.id.action_help_recover_account).setEnabled(true); + } + }); + return super.onCreateOptionsMenu(menu); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationViewModel.java index 2a7e23dc7..2fa2533d5 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationViewModel.java @@ -40,6 +40,8 @@ import org.briarproject.briar.api.messaging.PrivateMessage; import org.briarproject.briar.api.messaging.PrivateMessageFactory; import org.briarproject.briar.api.messaging.PrivateMessageHeader; import org.briarproject.briar.api.messaging.event.AttachmentReceivedEvent; +import org.briarproject.briar.api.socialbackup.SocialBackup; +import org.briarproject.briar.api.socialbackup.SocialBackupManager; import java.util.Collection; import java.util.List; @@ -84,6 +86,7 @@ public class ConversationViewModel extends DbViewModel private final PrivateMessageFactory privateMessageFactory; private final AttachmentRetriever attachmentRetriever; private final AttachmentCreator attachmentCreator; + private final SocialBackupManager socialBackupManager; @Nullable private ContactId contactId = null; @@ -104,6 +107,7 @@ public class ConversationViewModel extends DbViewModel new MutableLiveData<>(); private final MutableLiveEvent addedHeader = new MutableLiveEvent<>(); + private final MutableLiveData amCustodian = new MutableLiveData<>(); @Inject ConversationViewModel(Application application, @@ -118,7 +122,8 @@ public class ConversationViewModel extends DbViewModel SettingsManager settingsManager, PrivateMessageFactory privateMessageFactory, AttachmentRetriever attachmentRetriever, - AttachmentCreator attachmentCreator) { + AttachmentCreator attachmentCreator, + SocialBackupManager socialBackupManager) { super(application, dbExecutor, lifecycleManager, db, androidExecutor); this.db = db; this.eventBus = eventBus; @@ -129,6 +134,7 @@ public class ConversationViewModel extends DbViewModel this.privateMessageFactory = privateMessageFactory; this.attachmentRetriever = attachmentRetriever; this.attachmentCreator = attachmentCreator; + this.socialBackupManager = socialBackupManager; messagingGroupId = map(contactItem, c -> messagingManager.getContactGroup(c.getContact()).getId()); contactDeleted.setValue(false); @@ -296,6 +302,12 @@ public class ConversationViewModel extends DbViewModel onOnboardingShown(SHOW_ONBOARDING_INTRODUCTION); showIntroductionOnboarding.postEvent(true); } + + // Check if we are a social backup custodian for this contact + boolean amCustodianBool = db.transactionWithResult(true, + txn -> socialBackupManager.amCustodian(txn, c)); + amCustodian.postValue(amCustodianBool); + } @DatabaseExecutor @@ -381,6 +393,10 @@ public class ConversationViewModel extends DbViewModel return addedHeader; } + LiveData amCustodian() { + return amCustodian; + } + @UiThread void recheckFeaturesAndOnboarding(ContactId contactId) { runOnDbThread(() -> { diff --git a/briar-android/src/main/res/menu/conversation_actions.xml b/briar-android/src/main/res/menu/conversation_actions.xml index da47ae7d4..0165f3366 100644 --- a/briar-android/src/main/res/menu/conversation_actions.xml +++ b/briar-android/src/main/res/menu/conversation_actions.xml @@ -31,5 +31,6 @@ android:id="@+id/action_help_recover_account" android:icon="@drawable/introduction_white" android:title="@string/help_recover_account" + android:enabled="false" app:showAsAction="never"/> \ No newline at end of file From be8e5c4bf2a09760ab0613c3772f990c470969e8 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Fri, 27 Aug 2021 12:30:10 +0200 Subject: [PATCH 2/6] When creating social backup, only allow selecting contacts when there are at least 2 contacts in contact list --- .../DistributedBackupActivity.java | 18 ++++++++++++++++++ briar-android/src/main/res/values/strings.xml | 3 +++ 2 files changed, 21 insertions(+) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DistributedBackupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DistributedBackupActivity.java index 593670034..aa9f48275 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DistributedBackupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/socialbackup/DistributedBackupActivity.java @@ -4,6 +4,7 @@ import android.os.Bundle; import android.widget.Toast; import org.briarproject.bramble.api.contact.ContactId; +import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.db.DatabaseComponent; import org.briarproject.bramble.api.db.DbException; import org.briarproject.briar.R; @@ -29,6 +30,9 @@ public class DistributedBackupActivity extends BriarActivity implements @Inject public SocialBackupManager socialBackupManager; + @Inject + public ContactManager contactManager; + @Inject public DatabaseComponent db; @@ -52,6 +56,20 @@ public class DistributedBackupActivity extends BriarActivity implements showInitialFragment(fragment); }); } catch (DbException e) { + // Check the number of contacts in the contacts list > 1 + try { + if (contactManager.getContacts().size() < 2) { + Toast.makeText(this, + R.string.social_backup_not_enough_contacts, + Toast.LENGTH_LONG).show(); + finish(); + } + } catch (DbException dbException) { + Toast.makeText(this, + R.string.reading_contacts_error, + Toast.LENGTH_LONG).show(); + finish(); + } CustodianSelectorFragment fragment = CustodianSelectorFragment.newInstance(); showInitialFragment(fragment); diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 0d6560783..3d4390b41 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -729,4 +729,7 @@ Recover Account Help recover account %d of the following contacts are needed to restore your account: + + To make a social backup, you need at least 2 contacts in your contacts list + There was an error reading your contacts list From 3835dcf3a724914eb982b8e202353d2adbdbf08e Mon Sep 17 00:00:00 2001 From: ameba23 Date: Fri, 27 Aug 2021 12:42:36 +0200 Subject: [PATCH 3/6] Improve lost password and setup password dialog for social backup --- briar-android/src/main/res/values/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 3d4390b41..5a5f1683e 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -9,7 +9,7 @@ Your nickname will be shown next to any content you post. You can\'t change it after creating your account. Next Choose a Password - Your Briar account is stored encrypted on your device, not in the cloud. If you forget your password or uninstall Briar, there\'s no way to recover your account.\n\nChoose a long password that\'s hard to guess, such as four random words, or ten random letters, numbers and symbols. + Your Briar account is stored encrypted on your device, not in the cloud. If you forget your password or uninstall Briar, you can only recover your account if you have made a social backup.\n\nChoose a long password that\'s hard to guess, such as four random words, or ten random letters, numbers and symbols. Background Connections To receive messages, Briar needs to stay connected in the background. To receive messages, Briar needs to stay connected in the background. Please disable battery optimizations so Briar can stay connected. @@ -37,7 +37,7 @@ Sign In I have forgotten my password Lost Password - Your Briar account is stored encrypted on your device, not in the cloud, so we can\'t reset your password. Would you like to delete your account and start again?\n\nCaution: Your identities, contacts and messages will be permanently lost. + Your Briar account is stored encrypted on your device, not in the cloud, so we can\'t reset your password. If you have made a social backup, you can delete your account and set a new password when you restore it. Would you like to delete your account and start again?\n\nCaution: Your identities, contacts and messages will be permanently lost if you do not have a backup. Briar could not start Tap for more information. Briar Startup Failure From 67dbc3d9a00c06785e9b3497817b980cdef86ecd Mon Sep 17 00:00:00 2001 From: ameba23 Date: Fri, 27 Aug 2021 14:49:25 +0200 Subject: [PATCH 4/6] Tell animal sniffer gradle plugin to ignore java.util.Objects --- bramble-core/build.gradle | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bramble-core/build.gradle b/bramble-core/build.gradle index ce33f1ad9..217b1985a 100644 --- a/bramble-core/build.gradle +++ b/bramble-core/build.gradle @@ -31,6 +31,14 @@ dependencies { signature 'org.codehaus.mojo.signature:java16:1.1@signature' } +animalsniffer { + // Allow requireNonNull: Android desugaring rewrites it (so it's safe for us to use), + // and it gets used when passing method references instead of lambdas with Java 11. + // Note that this line allows *all* methods from java.util.Objects. + // That's the best that we can do with the configuration options that Animal Sniffer offers. + ignore 'java.util.Objects' +} + // needed to make test output available to bramble-java configurations { testOutput.extendsFrom(testCompile) From 75f8d72e5471ea59d7cab414df204de064884d53 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Thu, 2 Sep 2021 14:39:27 +0100 Subject: [PATCH 5/6] Resolve conflict on cherry pick commit to use ByteBuddyClassImposteriser --- bramble-android/build.gradle | 8 +- .../account/AndroidAccountManagerTest.java | 4 +- bramble-android/witness.gradle | 27 +-- bramble-api/build.gradle | 7 +- bramble-api/witness.gradle | 27 +-- bramble-core/build.gradle | 9 +- .../client/BdfMessageValidatorTest.java | 4 +- .../KeyAgreementProtocolTest.java | 4 +- .../KeyAgreementTransportTest.java | 4 +- .../bramble/plugin/PollerImplTest.java | 4 +- bramble-core/witness.gradle | 28 +-- bramble-java/build.gradle | 7 +- bramble-java/witness.gradle | 27 +-- briar-android/build.gradle | 11 +- .../android/account/SetupViewModelTest.java | 4 +- .../attachment/AttachmentRetrieverTest.java | 4 +- .../list/GroupListViewModelTest.java | 4 +- .../util/UiUtilsFormatDurationTest.java | 168 ++++++++++++++++++ briar-android/witness.gradle | 32 ++-- briar-core/build.gradle | 8 +- .../GroupInvitationManagerImplTest.java | 4 +- briar-core/witness.gradle | 27 +-- build.gradle | 3 + 23 files changed, 310 insertions(+), 115 deletions(-) create mode 100644 briar-android/src/test/java/org/briarproject/briar/android/util/UiUtilsFormatDurationTest.java diff --git a/bramble-android/build.gradle b/bramble-android/build.gradle index 239abe7c2..bed2c54b2 100644 --- a/bramble-android/build.gradle +++ b/bramble-android/build.gradle @@ -50,10 +50,10 @@ dependencies { compileOnly 'javax.annotation:jsr250-api:1.0' testImplementation project(path: ':bramble-api', configuration: 'testOutput') - testImplementation 'junit:junit:4.12' - testImplementation "org.jmock:jmock:2.8.2" - testImplementation "org.jmock:jmock-junit4:2.8.2" - testImplementation "org.jmock:jmock-legacy:2.8.2" + testImplementation "junit:junit:$junit_version" + testImplementation "org.jmock:jmock:$jmock_version" + testImplementation "org.jmock:jmock-junit4:$jmock_version" + testImplementation "org.jmock:jmock-imposters:$jmock_version" } def torBinariesDir = 'src/main/res/raw' diff --git a/bramble-android/src/test/java/org/briarproject/bramble/account/AndroidAccountManagerTest.java b/bramble-android/src/test/java/org/briarproject/bramble/account/AndroidAccountManagerTest.java index 2b7b8bb88..cad9fa49c 100644 --- a/bramble-android/src/test/java/org/briarproject/bramble/account/AndroidAccountManagerTest.java +++ b/bramble-android/src/test/java/org/briarproject/bramble/account/AndroidAccountManagerTest.java @@ -9,7 +9,7 @@ import org.briarproject.bramble.api.db.DatabaseConfig; import org.briarproject.bramble.api.identity.IdentityManager; import org.briarproject.bramble.test.BrambleMockTestCase; import org.jmock.Expectations; -import org.jmock.lib.legacy.ClassImposteriser; +import org.jmock.imposters.ByteBuddyClassImposteriser; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -44,7 +44,7 @@ public class AndroidAccountManagerTest extends BrambleMockTestCase { private AndroidAccountManager accountManager; public AndroidAccountManagerTest() { - context.setImposteriser(ClassImposteriser.INSTANCE); + context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE); app = context.mock(Application.class); applicationInfo = new ApplicationInfo(); applicationInfo.dataDir = testDir.getAbsolutePath(); diff --git a/bramble-android/witness.gradle b/bramble-android/witness.gradle index fe630b472..3aed6321e 100644 --- a/bramble-android/witness.gradle +++ b/bramble-android/witness.gradle @@ -1,6 +1,6 @@ dependencyVerification { verify = [ - 'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861', + 'cglib:cglib:3.2.8:cglib-3.2.8.jar:3f64de999ecc5595dc84ca8ff0879d8a34c8623f9ef3c517a53ed59023fcb9db', 'com.android.tools.analytics-library:protos:27.1.1:protos-27.1.1.jar:13f77e73762e58ab372d140b3a6be6903aea9775b62dd14fbc62d4cc7069c9a4', 'com.android.tools.analytics-library:shared:27.1.1:shared-27.1.1.jar:82930a52001410e97d809930b670f4de3002286975f046b9de5f6b777b06d366', 'com.android.tools.analytics-library:tracker:27.1.1:tracker-27.1.1.jar:31bc5a00be0055bac89c9b2f34751883e987cd89e3ac1783720645c164f591d9', @@ -31,6 +31,7 @@ dependencyVerification { 'com.android.tools:sdklib:27.1.1:sdklib-27.1.1.jar:08e6b83961ac9724b3c1e3d0eff971f13be6701292c77914b8794480f3391250', 'com.android:signflinger:4.1.1:signflinger-4.1.1.jar:0c66825988873ec2d51057fa463f54a8f18fc7326ff4530b9da363b71e97ce60', 'com.android:zipflinger:4.1.1:zipflinger-4.1.1.jar:0a8c3e52ac13dd031236f9fb5ba4408b1d5dcd12325a05440b36da09d8881446', + 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', 'com.google.code.gson:gson:2.8.5:gson-2.8.5.jar:233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81', 'com.google.dagger:dagger-compiler:2.24:dagger-compiler-2.24.jar:3c5afb955fb188da485cb2c048eff37dce0e1530b9780a0f2f7187d16d1ccc1f', @@ -63,16 +64,16 @@ dependencyVerification { 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', 'javax.xml.bind:jaxb-api:2.3.1:jaxb-api-2.3.1.jar:88b955a0df57880a26a74708bc34f74dcaf8ebf4e78843a28b50eae945732b06', 'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', + 'net.bytebuddy:byte-buddy:1.9.12:byte-buddy-1.9.12.jar:3688c3d434bebc3edc5516296a2ed0f47b65e451071b4afecad84f902f0efc11', + 'net.jcip:jcip-annotations:1.0:jcip-annotations-1.0.jar:be5805392060c71474bf6c9a67a099471274d30b83eef84bfc4e0889a4f1dcc0', 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', 'net.sf.jopt-simple:jopt-simple:4.9:jopt-simple-4.9.jar:26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5', 'net.sf.kxml:kxml2:2.3.0:kxml2-2.3.0.jar:f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2', - 'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d', - 'org.apache.ant:ant:1.9.4:ant-1.9.4.jar:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8', + 'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047', 'org.apache.commons:commons-compress:1.12:commons-compress-1.12.jar:2c1542faf343185b7cab9c3d55c8ae5471d6d095d3887a4adefdbdf2984dc0b6', 'org.apache.httpcomponents:httpclient:4.5.6:httpclient-4.5.6.jar:c03f813195e7a80e3608d0ddd8da80b21696a4c92a6a2298865bf149071551c7', 'org.apache.httpcomponents:httpcore:4.4.10:httpcore-4.4.10.jar:78ba1096561957db1b55200a159b648876430342d15d461277e62360da19f6fd', 'org.apache.httpcomponents:httpmime:4.5.6:httpmime-4.5.6.jar:0b2b1102c18d3c7e05a77214b9b7501a6f6056174ae5604e0e256776eda7553e', - 'org.beanshell:bsh:1.3.0:bsh-1.3.0.jar:9b04edc75d19db54f1b4e8b5355e9364384c6cf71eb0a1b9724c159d779879f8', 'org.bouncycastle:bcpkix-jdk15on:1.56:bcpkix-jdk15on-1.56.jar:7043dee4e9e7175e93e0b36f45b1ec1ecb893c5f755667e8b916eb8dd201c6ca', 'org.bouncycastle:bcprov-jdk15on:1.56:bcprov-jdk15on-1.56.jar:963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349', 'org.briarproject:obfs4proxy-android:0.0.12-dev-40245c4a:obfs4proxy-android-0.0.12-dev-40245c4a.zip:8ab05a8f8391be2cb5ab2b665c281a06d9e3a756bd0f95a40a36ca927866ea82', @@ -85,8 +86,9 @@ dependencyVerification { 'org.codehaus.mojo:animal-sniffer-annotations:1.18:animal-sniffer-annotations-1.18.jar:47f05852b48ee9baefef80fa3d8cea60efa4753c0013121dd7fe5eef2e5c729d', 'org.glassfish.jaxb:jaxb-runtime:2.3.1:jaxb-runtime-2.3.1.jar:45fecfa5c8217ce1f3652ab95179790ec8cc0dec0384bca51cbeb94a293d9f2f', 'org.glassfish.jaxb:txw2:2.3.1:txw2-2.3.1.jar:34975dde1c6920f1a39791142235689bc3cd357e24d05edd8ff93b885bd68d60', - 'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', - 'org.hamcrest:hamcrest-library:1.3:hamcrest-library-1.3.jar:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c', + 'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9', + 'org.hamcrest:hamcrest-library:2.1:hamcrest-library-2.1.jar:b7e2b6895b3b679f0e47b6380fda391b225e9b78505db9d8bdde8d3cc8d52a21', + 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', 'org.jetbrains.kotlin:kotlin-reflect:1.3.72:kotlin-reflect-1.3.72.jar:a188d9367de1c4ee9479db630985c0597b20709c83161b1430d24edb27e38c40', 'org.jetbrains.kotlin:kotlin-stdlib-common:1.3.72:kotlin-stdlib-common-1.3.72.jar:5e7d1552863e480c1628b1cc39ce230ef829f5b7230106215a05acda5172203a', 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72:kotlin-stdlib-jdk7-1.3.72.jar:40566c0c08d414b9413ba556ff7f8a0b04b98b9f0f424d122dd2088510efccc4', @@ -94,17 +96,18 @@ dependencyVerification { 'org.jetbrains.kotlin:kotlin-stdlib:1.3.72:kotlin-stdlib-1.3.72.jar:3856a7349ebacd6d1be6802b2fed9c4dc2c5a564ea92b6b945ac988243d4b16b', 'org.jetbrains.trove4j:trove4j:20160824:trove4j-20160824.jar:1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7', 'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478', - 'org.jmock:jmock-junit4:2.8.2:jmock-junit4-2.8.2.jar:f7ee4df4f7bd7b7f1cafad3b99eb74d579f109d5992ff625347352edb55e674c', - 'org.jmock:jmock-legacy:2.8.2:jmock-legacy-2.8.2.jar:f2b985a5c08a9edb7f37612330c058809da3f6a6d63ce792426ebf8ff0d6d31b', - 'org.jmock:jmock-testjar:2.8.2:jmock-testjar-2.8.2.jar:8900860f72c474e027cf97fe78dcbf154a1aa7fc62b6845c5fb4e4f3c7bc8760', - 'org.jmock:jmock:2.8.2:jmock-2.8.2.jar:6c73cb4a2e6dbfb61fd99c9a768539c170ab6568e57846bd60dbf19596b65b16', + 'org.jmock:jmock-imposters:2.12.0:jmock-imposters-2.12.0.jar:3b836269745a137c9b2347e8d7c2104845b126ef04f012d6bfd94f1a7dea7b09', + 'org.jmock:jmock-junit4:2.12.0:jmock-junit4-2.12.0.jar:3233062fc889637c151a24f1ee086bad04321ab7d8264fef279daff0fa27205b', + 'org.jmock:jmock-legacy:2.12.0:jmock-legacy-2.12.0.jar:dea3a9cca653d082e2fe7e40232e982fe03a9984c7d67ceff24f3e03fe580dcd', + 'org.jmock:jmock-testjar:2.12.0:jmock-testjar-2.12.0.jar:efefbcf6cd294d0e29f0c46eb2a3380d4ca4e1763ff719c69e2f2ac62f564a04', + 'org.jmock:jmock:2.12.0:jmock-2.12.0.jar:266d07314c0cd343c46ff8a55601272de8cf406807caf55e6f313295f83d10be', 'org.jvnet.staxex:stax-ex:1.8:stax-ex-1.8.jar:95b05d9590af4154c6513b9c5dc1fb2e55b539972ba0a9ef28e9a0c01d83ad77', - 'org.objenesis:objenesis:2.1:objenesis-2.1.jar:c74330cc6b806c804fd37e74487b4fe5d7c2750c5e15fbc6efa13bdee1bdef80', + 'org.objenesis:objenesis:3.0.1:objenesis-3.0.1.jar:7a8ff780b9ff48415d7c705f60030b0acaa616e7f823c98eede3b63508d4e984', 'org.ow2.asm:asm-analysis:7.0:asm-analysis-7.0.jar:e981f8f650c4d900bb033650b18e122fa6b161eadd5f88978d08751f72ee8474', 'org.ow2.asm:asm-commons:7.0:asm-commons-7.0.jar:fed348ef05958e3e846a3ac074a12af5f7936ef3d21ce44a62c4fa08a771927d', 'org.ow2.asm:asm-tree:7.0:asm-tree-7.0.jar:cfd7a0874f9de36a999c127feeadfbfe6e04d4a71ee954d7af3d853f0be48a6c', 'org.ow2.asm:asm-util:7.0:asm-util-7.0.jar:75fbbca440ef463f41c2b0ab1a80abe67e910ac486da60a7863cbcb5bae7e145', - 'org.ow2.asm:asm:5.0.4:asm-5.0.4.jar:896618ed8ae62702521a78bc7be42b7c491a08e6920a15f89a3ecdec31e9a220', 'org.ow2.asm:asm:7.0:asm-7.0.jar:b88ef66468b3c978ad0c97fd6e90979e56155b4ac69089ba7a44e9aa7ffe9acf', + 'org.ow2.asm:asm:7.1:asm-7.1.jar:4ab2fa2b6d2cc9ccb1eaa05ea329c407b47b13ed2915f62f8c4b8cc96258d4de', ] } diff --git a/bramble-api/build.gradle b/bramble-api/build.gradle index 9e5cf946a..654c17976 100644 --- a/bramble-api/build.gradle +++ b/bramble-api/build.gradle @@ -10,10 +10,9 @@ dependencies { implementation "com.google.dagger:dagger:2.24" implementation 'com.google.code.findbugs:jsr305:3.0.2' - testImplementation 'junit:junit:4.12' - testImplementation "org.jmock:jmock:2.8.2" - testImplementation "org.jmock:jmock-junit4:2.8.2" - testImplementation "org.jmock:jmock-legacy:2.8.2" + testImplementation "junit:junit:$junit_version" + testImplementation "org.jmock:jmock:$jmock_version" + testImplementation "org.jmock:jmock-junit4:$jmock_version" signature 'org.codehaus.mojo.signature:java16:1.1@signature' } diff --git a/bramble-api/witness.gradle b/bramble-api/witness.gradle index 1b9593118..9159be492 100644 --- a/bramble-api/witness.gradle +++ b/bramble-api/witness.gradle @@ -1,24 +1,27 @@ dependencyVerification { verify = [ - 'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861', + 'cglib:cglib:3.2.8:cglib-3.2.8.jar:3f64de999ecc5595dc84ca8ff0879d8a34c8623f9ef3c517a53ed59023fcb9db', + 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', 'com.google.dagger:dagger:2.24:dagger-2.24.jar:550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64', 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', 'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', - 'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d', - 'org.apache.ant:ant:1.9.4:ant-1.9.4.jar:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8', - 'org.beanshell:bsh:1.3.0:bsh-1.3.0.jar:9b04edc75d19db54f1b4e8b5355e9364384c6cf71eb0a1b9724c159d779879f8', + 'net.bytebuddy:byte-buddy:1.9.12:byte-buddy-1.9.12.jar:3688c3d434bebc3edc5516296a2ed0f47b65e451071b4afecad84f902f0efc11', + 'net.jcip:jcip-annotations:1.0:jcip-annotations-1.0.jar:be5805392060c71474bf6c9a67a099471274d30b83eef84bfc4e0889a4f1dcc0', + 'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047', 'org.codehaus.mojo.signature:java16:1.1:java16-1.1.signature:53799223a2c98dba2d0add810bed76315460df285c69e4f397ae6098f87dd619', 'org.codehaus.mojo:animal-sniffer-ant-tasks:1.16:animal-sniffer-ant-tasks-1.16.jar:890040976fbe2d584619a6a61b1fd2e925b3b5eb342a85eb2762c467c0d64e90', 'org.codehaus.mojo:animal-sniffer:1.16:animal-sniffer-1.16.jar:72be8bcc226ba43b937c722a08a07852bfa1b11400089265d5df0ee7b38b1d52', - 'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', - 'org.hamcrest:hamcrest-library:1.3:hamcrest-library-1.3.jar:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c', - 'org.jmock:jmock-junit4:2.8.2:jmock-junit4-2.8.2.jar:f7ee4df4f7bd7b7f1cafad3b99eb74d579f109d5992ff625347352edb55e674c', - 'org.jmock:jmock-legacy:2.8.2:jmock-legacy-2.8.2.jar:f2b985a5c08a9edb7f37612330c058809da3f6a6d63ce792426ebf8ff0d6d31b', - 'org.jmock:jmock-testjar:2.8.2:jmock-testjar-2.8.2.jar:8900860f72c474e027cf97fe78dcbf154a1aa7fc62b6845c5fb4e4f3c7bc8760', - 'org.jmock:jmock:2.8.2:jmock-2.8.2.jar:6c73cb4a2e6dbfb61fd99c9a768539c170ab6568e57846bd60dbf19596b65b16', - 'org.objenesis:objenesis:2.1:objenesis-2.1.jar:c74330cc6b806c804fd37e74487b4fe5d7c2750c5e15fbc6efa13bdee1bdef80', + 'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9', + 'org.hamcrest:hamcrest-library:2.1:hamcrest-library-2.1.jar:b7e2b6895b3b679f0e47b6380fda391b225e9b78505db9d8bdde8d3cc8d52a21', + 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', + 'org.jmock:jmock-imposters:2.12.0:jmock-imposters-2.12.0.jar:3b836269745a137c9b2347e8d7c2104845b126ef04f012d6bfd94f1a7dea7b09', + 'org.jmock:jmock-junit4:2.12.0:jmock-junit4-2.12.0.jar:3233062fc889637c151a24f1ee086bad04321ab7d8264fef279daff0fa27205b', + 'org.jmock:jmock-legacy:2.12.0:jmock-legacy-2.12.0.jar:dea3a9cca653d082e2fe7e40232e982fe03a9984c7d67ceff24f3e03fe580dcd', + 'org.jmock:jmock-testjar:2.12.0:jmock-testjar-2.12.0.jar:efefbcf6cd294d0e29f0c46eb2a3380d4ca4e1763ff719c69e2f2ac62f564a04', + 'org.jmock:jmock:2.12.0:jmock-2.12.0.jar:266d07314c0cd343c46ff8a55601272de8cf406807caf55e6f313295f83d10be', + 'org.objenesis:objenesis:3.0.1:objenesis-3.0.1.jar:7a8ff780b9ff48415d7c705f60030b0acaa616e7f823c98eede3b63508d4e984', 'org.ow2.asm:asm-all:5.2:asm-all-5.2.jar:7fbffbc1db3422e2101689fd88df8384b15817b52b9b2b267b9f6d2511dc198d', - 'org.ow2.asm:asm:5.0.4:asm-5.0.4.jar:896618ed8ae62702521a78bc7be42b7c491a08e6920a15f89a3ecdec31e9a220', + 'org.ow2.asm:asm:7.1:asm-7.1.jar:4ab2fa2b6d2cc9ccb1eaa05ea329c407b47b13ed2915f62f8c4b8cc96258d4de', ] } diff --git a/bramble-core/build.gradle b/bramble-core/build.gradle index 217b1985a..fbabac02d 100644 --- a/bramble-core/build.gradle +++ b/bramble-core/build.gradle @@ -21,10 +21,11 @@ dependencies { testImplementation project(path: ':bramble-api', configuration: 'testOutput') testImplementation 'org.hsqldb:hsqldb:2.3.5' // The last version that supports Java 1.6 - testImplementation 'junit:junit:4.12' - testImplementation "org.jmock:jmock:2.8.2" - testImplementation "org.jmock:jmock-junit4:2.8.2" - testImplementation "org.jmock:jmock-legacy:2.8.2" + testImplementation 'net.jodah:concurrentunit:0.4.2' + testImplementation "junit:junit:$junit_version" + testImplementation "org.jmock:jmock:$jmock_version" + testImplementation "org.jmock:jmock-junit4:$jmock_version" + testImplementation "org.jmock:jmock-imposters:$jmock_version" testAnnotationProcessor 'com.google.dagger:dagger-compiler:2.24' diff --git a/bramble-core/src/test/java/org/briarproject/bramble/client/BdfMessageValidatorTest.java b/bramble-core/src/test/java/org/briarproject/bramble/client/BdfMessageValidatorTest.java index c60bb4fef..4c0bf1418 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/client/BdfMessageValidatorTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/client/BdfMessageValidatorTest.java @@ -13,7 +13,7 @@ import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageContext; import org.briarproject.bramble.test.ValidatorTestCase; import org.jmock.Expectations; -import org.jmock.lib.legacy.ClassImposteriser; +import org.jmock.imposters.ByteBuddyClassImposteriser; import org.junit.Test; import static org.briarproject.bramble.api.transport.TransportConstants.MAX_CLOCK_DIFFERENCE; @@ -38,7 +38,7 @@ public class BdfMessageValidatorTest extends ValidatorTestCase { private final Metadata meta = new Metadata(); public BdfMessageValidatorTest() { - context.setImposteriser(ClassImposteriser.INSTANCE); + context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE); } @Test(expected = InvalidMessageException.class) diff --git a/bramble-core/src/test/java/org/briarproject/bramble/keyagreement/KeyAgreementProtocolTest.java b/bramble-core/src/test/java/org/briarproject/bramble/keyagreement/KeyAgreementProtocolTest.java index 78b375631..4c360f86b 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/keyagreement/KeyAgreementProtocolTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/keyagreement/KeyAgreementProtocolTest.java @@ -11,8 +11,8 @@ import org.briarproject.bramble.api.keyagreement.PayloadEncoder; import org.briarproject.bramble.test.BrambleTestCase; import org.jmock.Expectations; import org.jmock.auto.Mock; +import org.jmock.imposters.ByteBuddyClassImposteriser; import org.jmock.integration.junit4.JUnitRuleMockery; -import org.jmock.lib.legacy.ClassImposteriser; import org.junit.Rule; import org.junit.Test; @@ -34,7 +34,7 @@ public class KeyAgreementProtocolTest extends BrambleTestCase { @Rule public JUnitRuleMockery context = new JUnitRuleMockery() {{ // So we can mock concrete classes like KeyAgreementTransport - setImposteriser(ClassImposteriser.INSTANCE); + setImposteriser(ByteBuddyClassImposteriser.INSTANCE); }}; private final PublicKey alicePubKey = getAgreementPublicKey(); diff --git a/bramble-core/src/test/java/org/briarproject/bramble/keyagreement/KeyAgreementTransportTest.java b/bramble-core/src/test/java/org/briarproject/bramble/keyagreement/KeyAgreementTransportTest.java index c5c111c77..d75bf40f4 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/keyagreement/KeyAgreementTransportTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/keyagreement/KeyAgreementTransportTest.java @@ -14,7 +14,7 @@ import org.briarproject.bramble.api.record.RecordWriterFactory; import org.briarproject.bramble.test.BrambleMockTestCase; import org.briarproject.bramble.test.CaptureArgumentAction; import org.jmock.Expectations; -import org.jmock.lib.legacy.ClassImposteriser; +import org.jmock.imposters.ByteBuddyClassImposteriser; import org.junit.Test; import java.io.InputStream; @@ -58,7 +58,7 @@ public class KeyAgreementTransportTest extends BrambleMockTestCase { private KeyAgreementTransport kat; public KeyAgreementTransportTest() { - context.setImposteriser(ClassImposteriser.INSTANCE); + context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE); inputStream = context.mock(InputStream.class); outputStream = context.mock(OutputStream.class); } diff --git a/bramble-core/src/test/java/org/briarproject/bramble/plugin/PollerImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/plugin/PollerImplTest.java index 6c85747ac..82f58436b 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/plugin/PollerImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/plugin/PollerImplTest.java @@ -25,7 +25,7 @@ import org.briarproject.bramble.test.BrambleMockTestCase; import org.briarproject.bramble.test.ImmediateExecutor; import org.briarproject.bramble.test.RunAction; import org.jmock.Expectations; -import org.jmock.lib.legacy.ClassImposteriser; +import org.jmock.imposters.ByteBuddyClassImposteriser; import org.junit.Before; import org.junit.Test; @@ -69,7 +69,7 @@ public class PollerImplTest extends BrambleMockTestCase { private PollerImpl poller; public PollerImplTest() { - context.setImposteriser(ClassImposteriser.INSTANCE); + context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE); random = context.mock(SecureRandom.class); } diff --git a/bramble-core/witness.gradle b/bramble-core/witness.gradle index 9ab2fac6d..d2f2ef859 100644 --- a/bramble-core/witness.gradle +++ b/bramble-core/witness.gradle @@ -1,6 +1,7 @@ dependencyVerification { verify = [ - 'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861', + 'cglib:cglib:3.2.8:cglib-3.2.8.jar:3f64de999ecc5595dc84ca8ff0879d8a34c8623f9ef3c517a53ed59023fcb9db', + 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', 'com.google.dagger:dagger-compiler:2.24:dagger-compiler-2.24.jar:3c5afb955fb188da485cb2c048eff37dce0e1530b9780a0f2f7187d16d1ccc1f', 'com.google.dagger:dagger-producers:2.24:dagger-producers-2.24.jar:f10f45b95191954d5d6b043fca9e62fb621d21bf70634b8f8476c7988b504c3a', @@ -19,11 +20,12 @@ dependencyVerification { 'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f', 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', 'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', + 'net.bytebuddy:byte-buddy:1.9.12:byte-buddy-1.9.12.jar:3688c3d434bebc3edc5516296a2ed0f47b65e451071b4afecad84f902f0efc11', 'net.i2p.crypto:eddsa:0.2.0:eddsa-0.2.0.jar:a7cb1b85c16e2f0730b9204106929a1d9aaae1df728adc7041a8b8b605692140', + 'net.jcip:jcip-annotations:1.0:jcip-annotations-1.0.jar:be5805392060c71474bf6c9a67a099471274d30b83eef84bfc4e0889a4f1dcc0', + 'net.jodah:concurrentunit:0.4.2:concurrentunit-0.4.2.jar:5583078e1acf91734939e985bc9e7ee947b0e93a8eef679da6bb07bbeb47ced3', 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', - 'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d', - 'org.apache.ant:ant:1.9.4:ant-1.9.4.jar:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8', - 'org.beanshell:bsh:1.3.0:bsh-1.3.0.jar:9b04edc75d19db54f1b4e8b5355e9364384c6cf71eb0a1b9724c159d779879f8', + 'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047', 'org.bitlet:weupnp:0.1.4:weupnp-0.1.4.jar:88df7e6504929d00bdb832863761385c68ab92af945b04f0770b126270a444fb', 'org.briarproject:jtorctl:0.3:jtorctl-0.3.jar:f2939238a097898998432effe93b0334d97a787972ab3a91a8973a1d309fc864', 'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d', @@ -32,16 +34,18 @@ dependencyVerification { 'org.codehaus.mojo:animal-sniffer-annotations:1.17:animal-sniffer-annotations-1.17.jar:92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53', 'org.codehaus.mojo:animal-sniffer-ant-tasks:1.16:animal-sniffer-ant-tasks-1.16.jar:890040976fbe2d584619a6a61b1fd2e925b3b5eb342a85eb2762c467c0d64e90', 'org.codehaus.mojo:animal-sniffer:1.16:animal-sniffer-1.16.jar:72be8bcc226ba43b937c722a08a07852bfa1b11400089265d5df0ee7b38b1d52', - 'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', - 'org.hamcrest:hamcrest-library:1.3:hamcrest-library-1.3.jar:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c', + 'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9', + 'org.hamcrest:hamcrest-library:2.1:hamcrest-library-2.1.jar:b7e2b6895b3b679f0e47b6380fda391b225e9b78505db9d8bdde8d3cc8d52a21', + 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', 'org.hsqldb:hsqldb:2.3.5:hsqldb-2.3.5.jar:6676a6977ac98997a80f827ddbd3fe8ca1e0853dad1492512135fd1a222ccfad', - 'org.jmock:jmock-junit4:2.8.2:jmock-junit4-2.8.2.jar:f7ee4df4f7bd7b7f1cafad3b99eb74d579f109d5992ff625347352edb55e674c', - 'org.jmock:jmock-legacy:2.8.2:jmock-legacy-2.8.2.jar:f2b985a5c08a9edb7f37612330c058809da3f6a6d63ce792426ebf8ff0d6d31b', - 'org.jmock:jmock-testjar:2.8.2:jmock-testjar-2.8.2.jar:8900860f72c474e027cf97fe78dcbf154a1aa7fc62b6845c5fb4e4f3c7bc8760', - 'org.jmock:jmock:2.8.2:jmock-2.8.2.jar:6c73cb4a2e6dbfb61fd99c9a768539c170ab6568e57846bd60dbf19596b65b16', - 'org.objenesis:objenesis:2.1:objenesis-2.1.jar:c74330cc6b806c804fd37e74487b4fe5d7c2750c5e15fbc6efa13bdee1bdef80', + 'org.jmock:jmock-imposters:2.12.0:jmock-imposters-2.12.0.jar:3b836269745a137c9b2347e8d7c2104845b126ef04f012d6bfd94f1a7dea7b09', + 'org.jmock:jmock-junit4:2.12.0:jmock-junit4-2.12.0.jar:3233062fc889637c151a24f1ee086bad04321ab7d8264fef279daff0fa27205b', + 'org.jmock:jmock-legacy:2.12.0:jmock-legacy-2.12.0.jar:dea3a9cca653d082e2fe7e40232e982fe03a9984c7d67ceff24f3e03fe580dcd', + 'org.jmock:jmock-testjar:2.12.0:jmock-testjar-2.12.0.jar:efefbcf6cd294d0e29f0c46eb2a3380d4ca4e1763ff719c69e2f2ac62f564a04', + 'org.jmock:jmock:2.12.0:jmock-2.12.0.jar:266d07314c0cd343c46ff8a55601272de8cf406807caf55e6f313295f83d10be', + 'org.objenesis:objenesis:3.0.1:objenesis-3.0.1.jar:7a8ff780b9ff48415d7c705f60030b0acaa616e7f823c98eede3b63508d4e984', 'org.ow2.asm:asm-all:5.2:asm-all-5.2.jar:7fbffbc1db3422e2101689fd88df8384b15817b52b9b2b267b9f6d2511dc198d', - 'org.ow2.asm:asm:5.0.4:asm-5.0.4.jar:896618ed8ae62702521a78bc7be42b7c491a08e6920a15f89a3ecdec31e9a220', + 'org.ow2.asm:asm:7.1:asm-7.1.jar:4ab2fa2b6d2cc9ccb1eaa05ea329c407b47b13ed2915f62f8c4b8cc96258d4de', 'org.whispersystems:curve25519-java:0.5.0:curve25519-java-0.5.0.jar:0aadd43cf01d11e9b58f867b3c4f25c3194e8b0623d1953d32dfbfbee009e38d', ] } diff --git a/bramble-java/build.gradle b/bramble-java/build.gradle index 3d51e8fec..1458063a3 100644 --- a/bramble-java/build.gradle +++ b/bramble-java/build.gradle @@ -23,10 +23,9 @@ dependencies { testImplementation project(path: ':bramble-api', configuration: 'testOutput') testImplementation project(path: ':bramble-core', configuration: 'testOutput') - testImplementation 'junit:junit:4.12' - testImplementation "org.jmock:jmock:2.8.2" - testImplementation "org.jmock:jmock-junit4:2.8.2" - testImplementation "org.jmock:jmock-legacy:2.8.2" + testImplementation "junit:junit:$junit_version" + testImplementation "org.jmock:jmock:$jmock_version" + testImplementation "org.jmock:jmock-junit4:$jmock_version" testAnnotationProcessor 'com.google.dagger:dagger-compiler:2.24' } diff --git a/bramble-java/witness.gradle b/bramble-java/witness.gradle index a6b8c8672..b83530b90 100644 --- a/bramble-java/witness.gradle +++ b/bramble-java/witness.gradle @@ -1,6 +1,7 @@ dependencyVerification { verify = [ - 'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861', + 'cglib:cglib:3.2.8:cglib-3.2.8.jar:3f64de999ecc5595dc84ca8ff0879d8a34c8623f9ef3c517a53ed59023fcb9db', + 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', 'com.google.dagger:dagger-compiler:2.24:dagger-compiler-2.24.jar:3c5afb955fb188da485cb2c048eff37dce0e1530b9780a0f2f7187d16d1ccc1f', 'com.google.dagger:dagger-producers:2.24:dagger-producers-2.24.jar:f10f45b95191954d5d6b043fca9e62fb621d21bf70634b8f8476c7988b504c3a', @@ -17,24 +18,26 @@ dependencyVerification { 'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f', 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', 'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', + 'net.bytebuddy:byte-buddy:1.9.12:byte-buddy-1.9.12.jar:3688c3d434bebc3edc5516296a2ed0f47b65e451071b4afecad84f902f0efc11', 'net.java.dev.jna:jna-platform:4.5.2:jna-platform-4.5.2.jar:f1d00c167d8921c6e23c626ef9f1c3ae0be473c95c68ffa012bc7ae55a87e2d6', 'net.java.dev.jna:jna:4.5.2:jna-4.5.2.jar:0c8eb7acf67261656d79005191debaba3b6bf5dd60a43735a245429381dbecff', + 'net.jcip:jcip-annotations:1.0:jcip-annotations-1.0.jar:be5805392060c71474bf6c9a67a099471274d30b83eef84bfc4e0889a4f1dcc0', 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', - 'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d', - 'org.apache.ant:ant:1.9.4:ant-1.9.4.jar:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8', - 'org.beanshell:bsh:1.3.0:bsh-1.3.0.jar:9b04edc75d19db54f1b4e8b5355e9364384c6cf71eb0a1b9724c159d779879f8', + 'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047', 'org.briarproject:obfs4proxy:0.0.12-dev-40245c4a:obfs4proxy-0.0.12-dev-40245c4a.zip:172029e7058b3a83ac93ac4991a44bf76e16ce8d46f558f5836d57da3cb3a766', 'org.briarproject:tor:0.3.5.13-1:tor-0.3.5.13-1.zip:ef35c16bf8dc1f4c75ed71d9f55e4514f383d124ec96b859aca647c990927c99', 'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d', 'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a', 'org.codehaus.mojo:animal-sniffer-annotations:1.17:animal-sniffer-annotations-1.17.jar:92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53', - 'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', - 'org.hamcrest:hamcrest-library:1.3:hamcrest-library-1.3.jar:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c', - 'org.jmock:jmock-junit4:2.8.2:jmock-junit4-2.8.2.jar:f7ee4df4f7bd7b7f1cafad3b99eb74d579f109d5992ff625347352edb55e674c', - 'org.jmock:jmock-legacy:2.8.2:jmock-legacy-2.8.2.jar:f2b985a5c08a9edb7f37612330c058809da3f6a6d63ce792426ebf8ff0d6d31b', - 'org.jmock:jmock-testjar:2.8.2:jmock-testjar-2.8.2.jar:8900860f72c474e027cf97fe78dcbf154a1aa7fc62b6845c5fb4e4f3c7bc8760', - 'org.jmock:jmock:2.8.2:jmock-2.8.2.jar:6c73cb4a2e6dbfb61fd99c9a768539c170ab6568e57846bd60dbf19596b65b16', - 'org.objenesis:objenesis:2.1:objenesis-2.1.jar:c74330cc6b806c804fd37e74487b4fe5d7c2750c5e15fbc6efa13bdee1bdef80', - 'org.ow2.asm:asm:5.0.4:asm-5.0.4.jar:896618ed8ae62702521a78bc7be42b7c491a08e6920a15f89a3ecdec31e9a220', + 'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9', + 'org.hamcrest:hamcrest-library:2.1:hamcrest-library-2.1.jar:b7e2b6895b3b679f0e47b6380fda391b225e9b78505db9d8bdde8d3cc8d52a21', + 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', + 'org.jmock:jmock-imposters:2.12.0:jmock-imposters-2.12.0.jar:3b836269745a137c9b2347e8d7c2104845b126ef04f012d6bfd94f1a7dea7b09', + 'org.jmock:jmock-junit4:2.12.0:jmock-junit4-2.12.0.jar:3233062fc889637c151a24f1ee086bad04321ab7d8264fef279daff0fa27205b', + 'org.jmock:jmock-legacy:2.12.0:jmock-legacy-2.12.0.jar:dea3a9cca653d082e2fe7e40232e982fe03a9984c7d67ceff24f3e03fe580dcd', + 'org.jmock:jmock-testjar:2.12.0:jmock-testjar-2.12.0.jar:efefbcf6cd294d0e29f0c46eb2a3380d4ca4e1763ff719c69e2f2ac62f564a04', + 'org.jmock:jmock:2.12.0:jmock-2.12.0.jar:266d07314c0cd343c46ff8a55601272de8cf406807caf55e6f313295f83d10be', + 'org.objenesis:objenesis:3.0.1:objenesis-3.0.1.jar:7a8ff780b9ff48415d7c705f60030b0acaa616e7f823c98eede3b63508d4e984', + 'org.ow2.asm:asm:7.1:asm-7.1.jar:4ab2fa2b6d2cc9ccb1eaa05ea329c407b47b13ed2915f62f8c4b8cc96258d4de', ] } diff --git a/briar-android/build.gradle b/briar-android/build.gradle index b78a0a3ce..9ac64e336 100644 --- a/briar-android/build.gradle +++ b/briar-android/build.gradle @@ -137,11 +137,12 @@ dependencies { testImplementation "androidx.arch.core:core-testing:2.1.0" testImplementation "androidx.test.espresso:espresso-core:$espressoVersion" testImplementation 'org.robolectric:robolectric:4.3.1' - testImplementation 'org.mockito:mockito-core:3.1.0' - testImplementation 'junit:junit:4.13.1' - testImplementation "org.jmock:jmock:$jmockVersion" - testImplementation "org.jmock:jmock-junit4:$jmockVersion" - testImplementation "org.jmock:jmock-legacy:$jmockVersion" + + testImplementation 'org.mockito:mockito-core:3.9.0' + testImplementation "junit:junit:$junit_version" + testImplementation "org.jmock:jmock:$jmock_version" + testImplementation "org.jmock:jmock-junit4:$jmock_version" + testImplementation "org.jmock:jmock-imposters:$jmock_version" testAnnotationProcessor "com.google.dagger:dagger-compiler:2.24" androidTestImplementation project(path: ':bramble-api', configuration: 'testOutput') diff --git a/briar-android/src/test/java/org/briarproject/briar/android/account/SetupViewModelTest.java b/briar-android/src/test/java/org/briarproject/briar/android/account/SetupViewModelTest.java index e64693789..3cc74b11d 100644 --- a/briar-android/src/test/java/org/briarproject/briar/android/account/SetupViewModelTest.java +++ b/briar-android/src/test/java/org/briarproject/briar/android/account/SetupViewModelTest.java @@ -9,7 +9,7 @@ import org.briarproject.bramble.test.BrambleMockTestCase; import org.briarproject.bramble.test.ImmediateExecutor; import org.briarproject.briar.android.account.SetupViewModel.State; import org.jmock.Expectations; -import org.jmock.lib.legacy.ClassImposteriser; +import org.jmock.imposters.ByteBuddyClassImposteriser; import org.junit.Rule; import org.junit.Test; @@ -36,7 +36,7 @@ public class SetupViewModelTest extends BrambleMockTestCase { private final DozeHelper dozeHelper; public SetupViewModelTest() { - context.setImposteriser(ClassImposteriser.INSTANCE); + context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE); app = context.mock(Application.class); appContext = context.mock(Context.class); accountManager = context.mock(AccountManager.class); diff --git a/briar-android/src/test/java/org/briarproject/briar/android/attachment/AttachmentRetrieverTest.java b/briar-android/src/test/java/org/briarproject/briar/android/attachment/AttachmentRetrieverTest.java index 1b9bdde06..565ddbe0a 100644 --- a/briar-android/src/test/java/org/briarproject/briar/android/attachment/AttachmentRetrieverTest.java +++ b/briar-android/src/test/java/org/briarproject/briar/android/attachment/AttachmentRetrieverTest.java @@ -11,7 +11,7 @@ import org.briarproject.briar.api.attachment.Attachment; import org.briarproject.briar.api.attachment.AttachmentHeader; import org.briarproject.briar.api.attachment.AttachmentReader; import org.jmock.Expectations; -import org.jmock.lib.legacy.ClassImposteriser; +import org.jmock.imposters.ByteBuddyClassImposteriser; import org.junit.Test; import java.io.ByteArrayInputStream; @@ -36,7 +36,7 @@ public class AttachmentRetrieverTest extends BrambleMockTestCase { private final AttachmentRetriever retriever; public AttachmentRetrieverTest() { - context.setImposteriser(ClassImposteriser.INSTANCE); + context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE); AttachmentReader attachmentReader = context.mock(AttachmentReader.class); imageSizeCalculator = context.mock(ImageSizeCalculator.class); diff --git a/briar-android/src/test/java/org/briarproject/briar/android/privategroup/list/GroupListViewModelTest.java b/briar-android/src/test/java/org/briarproject/briar/android/privategroup/list/GroupListViewModelTest.java index bfdc0c126..15e432dc5 100644 --- a/briar-android/src/test/java/org/briarproject/briar/android/privategroup/list/GroupListViewModelTest.java +++ b/briar-android/src/test/java/org/briarproject/briar/android/privategroup/list/GroupListViewModelTest.java @@ -26,7 +26,7 @@ import org.briarproject.briar.api.privategroup.event.GroupDissolvedEvent; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationItem; import org.briarproject.briar.api.privategroup.invitation.GroupInvitationManager; import org.jmock.Expectations; -import org.jmock.lib.legacy.ClassImposteriser; +import org.jmock.imposters.ByteBuddyClassImposteriser; import org.junit.Rule; import org.junit.Test; @@ -95,7 +95,7 @@ public class GroupListViewModelTest extends BrambleMockTestCase { new GroupItem(privateGroup2, authorInfo2, groupCount2, false); public GroupListViewModelTest() { - context.setImposteriser(ClassImposteriser.INSTANCE); + context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE); Application app = context.mock(Application.class); context.checking(new Expectations() {{ oneOf(eventBus).addListener(with(any(EventListener.class))); diff --git a/briar-android/src/test/java/org/briarproject/briar/android/util/UiUtilsFormatDurationTest.java b/briar-android/src/test/java/org/briarproject/briar/android/util/UiUtilsFormatDurationTest.java new file mode 100644 index 000000000..6162af3fe --- /dev/null +++ b/briar-android/src/test/java/org/briarproject/briar/android/util/UiUtilsFormatDurationTest.java @@ -0,0 +1,168 @@ +package org.briarproject.briar.android.util; + +import android.content.Context; +import android.content.res.Resources; + +import org.briarproject.bramble.test.BrambleMockTestCase; +import org.briarproject.briar.R; +import org.jmock.Expectations; +import org.jmock.imposters.ByteBuddyClassImposteriser; +import org.junit.Test; + +import static java.util.concurrent.TimeUnit.DAYS; +import static java.util.concurrent.TimeUnit.HOURS; +import static java.util.concurrent.TimeUnit.MINUTES; +import static java.util.concurrent.TimeUnit.SECONDS; +import static org.briarproject.briar.android.util.UiUtils.formatDuration; + +public class UiUtilsFormatDurationTest extends BrambleMockTestCase { + + private final Context ctx; + private final Resources r; + private final int strMinutes = R.plurals.duration_minutes; + private final int strHours = R.plurals.duration_hours; + private final int strDays = R.plurals.duration_days; + + public UiUtilsFormatDurationTest() { + context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE); + ctx = context.mock(Context.class); + r = context.mock(Resources.class); + } + + @Test + public void testOneMinute() { + expectMinuteString(1); + formatDuration(ctx, MINUTES.toMillis(1)); + } + + @Test + public void testOneHour() { + expectHourString(1); + formatDuration(ctx, HOURS.toMillis(1)); + } + + @Test + public void testOneDay() { + expectDayString(1); + formatDuration(ctx, DAYS.toMillis(1)); + } + + @Test + public void test10Seconds() { + // capped to 1min + expectMinuteString(1); + formatDuration(ctx, SECONDS.toMillis(10)); + } + + @Test + public void test100Seconds() { + expectMinuteString(2); + formatDuration(ctx, SECONDS.toMillis(100)); + } + + @Test + public void test2Minutes() { + expectMinuteString(2); + formatDuration(ctx, MINUTES.toMillis(2)); + } + + @Test + public void test10Minutes() { + expectMinuteString(10); + formatDuration(ctx, MINUTES.toMillis(10)); + } + + @Test + public void test130Minutes() { + expectHourString(2); + expectMinuteString(10); + formatDuration(ctx, MINUTES.toMillis(130)); + } + + @Test + public void test13Hours() { + expectHourString(13); + formatDuration(ctx, HOURS.toMillis(13)); + } + + @Test + public void testSevenDays() { + expectDayString(7); + formatDuration(ctx, DAYS.toMillis(7)); + } + + @Test + public void testSevenDays2Hours() { + expectDayString(7); + expectHourString(2); + formatDuration(ctx, DAYS.toMillis(7) + HOURS.toMillis(2)); + } + + @Test + public void testSevenDays20Minutes() { + expectDayString(7); + formatDuration(ctx, DAYS.toMillis(7) + MINUTES.toMillis(20)); + } + + @Test + public void testSevenDays40Minutes() { + expectDayString(7); + expectMinuteString(40); + formatDuration(ctx, DAYS.toMillis(7) + MINUTES.toMillis(40)); + } + + @Test + public void testTwoDays11Hours() { + expectDayString(2); + expectHourString(11); + formatDuration(ctx, DAYS.toMillis(2) + HOURS.toMillis(11)); + } + + @Test + public void testTwoDays12Hours() { + expectDayString(2); + expectHourString(12); + formatDuration(ctx, DAYS.toMillis(2) + HOURS.toMillis(12)); + } + + @Test + public void testTwoDays13Hours() { + expectDayString(2); + expectHourString(13); + formatDuration(ctx, DAYS.toMillis(2) + HOURS.toMillis(13)); + } + + @Test + public void test7Days23Hours55Minutes() { + expectDayString(7); + expectHourString(23); + expectMinuteString(55); + formatDuration(ctx, + DAYS.toMillis(7) + HOURS.toMillis(23) + MINUTES.toMillis(55)); + } + + private void expectMinuteString(int minutes) { + context.checking(new Expectations() {{ + oneOf(ctx).getResources(); + will(returnValue(r)); + oneOf(r).getQuantityString(strMinutes, minutes, minutes); + }}); + } + + private void expectHourString(int hours) { + context.checking(new Expectations() {{ + oneOf(ctx).getResources(); + will(returnValue(r)); + oneOf(r).getQuantityString(strHours, hours, hours); + }}); + } + + private void expectDayString(int days) { + context.checking(new Expectations() {{ + oneOf(ctx).getResources(); + will(returnValue(r)); + oneOf(r).getQuantityString(strDays, days, days); + }}); + } + +} diff --git a/briar-android/witness.gradle b/briar-android/witness.gradle index 3bef77ee0..204f505a4 100644 --- a/briar-android/witness.gradle +++ b/briar-android/witness.gradle @@ -64,7 +64,7 @@ dependencyVerification { 'androidx.viewpager2:viewpager2:1.0.0:viewpager2-1.0.0.aar:e95c0031d4cc247cd48196c6287e58d2cee54d9c79b85afea7c90920330275af', 'androidx.viewpager:viewpager:1.0.0:viewpager-1.0.0.aar:147af4e14a1984010d8f155e5e19d781f03c1d70dfed02a8e0d18428b8fc8682', 'backport-util-concurrent:backport-util-concurrent:3.1:backport-util-concurrent-3.1.jar:f5759b7fcdfc83a525a036deedcbd32e5b536b625ebc282426f16ca137eb5902', - 'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861', + 'cglib:cglib:3.2.8:cglib-3.2.8.jar:3f64de999ecc5595dc84ca8ff0879d8a34c8623f9ef3c517a53ed59023fcb9db', 'classworlds:classworlds:1.1-alpha-2:classworlds-1.1-alpha-2.jar:2bf4e59f3acd106fea6145a9a88fe8956509f8b9c0fdd11eb96fee757269e3f3', 'com.almworks.sqlite4java:sqlite4java:0.282:sqlite4java-0.282.jar:9e1d8dd83ca6003f841e3af878ce2dc7c22497493a7bb6d1b62ec1b0d0a83c05', 'com.android.tools.analytics-library:protos:27.1.1:protos-27.1.1.jar:13f77e73762e58ab372d140b3a6be6903aea9775b62dd14fbc62d4cc7069c9a4', @@ -108,6 +108,7 @@ dependencyVerification { 'com.google.android.material:material:1.2.1:material-1.2.1.aar:d3d0cc776f2341da8e572586c7d390a5b356ce39a0deb2768071dc40b364ac80', 'com.google.auto.service:auto-service:1.0-rc4:auto-service-1.0-rc4.jar:e422d49c312fd2031222e7306e8108c1b4118eb9c049f1b51eca280bed87e924', 'com.google.auto:auto-common:0.8:auto-common-0.8.jar:97db1709f57b91b32edacb596ef4641872f227b7d99ad90e467f0d77f5ba134a', + 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', 'com.google.code.gson:gson:2.8.5:gson-2.8.5.jar:233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81', 'com.google.code.gson:gson:2.8.6:gson-2.8.6.jar:c8fb4839054d280b3033f800d1f5a97de2f028eb8ba2eb458ad287e536f3f25f', @@ -155,18 +156,21 @@ dependencyVerification { 'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f', 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', 'javax.xml.bind:jaxb-api:2.3.1:jaxb-api-2.3.1.jar:88b955a0df57880a26a74708bc34f74dcaf8ebf4e78843a28b50eae945732b06', + 'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', 'junit:junit:4.13.1:junit-4.13.1.jar:c30719db974d6452793fe191b3638a5777005485bae145924044530ffa5f6122', 'nekohtml:nekohtml:1.9.6.2:nekohtml-1.9.6.2.jar:fdff6cfa9ed9cc911c842a5d2395f209ec621ef1239d46810e9e495809d3ae09', 'nekohtml:xercesMinimal:1.9.6.2:xercesMinimal-1.9.6.2.jar:95b8b357d19f63797dd7d67622fd3f18374d64acbc6584faba1c7759a31e8438', - 'net.bytebuddy:byte-buddy-agent:1.9.10:byte-buddy-agent-1.9.10.jar:8ed739d29132103250d307d2e8e3c95f07588ef0543ab11d2881d00768a5e182', - 'net.bytebuddy:byte-buddy:1.9.10:byte-buddy-1.9.10.jar:2936debc4d7b6c534848d361412e2d0f8bd06f7f27a6f4e728a20e97648d2bf3', + 'net.bytebuddy:byte-buddy-agent:1.10.20:byte-buddy-agent-1.10.20.jar:b592a6c43e752bf41659717956c57fbb790394d2ee5f8941876659f9c5c0e7e8', + 'net.bytebuddy:byte-buddy:1.10.20:byte-buddy-1.10.20.jar:5fcad05da791e9a22811c255a4a74b7ea094b7243d9dbf3e6fc578c8c94290ac', 'net.i2p.crypto:eddsa:0.2.0:eddsa-0.2.0.jar:a7cb1b85c16e2f0730b9204106929a1d9aaae1df728adc7041a8b8b605692140', 'net.java.dev.jna:jna:5.5.0:jna-5.5.0.aar:12ef4a3c2ea685c9c816caa6a77ae8f17bb7727d8460f249925409acda270101', + 'net.jcip:jcip-annotations:1.0:jcip-annotations-1.0.jar:be5805392060c71474bf6c9a67a099471274d30b83eef84bfc4e0889a4f1dcc0', 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', 'net.sf.jopt-simple:jopt-simple:4.9:jopt-simple-4.9.jar:26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5', 'net.sf.kxml:kxml2:2.3.0:kxml2-2.3.0.jar:f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2', - 'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d', - 'org.apache.ant:ant:1.9.4:ant-1.9.4.jar:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8', + 'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047', + 'org.apache.ant:ant-launcher:1.8.0:ant-launcher-1.8.0.jar:da9fd92eacdf63daf0be52eb71accc10ff7943a85d7aac9ea96cf7e03ee3d3cc', + 'org.apache.ant:ant:1.8.0:ant-1.8.0.jar:0251dbb938740ace07a53675113eee753ba389db65aebc814b175af50321620e', 'org.apache.commons:commons-compress:1.12:commons-compress-1.12.jar:2c1542faf343185b7cab9c3d55c8ae5471d6d095d3887a4adefdbdf2984dc0b6', 'org.apache.httpcomponents:httpclient:4.5.6:httpclient-4.5.6.jar:c03f813195e7a80e3608d0ddd8da80b21696a4c92a6a2298865bf149071551c7', 'org.apache.httpcomponents:httpcore:4.4.10:httpcore-4.4.10.jar:78ba1096561957db1b55200a159b648876430342d15d461277e62360da19f6fd', @@ -185,7 +189,6 @@ dependencyVerification { 'org.apache.maven:maven-project:2.2.1:maven-project-2.2.1.jar:24ddb65b7a6c3befb6267ce5f739f237c84eba99389265c30df67c3dd8396a40', 'org.apache.maven:maven-repository-metadata:2.2.1:maven-repository-metadata-2.2.1.jar:5fe283f47b0e7f7d95a4252af3fa7a0db4d8f080cd9df308608c0472b8f168a1', 'org.apache.maven:maven-settings:2.2.1:maven-settings-2.2.1.jar:9a9f556713a404e770c9dbdaed7eb086078014c989291960c76fdde6db4192f7', - 'org.beanshell:bsh:1.3.0:bsh-1.3.0.jar:9b04edc75d19db54f1b4e8b5355e9364384c6cf71eb0a1b9724c159d779879f8', 'org.bouncycastle:bcpkix-jdk15on:1.56:bcpkix-jdk15on-1.56.jar:7043dee4e9e7175e93e0b36f45b1ec1ecb893c5f755667e8b916eb8dd201c6ca', 'org.bouncycastle:bcprov-jdk15on:1.52:bcprov-jdk15on-1.52.jar:0dc4d181e4d347893c2ddbd2e6cd5d7287fc651c03648fa64b2341c7366b1773', 'org.bouncycastle:bcprov-jdk15on:1.56:bcprov-jdk15on-1.56.jar:963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349', @@ -202,8 +205,11 @@ dependencyVerification { 'org.glassfish.jaxb:jaxb-runtime:2.3.1:jaxb-runtime-2.3.1.jar:45fecfa5c8217ce1f3652ab95179790ec8cc0dec0384bca51cbeb94a293d9f2f', 'org.glassfish.jaxb:txw2:2.3.1:txw2-2.3.1.jar:34975dde1c6920f1a39791142235689bc3cd357e24d05edd8ff93b885bd68d60', 'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', + 'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9', 'org.hamcrest:hamcrest-integration:1.3:hamcrest-integration-1.3.jar:70f418efbb506c5155da5f9a5a33262ea08a9e4d7fea186aa9015c41a7224ac2', 'org.hamcrest:hamcrest-library:1.3:hamcrest-library-1.3.jar:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c', + 'org.hamcrest:hamcrest-library:2.1:hamcrest-library-2.1.jar:b7e2b6895b3b679f0e47b6380fda391b225e9b78505db9d8bdde8d3cc8d52a21', + 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', 'org.jetbrains.kotlin:kotlin-reflect:1.3.72:kotlin-reflect-1.3.72.jar:a188d9367de1c4ee9479db630985c0597b20709c83161b1430d24edb27e38c40', 'org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50:kotlin-stdlib-common-1.3.50.jar:8ce678e88e4ba018b66dacecf952471e4d7dfee156a8a819760a5a5ff29d323c', 'org.jetbrains.kotlin:kotlin-stdlib-common:1.3.72:kotlin-stdlib-common-1.3.72.jar:5e7d1552863e480c1628b1cc39ce230ef829f5b7230106215a05acda5172203a', @@ -215,21 +221,23 @@ dependencyVerification { 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.0:kotlinx-coroutines-core-1.3.0.jar:6f3a60fea2403b80385b399952aeb3a4cf0985a45b8da04b6f31825171901a1d', 'org.jetbrains.trove4j:trove4j:20160824:trove4j-20160824.jar:1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7', 'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478', - 'org.jmock:jmock-junit4:2.8.2:jmock-junit4-2.8.2.jar:f7ee4df4f7bd7b7f1cafad3b99eb74d579f109d5992ff625347352edb55e674c', - 'org.jmock:jmock-legacy:2.8.2:jmock-legacy-2.8.2.jar:f2b985a5c08a9edb7f37612330c058809da3f6a6d63ce792426ebf8ff0d6d31b', - 'org.jmock:jmock-testjar:2.8.2:jmock-testjar-2.8.2.jar:8900860f72c474e027cf97fe78dcbf154a1aa7fc62b6845c5fb4e4f3c7bc8760', - 'org.jmock:jmock:2.8.2:jmock-2.8.2.jar:6c73cb4a2e6dbfb61fd99c9a768539c170ab6568e57846bd60dbf19596b65b16', + 'org.jmock:jmock-imposters:2.12.0:jmock-imposters-2.12.0.jar:3b836269745a137c9b2347e8d7c2104845b126ef04f012d6bfd94f1a7dea7b09', + 'org.jmock:jmock-junit4:2.12.0:jmock-junit4-2.12.0.jar:3233062fc889637c151a24f1ee086bad04321ab7d8264fef279daff0fa27205b', + 'org.jmock:jmock-legacy:2.12.0:jmock-legacy-2.12.0.jar:dea3a9cca653d082e2fe7e40232e982fe03a9984c7d67ceff24f3e03fe580dcd', + 'org.jmock:jmock-testjar:2.12.0:jmock-testjar-2.12.0.jar:efefbcf6cd294d0e29f0c46eb2a3380d4ca4e1763ff719c69e2f2ac62f564a04', + 'org.jmock:jmock:2.12.0:jmock-2.12.0.jar:266d07314c0cd343c46ff8a55601272de8cf406807caf55e6f313295f83d10be', 'org.jvnet.staxex:stax-ex:1.8:stax-ex-1.8.jar:95b05d9590af4154c6513b9c5dc1fb2e55b539972ba0a9ef28e9a0c01d83ad77', 'org.magmacollective.darkcrystal:dark-crystal-key-backup-crypto:1.0.0:dark-crystal-key-backup-crypto-1.0.0.jar:7c808f30314f7bc0c715b53415b07bd7e9a6bbcc55e5f672a296e5298d335f78', 'org.magmacollective.darkcrystal:dark-crystal-secret-sharing-wrapper:1.1.0:dark-crystal-secret-sharing-wrapper-1.1.0.aar:b8cac2348b9e652de413fa587168e9bb6ff36f6eea4bd1c72d3ecd56fc186e09', 'org.magmacollective.darkcrystal:shamir-secret-sharing-jna:1.0.0:shamir-secret-sharing-jna-1.0.0.aar:cdccfaf74dc1fcf30799a45d034c406315ce8507a8f4382eee118a66fb229ced', - 'org.mockito:mockito-core:3.1.0:mockito-core-3.1.0.jar:89b09e518e04f5c35f5ccf7abe45e72f594070a53d95cc2579001bd392c5afa6', - 'org.objenesis:objenesis:2.6:objenesis-2.6.jar:5e168368fbc250af3c79aa5fef0c3467a2d64e5a7bd74005f25d8399aeb0708d', + 'org.mockito:mockito-core:3.9.0:mockito-core-3.9.0.jar:a1f64211407b8dc4cf80b16e07cc11aa9e5228d53dc4a5357326d66825f6a4ac', + 'org.objenesis:objenesis:3.2:objenesis-3.2.jar:03d960bd5aef03c653eb000413ada15eb77cdd2b8e4448886edf5692805e35f3', 'org.ow2.asm:asm-analysis:7.0:asm-analysis-7.0.jar:e981f8f650c4d900bb033650b18e122fa6b161eadd5f88978d08751f72ee8474', 'org.ow2.asm:asm-commons:7.0:asm-commons-7.0.jar:fed348ef05958e3e846a3ac074a12af5f7936ef3d21ce44a62c4fa08a771927d', 'org.ow2.asm:asm-tree:7.0:asm-tree-7.0.jar:cfd7a0874f9de36a999c127feeadfbfe6e04d4a71ee954d7af3d853f0be48a6c', 'org.ow2.asm:asm-util:7.0:asm-util-7.0.jar:75fbbca440ef463f41c2b0ab1a80abe67e910ac486da60a7863cbcb5bae7e145', 'org.ow2.asm:asm:7.0:asm-7.0.jar:b88ef66468b3c978ad0c97fd6e90979e56155b4ac69089ba7a44e9aa7ffe9acf', + 'org.ow2.asm:asm:7.1:asm-7.1.jar:4ab2fa2b6d2cc9ccb1eaa05ea329c407b47b13ed2915f62f8c4b8cc96258d4de', 'org.robolectric:annotations:4.3.1:annotations-4.3.1.jar:ce679af70c22620b5752aa6c1555d0653198d6370e9a93fe71b8eaaebc5ffaf6', 'org.robolectric:junit:4.3.1:junit-4.3.1.jar:60c85ea7fd652bc4e57567cbd3c41c5d32f2c678e212b713cefa6c63570451ce', 'org.robolectric:pluginapi:4.3.1:pluginapi-4.3.1.jar:229256a260a1d8e8d33613a3de7ccd639661a7061251c1974975ed427428b468', diff --git a/briar-core/build.gradle b/briar-core/build.gradle index 14bc3aa16..e81e941f5 100644 --- a/briar-core/build.gradle +++ b/briar-core/build.gradle @@ -22,10 +22,10 @@ dependencies { testImplementation project(path: ':bramble-core', configuration: 'testOutput') testImplementation project(path: ':bramble-api', configuration: 'testOutput') testImplementation 'net.jodah:concurrentunit:0.4.2' - testImplementation 'junit:junit:4.12' - testImplementation "org.jmock:jmock:2.8.2" - testImplementation "org.jmock:jmock-junit4:2.8.2" - testImplementation "org.jmock:jmock-legacy:2.8.2" + testImplementation "junit:junit:$junit_version" + testImplementation "org.jmock:jmock:$jmock_version" + testImplementation "org.jmock:jmock-junit4:$jmock_version" + testImplementation "org.jmock:jmock-imposters:$jmock_version" testAnnotationProcessor 'com.google.dagger:dagger-compiler:2.24' diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java index 58df14e7c..cd7158c9a 100644 --- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java @@ -33,7 +33,7 @@ import org.briarproject.briar.api.privategroup.invitation.GroupInvitationRequest import org.briarproject.briar.api.privategroup.invitation.GroupInvitationResponse; import org.jmock.AbstractExpectations; import org.jmock.Expectations; -import org.jmock.lib.legacy.ClassImposteriser; +import org.jmock.imposters.ByteBuddyClassImposteriser; import org.junit.Test; import java.util.Collection; @@ -120,7 +120,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase { public GroupInvitationManagerImplTest() { - context.setImposteriser(ClassImposteriser.INSTANCE); + context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE); creatorEngine = context.mock(CreatorProtocolEngine.class); inviteeEngine = context.mock(InviteeProtocolEngine.class); peerEngine = context.mock(PeerProtocolEngine.class); diff --git a/briar-core/witness.gradle b/briar-core/witness.gradle index 603dd3432..e176ef43d 100644 --- a/briar-core/witness.gradle +++ b/briar-core/witness.gradle @@ -1,6 +1,7 @@ dependencyVerification { verify = [ - 'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861', + 'cglib:cglib:3.2.8:cglib-3.2.8.jar:3f64de999ecc5595dc84ca8ff0879d8a34c8623f9ef3c517a53ed59023fcb9db', + 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', 'com.google.dagger:dagger-compiler:2.24:dagger-compiler-2.24.jar:3c5afb955fb188da485cb2c048eff37dce0e1530b9780a0f2f7187d16d1ccc1f', 'com.google.dagger:dagger-producers:2.24:dagger-producers-2.24.jar:f10f45b95191954d5d6b043fca9e62fb621d21bf70634b8f8476c7988b504c3a', @@ -21,28 +22,30 @@ dependencyVerification { 'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f', 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', 'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a', + 'net.bytebuddy:byte-buddy:1.9.12:byte-buddy-1.9.12.jar:3688c3d434bebc3edc5516296a2ed0f47b65e451071b4afecad84f902f0efc11', + 'net.jcip:jcip-annotations:1.0:jcip-annotations-1.0.jar:be5805392060c71474bf6c9a67a099471274d30b83eef84bfc4e0889a4f1dcc0', 'net.jodah:concurrentunit:0.4.2:concurrentunit-0.4.2.jar:5583078e1acf91734939e985bc9e7ee947b0e93a8eef679da6bb07bbeb47ced3', 'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd', - 'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d', - 'org.apache.ant:ant:1.9.4:ant-1.9.4.jar:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8', - 'org.beanshell:bsh:1.3.0:bsh-1.3.0.jar:9b04edc75d19db54f1b4e8b5355e9364384c6cf71eb0a1b9724c159d779879f8', + 'org.apache-extras.beanshell:bsh:2.0b6:bsh-2.0b6.jar:a17955976070c0573235ee662f2794a78082758b61accffce8d3f8aedcd91047', 'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d', 'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a', 'org.codehaus.mojo.signature:java16:1.1:java16-1.1.signature:53799223a2c98dba2d0add810bed76315460df285c69e4f397ae6098f87dd619', 'org.codehaus.mojo:animal-sniffer-annotations:1.17:animal-sniffer-annotations-1.17.jar:92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53', 'org.codehaus.mojo:animal-sniffer-ant-tasks:1.16:animal-sniffer-ant-tasks-1.16.jar:890040976fbe2d584619a6a61b1fd2e925b3b5eb342a85eb2762c467c0d64e90', 'org.codehaus.mojo:animal-sniffer:1.16:animal-sniffer-1.16.jar:72be8bcc226ba43b937c722a08a07852bfa1b11400089265d5df0ee7b38b1d52', - 'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9', - 'org.hamcrest:hamcrest-library:1.3:hamcrest-library-1.3.jar:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c', + 'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9', + 'org.hamcrest:hamcrest-library:2.1:hamcrest-library-2.1.jar:b7e2b6895b3b679f0e47b6380fda391b225e9b78505db9d8bdde8d3cc8d52a21', + 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', 'org.jdom:jdom2:2.0.6:jdom2-2.0.6.jar:1345f11ba606d15603d6740551a8c21947c0215640770ec67271fe78bea97cf5', - 'org.jmock:jmock-junit4:2.8.2:jmock-junit4-2.8.2.jar:f7ee4df4f7bd7b7f1cafad3b99eb74d579f109d5992ff625347352edb55e674c', - 'org.jmock:jmock-legacy:2.8.2:jmock-legacy-2.8.2.jar:f2b985a5c08a9edb7f37612330c058809da3f6a6d63ce792426ebf8ff0d6d31b', - 'org.jmock:jmock-testjar:2.8.2:jmock-testjar-2.8.2.jar:8900860f72c474e027cf97fe78dcbf154a1aa7fc62b6845c5fb4e4f3c7bc8760', - 'org.jmock:jmock:2.8.2:jmock-2.8.2.jar:6c73cb4a2e6dbfb61fd99c9a768539c170ab6568e57846bd60dbf19596b65b16', + 'org.jmock:jmock-imposters:2.12.0:jmock-imposters-2.12.0.jar:3b836269745a137c9b2347e8d7c2104845b126ef04f012d6bfd94f1a7dea7b09', + 'org.jmock:jmock-junit4:2.12.0:jmock-junit4-2.12.0.jar:3233062fc889637c151a24f1ee086bad04321ab7d8264fef279daff0fa27205b', + 'org.jmock:jmock-legacy:2.12.0:jmock-legacy-2.12.0.jar:dea3a9cca653d082e2fe7e40232e982fe03a9984c7d67ceff24f3e03fe580dcd', + 'org.jmock:jmock-testjar:2.12.0:jmock-testjar-2.12.0.jar:efefbcf6cd294d0e29f0c46eb2a3380d4ca4e1763ff719c69e2f2ac62f564a04', + 'org.jmock:jmock:2.12.0:jmock-2.12.0.jar:266d07314c0cd343c46ff8a55601272de8cf406807caf55e6f313295f83d10be', 'org.jsoup:jsoup:1.11.3:jsoup-1.11.3.jar:df2c71a4240ecbdae7cdcd1667bcf0d747e4e3dcefe8161e787adcff7e5f2fa0', - 'org.objenesis:objenesis:2.1:objenesis-2.1.jar:c74330cc6b806c804fd37e74487b4fe5d7c2750c5e15fbc6efa13bdee1bdef80', + 'org.objenesis:objenesis:3.0.1:objenesis-3.0.1.jar:7a8ff780b9ff48415d7c705f60030b0acaa616e7f823c98eede3b63508d4e984', 'org.ow2.asm:asm-all:5.2:asm-all-5.2.jar:7fbffbc1db3422e2101689fd88df8384b15817b52b9b2b267b9f6d2511dc198d', - 'org.ow2.asm:asm:5.0.4:asm-5.0.4.jar:896618ed8ae62702521a78bc7be42b7c491a08e6920a15f89a3ecdec31e9a220', + 'org.ow2.asm:asm:7.1:asm-7.1.jar:4ab2fa2b6d2cc9ccb1eaa05ea329c407b47b13ed2915f62f8c4b8cc96258d4de', 'org.slf4j:slf4j-api:1.7.16:slf4j-api-1.7.16.jar:e56288031f5e60652c06e7bb6e9fa410a61231ab54890f7b708fc6adc4107c5b', ] } diff --git a/build.gradle b/build.gradle index 241efb19f..0b0800e3f 100644 --- a/build.gradle +++ b/build.gradle @@ -33,4 +33,7 @@ buildscript { classpath 'ru.vyarus:gradle-animalsniffer-plugin:1.5.0' classpath files('libs/gradle-witness.jar') } +// ext.dagger_version = "2.33" + ext.junit_version = "4.12" + ext.jmock_version = '2.12.0' } From 44bc35b949357a187a69a9324ea854cd22bd3d28 Mon Sep 17 00:00:00 2001 From: ameba23 Date: Mon, 6 Sep 2021 08:50:35 +0200 Subject: [PATCH 6/6] Rm test which was not present in this branch before cherry pick --- .../util/UiUtilsFormatDurationTest.java | 168 ------------------ 1 file changed, 168 deletions(-) delete mode 100644 briar-android/src/test/java/org/briarproject/briar/android/util/UiUtilsFormatDurationTest.java diff --git a/briar-android/src/test/java/org/briarproject/briar/android/util/UiUtilsFormatDurationTest.java b/briar-android/src/test/java/org/briarproject/briar/android/util/UiUtilsFormatDurationTest.java deleted file mode 100644 index 6162af3fe..000000000 --- a/briar-android/src/test/java/org/briarproject/briar/android/util/UiUtilsFormatDurationTest.java +++ /dev/null @@ -1,168 +0,0 @@ -package org.briarproject.briar.android.util; - -import android.content.Context; -import android.content.res.Resources; - -import org.briarproject.bramble.test.BrambleMockTestCase; -import org.briarproject.briar.R; -import org.jmock.Expectations; -import org.jmock.imposters.ByteBuddyClassImposteriser; -import org.junit.Test; - -import static java.util.concurrent.TimeUnit.DAYS; -import static java.util.concurrent.TimeUnit.HOURS; -import static java.util.concurrent.TimeUnit.MINUTES; -import static java.util.concurrent.TimeUnit.SECONDS; -import static org.briarproject.briar.android.util.UiUtils.formatDuration; - -public class UiUtilsFormatDurationTest extends BrambleMockTestCase { - - private final Context ctx; - private final Resources r; - private final int strMinutes = R.plurals.duration_minutes; - private final int strHours = R.plurals.duration_hours; - private final int strDays = R.plurals.duration_days; - - public UiUtilsFormatDurationTest() { - context.setImposteriser(ByteBuddyClassImposteriser.INSTANCE); - ctx = context.mock(Context.class); - r = context.mock(Resources.class); - } - - @Test - public void testOneMinute() { - expectMinuteString(1); - formatDuration(ctx, MINUTES.toMillis(1)); - } - - @Test - public void testOneHour() { - expectHourString(1); - formatDuration(ctx, HOURS.toMillis(1)); - } - - @Test - public void testOneDay() { - expectDayString(1); - formatDuration(ctx, DAYS.toMillis(1)); - } - - @Test - public void test10Seconds() { - // capped to 1min - expectMinuteString(1); - formatDuration(ctx, SECONDS.toMillis(10)); - } - - @Test - public void test100Seconds() { - expectMinuteString(2); - formatDuration(ctx, SECONDS.toMillis(100)); - } - - @Test - public void test2Minutes() { - expectMinuteString(2); - formatDuration(ctx, MINUTES.toMillis(2)); - } - - @Test - public void test10Minutes() { - expectMinuteString(10); - formatDuration(ctx, MINUTES.toMillis(10)); - } - - @Test - public void test130Minutes() { - expectHourString(2); - expectMinuteString(10); - formatDuration(ctx, MINUTES.toMillis(130)); - } - - @Test - public void test13Hours() { - expectHourString(13); - formatDuration(ctx, HOURS.toMillis(13)); - } - - @Test - public void testSevenDays() { - expectDayString(7); - formatDuration(ctx, DAYS.toMillis(7)); - } - - @Test - public void testSevenDays2Hours() { - expectDayString(7); - expectHourString(2); - formatDuration(ctx, DAYS.toMillis(7) + HOURS.toMillis(2)); - } - - @Test - public void testSevenDays20Minutes() { - expectDayString(7); - formatDuration(ctx, DAYS.toMillis(7) + MINUTES.toMillis(20)); - } - - @Test - public void testSevenDays40Minutes() { - expectDayString(7); - expectMinuteString(40); - formatDuration(ctx, DAYS.toMillis(7) + MINUTES.toMillis(40)); - } - - @Test - public void testTwoDays11Hours() { - expectDayString(2); - expectHourString(11); - formatDuration(ctx, DAYS.toMillis(2) + HOURS.toMillis(11)); - } - - @Test - public void testTwoDays12Hours() { - expectDayString(2); - expectHourString(12); - formatDuration(ctx, DAYS.toMillis(2) + HOURS.toMillis(12)); - } - - @Test - public void testTwoDays13Hours() { - expectDayString(2); - expectHourString(13); - formatDuration(ctx, DAYS.toMillis(2) + HOURS.toMillis(13)); - } - - @Test - public void test7Days23Hours55Minutes() { - expectDayString(7); - expectHourString(23); - expectMinuteString(55); - formatDuration(ctx, - DAYS.toMillis(7) + HOURS.toMillis(23) + MINUTES.toMillis(55)); - } - - private void expectMinuteString(int minutes) { - context.checking(new Expectations() {{ - oneOf(ctx).getResources(); - will(returnValue(r)); - oneOf(r).getQuantityString(strMinutes, minutes, minutes); - }}); - } - - private void expectHourString(int hours) { - context.checking(new Expectations() {{ - oneOf(ctx).getResources(); - will(returnValue(r)); - oneOf(r).getQuantityString(strHours, hours, hours); - }}); - } - - private void expectDayString(int days) { - context.checking(new Expectations() {{ - oneOf(ctx).getResources(); - will(returnValue(r)); - oneOf(r).getQuantityString(strDays, days, days); - }}); - } - -}