From 76c20b22db906ea68cfa4d7433f9e3c667c574b5 Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Tue, 28 Jul 2020 13:17:34 +0200 Subject: [PATCH] Write some UI tests for NotificationsActivity Signed-off-by: tobiasKaminsky --- ...activity.NotificationsActivityIT_empty.png | Bin 0 -> 12599 bytes ...activity.NotificationsActivityIT_error.png | Bin 0 -> 11009 bytes ...tivity.NotificationsActivityIT_loading.png | Bin 0 -> 12105 bytes ...ificationsActivityIT_showNotifications.png | Bin 0 -> 30598 bytes scripts/androidScreenshotTest | 17 ++- .../ui/activity/NotificationsActivityIT.kt | 122 ++++++++++++++++++ .../ui/activity/NotificationsActivity.java | 30 +++-- .../ui/adapter/NotificationListAdapter.java | 3 +- 8 files changed, 151 insertions(+), 21 deletions(-) create mode 100644 screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_empty.png create mode 100644 screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_error.png create mode 100644 screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_loading.png create mode 100644 screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_showNotifications.png create mode 100644 src/androidTest/java/com/owncloud/android/ui/activity/NotificationsActivityIT.kt diff --git a/screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_empty.png b/screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..0e753974278d08fa3beddee82945f4ea96868133 GIT binary patch literal 12599 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 T{Xc`Ftq{9Y4nI_!xETK*1l6(v literal 0 HcmV?d00001 diff --git a/screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_loading.png b/screenshots/gplay/debug/com.owncloud.android.ui.activity.NotificationsActivityIT_loading.png new file mode 100644 index 0000000000000000000000000000000000000000..8cd5338a09f9117319a5c60cb2a7a444e8e98d0e GIT binary patch literal 12105 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 z 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'g src/main/res/values/setup.xml - -emulator -writable-system -avd uiComparison -no-snapshot -gpu swiftshader_indirect -no-audio -skin 500x833 & - cd src/androidTest/java -class=$(find | grep $2 | grep java | head -n1|sed s'/\//\./'g | sed s'#^\.\.##' | sed s'#\.java##') +class=$(find | grep $2 | grep -E "java$|kt$" | head -n1|sed s'/\//\./'g | sed s'#^\.\.##' | sed s'#\.java##'| sed s'#\.kt##') + +if [[ -z $class ]]; then + echo "Class not found!" + exit 1 +fi cd ../../../ @@ -28,6 +29,12 @@ if [ -e $3 ] ; then method="" else method="#$3" + + # check if method exists + if [[ $(grep -c $3 $(find | grep $2 | grep -E "java$|kt$" | head -n1)) -eq 0 ]]; then + echo "Method not found!" + exit 1 + fi fi ./gradlew gplayDebugExecuteScreenshotTests $record \ diff --git a/src/androidTest/java/com/owncloud/android/ui/activity/NotificationsActivityIT.kt b/src/androidTest/java/com/owncloud/android/ui/activity/NotificationsActivityIT.kt new file mode 100644 index 0000000000..ea336e8460 --- /dev/null +++ b/src/androidTest/java/com/owncloud/android/ui/activity/NotificationsActivityIT.kt @@ -0,0 +1,122 @@ +/* + * + * Nextcloud Android client application + * + * @author Tobias Kaminsky + * Copyright (C) 2020 Tobias Kaminsky + * Copyright (C) 2020 Nextcloud GmbH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package com.owncloud.android.ui.activity + +import androidx.test.espresso.intent.rule.IntentsTestRule +import com.facebook.testing.screenshot.Screenshot +import com.owncloud.android.AbstractIT +import com.owncloud.android.lib.resources.notifications.models.Action +import com.owncloud.android.lib.resources.notifications.models.Notification +import com.owncloud.android.lib.resources.notifications.models.RichObject +import com.owncloud.android.utils.ScreenshotTest +import org.junit.Rule +import org.junit.Test +import java.util.GregorianCalendar + +class NotificationsActivityIT : AbstractIT() { + @get:Rule + var activityRule = IntentsTestRule(NotificationsActivity::class.java, true, false) + + @Test + @ScreenshotTest + fun loading() { + val sut: NotificationsActivity = activityRule.launchActivity(null) + + Screenshot.snapActivity(sut).record() + } + + @Test + @ScreenshotTest + fun empty() { + val sut: NotificationsActivity = activityRule.launchActivity(null) + + sut.runOnUiThread { sut.populateList(ArrayList()) } + + shortSleep() + + Screenshot.snapActivity(sut).record() + } + + @Test + @ScreenshotTest + fun showNotifications() { + val sut: NotificationsActivity = activityRule.launchActivity(null) + + val date = GregorianCalendar() + date.set(110, 2, 2, 10, 20, 30) + + val notifications = ArrayList() + notifications.add(Notification(1, + "files", + "user", + date.time, + "objectType", + "objectId", + "App recommendation: Tasks", + "SubjectRich", + HashMap(), + "Sync tasks from various devices with your Nextcloud and edit them online.", + "MessageRich", + HashMap(), + "link", + "icon", + ArrayList())) + + val actions = ArrayList() + actions.add(Action("Send usage", "link", "url", true)) + actions.add(Action("Not now", "link", "url", false)) + + notifications.add(Notification(1, + "files", + "user", + date.time, + "objectType", + "objectId", + "Help improve Nextcloud", + "SubjectRich", + HashMap(), + "Do you want to help us to improve Nextcloud by providing some anonymize data about your setup and usage?", + "MessageRich", + HashMap(), + "link", + "icon", + actions)) + + sut.runOnUiThread { sut.populateList(notifications) } + + shortSleep() + + Screenshot.snapActivity(sut).record() + } + + @Test + @ScreenshotTest + fun error() { + val sut: NotificationsActivity = activityRule.launchActivity(null) + + shortSleep() + + sut.runOnUiThread { sut.setEmptyContent("Error", "Error! Please try again later!") } + + Screenshot.snapActivity(sut).record() + } +} diff --git a/src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java b/src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java index 4d6cd415cd..ead43be630 100644 --- a/src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java +++ b/src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java @@ -60,6 +60,7 @@ import java.util.List; import javax.inject.Inject; +import androidx.annotation.VisibleForTesting; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; @@ -239,7 +240,7 @@ public class NotificationsActivity extends FileActivity implements Notifications private void setupContent() { emptyContentIcon.setImageResource(R.drawable.ic_notification); emptyContentProgressBar.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryAccentColor(this), - PorterDuff.Mode.SRC_IN); + PorterDuff.Mode.SRC_IN); setLoadingMessage(); LinearLayoutManager layoutManager = new LinearLayoutManager(this); @@ -249,8 +250,18 @@ public class NotificationsActivity extends FileActivity implements Notifications fetchAndSetData(); } - private void populateList(List notifications) { + @VisibleForTesting + public void populateList(List notifications) { adapter.setNotificationItems(notifications); + + if (notifications.size() > 0) { + swipeEmptyListRefreshLayout.setVisibility(View.GONE); + swipeListRefreshLayout.setVisibility(View.VISIBLE); + } else { + setEmptyContent(noResultsHeadline, noResultsMessage); + swipeListRefreshLayout.setVisibility(View.GONE); + swipeEmptyListRefreshLayout.setVisibility(View.VISIBLE); + } } private void fetchAndSetData() { @@ -275,17 +286,7 @@ public class NotificationsActivity extends FileActivity implements Notifications if (result.isSuccess() && result.getNotificationData() != null) { final List notifications = result.getNotificationData(); - runOnUiThread(() -> { - populateList(notifications); - if (notifications.size() > 0) { - swipeEmptyListRefreshLayout.setVisibility(View.GONE); - swipeListRefreshLayout.setVisibility(View.VISIBLE); - } else { - setEmptyContent(noResultsHeadline, noResultsMessage); - swipeListRefreshLayout.setVisibility(View.GONE); - swipeEmptyListRefreshLayout.setVisibility(View.VISIBLE); - } - }); + runOnUiThread(() -> populateList(notifications)); } else { Log_OC.d(TAG, result.getLogMessage()); // show error @@ -344,7 +345,8 @@ public class NotificationsActivity extends FileActivity implements Notifications emptyContentProgressBar.setVisibility(View.VISIBLE); } - private void setEmptyContent(String headline, String message) { + @VisibleForTesting + public void setEmptyContent(String headline, String message) { if (emptyContentContainer != null && emptyContentMessage != null) { emptyContentHeadline.setText(headline); emptyContentMessage.setText(message); diff --git a/src/main/java/com/owncloud/android/ui/adapter/NotificationListAdapter.java b/src/main/java/com/owncloud/android/ui/adapter/NotificationListAdapter.java index faf7f8062c..8cdf50f555 100644 --- a/src/main/java/com/owncloud/android/ui/adapter/NotificationListAdapter.java +++ b/src/main/java/com/owncloud/android/ui/adapter/NotificationListAdapter.java @@ -20,7 +20,6 @@ package com.owncloud.android.ui.adapter; import android.content.Intent; -import android.content.res.ColorStateList; import android.content.res.Resources; import android.graphics.Typeface; import android.graphics.drawable.PictureDrawable; @@ -154,7 +153,7 @@ public class NotificationListAdapter extends RecyclerView.Adapter