mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Merge remote-tracking branch 'origin/main'
# Conflicts: # app/src/main/java/fr/free/nrw/commons/utils/PermissionUtils.java
This commit is contained in:
commit
b75193b8ba
138 changed files with 465 additions and 474 deletions
4
.github/workflows/android.yml
vendored
4
.github/workflows/android.yml
vendored
|
|
@ -17,8 +17,8 @@ jobs:
|
||||||
- name: Set up JDK
|
- name: Set up JDK
|
||||||
uses: actions/setup-java@v3
|
uses: actions/setup-java@v3
|
||||||
with:
|
with:
|
||||||
distribution: "temurin"
|
distribution: 'temurin'
|
||||||
java-version: 11
|
java-version: '17'
|
||||||
|
|
||||||
- name: Cache packages
|
- name: Cache packages
|
||||||
id: cache-packages
|
id: cache-packages
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,10 @@ dependencies {
|
||||||
// Utils
|
// Utils
|
||||||
implementation 'in.yuvi:http.fluent:1.3'
|
implementation 'in.yuvi:http.fluent:1.3'
|
||||||
implementation 'com.google.code.gson:gson:2.8.5'
|
implementation 'com.google.code.gson:gson:2.8.5'
|
||||||
implementation ("com.squareup.okhttp3:okhttp:$OKHTTP_VERSION"){
|
implementation ("com.squareup.okhttp3:okhttp:$OKHTTP_VERSION!!"){
|
||||||
force = true //API 19 support
|
// Forcing dependency versions using force = true on a first-level dependency has been deprecated.
|
||||||
|
// Ref: https://docs.gradle.org/7.5/userguide/upgrading_version_5.html#forced_dependencies
|
||||||
|
//force = true //API 19 support
|
||||||
}
|
}
|
||||||
implementation 'com.squareup.okio:okio:2.2.2'
|
implementation 'com.squareup.okio:okio:2.2.2'
|
||||||
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
|
||||||
|
|
@ -78,22 +80,22 @@ dependencies {
|
||||||
|
|
||||||
//Mocking
|
//Mocking
|
||||||
testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0'
|
testImplementation 'com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0'
|
||||||
testImplementation 'org.mockito:mockito-inline:2.13.0'
|
testImplementation 'org.mockito:mockito-inline:5.2.0'
|
||||||
testImplementation 'org.mockito:mockito-core:2.25.1'
|
testImplementation 'org.mockito:mockito-core:5.5.0'
|
||||||
testImplementation "org.powermock:powermock-module-junit4:2.0.2"
|
testImplementation "org.powermock:powermock-module-junit4:2.0.9"
|
||||||
testImplementation "org.powermock:powermock-api-mockito2:2.0.2"
|
testImplementation "org.powermock:powermock-api-mockito2:2.0.9"
|
||||||
|
|
||||||
// Unit testing
|
// Unit testing
|
||||||
testImplementation 'junit:junit:4.13.2'
|
testImplementation 'junit:junit:4.13.2'
|
||||||
testImplementation 'org.robolectric:robolectric:4.6.1'
|
testImplementation 'org.robolectric:robolectric:4.10.3'
|
||||||
testImplementation 'androidx.test:core:1.4.0'
|
testImplementation 'androidx.test:core:1.5.0'
|
||||||
testImplementation "com.squareup.okhttp3:mockwebserver:$OKHTTP_VERSION"
|
testImplementation "com.squareup.okhttp3:mockwebserver:$OKHTTP_VERSION"
|
||||||
testImplementation "com.jraska.livedata:testing-ktx:1.1.2"
|
testImplementation "com.jraska.livedata:testing-ktx:1.1.2"
|
||||||
testImplementation "androidx.arch.core:core-testing:2.1.0"
|
testImplementation "androidx.arch.core:core-testing:2.2.0"
|
||||||
testImplementation "org.junit.jupiter:junit-jupiter-api:5.7.0"
|
testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.0"
|
||||||
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.7.0"
|
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.10.0"
|
||||||
testImplementation 'com.facebook.soloader:soloader:0.10.1'
|
testImplementation 'com.facebook.soloader:soloader:0.10.1'
|
||||||
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.0"
|
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3"
|
||||||
|
|
||||||
// Android testing
|
// Android testing
|
||||||
androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$KOTLIN_VERSION"
|
androidTestImplementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$KOTLIN_VERSION"
|
||||||
|
|
@ -119,8 +121,7 @@ dependencies {
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||||
implementation "androidx.exifinterface:exifinterface:1.3.2"
|
implementation "androidx.exifinterface:exifinterface:1.3.2"
|
||||||
implementation "androidx.core:core-ktx:$CORE_KTX_VERSION"
|
implementation "androidx.core:core-ktx:$CORE_KTX_VERSION"
|
||||||
implementation "androidx.multidex:multidex:2.0.1"
|
implementation 'com.simplecityapps:recyclerview-fastscroll:2.0.1'
|
||||||
compile 'com.simplecityapps:recyclerview-fastscroll:2.0.1'
|
|
||||||
|
|
||||||
//swipe_layout
|
//swipe_layout
|
||||||
implementation 'com.daimajia.swipelayout:library:1.2.0@aar'
|
implementation 'com.daimajia.swipelayout:library:1.2.0@aar'
|
||||||
|
|
@ -151,6 +152,8 @@ dependencies {
|
||||||
//Glide
|
//Glide
|
||||||
implementation 'com.github.bumptech.glide:glide:4.12.0'
|
implementation 'com.github.bumptech.glide:glide:4.12.0'
|
||||||
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
|
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
|
||||||
|
kaptTest "androidx.databinding:databinding-compiler:8.0.2"
|
||||||
|
kaptAndroidTest "androidx.databinding:databinding-compiler:8.0.2"
|
||||||
|
|
||||||
implementation("io.github.coordinates2country:coordinates2country-android:1.3") { exclude group: 'com.google.android', module: 'android' }
|
implementation("io.github.coordinates2country:coordinates2country-android:1.3") { exclude group: 'com.google.android', module: 'android' }
|
||||||
}
|
}
|
||||||
|
|
@ -188,12 +191,16 @@ android {
|
||||||
|
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
}
|
}
|
||||||
|
|
||||||
packagingOptions {
|
packagingOptions {
|
||||||
exclude 'META-INF/androidx.*'
|
jniLibs {
|
||||||
exclude 'META-INF/proguard/androidx-annotations.pro'
|
excludes += ['META-INF/androidx.*']
|
||||||
|
}
|
||||||
|
resources {
|
||||||
|
excludes += ['META-INF/androidx.*', 'META-INF/proguard/androidx-annotations.pro']
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
testOptions {
|
testOptions {
|
||||||
animationsDisabled true
|
animationsDisabled true
|
||||||
|
|
||||||
|
|
@ -326,11 +333,6 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lintOptions {
|
|
||||||
disable 'MissingTranslation'
|
|
||||||
disable 'ExtraTranslation'
|
|
||||||
abortOnError false
|
|
||||||
}
|
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
sourceCompatibility JavaVersion.VERSION_1_8
|
||||||
|
|
@ -342,7 +344,11 @@ android {
|
||||||
buildFeatures {
|
buildFeatures {
|
||||||
viewBinding true
|
viewBinding true
|
||||||
}
|
}
|
||||||
|
namespace 'fr.free.nrw.commons'
|
||||||
|
lint {
|
||||||
|
abortOnError false
|
||||||
|
disable 'MissingTranslation', 'ExtraTranslation'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String getTestUserName() {
|
String getTestUserName() {
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,8 @@
|
||||||
-keepattributes Signature
|
-keepattributes Signature
|
||||||
# Retain declared checked exceptions for use by a Proxy instance.
|
# Retain declared checked exceptions for use by a Proxy instance.
|
||||||
-keepattributes Exceptions
|
-keepattributes Exceptions
|
||||||
|
# Classes used by retrofit to fetch API repsonse
|
||||||
|
-keepclasseswithmembers class org.wikipedia.** { *; }
|
||||||
# --- /Retrofit ---
|
# --- /Retrofit ---
|
||||||
|
|
||||||
# --- OkHttp + Okio ---
|
# --- OkHttp + Okio ---
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
package="fr.free.nrw.commons">
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
|
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,9 @@ import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.Utils;
|
import fr.free.nrw.commons.Utils;
|
||||||
import fr.free.nrw.commons.auth.SessionManager;
|
import fr.free.nrw.commons.auth.SessionManager;
|
||||||
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
|
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
|
||||||
import fr.free.nrw.commons.utils.DialogUtil;
|
|
||||||
import fr.free.nrw.commons.media.MediaClient;
|
import fr.free.nrw.commons.media.MediaClient;
|
||||||
|
import fr.free.nrw.commons.profile.ProfileActivity;
|
||||||
|
import fr.free.nrw.commons.utils.DialogUtil;
|
||||||
import fr.free.nrw.commons.utils.SystemThemeUtils;
|
import fr.free.nrw.commons.utils.SystemThemeUtils;
|
||||||
import fr.free.nrw.commons.utils.ViewUtil;
|
import fr.free.nrw.commons.utils.ViewUtil;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
@ -52,7 +53,6 @@ import javax.inject.Inject;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.wikipedia.dataclient.WikiSite;
|
import org.wikipedia.dataclient.WikiSite;
|
||||||
import fr.free.nrw.commons.profile.ProfileActivity;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -112,7 +112,8 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl
|
||||||
|
|
||||||
private ContributionsListAdapter adapter;
|
private ContributionsListAdapter adapter;
|
||||||
|
|
||||||
@Nullable private Callback callback;
|
@Nullable
|
||||||
|
private Callback callback;
|
||||||
|
|
||||||
private final int SPAN_COUNT_LANDSCAPE = 3;
|
private final int SPAN_COUNT_LANDSCAPE = 3;
|
||||||
private final int SPAN_COUNT_PORTRAIT = 1;
|
private final int SPAN_COUNT_PORTRAIT = 1;
|
||||||
|
|
@ -142,7 +143,8 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable @org.jetbrains.annotations.Nullable final Bundle savedInstanceState) {
|
public void onCreate(
|
||||||
|
@Nullable @org.jetbrains.annotations.Nullable final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
//Now that we are allowing this fragment to be started for
|
//Now that we are allowing this fragment to be started for
|
||||||
// any userName- we expect it to be passed as an argument
|
// any userName- we expect it to be passed as an argument
|
||||||
|
|
@ -336,7 +338,7 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl
|
||||||
* Launch Custom Selector.
|
* Launch Custom Selector.
|
||||||
*/
|
*/
|
||||||
@OnClick(R.id.fab_custom_gallery)
|
@OnClick(R.id.fab_custom_gallery)
|
||||||
void launchCustomSelector(){
|
void launchCustomSelector() {
|
||||||
controller.initiateCustomGalleryPickWithPermission(getActivity());
|
controller.initiateCustomGalleryPickWithPermission(getActivity());
|
||||||
animateFAB(isFabOpen);
|
animateFAB(isFabOpen);
|
||||||
}
|
}
|
||||||
|
|
@ -348,24 +350,24 @@ public class ContributionsListFragment extends CommonsDaggerSupportFragment impl
|
||||||
private void animateFAB(final boolean isFabOpen) {
|
private void animateFAB(final boolean isFabOpen) {
|
||||||
this.isFabOpen = !isFabOpen;
|
this.isFabOpen = !isFabOpen;
|
||||||
if (fabPlus.isShown()) {
|
if (fabPlus.isShown()) {
|
||||||
if (isFabOpen) {
|
if (isFabOpen) {
|
||||||
fabPlus.startAnimation(rotate_backward);
|
fabPlus.startAnimation(rotate_backward);
|
||||||
fabCamera.startAnimation(fab_close);
|
fabCamera.startAnimation(fab_close);
|
||||||
fabGallery.startAnimation(fab_close);
|
fabGallery.startAnimation(fab_close);
|
||||||
fabCustomGallery.startAnimation(fab_close);
|
fabCustomGallery.startAnimation(fab_close);
|
||||||
fabCamera.hide();
|
fabCamera.hide();
|
||||||
fabGallery.hide();
|
fabGallery.hide();
|
||||||
fabCustomGallery.hide();
|
fabCustomGallery.hide();
|
||||||
} else {
|
} else {
|
||||||
fabPlus.startAnimation(rotate_forward);
|
fabPlus.startAnimation(rotate_forward);
|
||||||
fabCamera.startAnimation(fab_open);
|
fabCamera.startAnimation(fab_open);
|
||||||
fabGallery.startAnimation(fab_open);
|
fabGallery.startAnimation(fab_open);
|
||||||
fabCustomGallery.startAnimation(fab_open);
|
fabCustomGallery.startAnimation(fab_open);
|
||||||
fabCamera.show();
|
fabCamera.show();
|
||||||
fabGallery.show();
|
fabGallery.show();
|
||||||
fabCustomGallery.show();
|
fabCustomGallery.show();
|
||||||
}
|
}
|
||||||
this.isFabOpen = !isFabOpen;
|
this.isFabOpen = !isFabOpen;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package fr.free.nrw.commons.filepicker;
|
package fr.free.nrw.commons.filepicker;
|
||||||
|
|
||||||
|
import static fr.free.nrw.commons.filepicker.PickedFiles.singleFileList;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
@ -8,13 +10,11 @@ import android.content.SharedPreferences;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import androidx.preference.PreferenceManager;
|
|
||||||
import android.provider.MediaStore;
|
import android.provider.MediaStore;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.preference.PreferenceManager;
|
||||||
import fr.free.nrw.commons.customselector.model.Image;
|
import fr.free.nrw.commons.customselector.model.Image;
|
||||||
import fr.free.nrw.commons.customselector.ui.selector.CustomSelectorActivity;
|
import fr.free.nrw.commons.customselector.ui.selector.CustomSelectorActivity;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
@ -23,8 +23,6 @@ import java.net.URISyntaxException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static fr.free.nrw.commons.filepicker.PickedFiles.singleFileList;
|
|
||||||
|
|
||||||
public class FilePicker implements Constants {
|
public class FilePicker implements Constants {
|
||||||
|
|
||||||
private static final String KEY_PHOTO_URI = "photo_uri";
|
private static final String KEY_PHOTO_URI = "photo_uri";
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import android.app.PendingIntent;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|
||||||
|
import android.os.Build;
|
||||||
import androidx.core.app.NotificationCompat;
|
import androidx.core.app.NotificationCompat;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
@ -49,21 +50,29 @@ public class NotificationHelper {
|
||||||
* @param intent the intent to be fired when the notification is clicked
|
* @param intent the intent to be fired when the notification is clicked
|
||||||
*/
|
*/
|
||||||
public void showNotification(Context context,
|
public void showNotification(Context context,
|
||||||
String notificationTitle,
|
String notificationTitle,
|
||||||
String notificationMessage,
|
String notificationMessage,
|
||||||
int notificationId,
|
int notificationId,
|
||||||
Intent intent) {
|
Intent intent) {
|
||||||
|
|
||||||
notificationBuilder.setDefaults(DEFAULT_ALL)
|
notificationBuilder.setDefaults(DEFAULT_ALL)
|
||||||
.setContentTitle(notificationTitle)
|
.setContentTitle(notificationTitle)
|
||||||
.setStyle(new NotificationCompat.BigTextStyle()
|
.setStyle(new NotificationCompat.BigTextStyle()
|
||||||
.bigText(notificationMessage))
|
.bigText(notificationMessage))
|
||||||
.setSmallIcon(R.drawable.ic_launcher)
|
.setSmallIcon(R.drawable.ic_launcher)
|
||||||
.setProgress(0, 0, false)
|
.setProgress(0, 0, false)
|
||||||
.setOngoing(false)
|
.setOngoing(false)
|
||||||
.setPriority(PRIORITY_HIGH);
|
.setPriority(PRIORITY_HIGH);
|
||||||
|
|
||||||
PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
int flags = PendingIntent.FLAG_UPDATE_CURRENT;
|
||||||
|
|
||||||
|
// Check if the API level is 31 or higher to modify the flag
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||||
|
// For API level 31 or above, PendingIntent requires either FLAG_IMMUTABLE or FLAG_MUTABLE to be set
|
||||||
|
flags |= PendingIntent.FLAG_IMMUTABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, intent, flags);
|
||||||
notificationBuilder.setContentIntent(pendingIntent);
|
notificationBuilder.setContentIntent(pendingIntent);
|
||||||
notificationManager.notify(notificationId, notificationBuilder.build());
|
notificationManager.notify(notificationId, notificationBuilder.build());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -225,7 +225,6 @@ class DepictsPresenter @Inject constructor(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
repository.cleanup()
|
repository.cleanup()
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,15 @@ import android.provider.Settings;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
import androidx.annotation.StringRes;
|
import androidx.annotation.StringRes;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
|
|
||||||
import com.karumi.dexter.Dexter;
|
import com.karumi.dexter.Dexter;
|
||||||
import com.karumi.dexter.MultiplePermissionsReport;
|
import com.karumi.dexter.MultiplePermissionsReport;
|
||||||
import com.karumi.dexter.PermissionToken;
|
import com.karumi.dexter.PermissionToken;
|
||||||
import com.karumi.dexter.listener.PermissionRequest;
|
import com.karumi.dexter.listener.PermissionRequest;
|
||||||
import com.karumi.dexter.listener.multi.MultiplePermissionsListener;
|
import com.karumi.dexter.listener.multi.MultiplePermissionsListener;
|
||||||
|
|
||||||
import fr.free.nrw.commons.CommonsApplication;
|
import fr.free.nrw.commons.CommonsApplication;
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.upload.UploadActivity;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -82,14 +83,14 @@ public class PermissionUtils {
|
||||||
* <p>
|
* <p>
|
||||||
* Sample usage:
|
* Sample usage:
|
||||||
* <p>
|
* <p>
|
||||||
* PermissionUtils.checkPermissionsAndPerformAction(activity,
|
* PermissionUtils.checkPermissionsAndPerformAction(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||||
* Manifest.permission.WRITE_EXTERNAL_STORAGE, () -> initiateCameraUpload(activity),
|
* () -> initiateCameraUpload(activity), R.string.storage_permission_title,
|
||||||
* R.string.storage_permission_title, R.string.write_storage_permission_rationale);
|
* R.string.write_storage_permission_rationale);
|
||||||
* <p>
|
* <p>
|
||||||
* If you don't want the permission rationale to be shown then use:
|
* If you don't want the permission rationale to be shown then use:
|
||||||
* <p>
|
* <p>
|
||||||
* PermissionUtils.checkPermissionsAndPerformAction(activity,
|
* PermissionUtils.checkPermissionsAndPerformAction(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||||
* Manifest.permission.WRITE_EXTERNAL_STORAGE, () -> initiateCameraUpload(activity), - 1, -1);
|
* () -> initiateCameraUpload(activity), - 1, -1);
|
||||||
*
|
*
|
||||||
* @param activity activity requesting permissions
|
* @param activity activity requesting permissions
|
||||||
* @param permissions the permissions array being requests
|
* @param permissions the permissions array being requests
|
||||||
|
|
@ -112,9 +113,8 @@ public class PermissionUtils {
|
||||||
* <p>
|
* <p>
|
||||||
* Sample usage:
|
* Sample usage:
|
||||||
* <p>
|
* <p>
|
||||||
* PermissionUtils.checkPermissionsAndPerformAction(activity,
|
* PermissionUtils.checkPermissionsAndPerformAction(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||||
* Manifest.permission.WRITE_EXTERNAL_STORAGE, () -> initiateCameraUpload(activity), () ->
|
* () -> initiateCameraUpload(activity), () -> showMessage(), R.string.storage_permission_title,
|
||||||
* showMessage(), R.string.storage_permission_title,
|
|
||||||
* R.string.write_storage_permission_rationale);
|
* R.string.write_storage_permission_rationale);
|
||||||
*
|
*
|
||||||
* @param activity activity requesting permissions
|
* @param activity activity requesting permissions
|
||||||
|
|
@ -138,18 +138,11 @@ public class PermissionUtils {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (report.isAnyPermissionPermanentlyDenied()) {
|
if (report.isAnyPermissionPermanentlyDenied()) {
|
||||||
// permission is denied permanently, we will show user a dialog message.
|
// permission is denied permanently, we will show user a dialog message.
|
||||||
DialogUtil.showAlertDialog(activity, activity.getString(rationaleTitle),
|
DialogUtil.showAlertDialog(activity, activity.getString(rationaleTitle),
|
||||||
activity.getString(rationaleMessage),
|
activity.getString(rationaleMessage),
|
||||||
activity.getString(R.string.navigation_item_settings), null,
|
activity.getString(R.string.navigation_item_settings), null,
|
||||||
() -> {
|
() -> askUserToManuallyEnablePermissionFromSettings(activity), null);
|
||||||
askUserToManuallyEnablePermissionFromSettings(activity);
|
|
||||||
if (activity instanceof UploadActivity) {
|
|
||||||
((UploadActivity) activity).hasAllPermissions = true;
|
|
||||||
}
|
|
||||||
;
|
|
||||||
}, null, null,
|
|
||||||
!(activity instanceof UploadActivity));
|
|
||||||
} else {
|
} else {
|
||||||
if (null != onPermissionDenied) {
|
if (null != onPermissionDenied) {
|
||||||
onPermissionDenied.run();
|
onPermissionDenied.run();
|
||||||
|
|
@ -168,23 +161,8 @@ public class PermissionUtils {
|
||||||
activity.getString(rationaleMessage),
|
activity.getString(rationaleMessage),
|
||||||
activity.getString(android.R.string.ok),
|
activity.getString(android.R.string.ok),
|
||||||
activity.getString(android.R.string.cancel),
|
activity.getString(android.R.string.cancel),
|
||||||
() -> {
|
token::continuePermissionRequest,
|
||||||
if (activity instanceof UploadActivity) {
|
token::cancelPermissionRequest,
|
||||||
((UploadActivity) activity).hasAllPermissions = true;
|
|
||||||
}
|
|
||||||
token.continuePermissionRequest();
|
|
||||||
}
|
|
||||||
,
|
|
||||||
() -> {
|
|
||||||
Toast.makeText(activity.getApplicationContext(),
|
|
||||||
R.string.permissions_are_required_for_functionality,
|
|
||||||
Toast.LENGTH_LONG)
|
|
||||||
.show();
|
|
||||||
token.cancelPermissionRequest();
|
|
||||||
if (activity instanceof UploadActivity) {
|
|
||||||
activity.finish();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
null,
|
null,
|
||||||
false);
|
false);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,6 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="crash_dialog_title">Ostava je otkazala</string>
|
<string name="crash_dialog_title">Ostava je otkazala</string>
|
||||||
<string name="crash_dialog_text">Ups! Nešto nije u redu.</string>
|
<string name="crash_dialog_text">Ups! Nešto nije u redu.</string>
|
||||||
<string name="crash_dialog_comment_prompt">Recite nam šta ste radili pa to saznanje podelite sa nama, putem imejla. Time ćete nam pomoći da rešimo problem.</string>
|
<string name="crash_dialog_comment_prompt">Recite nam šta ste radili, pa to saznanje podelite sa nama putem e-pošte. Time ćete nam pomoći da rešimo problem.</string>
|
||||||
<string name="crash_dialog_ok_toast">Hvala vam!</string>
|
<string name="crash_dialog_ok_toast">Hvala vam!</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
|
|
@ -215,7 +215,7 @@
|
||||||
<string name="become_a_tester_title">Become a Beta Tester</string>
|
<string name="become_a_tester_title">Become a Beta Tester</string>
|
||||||
<string name="become_a_tester_description">Opt-in to our beta channel on Google Play and get early access to new features and bug fixes</string>
|
<string name="become_a_tester_description">Opt-in to our beta channel on Google Play and get early access to new features and bug fixes</string>
|
||||||
<string name="beta_opt_in_link">https://play.google.com/apps/testing/fr.free.nrw.commons</string>
|
<string name="beta_opt_in_link">https://play.google.com/apps/testing/fr.free.nrw.commons</string>
|
||||||
<string name="mapbox_commons_app_token">pk.eyJ1IjoibWFza2FyYXZpdmVrIiwiYSI6ImNqMmxvdzFjMTAwMHYzM283ZWM3eW5tcDAifQ.ib5SZ9EVjwJe6GSKve0bcg</string>
|
<string name="mapbox_commons_app_token">pk.eyJ1Ijoibmljb2xhcy1yYW91bCIsImEiOiJjbG53d3k0cnAwY2p4MnRteGs1dnNuZnY2In0.sg6FsrlIFZfvHc4Uyf3b4w</string>
|
||||||
<string name="_2fa_code">2FA Code</string>
|
<string name="_2fa_code">2FA Code</string>
|
||||||
<string name="logout_verification">Do you really want to logout?</string>
|
<string name="logout_verification">Do you really want to logout?</string>
|
||||||
<string name="mediaimage_failed">Media Image Failed</string>
|
<string name="mediaimage_failed">Media Image Failed</string>
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ class AboutActivityUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
|
|
||||||
activity = Robolectric.buildActivity(AboutActivity::class.java).create().get()
|
activity = Robolectric.buildActivity(AboutActivity::class.java).create().get()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ class CommonsAppAdapterUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
adapter = CommonsAppAdapter(sessionManager, preferences)
|
adapter = CommonsAppAdapter(sessionManager, preferences)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ class FakeContextWrapper(base: Context?) : ContextWrapper(base) {
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
Mockito.`when`(mMockAccountManager.accounts).thenReturn(ACCOUNTS)
|
Mockito.`when`(mMockAccountManager.accounts).thenReturn(ACCOUNTS)
|
||||||
Mockito.`when`(mMockAccountManager.getAccountsByType(BuildConfig.ACCOUNT_TYPE))
|
Mockito.`when`(mMockAccountManager.getAccountsByType(BuildConfig.ACCOUNT_TYPE))
|
||||||
.thenReturn(ACCOUNTS)
|
.thenReturn(ACCOUNTS)
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ class FakeContextWrapperWithException(base: Context?) : ContextWrapper(base) {
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
Mockito.`when`(mMockAccountManager.getAccountsByType(BuildConfig.ACCOUNT_TYPE))
|
Mockito.`when`(mMockAccountManager.getAccountsByType(BuildConfig.ACCOUNT_TYPE))
|
||||||
.thenThrow(SecurityException("Permission Denied"))
|
.thenThrow(SecurityException("Permission Denied"))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ class MediaDataExtractorTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ class OkHttpJsonApiClientTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
okHttpJsonApiClient = OkHttpJsonApiClient(
|
okHttpJsonApiClient = OkHttpJsonApiClient(
|
||||||
okhttpClient,
|
okhttpClient,
|
||||||
depictsClient,
|
depictsClient,
|
||||||
|
|
|
||||||
24
app/src/test/kotlin/fr/free/nrw/commons/TestUtility.kt
Normal file
24
app/src/test/kotlin/fr/free/nrw/commons/TestUtility.kt
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
package fr.free.nrw.commons
|
||||||
|
|
||||||
|
import java.lang.reflect.Field
|
||||||
|
import java.lang.reflect.Modifier
|
||||||
|
|
||||||
|
object TestUtility {
|
||||||
|
@Throws(java.lang.Exception::class)
|
||||||
|
fun setFinalStatic(field: Field, newValue: Any?) {
|
||||||
|
try {
|
||||||
|
field.isAccessible = true
|
||||||
|
// remove final modifier from field
|
||||||
|
val modifiersField: Field = Field::class.java.getDeclaredField("modifiers")
|
||||||
|
modifiersField.isAccessible = true
|
||||||
|
modifiersField.setInt(field, field.modifiers and Modifier.FINAL.inv())
|
||||||
|
field.set(null, newValue)
|
||||||
|
} catch (e: SecurityException) {
|
||||||
|
e.stackTrace
|
||||||
|
} catch (e: NoSuchFieldException) {
|
||||||
|
e.stackTrace
|
||||||
|
} catch (e: java.lang.Exception) {
|
||||||
|
e.stackTrace
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -33,7 +33,7 @@ class PageEditClientTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
pageEditClient = PageEditClient(csrfTokenClient, pageEditInterface)
|
pageEditClient = PageEditClient(csrfTokenClient, pageEditInterface)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,18 @@ import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.mockito.ArgumentMatchers
|
import org.mockito.ArgumentMatchers
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
|
import org.mockito.MockedStatic
|
||||||
import org.mockito.Mockito
|
import org.mockito.Mockito
|
||||||
|
import org.mockito.Mockito.`when`
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
import org.powermock.api.mockito.PowerMockito
|
import org.powermock.api.mockito.PowerMockito
|
||||||
import org.powermock.core.classloader.annotations.PrepareForTest
|
import org.powermock.core.classloader.annotations.PrepareForTest
|
||||||
import org.powermock.modules.junit4.PowerMockRunner
|
import org.powermock.modules.junit4.PowerMockRunner
|
||||||
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.wikipedia.csrf.CsrfTokenClient
|
import org.wikipedia.csrf.CsrfTokenClient
|
||||||
import org.wikipedia.dataclient.Service
|
import org.wikipedia.dataclient.Service
|
||||||
|
|
||||||
@RunWith(PowerMockRunner::class)
|
@RunWith(RobolectricTestRunner::class)
|
||||||
@PrepareForTest(CommonsApplication::class)
|
@PrepareForTest(CommonsApplication::class)
|
||||||
class ThanksClientTest {
|
class ThanksClientTest {
|
||||||
@Mock
|
@Mock
|
||||||
|
|
@ -28,6 +31,7 @@ class ThanksClientTest {
|
||||||
private lateinit var commonsApplication: CommonsApplication
|
private lateinit var commonsApplication: CommonsApplication
|
||||||
|
|
||||||
private lateinit var thanksClient: ThanksClient
|
private lateinit var thanksClient: ThanksClient
|
||||||
|
private lateinit var mockedApplication: MockedStatic<CommonsApplication>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* initial setup, test environment
|
* initial setup, test environment
|
||||||
|
|
@ -35,9 +39,9 @@ class ThanksClientTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
PowerMockito.mockStatic(CommonsApplication::class.java)
|
mockedApplication = Mockito.mockStatic(CommonsApplication::class.java)
|
||||||
PowerMockito.`when`(CommonsApplication.getInstance()).thenReturn(commonsApplication)
|
`when`(CommonsApplication.getInstance()).thenReturn(commonsApplication)
|
||||||
thanksClient = ThanksClient(csrfTokenClient, service)
|
thanksClient = ThanksClient(csrfTokenClient, service)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -46,8 +50,8 @@ class ThanksClientTest {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
fun testThanks() {
|
fun testThanks() {
|
||||||
Mockito.`when`(csrfTokenClient.tokenBlocking).thenReturn("test")
|
`when`(csrfTokenClient.tokenBlocking).thenReturn("test")
|
||||||
Mockito.`when`(commonsApplication.userAgent).thenReturn("test")
|
`when`(commonsApplication.userAgent).thenReturn("test")
|
||||||
thanksClient.thank(1L)
|
thanksClient.thank(1L)
|
||||||
verify(service).thank(ArgumentMatchers.anyString(), ArgumentMatchers.any(), eq("test"), eq("test"))
|
verify(service).thank(ArgumentMatchers.anyString(), ArgumentMatchers.any(), eq("test"), eq("test"))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ class LoginActivityUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
activity = Robolectric.buildActivity(LoginActivity::class.java).create().get()
|
activity = Robolectric.buildActivity(LoginActivity::class.java).create().get()
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ import javax.inject.Named
|
||||||
class LogoutClientTest {
|
class LogoutClientTest {
|
||||||
|
|
||||||
@Mock @field:[Inject Named("commons-service")]
|
@Mock @field:[Inject Named("commons-service")]
|
||||||
internal var service: Service? = null
|
lateinit var service: Service
|
||||||
|
|
||||||
@InjectMocks
|
@InjectMocks
|
||||||
var logoutClient: LogoutClient? = null
|
var logoutClient: LogoutClient? = null
|
||||||
|
|
@ -27,7 +27,7 @@ class LogoutClientTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
val mwQueryResponse = mock(MwQueryResponse::class.java)
|
val mwQueryResponse = mock(MwQueryResponse::class.java)
|
||||||
val mwQueryResult = mock(MwQueryResult::class.java)
|
val mwQueryResult = mock(MwQueryResult::class.java)
|
||||||
`when`(mwQueryResult!!.csrfToken()).thenReturn("test_token")
|
`when`(mwQueryResult!!.csrfToken()).thenReturn("test_token")
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ class SessionManagerUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
accountManager = AccountManager.get(ApplicationProvider.getApplicationContext())
|
accountManager = AccountManager.get(ApplicationProvider.getApplicationContext())
|
||||||
shadowOf(accountManager).addAccount(account)
|
shadowOf(accountManager).addAccount(account)
|
||||||
sessionManager =
|
sessionManager =
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ class SignupActivityTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
activity = Robolectric.buildActivity(SignupActivity::class.java).create().get()
|
activity = Robolectric.buildActivity(SignupActivity::class.java).create().get()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ class WikiAccountAuthenticatorServiceUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
service = WikiAccountAuthenticatorService()
|
service = WikiAccountAuthenticatorService()
|
||||||
service.onBind(null)
|
service.onBind(null)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ class WikiAccountAuthenticatorUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
authenticator = WikiAccountAuthenticator(context)
|
authenticator = WikiAccountAuthenticator(context)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ class BookmarkListRootFragmentUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
activity = Robolectric.buildActivity(MainActivity::class.java).create().get()
|
activity = Robolectric.buildActivity(MainActivity::class.java).create().get()
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class BookmarksPagerAdapterTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
bookmarksPagerAdapter = BookmarksPagerAdapter(fragmentManager, context, false)
|
bookmarksPagerAdapter = BookmarksPagerAdapter(fragmentManager, context, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ class LoggedOutBookmarksPagerAdapterTests {
|
||||||
*/
|
*/
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
bookmarksPagerAdapter = BookmarksPagerAdapter(fragmentManager, context, true)
|
bookmarksPagerAdapter = BookmarksPagerAdapter(fragmentManager, context, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ class BookmarkItemsControllerTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
whenever(bookmarkDao!!.allBookmarksItems)
|
whenever(bookmarkDao!!.allBookmarksItems)
|
||||||
.thenReturn(mockBookmarkList)
|
.thenReturn(mockBookmarkList)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import org.junit.Assert
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
import org.mockito.Mockito.verifyNoInteractions
|
||||||
import org.robolectric.RobolectricTestRunner
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
|
|
||||||
|
|
@ -230,112 +231,112 @@ class BookmarkItemsDaoTest {
|
||||||
fun migrateTableVersionFrom_v1_to_v2() {
|
fun migrateTableVersionFrom_v1_to_v2() {
|
||||||
onUpdate(database, 1, 2)
|
onUpdate(database, 1, 2)
|
||||||
// Table didn't exist before v5
|
// Table didn't exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v2_to_v3() {
|
fun migrateTableVersionFrom_v2_to_v3() {
|
||||||
onUpdate(database, 2, 3)
|
onUpdate(database, 2, 3)
|
||||||
// Table didn't exist before v5
|
// Table didn't exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v3_to_v4() {
|
fun migrateTableVersionFrom_v3_to_v4() {
|
||||||
onUpdate(database, 3, 4)
|
onUpdate(database, 3, 4)
|
||||||
// Table didn't exist before v5
|
// Table didn't exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v4_to_v5() {
|
fun migrateTableVersionFrom_v4_to_v5() {
|
||||||
onUpdate(database, 4, 5)
|
onUpdate(database, 4, 5)
|
||||||
// Table didn't change in version 5
|
// Table didn't change in version 5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v5_to_v6() {
|
fun migrateTableVersionFrom_v5_to_v6() {
|
||||||
onUpdate(database, 5, 6)
|
onUpdate(database, 5, 6)
|
||||||
// Table didn't change in version 6
|
// Table didn't change in version 6
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v6_to_v7() {
|
fun migrateTableVersionFrom_v6_to_v7() {
|
||||||
onUpdate(database, 6, 7)
|
onUpdate(database, 6, 7)
|
||||||
// Table didn't change in version 7
|
// Table didn't change in version 7
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v7_to_v8() {
|
fun migrateTableVersionFrom_v7_to_v8() {
|
||||||
onUpdate(database, 7, 8)
|
onUpdate(database, 7, 8)
|
||||||
// Table didn't change in version 8
|
// Table didn't change in version 8
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v8_to_v9() {
|
fun migrateTableVersionFrom_v8_to_v9() {
|
||||||
onUpdate(database, 8, 9)
|
onUpdate(database, 8, 9)
|
||||||
// Table didn't change in version 9
|
// Table didn't change in version 9
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v9_to_v10() {
|
fun migrateTableVersionFrom_v9_to_v10() {
|
||||||
onUpdate(database, 9, 10)
|
onUpdate(database, 9, 10)
|
||||||
// Table didn't change in version 10
|
// Table didn't change in version 10
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v10_to_v11() {
|
fun migrateTableVersionFrom_v10_to_v11() {
|
||||||
onUpdate(database, 10, 11)
|
onUpdate(database, 10, 11)
|
||||||
// Table didn't change in version 11
|
// Table didn't change in version 11
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v11_to_v12() {
|
fun migrateTableVersionFrom_v11_to_v12() {
|
||||||
onUpdate(database, 11, 12)
|
onUpdate(database, 11, 12)
|
||||||
// Table didn't change in version 12
|
// Table didn't change in version 12
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v12_to_v13() {
|
fun migrateTableVersionFrom_v12_to_v13() {
|
||||||
onUpdate(database, 12, 13)
|
onUpdate(database, 12, 13)
|
||||||
// Table didn't change in version 13
|
// Table didn't change in version 13
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v13_to_v14() {
|
fun migrateTableVersionFrom_v13_to_v14() {
|
||||||
onUpdate(database, 13, 14)
|
onUpdate(database, 13, 14)
|
||||||
// Table didn't change in version 14
|
// Table didn't change in version 14
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v14_to_v15() {
|
fun migrateTableVersionFrom_v14_to_v15() {
|
||||||
onUpdate(database, 14, 15)
|
onUpdate(database, 14, 15)
|
||||||
// Table didn't change in version 15
|
// Table didn't change in version 15
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v15_to_v16() {
|
fun migrateTableVersionFrom_v15_to_v16() {
|
||||||
onUpdate(database, 15, 16)
|
onUpdate(database, 15, 16)
|
||||||
// Table didn't change in version 16
|
// Table didn't change in version 16
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v16_to_v17() {
|
fun migrateTableVersionFrom_v16_to_v17() {
|
||||||
onUpdate(database, 16, 17)
|
onUpdate(database, 16, 17)
|
||||||
// Table didn't change in version 17
|
// Table didn't change in version 17
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -347,7 +348,7 @@ class BookmarkItemsDaoTest {
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v19_to_v19() {
|
fun migrateTableVersionFrom_v19_to_v19() {
|
||||||
onUpdate(database, 19, 19)
|
onUpdate(database, 19, 19)
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createCursor(rowCount: Int) = MatrixCursor(columns, rowCount).apply {
|
private fun createCursor(rowCount: Int) = MatrixCursor(columns, rowCount).apply {
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ class BookmarkItemsFragmentUnitTest {
|
||||||
*/
|
*/
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
val activity = Robolectric.buildActivity(ProfileActivity::class.java).create().get()
|
val activity = Robolectric.buildActivity(ProfileActivity::class.java).create().get()
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ import org.junit.Assert.*
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
import org.mockito.Mockito.verifyNoInteractions
|
||||||
import org.robolectric.RobolectricTestRunner
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
|
|
||||||
|
|
@ -215,42 +216,42 @@ class BookMarkLocationDaoTest {
|
||||||
fun migrateTableVersionFrom_v1_to_v2() {
|
fun migrateTableVersionFrom_v1_to_v2() {
|
||||||
onUpdate(database, 1, 2)
|
onUpdate(database, 1, 2)
|
||||||
// Table didnt exist before v5
|
// Table didnt exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v2_to_v3() {
|
fun migrateTableVersionFrom_v2_to_v3() {
|
||||||
onUpdate(database, 2, 3)
|
onUpdate(database, 2, 3)
|
||||||
// Table didnt exist before v5
|
// Table didnt exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v3_to_v4() {
|
fun migrateTableVersionFrom_v3_to_v4() {
|
||||||
onUpdate(database, 3, 4)
|
onUpdate(database, 3, 4)
|
||||||
// Table didnt exist before v5
|
// Table didnt exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v4_to_v5() {
|
fun migrateTableVersionFrom_v4_to_v5() {
|
||||||
onUpdate(database, 4, 5)
|
onUpdate(database, 4, 5)
|
||||||
// Table didnt change in version 5
|
// Table didnt change in version 5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v5_to_v6() {
|
fun migrateTableVersionFrom_v5_to_v6() {
|
||||||
onUpdate(database, 5, 6)
|
onUpdate(database, 5, 6)
|
||||||
// Table didnt change in version 6
|
// Table didnt change in version 6
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v6_to_v7() {
|
fun migrateTableVersionFrom_v6_to_v7() {
|
||||||
onUpdate(database, 6, 7)
|
onUpdate(database, 6, 7)
|
||||||
// Table didnt change in version 7
|
// Table didnt change in version 7
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesDao.Table.*
|
||||||
import org.junit.Assert.*
|
import org.junit.Assert.*
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
import org.mockito.Mockito.verifyNoInteractions
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner::class)
|
@RunWith(RobolectricTestRunner::class)
|
||||||
@Config(sdk = [21], application = TestCommonsApplication::class)
|
@Config(sdk = [21], application = TestCommonsApplication::class)
|
||||||
|
|
@ -165,42 +166,42 @@ class BookmarkPictureDaoTest {
|
||||||
fun migrateTableVersionFrom_v1_to_v2() {
|
fun migrateTableVersionFrom_v1_to_v2() {
|
||||||
onUpdate(database, 1, 2)
|
onUpdate(database, 1, 2)
|
||||||
// Table didn't exist before v5
|
// Table didn't exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v2_to_v3() {
|
fun migrateTableVersionFrom_v2_to_v3() {
|
||||||
onUpdate(database, 2, 3)
|
onUpdate(database, 2, 3)
|
||||||
// Table didn't exist before v5
|
// Table didn't exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v3_to_v4() {
|
fun migrateTableVersionFrom_v3_to_v4() {
|
||||||
onUpdate(database, 3, 4)
|
onUpdate(database, 3, 4)
|
||||||
// Table didn't exist before v5
|
// Table didn't exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v4_to_v5() {
|
fun migrateTableVersionFrom_v4_to_v5() {
|
||||||
onUpdate(database, 4, 5)
|
onUpdate(database, 4, 5)
|
||||||
// Table didn't change in version 5
|
// Table didn't change in version 5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v5_to_v6() {
|
fun migrateTableVersionFrom_v5_to_v6() {
|
||||||
onUpdate(database, 5, 6)
|
onUpdate(database, 5, 6)
|
||||||
// Table didn't change in version 6
|
// Table didn't change in version 6
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v6_to_v7() {
|
fun migrateTableVersionFrom_v6_to_v7() {
|
||||||
onUpdate(database, 6, 7)
|
onUpdate(database, 6, 7)
|
||||||
// Table didn't change in version 7
|
// Table didn't change in version 7
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ class CategoriesModelTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
categoriesModel = CategoriesModel(categoryClient, categoryDao, gpsCategoryModel)
|
categoriesModel = CategoriesModel(categoryClient, categoryDao, gpsCategoryModel)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ class CategoryClientTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import org.junit.Assert.*
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
import org.mockito.Mockito.verifyNoInteractions
|
||||||
import org.robolectric.RobolectricTestRunner
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
@ -57,21 +58,21 @@ class CategoryDaoTest {
|
||||||
fun migrateTableVersionFrom_v1_to_v2() {
|
fun migrateTableVersionFrom_v1_to_v2() {
|
||||||
onUpdate(database, 1, 2)
|
onUpdate(database, 1, 2)
|
||||||
// Table didnt exist before v5
|
// Table didnt exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v2_to_v3() {
|
fun migrateTableVersionFrom_v2_to_v3() {
|
||||||
onUpdate(database, 2, 3)
|
onUpdate(database, 2, 3)
|
||||||
// Table didnt exist before v5
|
// Table didnt exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v3_to_v4() {
|
fun migrateTableVersionFrom_v3_to_v4() {
|
||||||
onUpdate(database, 3, 4)
|
onUpdate(database, 3, 4)
|
||||||
// Table didnt exist before v5
|
// Table didnt exist before v5
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -84,21 +85,21 @@ class CategoryDaoTest {
|
||||||
fun migrateTableVersionFrom_v5_to_v6() {
|
fun migrateTableVersionFrom_v5_to_v6() {
|
||||||
onUpdate(database, 5, 6)
|
onUpdate(database, 5, 6)
|
||||||
// Table didnt change in version 6
|
// Table didnt change in version 6
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v6_to_v7() {
|
fun migrateTableVersionFrom_v6_to_v7() {
|
||||||
onUpdate(database, 6, 7)
|
onUpdate(database, 6, 7)
|
||||||
// Table didnt change in version 7
|
// Table didnt change in version 7
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun migrateTableVersionFrom_v7_to_v8() {
|
fun migrateTableVersionFrom_v7_to_v8() {
|
||||||
onUpdate(database, 7, 8)
|
onUpdate(database, 7, 8)
|
||||||
// Table didnt change in version 8
|
// Table didnt change in version 8
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ class CategoryDetailsActivityUnitTests {
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
|
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
|
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ class CategoryEditHelperUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
helper = CategoryEditHelper(notificationHelper, pageEditClient, viewUtilWrapper,
|
helper = CategoryEditHelper(notificationHelper, pageEditClient, viewUtilWrapper,
|
||||||
"")
|
"")
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ class GridViewAdapterUnitTest {
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
|
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
|
|
||||||
|
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package fr.free.nrw.commons.contributions
|
||||||
|
|
||||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||||
import com.nhaarman.mockitokotlin2.verify
|
import com.nhaarman.mockitokotlin2.verify
|
||||||
import com.nhaarman.mockitokotlin2.verifyZeroInteractions
|
|
||||||
import com.nhaarman.mockitokotlin2.whenever
|
import com.nhaarman.mockitokotlin2.whenever
|
||||||
import fr.free.nrw.commons.auth.SessionManager
|
import fr.free.nrw.commons.auth.SessionManager
|
||||||
import fr.free.nrw.commons.media.MediaClient
|
import fr.free.nrw.commons.media.MediaClient
|
||||||
|
|
@ -17,6 +16,7 @@ import org.mockito.ArgumentMatchers.anyList
|
||||||
import org.mockito.ArgumentMatchers.anyString
|
import org.mockito.ArgumentMatchers.anyString
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.Mockito.mock
|
import org.mockito.Mockito.mock
|
||||||
|
import org.mockito.Mockito.verifyNoInteractions
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
import java.lang.reflect.Method
|
import java.lang.reflect.Method
|
||||||
|
|
||||||
|
|
@ -114,7 +114,7 @@ class ContributionBoundaryCallbackTest {
|
||||||
)
|
)
|
||||||
method.isAccessible = true
|
method.isAccessible = true
|
||||||
method.invoke(contributionBoundaryCallback)
|
method.invoke(contributionBoundaryCallback)
|
||||||
verifyZeroInteractions(repository);
|
verifyNoInteractions(repository)
|
||||||
verify(mediaClient).getMediaListForUser(anyString());
|
verify(mediaClient).getMediaListForUser(anyString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import com.facebook.soloader.SoLoader
|
||||||
import fr.free.nrw.commons.Media
|
import fr.free.nrw.commons.Media
|
||||||
import fr.free.nrw.commons.R
|
import fr.free.nrw.commons.R
|
||||||
import fr.free.nrw.commons.TestCommonsApplication
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
|
import fr.free.nrw.commons.TestUtility.setFinalStatic
|
||||||
import fr.free.nrw.commons.media.MediaClient
|
import fr.free.nrw.commons.media.MediaClient
|
||||||
import fr.free.nrw.commons.profile.ProfileActivity
|
import fr.free.nrw.commons.profile.ProfileActivity
|
||||||
import io.reactivex.disposables.CompositeDisposable
|
import io.reactivex.disposables.CompositeDisposable
|
||||||
|
|
@ -25,17 +26,21 @@ import org.junit.runner.RunWith
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.Mockito.*
|
import org.mockito.Mockito.*
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
|
import org.powermock.core.classloader.annotations.PrepareForTest
|
||||||
import org.powermock.reflect.Whitebox
|
import org.powermock.reflect.Whitebox
|
||||||
import org.robolectric.Robolectric
|
import org.robolectric.Robolectric
|
||||||
import org.robolectric.RobolectricTestRunner
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.Shadows
|
import org.robolectric.Shadows
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
import org.robolectric.annotation.LooperMode
|
import org.robolectric.annotation.LooperMode
|
||||||
|
import java.lang.reflect.Field
|
||||||
import java.lang.reflect.Method
|
import java.lang.reflect.Method
|
||||||
|
import java.lang.reflect.Modifier
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner::class)
|
@RunWith(RobolectricTestRunner::class)
|
||||||
@Config(sdk = [21], application = TestCommonsApplication::class)
|
@Config(sdk = [21], application = TestCommonsApplication::class)
|
||||||
@LooperMode(LooperMode.Mode.PAUSED)
|
@LooperMode(LooperMode.Mode.PAUSED)
|
||||||
|
@PrepareForTest(ContributionViewHolder::class)
|
||||||
class ContributionViewHolderUnitTests {
|
class ContributionViewHolderUnitTests {
|
||||||
|
|
||||||
private lateinit var contributionViewHolder: ContributionViewHolder
|
private lateinit var contributionViewHolder: ContributionViewHolder
|
||||||
|
|
@ -116,14 +121,9 @@ class ContributionViewHolderUnitTests {
|
||||||
|
|
||||||
progressView = parent.findViewById(R.id.contributionProgress)
|
progressView = parent.findViewById(R.id.contributionProgress)
|
||||||
Whitebox.setInternalState(contributionViewHolder, "progressView", progressView)
|
Whitebox.setInternalState(contributionViewHolder, "progressView", progressView)
|
||||||
|
setFinalStatic(
|
||||||
|
ContributionViewHolder::class.java.getDeclaredField("compositeDisposable"),
|
||||||
Whitebox.setInternalState(
|
compositeDisposable)
|
||||||
contributionViewHolder,
|
|
||||||
"compositeDisposable",
|
|
||||||
compositeDisposable
|
|
||||||
)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,9 @@ package fr.free.nrw.commons.contributions
|
||||||
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
|
||||||
import com.nhaarman.mockitokotlin2.times
|
import com.nhaarman.mockitokotlin2.times
|
||||||
import com.nhaarman.mockitokotlin2.verify
|
import com.nhaarman.mockitokotlin2.verify
|
||||||
import com.nhaarman.mockitokotlin2.verifyZeroInteractions
|
|
||||||
import com.nhaarman.mockitokotlin2.whenever
|
import com.nhaarman.mockitokotlin2.whenever
|
||||||
import fr.free.nrw.commons.Media
|
|
||||||
import fr.free.nrw.commons.auth.SessionManager
|
|
||||||
import fr.free.nrw.commons.media.MediaClient
|
|
||||||
import io.reactivex.Completable
|
import io.reactivex.Completable
|
||||||
import io.reactivex.Scheduler
|
import io.reactivex.Scheduler
|
||||||
import io.reactivex.Single
|
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
|
|
@ -18,7 +13,6 @@ import org.junit.Test
|
||||||
import org.mockito.ArgumentMatchers
|
import org.mockito.ArgumentMatchers
|
||||||
import org.mockito.ArgumentMatchers.any
|
import org.mockito.ArgumentMatchers.any
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.Mockito
|
|
||||||
import org.mockito.Mockito.mock
|
import org.mockito.Mockito.mock
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,18 +8,23 @@ import androidx.test.core.app.ApplicationProvider
|
||||||
import com.nhaarman.mockitokotlin2.whenever
|
import com.nhaarman.mockitokotlin2.whenever
|
||||||
import fr.free.nrw.commons.TestAppAdapter
|
import fr.free.nrw.commons.TestAppAdapter
|
||||||
import fr.free.nrw.commons.TestCommonsApplication
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
|
import fr.free.nrw.commons.TestUtility.setFinalStatic
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
|
import org.powermock.core.classloader.annotations.PrepareForTest
|
||||||
import org.powermock.reflect.Whitebox
|
import org.powermock.reflect.Whitebox
|
||||||
import org.robolectric.RobolectricTestRunner
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
import org.wikipedia.AppAdapter
|
import org.wikipedia.AppAdapter
|
||||||
|
import java.lang.reflect.Field
|
||||||
|
import java.lang.reflect.Modifier
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner::class)
|
@RunWith(RobolectricTestRunner::class)
|
||||||
@Config(sdk = [21], application = TestCommonsApplication::class)
|
@Config(sdk = [21], application = TestCommonsApplication::class)
|
||||||
|
@PrepareForTest(OnSwipeTouchListener::class)
|
||||||
internal class OnSwipeTouchListenerTest {
|
internal class OnSwipeTouchListenerTest {
|
||||||
|
|
||||||
private lateinit var context: Context
|
private lateinit var context: Context
|
||||||
|
|
@ -42,13 +47,14 @@ internal class OnSwipeTouchListenerTest {
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.initMocks(this)
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
// motionEvent1 = MotionEvent.obtain(200, 300, MotionEvent.ACTION_MOVE, 15.0f, 10.0f, 0);
|
||||||
|
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
onSwipeTouchListener = OnSwipeTouchListener(context)
|
onSwipeTouchListener = OnSwipeTouchListener(context)
|
||||||
gesListener = OnSwipeTouchListener(context).GestureListener()
|
gesListener = OnSwipeTouchListener(context).GestureListener()
|
||||||
|
setFinalStatic(
|
||||||
Whitebox.setInternalState(onSwipeTouchListener, "gestureDetector", gestureDetector)
|
OnSwipeTouchListener::class.java.getDeclaredField("gestureDetector"),
|
||||||
|
gestureDetector)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -56,9 +62,10 @@ internal class OnSwipeTouchListenerTest {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
fun onTouch() {
|
fun onTouch() {
|
||||||
|
val motionEvent = MotionEvent.obtain(200, 300, MotionEvent.ACTION_MOVE, 15.0f, 10.0f, 0);
|
||||||
val func = onSwipeTouchListener.javaClass.getDeclaredMethod("onTouch", View::class.java, MotionEvent::class.java)
|
val func = onSwipeTouchListener.javaClass.getDeclaredMethod("onTouch", View::class.java, MotionEvent::class.java)
|
||||||
func.isAccessible = true
|
func.isAccessible = true
|
||||||
func.invoke(onSwipeTouchListener, view, motionEvent1)
|
func.invoke(onSwipeTouchListener, view, motionEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import android.widget.GridLayout
|
||||||
import com.nhaarman.mockitokotlin2.any
|
import com.nhaarman.mockitokotlin2.any
|
||||||
import com.nhaarman.mockitokotlin2.whenever
|
import com.nhaarman.mockitokotlin2.whenever
|
||||||
import fr.free.nrw.commons.TestCommonsApplication
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
|
import fr.free.nrw.commons.TestUtility.setFinalStatic
|
||||||
import fr.free.nrw.commons.customselector.listeners.FolderClickListener
|
import fr.free.nrw.commons.customselector.listeners.FolderClickListener
|
||||||
import fr.free.nrw.commons.customselector.model.Folder
|
import fr.free.nrw.commons.customselector.model.Folder
|
||||||
import fr.free.nrw.commons.customselector.model.Image
|
import fr.free.nrw.commons.customselector.model.Image
|
||||||
|
|
@ -25,6 +26,8 @@ import org.powermock.reflect.Whitebox
|
||||||
import org.robolectric.Robolectric
|
import org.robolectric.Robolectric
|
||||||
import org.robolectric.RobolectricTestRunner
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
|
import java.lang.reflect.Field
|
||||||
|
import java.lang.reflect.Modifier
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom Selector Folder Adapter Test.
|
* Custom Selector Folder Adapter Test.
|
||||||
|
|
@ -49,7 +52,7 @@ class FolderAdapterTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
|
|
||||||
activity = Robolectric.buildActivity(CustomSelectorActivity::class.java).get()
|
activity = Robolectric.buildActivity(CustomSelectorActivity::class.java).get()
|
||||||
image = Image(1, "image", uri, "abc/abc", 1, "bucket1")
|
image = Image(1, "image", uri, "abc/abc", 1, "bucket1")
|
||||||
|
|
@ -76,7 +79,6 @@ class FolderAdapterTest {
|
||||||
|
|
||||||
whenever(context.contentResolver).thenReturn(mockContentResolver)
|
whenever(context.contentResolver).thenReturn(mockContentResolver)
|
||||||
whenever(mockContentResolver.getType(any())).thenReturn("jpg")
|
whenever(mockContentResolver.getType(any())).thenReturn("jpg")
|
||||||
Whitebox.setInternalState(folderAdapter, "context", context)
|
|
||||||
folderAdapter.init(folderList)
|
folderAdapter.init(folderList)
|
||||||
folderAdapter.onBindViewHolder(FolderAdapter.FolderViewHolder(listItemView), 0)
|
folderAdapter.onBindViewHolder(FolderAdapter.FolderViewHolder(listItemView), 0)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import android.widget.GridLayout
|
||||||
import com.nhaarman.mockitokotlin2.whenever
|
import com.nhaarman.mockitokotlin2.whenever
|
||||||
import fr.free.nrw.commons.R
|
import fr.free.nrw.commons.R
|
||||||
import fr.free.nrw.commons.TestCommonsApplication
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
|
import fr.free.nrw.commons.TestUtility.setFinalStatic
|
||||||
import fr.free.nrw.commons.customselector.listeners.ImageSelectListener
|
import fr.free.nrw.commons.customselector.listeners.ImageSelectListener
|
||||||
import fr.free.nrw.commons.customselector.model.Image
|
import fr.free.nrw.commons.customselector.model.Image
|
||||||
import fr.free.nrw.commons.customselector.ui.selector.CustomSelectorActivity
|
import fr.free.nrw.commons.customselector.ui.selector.CustomSelectorActivity
|
||||||
|
|
@ -33,6 +34,7 @@ import org.robolectric.Robolectric
|
||||||
import org.robolectric.RobolectricTestRunner
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
import java.lang.reflect.Field
|
import java.lang.reflect.Field
|
||||||
|
import java.lang.reflect.Modifier
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.collections.ArrayList
|
import kotlin.collections.ArrayList
|
||||||
|
|
||||||
|
|
@ -107,8 +109,6 @@ class ImageAdapterTest {
|
||||||
|
|
||||||
whenever(context.contentResolver).thenReturn(mockContentResolver)
|
whenever(context.contentResolver).thenReturn(mockContentResolver)
|
||||||
whenever(mockContentResolver.getType(uri)).thenReturn("jpg")
|
whenever(mockContentResolver.getType(uri)).thenReturn("jpg")
|
||||||
Whitebox.setInternalState(imageAdapter, "context", context)
|
|
||||||
|
|
||||||
// Parameters.
|
// Parameters.
|
||||||
images.add(image)
|
images.add(image)
|
||||||
imageAdapter.init(images, images, TreeMap())
|
imageAdapter.init(images, images, TreeMap())
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ class CustomSelectorActivityTest {
|
||||||
*/
|
*/
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
|
||||||
activity = Robolectric.buildActivity(CustomSelectorActivity::class.java)
|
activity = Robolectric.buildActivity(CustomSelectorActivity::class.java)
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import com.nhaarman.mockitokotlin2.doReturn
|
||||||
import com.nhaarman.mockitokotlin2.mock
|
import com.nhaarman.mockitokotlin2.mock
|
||||||
import com.nhaarman.mockitokotlin2.same
|
import com.nhaarman.mockitokotlin2.same
|
||||||
import fr.free.nrw.commons.TestCommonsApplication
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
|
import fr.free.nrw.commons.TestUtility.setFinalStatic
|
||||||
import fr.free.nrw.commons.customselector.listeners.ImageLoaderListener
|
import fr.free.nrw.commons.customselector.listeners.ImageLoaderListener
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
|
@ -23,6 +24,8 @@ import org.robolectric.annotation.Config
|
||||||
import org.robolectric.annotation.LooperMode
|
import org.robolectric.annotation.LooperMode
|
||||||
import org.robolectric.fakes.RoboCursor
|
import org.robolectric.fakes.RoboCursor
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.lang.reflect.Field
|
||||||
|
import java.lang.reflect.Modifier
|
||||||
import kotlin.coroutines.CoroutineContext
|
import kotlin.coroutines.CoroutineContext
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -67,8 +70,9 @@ class ImageFileLoaderTest {
|
||||||
MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
|
MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
|
||||||
MediaStore.Images.Media.DATE_ADDED
|
MediaStore.Images.Media.DATE_ADDED
|
||||||
)
|
)
|
||||||
|
setFinalStatic(
|
||||||
Whitebox.setInternalState(imageFileLoader, "coroutineContext", coroutineContext)
|
ImageFileLoader::class.java.getDeclaredField("coroutineContext"),
|
||||||
|
coroutineContext)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import android.content.SharedPreferences
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import com.nhaarman.mockitokotlin2.*
|
import com.nhaarman.mockitokotlin2.*
|
||||||
import fr.free.nrw.commons.TestCommonsApplication
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
|
import fr.free.nrw.commons.TestUtility.setFinalStatic
|
||||||
import fr.free.nrw.commons.customselector.database.NotForUploadStatusDao
|
import fr.free.nrw.commons.customselector.database.NotForUploadStatusDao
|
||||||
import fr.free.nrw.commons.customselector.database.UploadedStatus
|
import fr.free.nrw.commons.customselector.database.UploadedStatus
|
||||||
import fr.free.nrw.commons.customselector.database.UploadedStatusDao
|
import fr.free.nrw.commons.customselector.database.UploadedStatusDao
|
||||||
|
|
@ -24,22 +25,28 @@ import kotlinx.coroutines.test.*
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
import org.junit.jupiter.api.AfterAll
|
||||||
|
import org.junit.jupiter.api.BeforeAll
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.mockito.*
|
import org.mockito.*
|
||||||
|
import org.mockito.Mockito.mockStatic
|
||||||
import org.powermock.api.mockito.PowerMockito
|
import org.powermock.api.mockito.PowerMockito
|
||||||
import org.powermock.core.classloader.annotations.PrepareForTest
|
import org.powermock.core.classloader.annotations.PrepareForTest
|
||||||
import org.powermock.modules.junit4.PowerMockRunner
|
import org.powermock.modules.junit4.PowerMockRunner
|
||||||
import org.powermock.reflect.Whitebox
|
import org.powermock.reflect.Whitebox
|
||||||
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileInputStream
|
import java.io.FileInputStream
|
||||||
|
import java.lang.reflect.Field
|
||||||
|
import java.lang.reflect.Modifier
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.collections.HashMap
|
import kotlin.collections.HashMap
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Image Loader Test.
|
* Image Loader Test.
|
||||||
*/
|
*/
|
||||||
@RunWith(PowerMockRunner::class)
|
@RunWith(RobolectricTestRunner::class)
|
||||||
@PrepareForTest(PickedFiles::class)
|
@PrepareForTest(PickedFiles::class)
|
||||||
@Config(sdk = [21], application = TestCommonsApplication::class)
|
@Config(sdk = [21], application = TestCommonsApplication::class)
|
||||||
@ExperimentalCoroutinesApi
|
@ExperimentalCoroutinesApi
|
||||||
|
|
@ -89,13 +96,15 @@ class ImageLoaderTest {
|
||||||
private var mapHolderImage : HashMap<ImageAdapter.ImageViewHolder, Image> = HashMap()
|
private var mapHolderImage : HashMap<ImageAdapter.ImageViewHolder, Image> = HashMap()
|
||||||
private var mapResult: HashMap<String, ImageLoader.Result> = HashMap()
|
private var mapResult: HashMap<String, ImageLoader.Result> = HashMap()
|
||||||
private var mapModifiedImageSHA1: HashMap<Image, String> = HashMap()
|
private var mapModifiedImageSHA1: HashMap<Image, String> = HashMap()
|
||||||
private lateinit var image: Image;
|
private lateinit var image: Image
|
||||||
private lateinit var uploadedStatus: UploadedStatus;
|
private lateinit var uploadedStatus: UploadedStatus
|
||||||
|
private lateinit var mockedPickedFiles: MockedStatic<PickedFiles>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setup before test.
|
* Setup before test.
|
||||||
*/
|
*/
|
||||||
@Before
|
@Before
|
||||||
|
@BeforeAll
|
||||||
@ExperimentalCoroutinesApi
|
@ExperimentalCoroutinesApi
|
||||||
fun setup() {
|
fun setup() {
|
||||||
Dispatchers.setMain(testDispacher)
|
Dispatchers.setMain(testDispacher)
|
||||||
|
|
@ -117,11 +126,13 @@ class ImageLoaderTest {
|
||||||
Whitebox.setInternalState(imageLoader, "mapHolderImage", mapHolderImage);
|
Whitebox.setInternalState(imageLoader, "mapHolderImage", mapHolderImage);
|
||||||
Whitebox.setInternalState(imageLoader, "mapModifiedImageSHA1", mapModifiedImageSHA1);
|
Whitebox.setInternalState(imageLoader, "mapModifiedImageSHA1", mapModifiedImageSHA1);
|
||||||
Whitebox.setInternalState(imageLoader, "mapResult", mapResult);
|
Whitebox.setInternalState(imageLoader, "mapResult", mapResult);
|
||||||
Whitebox.setInternalState(imageLoader, "context", context)
|
setFinalStatic(
|
||||||
|
ImageLoader::class.java.getDeclaredField("context"),
|
||||||
|
context)
|
||||||
whenever(contentResolver.openInputStream(uri)).thenReturn(inputStream)
|
whenever(contentResolver.openInputStream(uri)).thenReturn(inputStream)
|
||||||
whenever(context.contentResolver).thenReturn(contentResolver)
|
whenever(context.contentResolver).thenReturn(contentResolver)
|
||||||
whenever(fileUtilsWrapper.getSHA1(inputStream)).thenReturn("testSha1")
|
whenever(fileUtilsWrapper.getSHA1(inputStream)).thenReturn("testSha1")
|
||||||
|
mockedPickedFiles = mockStatic(PickedFiles::class.java)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -132,6 +143,7 @@ class ImageLoaderTest {
|
||||||
fun tearDown() {
|
fun tearDown() {
|
||||||
Dispatchers.resetMain()
|
Dispatchers.resetMain()
|
||||||
testDispacher.cleanupTestCoroutines()
|
testDispacher.cleanupTestCoroutines()
|
||||||
|
mockedPickedFiles.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -173,7 +185,7 @@ class ImageLoaderTest {
|
||||||
whenever(notForUploadStatusDao.find(any())).thenReturn(0)
|
whenever(notForUploadStatusDao.find(any())).thenReturn(0)
|
||||||
whenever(uploadedStatusDao.findByImageSHA1(any(), any())).thenReturn(0)
|
whenever(uploadedStatusDao.findByImageSHA1(any(), any())).thenReturn(0)
|
||||||
whenever(uploadedStatusDao.findByModifiedImageSHA1(any(), any())).thenReturn(0)
|
whenever(uploadedStatusDao.findByModifiedImageSHA1(any(), any())).thenReturn(0)
|
||||||
PowerMockito.mockStatic(PickedFiles::class.java)
|
// mockStatic(PickedFiles::class.java)
|
||||||
BDDMockito.given(PickedFiles.pickedExistingPicture(context, image.uri))
|
BDDMockito.given(PickedFiles.pickedExistingPicture(context, image.uri))
|
||||||
.willReturn(UploadableFile(uri, File("ABC")))
|
.willReturn(UploadableFile(uri, File("ABC")))
|
||||||
whenever(fileUtilsWrapper.getFileInputStream("ABC")).thenReturn(inputStream)
|
whenever(fileUtilsWrapper.getFileInputStream("ABC")).thenReturn(inputStream)
|
||||||
|
|
@ -200,7 +212,6 @@ class ImageLoaderTest {
|
||||||
@ExperimentalCoroutinesApi
|
@ExperimentalCoroutinesApi
|
||||||
fun testGetSha1() = testDispacher.runBlockingTest {
|
fun testGetSha1() = testDispacher.runBlockingTest {
|
||||||
|
|
||||||
PowerMockito.mockStatic(PickedFiles::class.java)
|
|
||||||
BDDMockito.given(PickedFiles.pickedExistingPicture(context, image.uri))
|
BDDMockito.given(PickedFiles.pickedExistingPicture(context, image.uri))
|
||||||
.willReturn(UploadableFile(uri, File("ABC")))
|
.willReturn(UploadableFile(uri, File("ABC")))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ class DeleteHelperTest {
|
||||||
*/
|
*/
|
||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
deleteHelper = DeleteHelper(mock(), pageEditClient, mock(), "")
|
deleteHelper = DeleteHelper(mock(), pageEditClient, mock(), "")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ class ReasonBuilderTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
val resources = mock(Resources::class.java)
|
val resources = mock(Resources::class.java)
|
||||||
`when`(resources!!.getString(anyInt())).thenReturn("test")
|
`when`(resources!!.getString(anyInt())).thenReturn("test")
|
||||||
`when`(context!!.resources).thenReturn(resources)
|
`when`(context!!.resources).thenReturn(resources)
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ class BasePagingPresenterTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
whenever(pageableBaseDataSource.pagingResults).thenReturn(searchResults)
|
whenever(pageableBaseDataSource.pagingResults).thenReturn(searchResults)
|
||||||
whenever(pageableBaseDataSource.loadingStates).thenReturn(loadingStates)
|
whenever(pageableBaseDataSource.loadingStates).thenReturn(loadingStates)
|
||||||
whenever(pageableBaseDataSource.noItemsLoadedQueries)
|
whenever(pageableBaseDataSource.noItemsLoadedQueries)
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ class ExploreFragmentUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
|
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ class ExploreListRootFragmentUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
|
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ class PageableBaseDataSourceTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
pageableBaseDataSource = object: PageableBaseDataSource<String>(liveDataConverter){
|
pageableBaseDataSource = object: PageableBaseDataSource<String>(liveDataConverter){
|
||||||
override val loadFunction: LoadFunction<String>
|
override val loadFunction: LoadFunction<String>
|
||||||
get() = mock()
|
get() = mock()
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ class PagingDataSourceFactoryTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
factory = object : PagingDataSourceFactory<String>(loadingStates) {
|
factory = object : PagingDataSourceFactory<String>(loadingStates) {
|
||||||
override val loadFunction get() = function
|
override val loadFunction get() = function
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import org.junit.After
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
|
import org.mockito.Mockito.verifyNoInteractions
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
|
|
||||||
class PagingDataSourceTest {
|
class PagingDataSourceTest {
|
||||||
|
|
@ -25,7 +26,7 @@ class PagingDataSourceTest {
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
RxJavaPlugins.setIoSchedulerHandler { Schedulers.trampoline() }
|
RxJavaPlugins.setIoSchedulerHandler { Schedulers.trampoline() }
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
loadingStates = PublishProcessor.create()
|
loadingStates = PublishProcessor.create()
|
||||||
searchDepictionsDataSource =
|
searchDepictionsDataSource =
|
||||||
TestPagingDataSource(
|
TestPagingDataSource(
|
||||||
|
|
@ -88,7 +89,7 @@ class PagingDataSourceTest {
|
||||||
@Test
|
@Test
|
||||||
fun `retryFailedRequest does nothing when null`() {
|
fun `retryFailedRequest does nothing when null`() {
|
||||||
searchDepictionsDataSource.retryFailedRequest()
|
searchDepictionsDataSource.retryFailedRequest()
|
||||||
verifyNoMoreInteractions(mockGetItems)
|
verifyNoInteractions(mockGetItems)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ class PageableCategoriesMediaDataSourceTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class PageableParentCategoriesDataSourceTest{
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class PageableSubCategoriesDataSourceTest{
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ class DepictsClientTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
depictsClient = DepictsClient(depictsInterface)
|
depictsClient = DepictsClient(depictsInterface)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ class WikidataItemDetailsActivityUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
val intent = Intent(
|
val intent = Intent(
|
||||||
ApplicationProvider.getApplicationContext(),
|
ApplicationProvider.getApplicationContext(),
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ class PageableChildDepictionsDataSourceTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class PageableParentDepictionsDataSourceTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ class MediaConverterTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
mediaConverter = MediaConverter()
|
mediaConverter = MediaConverter()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ class PageableMediaDataSourceTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import org.junit.Assert.*
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
import org.mockito.Mockito.verifyNoInteractions
|
||||||
import org.robolectric.RobolectricTestRunner
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
@ -65,7 +66,7 @@ class RecentSearchesDaoTest {
|
||||||
fun migrateTableVersionFrom_v1_to_v2() {
|
fun migrateTableVersionFrom_v1_to_v2() {
|
||||||
onUpdate(database, 1, 2)
|
onUpdate(database, 1, 2)
|
||||||
// Table didnt exist before v7
|
// Table didnt exist before v7
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -75,7 +76,7 @@ class RecentSearchesDaoTest {
|
||||||
fun migrateTableVersionFrom_v2_to_v3() {
|
fun migrateTableVersionFrom_v2_to_v3() {
|
||||||
onUpdate(database, 2, 3)
|
onUpdate(database, 2, 3)
|
||||||
// Table didnt exist before v7
|
// Table didnt exist before v7
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -85,7 +86,7 @@ class RecentSearchesDaoTest {
|
||||||
fun migrateTableVersionFrom_v3_to_v4() {
|
fun migrateTableVersionFrom_v3_to_v4() {
|
||||||
onUpdate(database, 3, 4)
|
onUpdate(database, 3, 4)
|
||||||
// Table didnt exist before v7
|
// Table didnt exist before v7
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -95,7 +96,7 @@ class RecentSearchesDaoTest {
|
||||||
fun migrateTableVersionFrom_v4_to_v5() {
|
fun migrateTableVersionFrom_v4_to_v5() {
|
||||||
onUpdate(database, 4, 5)
|
onUpdate(database, 4, 5)
|
||||||
// Table didnt exist before v7
|
// Table didnt exist before v7
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -105,7 +106,7 @@ class RecentSearchesDaoTest {
|
||||||
fun migrateTableVersionFrom_v5_to_v6() {
|
fun migrateTableVersionFrom_v5_to_v6() {
|
||||||
onUpdate(database, 5, 6)
|
onUpdate(database, 5, 6)
|
||||||
// Table didnt exist before v7
|
// Table didnt exist before v7
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -124,7 +125,7 @@ class RecentSearchesDaoTest {
|
||||||
fun migrateTableVersionFrom_v7_to_v8() {
|
fun migrateTableVersionFrom_v7_to_v8() {
|
||||||
onUpdate(database, 7, 8)
|
onUpdate(database, 7, 8)
|
||||||
// Table didnt change in version 8
|
// Table didnt change in version 8
|
||||||
verifyZeroInteractions(database)
|
verifyNoInteractions(database)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ class RecentSearchesFragmentUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
|
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ import org.junit.jupiter.api.Assertions.assertEquals
|
||||||
import org.junit.jupiter.api.Assertions.assertNull
|
import org.junit.jupiter.api.Assertions.assertNull
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.Mockito.times
|
|
||||||
import org.mockito.Mockito.`when`
|
import org.mockito.Mockito.`when`
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
import org.powermock.api.mockito.PowerMockito.mock
|
import org.powermock.api.mockito.PowerMockito.mock
|
||||||
|
|
@ -82,12 +81,9 @@ class SearchActivityUnitTests {
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var searchCategoryFragment: SearchCategoryFragment
|
private lateinit var searchCategoryFragment: SearchCategoryFragment
|
||||||
|
|
||||||
@Mock
|
|
||||||
private lateinit var mFragments: FragmentController
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
activity = Robolectric.buildActivity(SearchActivity::class.java).create().get()
|
activity = Robolectric.buildActivity(SearchActivity::class.java).create().get()
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
}
|
}
|
||||||
|
|
@ -120,12 +116,7 @@ class SearchActivityUnitTests {
|
||||||
@Test
|
@Test
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun testOnBackPressed() {
|
fun testOnBackPressed() {
|
||||||
Whitebox.setInternalState(activity, "mFragments", mFragments)
|
|
||||||
Whitebox.setInternalState(activity, "mediaDetails", mediaDetails)
|
|
||||||
`when`(mFragments.supportFragmentManager).thenReturn(supportFragmentManager)
|
|
||||||
`when`(supportFragmentManager.backStackEntryCount).thenReturn(0)
|
|
||||||
activity.onBackPressed()
|
activity.onBackPressed()
|
||||||
verify(supportFragmentManager, times(2)).backStackEntryCount
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -196,42 +187,6 @@ class SearchActivityUnitTests {
|
||||||
assertEquals(activity.totalMediaCount, num)
|
assertEquals(activity.totalMediaCount, num)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
@Throws(Exception::class)
|
|
||||||
fun testRefreshNominatedMediaCase1() {
|
|
||||||
Whitebox.setInternalState(activity, "mFragments", mFragments)
|
|
||||||
Whitebox.setInternalState(activity, "mediaDetails", mediaDetails)
|
|
||||||
`when`(mFragments.supportFragmentManager).thenReturn(supportFragmentManager)
|
|
||||||
`when`(supportFragmentManager.backStackEntryCount).thenReturn(1)
|
|
||||||
`when`(mediaDetails.isVisible).thenReturn(true)
|
|
||||||
activity.refreshNominatedMedia(0)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@Throws(Exception::class)
|
|
||||||
fun testRefreshNominatedMediaCase2() {
|
|
||||||
Whitebox.setInternalState(activity, "mFragments", mFragments)
|
|
||||||
Whitebox.setInternalState(activity, "mediaDetails", mediaDetails)
|
|
||||||
`when`(mFragments.supportFragmentManager).thenReturn(supportFragmentManager)
|
|
||||||
`when`(supportFragmentManager.backStackEntryCount).thenReturn(1)
|
|
||||||
`when`(mediaDetails.isVisible).thenReturn(true)
|
|
||||||
activity.refreshNominatedMedia(0)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@Throws(Exception::class)
|
|
||||||
fun testOnResume() {
|
|
||||||
Whitebox.setInternalState(activity, "mFragments", mFragments)
|
|
||||||
Whitebox.setInternalState(activity, "supportFragmentManager", supportFragmentManager)
|
|
||||||
Whitebox.setInternalState(activity, "mediaDetails", mediaDetails)
|
|
||||||
`when`(mFragments.supportFragmentManager).thenReturn(supportFragmentManager)
|
|
||||||
`when`(supportFragmentManager.backStackEntryCount).thenReturn(1)
|
|
||||||
`when`(mediaDetails.isVisible).thenReturn(true)
|
|
||||||
val method: Method = SearchActivity::class.java.getDeclaredMethod("onResume")
|
|
||||||
method.isAccessible = true
|
|
||||||
method.invoke(activity)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun testHandleSearchCaseEmpty() {
|
fun testHandleSearchCaseEmpty() {
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ class FeedbackContentCreatorUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
context = FakeContextWrapper(ApplicationProvider.getApplicationContext())
|
context = FakeContextWrapper(ApplicationProvider.getApplicationContext())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,13 @@ import androidx.test.core.app.ApplicationProvider
|
||||||
import com.nhaarman.mockitokotlin2.doReturn
|
import com.nhaarman.mockitokotlin2.doReturn
|
||||||
import fr.free.nrw.commons.TestAppAdapter
|
import fr.free.nrw.commons.TestAppAdapter
|
||||||
import fr.free.nrw.commons.TestCommonsApplication
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
|
import fr.free.nrw.commons.TestUtility.setFinalStatic
|
||||||
import fr.free.nrw.commons.contributions.MainActivity
|
import fr.free.nrw.commons.contributions.MainActivity
|
||||||
import fr.free.nrw.commons.databinding.DialogFeedbackBinding
|
import fr.free.nrw.commons.databinding.DialogFeedbackBinding
|
||||||
import fr.free.nrw.commons.ui.PasteSensitiveTextInputEditText
|
import fr.free.nrw.commons.ui.PasteSensitiveTextInputEditText
|
||||||
import org.junit.Assert
|
import org.junit.Assert
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
|
|
@ -40,7 +42,7 @@ class FeedbackDialogTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
|
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
|
@ -64,9 +66,11 @@ class FeedbackDialogTests {
|
||||||
fun testSubmitFeedbackError() {
|
fun testSubmitFeedbackError() {
|
||||||
val editable = mock(Editable::class.java)
|
val editable = mock(Editable::class.java)
|
||||||
val ed = mock(PasteSensitiveTextInputEditText::class.java)
|
val ed = mock(PasteSensitiveTextInputEditText::class.java)
|
||||||
Whitebox.setInternalState(dialogFeedbackBinding, "feedbackItemEditText", ed)
|
setFinalStatic(
|
||||||
|
DialogFeedbackBinding::class.java.getDeclaredField("feedbackItemEditText"),
|
||||||
|
ed)
|
||||||
`when`(ed?.text).thenReturn(editable)
|
`when`(ed?.text).thenReturn(editable)
|
||||||
doReturn(editable).`when`(dialogFeedbackBinding.feedbackItemEditText)?.text
|
doReturn(editable).`when`(ed)?.text
|
||||||
doReturn("").`when`(editable).toString()
|
doReturn("").`when`(editable).toString()
|
||||||
dialog.submitFeedback()
|
dialog.submitFeedback()
|
||||||
}
|
}
|
||||||
|
|
@ -76,11 +80,13 @@ class FeedbackDialogTests {
|
||||||
shadowOf(getMainLooper()).idle()
|
shadowOf(getMainLooper()).idle()
|
||||||
val editable: Editable = mock(Editable::class.java)
|
val editable: Editable = mock(Editable::class.java)
|
||||||
val ed = mock(PasteSensitiveTextInputEditText::class.java)
|
val ed = mock(PasteSensitiveTextInputEditText::class.java)
|
||||||
Whitebox.setInternalState(dialogFeedbackBinding, "feedbackItemEditText", ed)
|
setFinalStatic(
|
||||||
|
DialogFeedbackBinding::class.java.getDeclaredField("feedbackItemEditText"),
|
||||||
|
ed)
|
||||||
`when`(ed?.text).thenReturn(editable)
|
`when`(ed?.text).thenReturn(editable)
|
||||||
`when`(editable.toString()).thenReturn("1234")
|
`when`(editable.toString()).thenReturn("1234")
|
||||||
|
|
||||||
Assert.assertEquals(dialogFeedbackBinding.feedbackItemEditText?.text.toString(), "1234")
|
Assert.assertEquals(ed.text.toString(), "1234")
|
||||||
dialog.submitFeedback()
|
dialog.submitFeedback()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ class FilePickerTest {
|
||||||
`when`(sharedPref.edit().putInt("type", 0)).thenReturn(sharedPreferencesEditor)
|
`when`(sharedPref.edit().putInt("type", 0)).thenReturn(sharedPreferencesEditor)
|
||||||
FilePicker.openGallery(activity, 0, nextBoolean())
|
FilePicker.openGallery(activity, 0, nextBoolean())
|
||||||
verify(activity).startActivityForResult(
|
verify(activity).startActivityForResult(
|
||||||
ArgumentMatchers.anyObject(),
|
ArgumentMatchers.any(),
|
||||||
requestCodeCaptor?.capture()?.toInt()!!
|
requestCodeCaptor?.capture()?.toInt()!!
|
||||||
)
|
)
|
||||||
assertEquals(requestCodeCaptor?.value, RequestCodes.PICK_PICTURE_FROM_GALLERY)
|
assertEquals(requestCodeCaptor?.value, RequestCodes.PICK_PICTURE_FROM_GALLERY)
|
||||||
|
|
@ -78,7 +78,7 @@ class FilePickerTest {
|
||||||
`when`(activity.applicationContext).thenReturn(mockApplication)
|
`when`(activity.applicationContext).thenReturn(mockApplication)
|
||||||
FilePicker.openCameraForImage(activity, 0)
|
FilePicker.openCameraForImage(activity, 0)
|
||||||
verify(activity).startActivityForResult(
|
verify(activity).startActivityForResult(
|
||||||
ArgumentMatchers.anyObject(),
|
ArgumentMatchers.any(),
|
||||||
requestCodeCaptor?.capture()?.toInt()!!
|
requestCodeCaptor?.capture()?.toInt()!!
|
||||||
)
|
)
|
||||||
assertEquals(requestCodeCaptor?.value, RequestCodes.TAKE_PICTURE)
|
assertEquals(requestCodeCaptor?.value, RequestCodes.TAKE_PICTURE)
|
||||||
|
|
@ -227,7 +227,7 @@ class FilePickerTest {
|
||||||
`when`(sharedPref.edit()).thenReturn(sharedPreferencesEditor)
|
`when`(sharedPref.edit()).thenReturn(sharedPreferencesEditor)
|
||||||
`when`(sharedPref.edit().putInt("type", 0)).thenReturn(sharedPreferencesEditor)
|
`when`(sharedPref.edit().putInt("type", 0)).thenReturn(sharedPreferencesEditor)
|
||||||
FilePicker.openCustomSelector(activity, 0)
|
FilePicker.openCustomSelector(activity, 0)
|
||||||
verify(activity).startActivityForResult(ArgumentMatchers.anyObject(), requestCodeCaptor?.capture()?.toInt()!!)
|
verify(activity).startActivityForResult(ArgumentMatchers.any(), requestCodeCaptor?.capture()?.toInt()!!)
|
||||||
assertEquals(requestCodeCaptor?.value, RequestCodes.PICK_PICTURE_FROM_CUSTOM_SELECTOR)
|
assertEquals(requestCodeCaptor?.value, RequestCodes.PICK_PICTURE_FROM_CUSTOM_SELECTOR)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -47,7 +47,7 @@ class LoginActivityUnitTests {
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
|
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
|
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ class CustomOkHttpNetworkFetcherUnitTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
okHttpClient = OkHttpClient()
|
okHttpClient = OkHttpClient()
|
||||||
fetcher = CustomOkHttpNetworkFetcher(okHttpClient, defaultKvStore)
|
fetcher = CustomOkHttpNetworkFetcher(okHttpClient, defaultKvStore)
|
||||||
whenever(context.imageRequest).thenReturn(imageRequest)
|
whenever(context.imageRequest).thenReturn(imageRequest)
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ class MediaClientTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
mediaClient =
|
mediaClient =
|
||||||
MediaClient(mediaInterface, pageMediaInterface, mediaDetailInterface, mediaConverter)
|
MediaClient(mediaInterface, pageMediaInterface, mediaDetailInterface, mediaConverter)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,16 +60,12 @@ class MediaDetailFragmentUnitTests {
|
||||||
|
|
||||||
private val REQUEST_CODE = 1001
|
private val REQUEST_CODE = 1001
|
||||||
private val LAST_LOCATION = "last_location_while_uploading"
|
private val LAST_LOCATION = "last_location_while_uploading"
|
||||||
private val REQUEST_CODE_EDIT_DESCRIPTION = 1002
|
|
||||||
private lateinit var fragment: MediaDetailFragment
|
private lateinit var fragment: MediaDetailFragment
|
||||||
private lateinit var fragmentManager: FragmentManager
|
private lateinit var fragmentManager: FragmentManager
|
||||||
private lateinit var layoutInflater: LayoutInflater
|
private lateinit var layoutInflater: LayoutInflater
|
||||||
private lateinit var view: View
|
private lateinit var view: View
|
||||||
private lateinit var context: Context
|
private lateinit var context: Context
|
||||||
|
|
||||||
private val NOMINATING_FOR_DELETION_MEDIA = "Nominating for deletion %s"
|
|
||||||
|
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var deleteHelper: DeleteHelper
|
private lateinit var deleteHelper: DeleteHelper
|
||||||
|
|
||||||
|
|
@ -147,7 +143,7 @@ class MediaDetailFragmentUnitTests {
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
|
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
|
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ class MediaDetailPagerFragmentUnitTests {
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
|
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
|
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ class ZoomableActivityUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
SoLoader.setInTestMode()
|
SoLoader.setInTestMode()
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ class MultiPointerGestureDetectorUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
detector = MultiPointerGestureDetector()
|
detector = MultiPointerGestureDetector()
|
||||||
detector = MultiPointerGestureDetector.newInstance()
|
detector = MultiPointerGestureDetector.newInstance()
|
||||||
detector.setListener(listener)
|
detector.setListener(listener)
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ class TransformGestureDetectorUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
detector = TransformGestureDetector(MultiPointerGestureDetector())
|
detector = TransformGestureDetector(MultiPointerGestureDetector())
|
||||||
detector = TransformGestureDetector.newInstance()
|
detector = TransformGestureDetector.newInstance()
|
||||||
detector.setListener(listener)
|
detector.setListener(listener)
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ class UserClientTest{
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ class MoreBottomSheetFragmentUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ class AdvanceQueryFragmentUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
activity = Robolectric.buildActivity(MainActivity::class.java).create().get()
|
activity = Robolectric.buildActivity(MainActivity::class.java).create().get()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ package fr.free.nrw.commons.nearby
|
||||||
import android.widget.CompoundButton
|
import android.widget.CompoundButton
|
||||||
import androidx.test.core.app.ApplicationProvider
|
import androidx.test.core.app.ApplicationProvider
|
||||||
import com.nhaarman.mockitokotlin2.verify
|
import com.nhaarman.mockitokotlin2.verify
|
||||||
import com.nhaarman.mockitokotlin2.verifyNoMoreInteractions
|
|
||||||
import fr.free.nrw.commons.TestCommonsApplication
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
import fr.free.nrw.commons.location.LatLng
|
import fr.free.nrw.commons.location.LatLng
|
||||||
import fr.free.nrw.commons.nearby.CheckBoxTriStates.CHECKED
|
import fr.free.nrw.commons.nearby.CheckBoxTriStates.CHECKED
|
||||||
|
|
@ -12,6 +11,7 @@ import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
|
import org.mockito.Mockito.verifyNoInteractions
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
import org.robolectric.RobolectricTestRunner
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
|
|
@ -31,7 +31,7 @@ class CheckBoxTriStatesTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
checkBoxTriStates = CheckBoxTriStates(ApplicationProvider.getApplicationContext())
|
checkBoxTriStates = CheckBoxTriStates(ApplicationProvider.getApplicationContext())
|
||||||
checkBoxTriStates.setCallback(callback)
|
checkBoxTriStates.setCallback(callback)
|
||||||
checkBoxTriStates.setOnCheckedChangeListener(onCheckChangeListener)
|
checkBoxTriStates.setOnCheckedChangeListener(onCheckChangeListener)
|
||||||
|
|
@ -44,7 +44,7 @@ class CheckBoxTriStatesTest {
|
||||||
fun testSetStateWhenSameState() {
|
fun testSetStateWhenSameState() {
|
||||||
checkBoxTriStates.state = CHECKED
|
checkBoxTriStates.state = CHECKED
|
||||||
checkBoxTriStates.setState(CHECKED)
|
checkBoxTriStates.setState(CHECKED)
|
||||||
verifyNoMoreInteractions(callback)
|
verifyNoInteractions(callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -66,6 +66,6 @@ class CheckBoxTriStatesTest {
|
||||||
NearbyController.currentLocation = null
|
NearbyController.currentLocation = null
|
||||||
checkBoxTriStates.state = CHECKED
|
checkBoxTriStates.state = CHECKED
|
||||||
checkBoxTriStates.setState(UNCHECKED)
|
checkBoxTriStates.setState(UNCHECKED)
|
||||||
verifyNoMoreInteractions(callback)
|
verifyNoInteractions(callback)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -39,7 +39,7 @@ class CommonPlaceClickActionsUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
val activity = Robolectric.buildActivity(ProfileActivity::class.java).create().get()
|
val activity = Robolectric.buildActivity(ProfileActivity::class.java).create().get()
|
||||||
commonPlaceClickActions = CommonPlaceClickActions(store, activity, contributionController)
|
commonPlaceClickActions = CommonPlaceClickActions(store, activity, contributionController)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ class NearbyBaseMarkerUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
marker = NearbyBaseMarker()
|
marker = NearbyBaseMarker()
|
||||||
Whitebox.setInternalState(marker, "icon", icon)
|
Whitebox.setInternalState(marker, "icon", icon)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ class NearbyControllerTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
nearbyController = NearbyController(nearbyPlaces)
|
nearbyController = NearbyController(nearbyPlaces)
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ class NearbyFilterSearchRecyclerViewAdapterUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
adapter = NearbyFilterSearchRecyclerViewAdapter(context, ArrayList<Label>(Label.valuesAsList()), recyclerView)
|
adapter = NearbyFilterSearchRecyclerViewAdapter(context, ArrayList<Label>(Label.valuesAsList()), recyclerView)
|
||||||
viewHolder.placeTypeIcon = imageView
|
viewHolder.placeTypeIcon = imageView
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ import org.junit.Test
|
||||||
import org.mockito.ArgumentMatchers
|
import org.mockito.ArgumentMatchers
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.Mockito
|
import org.mockito.Mockito
|
||||||
|
import org.mockito.Mockito.verifyNoInteractions
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
|
@ -45,7 +46,7 @@ class NearbyParentFragmentPresenterTest {
|
||||||
@Before
|
@Before
|
||||||
@Throws(Exception::class)
|
@Throws(Exception::class)
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
nearbyPresenter = NearbyParentFragmentPresenter(bookmarkLocationsDao)
|
nearbyPresenter = NearbyParentFragmentPresenter(bookmarkLocationsDao)
|
||||||
nearbyPresenter.attachView(nearbyParentFragmentView)
|
nearbyPresenter.attachView(nearbyParentFragmentView)
|
||||||
}
|
}
|
||||||
|
|
@ -92,7 +93,7 @@ class NearbyParentFragmentPresenterTest {
|
||||||
nearbyPresenter.lockUnlockNearby(true)
|
nearbyPresenter.lockUnlockNearby(true)
|
||||||
nearbyPresenter.updateMapAndList(null)
|
nearbyPresenter.updateMapAndList(null)
|
||||||
verify(nearbyParentFragmentView).disableFABRecenter()
|
verify(nearbyParentFragmentView).disableFABRecenter()
|
||||||
verifyZeroInteractions(nearbyParentFragmentView)
|
verifyNoMoreInteractions(nearbyParentFragmentView)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -238,7 +239,7 @@ class NearbyParentFragmentPresenterTest {
|
||||||
fun testFilterByMarkerTypeMultiSelectUNKNOWN() {
|
fun testFilterByMarkerTypeMultiSelectUNKNOWN() {
|
||||||
val state = CheckBoxTriStates.UNKNOWN
|
val state = CheckBoxTriStates.UNKNOWN
|
||||||
nearbyPresenter.filterByMarkerType(selectedLabels,state,false,true)
|
nearbyPresenter.filterByMarkerType(selectedLabels,state,false,true)
|
||||||
verifyZeroInteractions(nearbyParentFragmentView)
|
verifyNoInteractions(nearbyParentFragmentView)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -499,7 +500,7 @@ class NearbyParentFragmentPresenterTest {
|
||||||
nearbyPresenter.onCameraMove(Mockito.mock(com.mapbox.mapboxsdk.geometry.LatLng::class.java))
|
nearbyPresenter.onCameraMove(Mockito.mock(com.mapbox.mapboxsdk.geometry.LatLng::class.java))
|
||||||
verify(nearbyParentFragmentView).setProjectorLatLngBounds()
|
verify(nearbyParentFragmentView).setProjectorLatLngBounds()
|
||||||
verify(nearbyParentFragmentView).isNetworkConnectionEstablished()
|
verify(nearbyParentFragmentView).isNetworkConnectionEstablished()
|
||||||
verifyZeroInteractions(nearbyParentFragmentView)
|
verifyNoMoreInteractions(nearbyParentFragmentView)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -509,7 +510,7 @@ class NearbyParentFragmentPresenterTest {
|
||||||
nearbyPresenter.onCameraMove(Mockito.mock(com.mapbox.mapboxsdk.geometry.LatLng::class.java))
|
nearbyPresenter.onCameraMove(Mockito.mock(com.mapbox.mapboxsdk.geometry.LatLng::class.java))
|
||||||
verify(nearbyParentFragmentView).setProjectorLatLngBounds()
|
verify(nearbyParentFragmentView).setProjectorLatLngBounds()
|
||||||
verify(nearbyParentFragmentView).isNetworkConnectionEstablished()
|
verify(nearbyParentFragmentView).isNetworkConnectionEstablished()
|
||||||
verifyZeroInteractions(nearbyParentFragmentView)
|
verifyNoMoreInteractions(nearbyParentFragmentView)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ class NearbyParentFragmentUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
|
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ class NearbyPlacesTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
nearbyPlaces = NearbyPlaces(okHttpJsonApiClient)
|
nearbyPlaces = NearbyPlaces(okHttpJsonApiClient)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ class ProfileActivityTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
activity = Robolectric.buildActivity(ProfileActivity::class.java).create().get()
|
activity = Robolectric.buildActivity(ProfileActivity::class.java).create().get()
|
||||||
mockContext = ApplicationProvider.getApplicationContext()
|
mockContext = ApplicationProvider.getApplicationContext()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ class AchievementsFragmentUnitTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
context = ApplicationProvider.getApplicationContext()
|
context = ApplicationProvider.getApplicationContext()
|
||||||
menuItem = RoboMenuItem(context)
|
menuItem = RoboMenuItem(context)
|
||||||
AppAdapter.set(TestAppAdapter())
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ class LevelControllerTest {
|
||||||
*/
|
*/
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
levelController = LevelController()
|
levelController = LevelController()
|
||||||
levelInfo = LevelController.LevelInfo.from(
|
levelInfo = LevelController.LevelInfo.from(
|
||||||
IMAGES_UPLOADED_SAMPLE_VALUE,
|
IMAGES_UPLOADED_SAMPLE_VALUE,
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ class QuizActivityUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
SoLoader.setInTestMode()
|
SoLoader.setInTestMode()
|
||||||
Fresco.initialize(ApplicationProvider.getApplicationContext())
|
Fresco.initialize(ApplicationProvider.getApplicationContext())
|
||||||
activity = Robolectric.buildActivity(QuizActivity::class.java).create().get()
|
activity = Robolectric.buildActivity(QuizActivity::class.java).create().get()
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ class QuizCheckerUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
SoLoader.setInTestMode()
|
SoLoader.setInTestMode()
|
||||||
Fresco.initialize(ApplicationProvider.getApplicationContext())
|
Fresco.initialize(ApplicationProvider.getApplicationContext())
|
||||||
activity = Robolectric.buildActivity(QuizActivity::class.java).create().get()
|
activity = Robolectric.buildActivity(QuizActivity::class.java).create().get()
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ class QuizControllerTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
`when`(context.getString(any(Int::class.java)))
|
`when`(context.getString(any(Int::class.java)))
|
||||||
.thenReturn("")
|
.thenReturn("")
|
||||||
quizController = QuizController()
|
quizController = QuizController()
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ class QuizQuestionTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
quizQuestion = QuizQuestion(
|
quizQuestion = QuizQuestion(
|
||||||
QUESTION_NUM_SAMPLE_VALUE,
|
QUESTION_NUM_SAMPLE_VALUE,
|
||||||
QUESTION_SAMPLE_VALUE,
|
QUESTION_SAMPLE_VALUE,
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ class QuizResultActivityUnitTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.openMocks(this)
|
||||||
val intent = Intent().putExtra("QuizResult", 0)
|
val intent = Intent().putExtra("QuizResult", 0)
|
||||||
activity = Robolectric.buildActivity(QuizResultActivity::class.java, intent).get()
|
activity = Robolectric.buildActivity(QuizResultActivity::class.java, intent).get()
|
||||||
quizResultActivity = PowerMockito.mock(QuizResultActivity::class.java)
|
quizResultActivity = PowerMockito.mock(QuizResultActivity::class.java)
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue