From 5877d7a14aa2e2621e5bcf62cd90f1514a96404c Mon Sep 17 00:00:00 2001 From: Madhur Gupta <30932899+madhurgupta10@users.noreply.github.com> Date: Wed, 15 Jul 2020 23:23:48 +0530 Subject: [PATCH] [GSoC] Added Unit Tests and Fixed Landscape Mode Bug (#3872) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixes #3861 Use the APIs to fetch leaderboard’s based on uploads via mobile app (all time) and display it in the Leaderboard screen. * Fixed Bug - missing data in landscape mode * Added Unit Tests for Leaderboard * Added JavaDocs * Updated JavaDocs --- app/build.gradle | 7 +- .../nrw/commons/profile/ProfileActivity.java | 4 +- .../leaderboard/LeaderboardFragment.java | 4 + .../leaderboard/LeaderboardListAdapter.java | 19 +++ .../main/res/layout/fragment_leaderboard.xml | 14 ++- .../nrw/commons/delete/ReasonBuilderTest.kt | 3 + .../leaderboard/LeaderboardApiTest.java | 116 ++++++++++++++++++ .../leaderboard_sample_response.json | 19 +++ 8 files changed, 178 insertions(+), 8 deletions(-) create mode 100644 app/src/test/kotlin/fr/free/nrw/commons/leaderboard/LeaderboardApiTest.java create mode 100644 app/src/test/resources/leaderboard_sample_response.json diff --git a/app/build.gradle b/app/build.gradle index 638a4048a..08f322c05 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,7 +21,7 @@ dependencies { // Utils implementation 'in.yuvi:http.fluent:1.3' implementation 'com.google.code.gson:gson:2.8.5' - implementation 'com.squareup.okhttp3:okhttp:4.5.0' + implementation 'com.squareup.okhttp3:okhttp:4.8.0' implementation 'com.squareup.okio:okio:2.2.2' implementation 'io.reactivex.rxjava2:rxandroid:2.1.0' implementation 'io.reactivex.rxjava2:rxjava:2.2.3' @@ -50,6 +50,7 @@ dependencies { testImplementation "androidx.paging:paging-common-ktx:$PAGING_VERSION" implementation "androidx.paging:paging-rxjava2-ktx:$PAGING_VERSION" implementation "androidx.recyclerview:recyclerview:1.2.0-alpha02" + implementation 'com.squareup.okhttp3:okhttp-ws:3.4.1' // Logging implementation 'ch.acra:acra-dialog:5.3.0' @@ -79,7 +80,7 @@ dependencies { testImplementation 'junit:junit:4.13' testImplementation 'org.robolectric:robolectric:4.3' testImplementation 'androidx.test:core:1.2.0' - testImplementation 'com.squareup.okhttp3:mockwebserver:3.12.1' + testImplementation "com.squareup.okhttp3:mockwebserver:4.8.0" testImplementation "org.powermock:powermock-module-junit4:2.0.0-beta.5" testImplementation "org.powermock:powermock-api-mockito2:2.0.0-beta.5" testImplementation 'org.mockito:mockito-core:2.23.0' @@ -94,7 +95,7 @@ dependencies { androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test:rules:1.2.0' androidTestImplementation 'androidx.annotation:annotation:1.1.0' - androidTestImplementation 'com.squareup.okhttp3:mockwebserver:3.12.1' + androidTestImplementation 'com.squareup.okhttp3:mockwebserver:4.8.0' androidTestUtil 'androidx.test:orchestrator:1.2.0' // Debugging diff --git a/app/src/main/java/fr/free/nrw/commons/profile/ProfileActivity.java b/app/src/main/java/fr/free/nrw/commons/profile/ProfileActivity.java index 23bbb85fe..ee319ba9a 100644 --- a/app/src/main/java/fr/free/nrw/commons/profile/ProfileActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/profile/ProfileActivity.java @@ -56,6 +56,9 @@ public class ProfileActivity extends NavigationBaseActivity { context.startActivity(intent); } + /** + * Set the tabs for the fragments + */ private void setTabs() { List fragmentList = new ArrayList<>(); List titleList = new ArrayList<>(); @@ -69,7 +72,6 @@ public class ProfileActivity extends NavigationBaseActivity { viewPagerAdapter.notifyDataSetChanged(); } - @Override public void onDestroy() { super.onDestroy(); diff --git a/app/src/main/java/fr/free/nrw/commons/profile/leaderboard/LeaderboardFragment.java b/app/src/main/java/fr/free/nrw/commons/profile/leaderboard/LeaderboardFragment.java index e536a950a..cae28b4e7 100644 --- a/app/src/main/java/fr/free/nrw/commons/profile/leaderboard/LeaderboardFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/profile/leaderboard/LeaderboardFragment.java @@ -97,6 +97,10 @@ public class LeaderboardFragment extends CommonsDaggerSupportFragment { } } + /** + * Set the views + * @param response Leaderboard Response Object + */ private void setLeaderboardUser(LeaderboardResponse response) { hideProgressBar(); avatar.setImageURI( diff --git a/app/src/main/java/fr/free/nrw/commons/profile/leaderboard/LeaderboardListAdapter.java b/app/src/main/java/fr/free/nrw/commons/profile/leaderboard/LeaderboardListAdapter.java index 4a61a1cb1..25585fea1 100644 --- a/app/src/main/java/fr/free/nrw/commons/profile/leaderboard/LeaderboardListAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/profile/leaderboard/LeaderboardListAdapter.java @@ -32,6 +32,10 @@ public class LeaderboardListAdapter extends RecyclerView.Adapter + android:layout_height="wrap_content"> - + app:layout_constraintTop_toBottomOf="@+id/column_names"> + + + +