diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/classic/HelpMenuE2ETest.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/classic/HelpMenuE2ETest.kt index bc59c57012..214dbfbe4b 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/classic/HelpMenuE2ETest.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/classic/HelpMenuE2ETest.kt @@ -25,7 +25,7 @@ import com.instructure.canvas.espresso.StringConstants.HelpMenu import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.checkToastText +import com.instructure.canvas.espresso.utils.checkToastText import com.instructure.parentapp.R import com.instructure.parentapp.utils.ParentComposeTest import com.instructure.parentapp.utils.extensions.seedData diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AlertsE2ETest.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AlertsE2ETest.kt index fa19e001e0..15ec57c6f3 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AlertsE2ETest.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AlertsE2ETest.kt @@ -22,7 +22,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.canvasapi2.models.AlertType import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.SubmissionsApi diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AssignmentDetailsE2ETest.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AssignmentDetailsE2ETest.kt index e9acd33eee..efa1f7d6bc 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AssignmentDetailsE2ETest.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AssignmentDetailsE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.SubmissionsApi import com.instructure.dataseeding.model.GradingType diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AssignmentReminderE2ETest.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AssignmentReminderE2ETest.kt index 9a62c37a2e..c09800d29d 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AssignmentReminderE2ETest.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/AssignmentReminderE2ETest.kt @@ -24,7 +24,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.checkToastText +import com.instructure.canvas.espresso.utils.checkToastText import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.model.GradingType import com.instructure.dataseeding.model.SubmissionType diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/CalendarE2ETest.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/CalendarE2ETest.kt index 9f533eef91..680c9e6efe 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/CalendarE2ETest.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/CalendarE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.checkToastText +import com.instructure.canvas.espresso.utils.checkToastText import com.instructure.canvasapi2.models.CanvasContext import com.instructure.canvasapi2.utils.toApiString import com.instructure.dataseeding.api.CalendarEventApi diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/InboxE2ETest.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/InboxE2ETest.kt index d4cbd79e91..042b2aeb9c 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/InboxE2ETest.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/InboxE2ETest.kt @@ -30,7 +30,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.canvasapi2.models.CanvasContext import com.instructure.canvasapi2.utils.toApiString import com.instructure.dataseeding.api.AssignmentsApi diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/SettingsE2ETest.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/SettingsE2ETest.kt index cc1562470e..c4203963d8 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/SettingsE2ETest.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/e2e/compose/SettingsE2ETest.kt @@ -24,8 +24,8 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.checkToastText -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.checkToastText +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.CoursesApi import com.instructure.dataseeding.model.GradingType diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/AssignmentDetailsInteractionTest.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/AssignmentDetailsInteractionTest.kt index 58f168b5fc..b2b3cff577 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/AssignmentDetailsInteractionTest.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/AssignmentDetailsInteractionTest.kt @@ -27,7 +27,6 @@ import com.instructure.canvas.espresso.FeatureCategory import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData -import com.instructure.canvas.espresso.checkToastText import com.instructure.canvas.espresso.mockcanvas.MockCanvas import com.instructure.canvas.espresso.mockcanvas.addAssignment import com.instructure.canvas.espresso.mockcanvas.addAssignmentsToGroups @@ -35,6 +34,7 @@ import com.instructure.canvas.espresso.mockcanvas.addObserverAlert import com.instructure.canvas.espresso.mockcanvas.addSubmissionForAssignment import com.instructure.canvas.espresso.mockcanvas.fakes.FakeCustomGradeStatusesManager import com.instructure.canvas.espresso.mockcanvas.init +import com.instructure.canvas.espresso.utils.checkToastText import com.instructure.canvasapi2.di.graphql.CustomGradeStatusModule import com.instructure.canvasapi2.managers.graphql.CustomGradeStatusesManager import com.instructure.canvasapi2.models.AlertType diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/DashboardInteractionTest.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/DashboardInteractionTest.kt index d1e19afd22..a735975473 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/DashboardInteractionTest.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/DashboardInteractionTest.kt @@ -27,7 +27,7 @@ import com.google.android.apps.common.testing.accessibility.framework.Accessibil import com.google.android.apps.common.testing.accessibility.framework.checks.SpeakableTextPresentCheck import com.instructure.canvas.espresso.mockcanvas.MockCanvas import com.instructure.canvas.espresso.mockcanvas.init -import com.instructure.canvas.espresso.waitForMatcherWithSleeps +import com.instructure.canvas.espresso.utils.waitForMatcherWithSleeps import com.instructure.canvasapi2.utils.Pronouns import com.instructure.loginapi.login.R import com.instructure.parentapp.utils.ParentComposeTest diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/NotAParentInteractionsTest.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/NotAParentInteractionsTest.kt index 2da7ba5fae..6ca653b22c 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/NotAParentInteractionsTest.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/interaction/NotAParentInteractionsTest.kt @@ -29,7 +29,7 @@ import com.instructure.canvas.espresso.mockcanvas.addEnrollment import com.instructure.canvas.espresso.mockcanvas.addUser import com.instructure.canvas.espresso.mockcanvas.init import com.instructure.canvas.espresso.mockcanvas.updateUserEnrollments -import com.instructure.canvas.espresso.waitForMatcherWithSleeps +import com.instructure.canvas.espresso.utils.waitForMatcherWithSleeps import com.instructure.canvasapi2.models.Enrollment import com.instructure.loginapi.login.R import com.instructure.parentapp.utils.ParentComposeTest diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/classic/HelpPage.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/classic/HelpPage.kt index bf8dcdff43..ea8cba98f0 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/classic/HelpPage.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/classic/HelpPage.kt @@ -24,7 +24,7 @@ import androidx.test.espresso.intent.matcher.IntentMatchers import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText import com.instructure.canvas.espresso.StringConstants.HelpMenu -import com.instructure.canvas.espresso.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive import com.instructure.espresso.OnViewWithStringTextIgnoreCase import com.instructure.espresso.OnViewWithText import com.instructure.espresso.assertDisplayed diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/classic/LeftSideNavigationDrawerPage.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/classic/LeftSideNavigationDrawerPage.kt index 4b337d12c8..d87d371dde 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/classic/LeftSideNavigationDrawerPage.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/classic/LeftSideNavigationDrawerPage.kt @@ -20,7 +20,7 @@ import androidx.test.espresso.Espresso import androidx.test.espresso.action.ViewActions import androidx.test.espresso.assertion.ViewAssertions import androidx.test.espresso.matcher.ViewMatchers -import com.instructure.canvas.espresso.waitForMatcherWithSleeps +import com.instructure.canvas.espresso.utils.waitForMatcherWithSleeps import com.instructure.dataseeding.model.CanvasUserApiModel import com.instructure.espresso.assertDisplayed import com.instructure.espresso.click diff --git a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/compose/CourseDetailsPage.kt b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/compose/CourseDetailsPage.kt index 31d32d4e8e..415be10511 100644 --- a/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/compose/CourseDetailsPage.kt +++ b/apps/parent/src/androidTest/java/com/instructure/parentapp/ui/pages/compose/CourseDetailsPage.kt @@ -31,7 +31,7 @@ import androidx.compose.ui.test.junit4.ComposeTestRule import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.canvasapi2.models.Course import com.instructure.canvasapi2.utils.toDate import com.instructure.dataseeding.model.CourseApiModel diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/AnnouncementsE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/AnnouncementsE2ETest.kt index eec078207e..9838344829 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/AnnouncementsE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/AnnouncementsE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.DiscussionTopicsApi import com.instructure.student.ui.utils.StudentTest import com.instructure.student.ui.utils.extensions.seedData diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/ConferencesE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/ConferencesE2ETest.kt index bf8ed827c7..a0be1ffab3 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/ConferencesE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/ConferencesE2ETest.kt @@ -22,7 +22,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.ConferencesApi import com.instructure.student.ui.utils.StudentTest import com.instructure.student.ui.utils.extensions.seedData diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/DiscussionsE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/DiscussionsE2ETest.kt index e82d90f94f..d2d2fa6497 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/DiscussionsE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/DiscussionsE2ETest.kt @@ -26,7 +26,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.dataseeding.api.DiscussionTopicsApi import com.instructure.dataseeding.api.FileFolderApi import com.instructure.dataseeding.api.FileUploadsApi diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/FilesE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/FilesE2ETest.kt index b679ab3742..b9dab39d0d 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/FilesE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/FilesE2ETest.kt @@ -28,7 +28,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.canvasapi2.managers.DiscussionManager import com.instructure.canvasapi2.models.CanvasContext import com.instructure.canvasapi2.utils.weave.awaitApiResponse diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/HelpMenuE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/HelpMenuE2ETest.kt index 315780cb1a..63699d6421 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/HelpMenuE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/HelpMenuE2ETest.kt @@ -25,7 +25,7 @@ import com.instructure.canvas.espresso.StringConstants.HelpMenu import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.checkToastText +import com.instructure.canvas.espresso.utils.checkToastText import com.instructure.student.R import com.instructure.student.ui.utils.StudentTest import com.instructure.student.ui.utils.extensions.seedData diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/LoginE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/LoginE2ETest.kt index 307f52fe34..91487b9bc7 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/LoginE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/LoginE2ETest.kt @@ -28,7 +28,7 @@ import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E import com.instructure.canvas.espresso.annotations.Stub -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.canvasapi2.utils.ApiPrefs import com.instructure.dataseeding.api.CoursesApi import com.instructure.dataseeding.api.EnrollmentsApi diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/NotificationsE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/NotificationsE2ETest.kt index 7dd2d17a56..cfa4ea14db 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/NotificationsE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/NotificationsE2ETest.kt @@ -25,7 +25,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.ConversationsApi import com.instructure.dataseeding.api.DiscussionTopicsApi diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/QuizzesE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/QuizzesE2ETest.kt index c3599f92bc..adce215b1e 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/QuizzesE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/QuizzesE2ETest.kt @@ -29,7 +29,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.dataseeding.api.QuizzesApi import com.instructure.dataseeding.model.QuizAnswer import com.instructure.dataseeding.model.QuizQuestion diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/ShareExtensionE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/ShareExtensionE2ETest.kt index cb94725be3..c1d112aedf 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/ShareExtensionE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/ShareExtensionE2ETest.kt @@ -25,7 +25,7 @@ import androidx.test.uiautomator.UiDevice import androidx.test.uiautomator.UiSelector import com.instructure.canvas.espresso.annotations.E2E import com.instructure.canvas.espresso.annotations.Stub -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.model.GradingType import com.instructure.dataseeding.model.SubmissionType diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineAnnouncementsE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineAnnouncementsE2ETest.kt index adfa998225..16b1297796 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineAnnouncementsE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineAnnouncementsE2ETest.kt @@ -27,7 +27,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.DiscussionTopicsApi import com.instructure.espresso.getVideoPosition import com.instructure.student.ui.utils.StudentComposeTest diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineAssignmentsE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineAssignmentsE2ETest.kt index cc0dea1d60..0717d44007 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineAssignmentsE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineAssignmentsE2ETest.kt @@ -24,8 +24,8 @@ import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E import com.instructure.canvas.espresso.common.pages.compose.AssignmentListPage -import com.instructure.canvas.espresso.pressBackButton -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.pressBackButton +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.AssignmentGroupsApi import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.SubmissionsApi diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineDiscussionsE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineDiscussionsE2ETest.kt index 0242c70521..ce50a83f58 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineDiscussionsE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineDiscussionsE2ETest.kt @@ -25,9 +25,9 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E -import com.instructure.canvas.espresso.checkToastText -import com.instructure.canvas.espresso.pressBackButton -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.checkToastText +import com.instructure.canvas.espresso.utils.pressBackButton +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.DiscussionTopicsApi import com.instructure.dataseeding.api.FileFolderApi import com.instructure.dataseeding.api.FileUploadsApi diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineLeftSideMenuE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineLeftSideMenuE2ETest.kt index c48435baa6..59e60f35cd 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineLeftSideMenuE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineLeftSideMenuE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.student.ui.utils.StudentTest import com.instructure.student.ui.utils.extensions.seedData import com.instructure.student.ui.utils.extensions.tokenLogin diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineLoginE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineLoginE2ETest.kt index 9ac702bffd..4c9f1a65be 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineLoginE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineLoginE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.model.CanvasUserApiModel import com.instructure.student.ui.utils.StudentTest import com.instructure.student.ui.utils.extensions.seedData diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineModulesE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineModulesE2ETest.kt index 00754ec014..e4b60abc90 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineModulesE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineModulesE2ETest.kt @@ -24,7 +24,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.DiscussionTopicsApi import com.instructure.dataseeding.api.ModulesApi diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflinePagesE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflinePagesE2ETest.kt index 1d7dbfe403..1a21b749ec 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflinePagesE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflinePagesE2ETest.kt @@ -26,7 +26,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.PagesApi import com.instructure.student.ui.pages.classic.WebViewTextCheck import com.instructure.student.ui.utils.StudentTest diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflinePeopleE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflinePeopleE2ETest.kt index 6d6eb60128..5972482033 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflinePeopleE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflinePeopleE2ETest.kt @@ -24,7 +24,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.student.ui.utils.StudentTest import com.instructure.student.ui.utils.extensions.seedData import com.instructure.student.ui.utils.extensions.tokenLogin diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSettingsE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSettingsE2ETest.kt index 2cab83b195..6b225a0f57 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSettingsE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSettingsE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.student.ui.utils.StudentComposeTest import com.instructure.student.ui.utils.extensions.seedData import com.instructure.student.ui.utils.extensions.tokenLogin diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyllabusE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyllabusE2ETest.kt index 8969573d0a..890f2b767f 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyllabusE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyllabusE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.model.SubmissionType import com.instructure.dataseeding.util.days diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyncProgressE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyncProgressE2ETest.kt index 0c21032139..07a3cf7d8b 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyncProgressE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyncProgressE2ETest.kt @@ -26,7 +26,7 @@ import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E import com.instructure.canvas.espresso.annotations.Stub -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.student.ui.utils.StudentTest import com.instructure.student.ui.utils.extensions.seedData import com.instructure.student.ui.utils.extensions.tokenLogin diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyncSettingsE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyncSettingsE2ETest.kt index ccbf589970..5881802cff 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyncSettingsE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/classic/offline/OfflineSyncSettingsE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.OfflineE2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.pandautils.R import com.instructure.student.ui.utils.StudentComposeTest import com.instructure.student.ui.utils.extensions.seedData diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/AssignmentsE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/AssignmentsE2ETest.kt index 8bd1aaa082..c3f3a4ac1f 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/AssignmentsE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/AssignmentsE2ETest.kt @@ -28,9 +28,9 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.checkToastText import com.instructure.canvas.espresso.common.pages.compose.AssignmentListPage -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.checkToastText +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.dataseeding.api.AssignmentGroupsApi import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.CoursesApi diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/BookmarksE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/BookmarksE2ETest.kt index 29a4d9207d..4e86a20d00 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/BookmarksE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/BookmarksE2ETest.kt @@ -25,7 +25,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.CoursesApi import com.instructure.dataseeding.api.PagesApi diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/CalendarE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/CalendarE2ETest.kt index 3413e11d85..048daa7474 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/CalendarE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/CalendarE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.checkToastText +import com.instructure.canvas.espresso.utils.checkToastText import com.instructure.dataseeding.util.days import com.instructure.dataseeding.util.fromNow import com.instructure.espresso.getDateInCanvasCalendarFormat diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/InboxE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/InboxE2ETest.kt index 1f9626a536..275a562e51 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/InboxE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/InboxE2ETest.kt @@ -31,7 +31,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.ConversationsApi import com.instructure.dataseeding.api.GroupsApi import com.instructure.espresso.getVideoPosition diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/PeopleE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/PeopleE2ETest.kt index a08306675b..a22f0be4f8 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/PeopleE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/PeopleE2ETest.kt @@ -22,7 +22,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.student.ui.utils.StudentComposeTest import com.instructure.student.ui.utils.extensions.seedData import com.instructure.student.ui.utils.extensions.tokenLogin diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/SettingsE2ETest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/SettingsE2ETest.kt index c15553f422..d3fc026873 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/SettingsE2ETest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/e2e/compose/SettingsE2ETest.kt @@ -22,14 +22,14 @@ import androidx.test.espresso.Espresso import androidx.test.espresso.intent.Intents import androidx.test.espresso.intent.Intents.intended import com.instructure.canvas.espresso.FeatureCategory -import com.instructure.canvas.espresso.IntentActionMatcher import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.checkToastText -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.IntentActionMatcher +import com.instructure.canvas.espresso.utils.checkToastText +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.canvasapi2.utils.RemoteConfigParam import com.instructure.canvasapi2.utils.RemoteConfigUtils import com.instructure.dataseeding.api.ConversationsApi diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/AssignmentDetailsInteractionTest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/AssignmentDetailsInteractionTest.kt index 59f5dd620d..5dc787fa3e 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/AssignmentDetailsInteractionTest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/AssignmentDetailsInteractionTest.kt @@ -37,14 +37,14 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData -import com.instructure.canvas.espresso.checkToastText import com.instructure.canvas.espresso.mockcanvas.MockCanvas import com.instructure.canvas.espresso.mockcanvas.addAssignment import com.instructure.canvas.espresso.mockcanvas.addAssignmentsToGroups import com.instructure.canvas.espresso.mockcanvas.addSubmissionForAssignment import com.instructure.canvas.espresso.mockcanvas.fakes.FakeCustomGradeStatusesManager import com.instructure.canvas.espresso.mockcanvas.init -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.checkToastText +import com.instructure.canvas.espresso.utils.refresh import com.instructure.canvasapi2.di.graphql.CustomGradeStatusModule import com.instructure.canvasapi2.managers.graphql.CustomGradeStatusesManager import com.instructure.canvasapi2.models.Assignment diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/BookmarkInteractionTest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/BookmarkInteractionTest.kt index 0d050ae7b9..40577cf944 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/BookmarkInteractionTest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/BookmarkInteractionTest.kt @@ -29,7 +29,7 @@ import com.instructure.canvas.espresso.mockcanvas.addAssignment import com.instructure.canvas.espresso.mockcanvas.addBookmark import com.instructure.canvas.espresso.mockcanvas.fakes.FakeCustomGradeStatusesManager import com.instructure.canvas.espresso.mockcanvas.init -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.canvasapi2.di.graphql.CustomGradeStatusModule import com.instructure.canvasapi2.managers.graphql.CustomGradeStatusesManager import com.instructure.canvasapi2.models.Assignment diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/GroupLinksInteractionTest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/GroupLinksInteractionTest.kt index 4f5545bb7f..ad74db380d 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/GroupLinksInteractionTest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/interaction/GroupLinksInteractionTest.kt @@ -30,7 +30,7 @@ import com.instructure.canvas.espresso.mockcanvas.addFolderToCourse import com.instructure.canvas.espresso.mockcanvas.addGroupToCourse import com.instructure.canvas.espresso.mockcanvas.addPageToCourse import com.instructure.canvas.espresso.mockcanvas.init -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.canvasapi2.models.Course import com.instructure.canvasapi2.models.DiscussionTopicHeader import com.instructure.canvasapi2.models.Group diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/AnnotationCommentListPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/AnnotationCommentListPage.kt index 7ea7db0296..04ec56f09f 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/AnnotationCommentListPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/AnnotationCommentListPage.kt @@ -17,7 +17,7 @@ package com.instructure.student.ui.pages.classic import androidx.test.espresso.matcher.ViewMatchers -import com.instructure.canvas.espresso.scrollRecyclerView +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.espresso.OnViewWithId import com.instructure.espresso.assertDisplayed import com.instructure.espresso.click diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/BookmarkPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/BookmarkPage.kt index 1aa45b2065..905fbc3807 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/BookmarkPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/BookmarkPage.kt @@ -27,8 +27,8 @@ import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.uiautomator.UiDevice import androidx.test.uiautomator.UiSelector import com.instructure.canvas.espresso.CanvasTest -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.scrollRecyclerView +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.espresso.assertDisplayed import com.instructure.espresso.clearText import com.instructure.espresso.click diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/CourseBrowserPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/CourseBrowserPage.kt index a5a9fbf537..f9b1d5198b 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/CourseBrowserPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/CourseBrowserPage.kt @@ -31,8 +31,8 @@ import androidx.test.espresso.matcher.ViewMatchers.isDisplayingAtLeast import androidx.test.espresso.matcher.ViewMatchers.isEnabled import androidx.test.espresso.matcher.ViewMatchers.withChild import androidx.test.espresso.matcher.ViewMatchers.withText -import com.instructure.canvas.espresso.scrollRecyclerView -import com.instructure.canvas.espresso.withCustomConstraints +import com.instructure.canvas.espresso.utils.actionWithCustomConstraints +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.canvasapi2.models.Course import com.instructure.canvasapi2.models.Tab import com.instructure.dataseeding.model.CourseApiModel @@ -189,8 +189,8 @@ open class CourseBrowserPage : BasePage(R.id.courseBrowserPage) { // need either one or two swipe-downs to effect a refresh. We'll go with two to cover // our bases. onView(allOf(withId(R.id.swipeRefreshLayout), isDisplayed())) - .perform(withCustomConstraints(ViewActions.swipeDown(), isDisplayingAtLeast(5))) - .perform(withCustomConstraints(ViewActions.swipeDown(), isDisplayingAtLeast(5))) + .perform(actionWithCustomConstraints(ViewActions.swipeDown(), isDisplayingAtLeast(5))) + .perform(actionWithCustomConstraints(ViewActions.swipeDown(), isDisplayingAtLeast(5))) } // When the toolbar is maximized, you can't do any operations with the recyclerView diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/DashboardPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/DashboardPage.kt index de89ebf3fd..3c72d81a04 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/DashboardPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/DashboardPage.kt @@ -37,9 +37,9 @@ import androidx.test.espresso.matcher.ViewMatchers.withContentDescription import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.platform.app.InstrumentationRegistry -import com.instructure.canvas.espresso.scrollRecyclerView -import com.instructure.canvas.espresso.waitForViewToDisappear -import com.instructure.canvas.espresso.withCustomConstraints +import com.instructure.canvas.espresso.utils.actionWithCustomConstraints +import com.instructure.canvas.espresso.utils.scrollRecyclerView +import com.instructure.canvas.espresso.utils.waitForViewToDisappear import com.instructure.canvasapi2.models.AccountNotification import com.instructure.canvasapi2.models.Course import com.instructure.canvasapi2.models.Group @@ -216,12 +216,12 @@ class DashboardPage : BasePage(R.id.dashboardPage) { fun selectCourse(course: Course) { assertDisplaysCourse(course) - onView(withId(R.id.titleTextView) + withText(course.originalName)).perform(withCustomConstraints(click(), isDisplayingAtLeast(10))) + onView(withId(R.id.titleTextView) + withText(course.originalName)).perform(actionWithCustomConstraints(click(), isDisplayingAtLeast(10))) } fun selectCourse(courseName: String) { assertDisplaysCourse(courseName) - onView(withId(R.id.titleTextView) + withText(courseName)).perform(withCustomConstraints(click(), isDisplayingAtLeast(10))) + onView(withId(R.id.titleTextView) + withText(courseName)).perform(actionWithCustomConstraints(click(), isDisplayingAtLeast(10))) } fun selectGroup(group: Group) { diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/DiscussionListPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/DiscussionListPage.kt index 159d39ea88..ff398d184e 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/DiscussionListPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/DiscussionListPage.kt @@ -23,8 +23,8 @@ import androidx.test.espresso.matcher.ViewMatchers.withContentDescription import androidx.test.espresso.matcher.ViewMatchers.withParent import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.platform.app.InstrumentationRegistry -import com.instructure.canvas.espresso.scrollRecyclerView -import com.instructure.canvas.espresso.waitForMatcherWithRefreshes +import com.instructure.canvas.espresso.utils.scrollRecyclerView +import com.instructure.canvas.espresso.utils.waitForMatcherWithRefreshes import com.instructure.canvasapi2.models.DiscussionTopicHeader import com.instructure.espresso.DoesNotExistAssertion import com.instructure.espresso.OnViewWithId diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/FileListPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/FileListPage.kt index ccd1da8500..2e125a5a9a 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/FileListPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/FileListPage.kt @@ -28,9 +28,9 @@ import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.isDisplayingAtLeast import androidx.test.espresso.matcher.ViewMatchers.withChild import androidx.test.espresso.matcher.ViewMatchers.withText -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.scrollRecyclerView -import com.instructure.canvas.espresso.withCustomConstraints +import com.instructure.canvas.espresso.utils.actionWithCustomConstraints +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.espresso.OnViewWithId import com.instructure.espresso.Searchable import com.instructure.espresso.assertDisplayed @@ -102,7 +102,7 @@ class FileListPage(val searchable: Searchable) : BasePage(R.id.fileListPage) { // Doesn't worry about having scrolling to the top of the page first... fun refresh() { onView(allOf(withId(R.id.swipeRefreshLayout), isDisplayingAtLeast(50))) - .perform(withCustomConstraints(swipeDown(), isDisplayingAtLeast(10))) + .perform(actionWithCustomConstraints(swipeDown(), isDisplayingAtLeast(10))) } fun openOptionMenuFor(itemName: String) { diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/HelpPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/HelpPage.kt index 3913699b3f..3e4b405ca1 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/HelpPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/HelpPage.kt @@ -26,8 +26,8 @@ import androidx.test.espresso.matcher.ViewMatchers.isDisplayingAtLeast import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText import com.instructure.canvas.espresso.StringConstants.HelpMenu -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.withCustomConstraints +import com.instructure.canvas.espresso.utils.actionWithCustomConstraints +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive import com.instructure.canvasapi2.models.Course import com.instructure.dataseeding.model.CourseApiModel import com.instructure.espresso.OnViewWithStringTextIgnoreCase @@ -55,7 +55,7 @@ class HelpPage : BasePage(R.id.helpDialog) { fun assertAskYourInstructorDialogDetails(course: Course, question: String) { askInstructorLabel.scrollTo().click() waitForView(withText(course.name)).assertDisplayed() // Verify that our course is selected in the spinner - onView(withId(R.id.message)).scrollTo().perform(withCustomConstraints(typeText(question), isDisplayingAtLeast(1))) + onView(withId(R.id.message)).scrollTo().perform(actionWithCustomConstraints(typeText(question), isDisplayingAtLeast(1))) Espresso.closeSoftKeyboard() // Let's just make sure that the "Send" button is displayed, rather than actually pressing it onView(containsTextCaseInsensitive("Send")).assertDisplayed() @@ -64,7 +64,7 @@ class HelpPage : BasePage(R.id.helpDialog) { private fun assertAskYourInstructorDialogDetails(course: CourseApiModel, question: String) { askInstructorLabel.scrollTo().click() waitForView(withText(course.name)).assertDisplayed() // Verify that our course is selected in the spinner - onView(withId(R.id.message)).scrollTo().perform(withCustomConstraints(typeText(question), isDisplayingAtLeast(1))) + onView(withId(R.id.message)).scrollTo().perform(actionWithCustomConstraints(typeText(question), isDisplayingAtLeast(1))) Espresso.closeSoftKeyboard() // Let's just make sure that the "Send" button is displayed, rather than actually pressing it onView(containsTextCaseInsensitive("Send")).assertDisplayed() diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/LeftSideNavigationDrawerPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/LeftSideNavigationDrawerPage.kt index 70745237d8..466e4300b0 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/LeftSideNavigationDrawerPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/LeftSideNavigationDrawerPage.kt @@ -9,7 +9,7 @@ import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.withText import com.instructure.canvas.espresso.CanvasTest -import com.instructure.canvas.espresso.waitForMatcherWithSleeps +import com.instructure.canvas.espresso.utils.waitForMatcherWithSleeps import com.instructure.canvasapi2.models.User import com.instructure.dataseeding.model.CanvasUserApiModel import com.instructure.espresso.OnViewWithContentDescription diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/ModulesPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/ModulesPage.kt index 3a2f540655..0176440bc4 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/ModulesPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/ModulesPage.kt @@ -26,9 +26,9 @@ import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.isDisplayingAtLeast import androidx.test.espresso.matcher.ViewMatchers.withChild import androidx.test.espresso.matcher.ViewMatchers.withText -import com.instructure.canvas.espresso.ImageViewDrawableMatcher -import com.instructure.canvas.espresso.scrollRecyclerView -import com.instructure.canvas.espresso.withCustomConstraints +import com.instructure.canvas.espresso.utils.ImageViewDrawableMatcher +import com.instructure.canvas.espresso.utils.actionWithCustomConstraints +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.canvasapi2.models.Assignment import com.instructure.canvasapi2.models.Course import com.instructure.canvasapi2.models.ModuleObject @@ -183,7 +183,7 @@ class ModulesPage : BasePage(R.id.modulesPage) { } fun refresh() { - onView(allOf(withId(R.id.swipeRefreshLayout), isDisplayed())).perform(withCustomConstraints(swipeDown(), isDisplayingAtLeast(5))) + onView(allOf(withId(R.id.swipeRefreshLayout), isDisplayed())).perform(actionWithCustomConstraints(swipeDown(), isDisplayingAtLeast(5))) } fun clickOnModuleExpandCollapseIcon(moduleName: String) { diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/NotificationPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/NotificationPage.kt index b201a65456..c240353169 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/NotificationPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/NotificationPage.kt @@ -20,9 +20,9 @@ import androidx.test.espresso.Espresso.onView import androidx.test.espresso.NoMatchingViewException import androidx.test.espresso.assertion.ViewAssertions.doesNotExist import androidx.test.espresso.matcher.ViewMatchers.hasSibling -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.refresh -import com.instructure.canvas.espresso.scrollRecyclerView +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.refresh +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.espresso.RecyclerViewItemCountGreaterThanAssertion import com.instructure.espresso.assertDisplayed import com.instructure.espresso.click diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PageListPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PageListPage.kt index 0424bc4619..d33a9e5ab3 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PageListPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PageListPage.kt @@ -20,7 +20,7 @@ import android.view.View import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.hasSibling import androidx.test.espresso.matcher.ViewMatchers.withText -import com.instructure.canvas.espresso.scrollRecyclerView +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.canvasapi2.models.Page import com.instructure.dataseeding.model.PageApiModel import com.instructure.espresso.DoesNotExistAssertion diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PairObserverPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PairObserverPage.kt index d692cd4016..1a6313f582 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PairObserverPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PairObserverPage.kt @@ -18,8 +18,8 @@ package com.instructure.student.ui.pages.classic import androidx.test.espresso.assertion.ViewAssertions import androidx.test.espresso.matcher.ViewMatchers -import com.instructure.canvas.espresso.getText -import com.instructure.canvas.espresso.matchToolbarText +import com.instructure.canvas.espresso.utils.getText +import com.instructure.canvas.espresso.utils.matchToolbarText import com.instructure.espresso.OnViewWithId import com.instructure.espresso.WaitForViewWithId import com.instructure.espresso.assertDisplayed diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PandaAvatarPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PandaAvatarPage.kt index 235df4a65d..d777dc428e 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PandaAvatarPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PandaAvatarPage.kt @@ -2,7 +2,7 @@ package com.instructure.student.ui.pages.classic import androidx.test.espresso.matcher.ViewMatchers.withContentDescription import androidx.test.espresso.matcher.ViewMatchers.withText -import com.instructure.canvas.espresso.stringContainsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.stringContainsTextCaseInsensitive import com.instructure.espresso.click import com.instructure.espresso.page.BasePage import com.instructure.espresso.page.onView diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PeopleListPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PeopleListPage.kt index f8814d9c37..0648a5d49c 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PeopleListPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/PeopleListPage.kt @@ -23,7 +23,7 @@ import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.hasDescendant import androidx.test.espresso.matcher.ViewMatchers.hasSibling import androidx.test.espresso.matcher.ViewMatchers.isDisplayed -import com.instructure.canvas.espresso.getViewChildCountWithoutId +import com.instructure.canvas.espresso.utils.getViewChildCountWithoutId import com.instructure.canvasapi2.models.User import com.instructure.dataseeding.model.CanvasUserApiModel import com.instructure.espresso.OnViewWithId diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/ProfileSettingsPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/ProfileSettingsPage.kt index 750c32bd45..a4e9a7499d 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/ProfileSettingsPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/ProfileSettingsPage.kt @@ -8,7 +8,7 @@ import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.ViewMatchers.isEnabled import androidx.test.espresso.matcher.ViewMatchers.withId import com.instructure.canvas.espresso.CanvasTest -import com.instructure.canvas.espresso.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive import com.instructure.espresso.OnViewWithId import com.instructure.espresso.click import com.instructure.espresso.page.BasePage diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/QuizListPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/QuizListPage.kt index bbe2201c8b..55f7ad2a18 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/QuizListPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/QuizListPage.kt @@ -23,8 +23,8 @@ import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.isDisplayingAtLeast import androidx.test.espresso.matcher.ViewMatchers.withText -import com.instructure.canvas.espresso.scrollRecyclerView -import com.instructure.canvas.espresso.withCustomConstraints +import com.instructure.canvas.espresso.utils.actionWithCustomConstraints +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.canvasapi2.models.Quiz import com.instructure.dataseeding.model.QuizApiModel import com.instructure.espresso.RecyclerViewItemCountAssertion @@ -93,7 +93,7 @@ class QuizListPage(val searchable: Searchable) : BasePage(R.id.quizListPage) { fun refresh() { onView(allOf(withId(R.id.swipeRefreshLayout), isDisplayed())) - .perform(withCustomConstraints(swipeDown(), isDisplayingAtLeast(10))) + .perform(actionWithCustomConstraints(swipeDown(), isDisplayingAtLeast(10))) } fun assertPointsDisplayed(points: String?) { diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/RemoteConfigSettingsPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/RemoteConfigSettingsPage.kt index 73ea2f4b18..3430b842ef 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/RemoteConfigSettingsPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/RemoteConfigSettingsPage.kt @@ -21,9 +21,9 @@ import android.widget.EditText import androidx.test.espresso.Espresso.onView import androidx.test.espresso.assertion.ViewAssertions import androidx.test.espresso.matcher.ViewMatchers -import com.instructure.canvas.espresso.clearFocus -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.scrollRecyclerView +import com.instructure.canvas.espresso.utils.clearFocus +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.canvasapi2.utils.RemoteConfigParam import com.instructure.espresso.click import com.instructure.espresso.page.BasePage diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/StudentAssignmentDetailsPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/StudentAssignmentDetailsPage.kt index a84e6f8708..e5e5816906 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/StudentAssignmentDetailsPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/StudentAssignmentDetailsPage.kt @@ -27,7 +27,7 @@ import androidx.test.espresso.action.ViewActions import androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom import com.instructure.canvas.espresso.CanvasTest import com.instructure.canvas.espresso.common.pages.AssignmentDetailsPage -import com.instructure.canvas.espresso.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive import com.instructure.dataseeding.model.SubmissionType import com.instructure.espresso.ModuleItemInteractions import com.instructure.espresso.assertDisplayed diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/SubmissionDetailsPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/SubmissionDetailsPage.kt index fbf83aa826..4921f25378 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/SubmissionDetailsPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/SubmissionDetailsPage.kt @@ -38,10 +38,10 @@ import androidx.test.espresso.web.sugar.Web.onWebView import androidx.test.espresso.web.webdriver.DriverAtoms.findElement import androidx.test.espresso.web.webdriver.DriverAtoms.getText import androidx.test.espresso.web.webdriver.Locator -import com.instructure.canvas.espresso.clickCoordinates -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.scrollRecyclerView -import com.instructure.canvas.espresso.withCustomConstraints +import com.instructure.canvas.espresso.utils.actionWithCustomConstraints +import com.instructure.canvas.espresso.utils.clickCoordinates +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.canvasapi2.models.User import com.instructure.dataseeding.model.CanvasUserApiModel import com.instructure.dataseeding.model.RubricCriterion @@ -232,7 +232,7 @@ open class SubmissionDetailsPage : BasePage(R.id.submissionDetails) { if(click) { //onView(commentMatcher).click() onView(allOf(withId(R.id.attachmentNameTextView), withText(fileName))) - .perform(withCustomConstraints(click(), isDisplayingAtLeast(5))) + .perform(actionWithCustomConstraints(click(), isDisplayingAtLeast(5))) } } diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/SyllabusPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/SyllabusPage.kt index 7fc11742d9..7500c55fc0 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/SyllabusPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/SyllabusPage.kt @@ -24,9 +24,9 @@ import androidx.test.espresso.web.assertion.WebViewAssertions import androidx.test.espresso.web.sugar.Web import androidx.test.espresso.web.webdriver.DriverAtoms import androidx.test.espresso.web.webdriver.Locator -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.matchToolbarText -import com.instructure.canvas.espresso.scrollRecyclerView +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.matchToolbarText +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.espresso.assertDisplayed import com.instructure.espresso.click import com.instructure.espresso.page.BasePage diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/k5/ImportantDatesPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/k5/ImportantDatesPage.kt index 6a7e466a4c..444065deaa 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/k5/ImportantDatesPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/k5/ImportantDatesPage.kt @@ -21,7 +21,7 @@ import androidx.test.espresso.NoMatchingViewException import androidx.test.espresso.assertion.ViewAssertions import androidx.test.espresso.contrib.RecyclerViewActions import androidx.test.espresso.matcher.ViewMatchers -import com.instructure.canvas.espresso.countConstraintLayoutsInRecyclerView +import com.instructure.canvas.espresso.utils.countConstraintLayoutsInRecyclerView import com.instructure.espresso.OnViewWithId import com.instructure.espresso.assertDisplayed import com.instructure.espresso.assertHasChild diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/ManageOfflineContentPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/ManageOfflineContentPage.kt index e54b83838d..a0f162c6e5 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/ManageOfflineContentPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/ManageOfflineContentPage.kt @@ -24,9 +24,9 @@ import androidx.test.espresso.matcher.ViewMatchers.Visibility import androidx.test.espresso.matcher.ViewMatchers.hasDescendant import androidx.test.espresso.matcher.ViewMatchers.hasSibling import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.hasCheckedState -import com.instructure.canvas.espresso.withRotation +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.hasCheckedState +import com.instructure.canvas.espresso.utils.withRotation import com.instructure.espresso.ConstraintLayoutItemCountAssertion import com.instructure.espresso.ConstraintLayoutItemCountAssertionWithMatcher import com.instructure.espresso.DoesNotExistAssertion diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/NativeDiscussionDetailsPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/NativeDiscussionDetailsPage.kt index ee17271db8..f5781ea21f 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/NativeDiscussionDetailsPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/NativeDiscussionDetailsPage.kt @@ -29,10 +29,10 @@ import androidx.test.espresso.web.webdriver.DriverAtoms.findElement import androidx.test.espresso.web.webdriver.DriverAtoms.getText import androidx.test.espresso.web.webdriver.DriverAtoms.webClick import androidx.test.espresso.web.webdriver.Locator -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.isElementDisplayed -import com.instructure.canvas.espresso.waitForMatcherWithSleeps -import com.instructure.canvas.espresso.withCustomConstraints +import com.instructure.canvas.espresso.utils.actionWithCustomConstraints +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.isElementDisplayed +import com.instructure.canvas.espresso.utils.waitForMatcherWithSleeps import com.instructure.canvas.espresso.withElementRepeat import com.instructure.canvasapi2.models.DiscussionEntry import com.instructure.canvasapi2.models.DiscussionTopicHeader @@ -86,7 +86,7 @@ class NativeDiscussionDetailsPage(val moduleItemInteractions: ModuleItemInteract fun refresh() { scrollToTop() onView(allOf(withId(R.id.swipeRefreshLayout), isDisplayingAtLeast(10))) - .perform(withCustomConstraints(swipeDown(), isDisplayingAtLeast(10))) + .perform(actionWithCustomConstraints(swipeDown(), isDisplayingAtLeast(10))) } fun scrollToRepliesWebview() { @@ -348,6 +348,6 @@ class NativeDiscussionDetailsPage(val moduleItemInteractions: ModuleItemInteract private fun scrollToTop() { onView(allOf(withId(R.id.swipeRefreshLayout), isDisplayingAtLeast(10))) - .perform(withCustomConstraints(swipeDown(), isDisplayingAtLeast(10))) + .perform(actionWithCustomConstraints(swipeDown(), isDisplayingAtLeast(10))) } } diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/SyncProgressPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/SyncProgressPage.kt index 35e251c694..5b34077de8 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/SyncProgressPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/classic/offline/SyncProgressPage.kt @@ -20,8 +20,8 @@ package com.instructure.student.ui.pages.classic.offline import android.widget.TextView import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.hasSibling -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.getView +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.getView import com.instructure.espresso.OnViewWithId import com.instructure.espresso.assertContainsText import com.instructure.espresso.assertDisplayed diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/compose/TextSubmissionUploadPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/compose/TextSubmissionUploadPage.kt index a7f389471c..5663e3288b 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/pages/compose/TextSubmissionUploadPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/pages/compose/TextSubmissionUploadPage.kt @@ -17,8 +17,8 @@ package com.instructure.student.ui.pages.compose import androidx.compose.ui.test.junit4.ComposeTestRule -import com.instructure.canvas.espresso.TypeInRCETextEditor -import com.instructure.canvas.espresso.explicitClick +import com.instructure.canvas.espresso.utils.TypeInRCETextEditor +import com.instructure.canvas.espresso.utils.explicitClick import com.instructure.composetest.clickToolbarIconButton import com.instructure.espresso.OnViewWithId import com.instructure.espresso.OnViewWithText diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/SubmissionRubricRenderTest.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/SubmissionRubricRenderTest.kt index e9c3e63113..96887e33d3 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/SubmissionRubricRenderTest.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/SubmissionRubricRenderTest.kt @@ -22,7 +22,7 @@ import androidx.test.espresso.matcher.RootMatchers import androidx.test.espresso.matcher.ViewMatchers.hasChildCount import androidx.test.espresso.matcher.ViewMatchers.isSelected import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.instructure.canvas.espresso.assertFontSizeSP +import com.instructure.canvas.espresso.utils.assertFontSizeSP import com.instructure.canvasapi2.models.Assignment import com.instructure.canvasapi2.models.RubricCriterion import com.instructure.canvasapi2.models.RubricCriterionRating diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/ConferenceDetailsRenderPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/ConferenceDetailsRenderPage.kt index 4a58351281..6ad7cb93ae 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/ConferenceDetailsRenderPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/ConferenceDetailsRenderPage.kt @@ -18,7 +18,7 @@ package com.instructure.student.ui.rendertests.renderpages import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.ViewMatchers.withAlpha -import com.instructure.canvas.espresso.assertIsRefreshing +import com.instructure.canvas.espresso.utils.assertIsRefreshing import com.instructure.espresso.OnViewWithId import com.instructure.espresso.assertDisplayed import com.instructure.espresso.assertGone diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/ConferenceListRenderPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/ConferenceListRenderPage.kt index afe553df23..403a323975 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/ConferenceListRenderPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/ConferenceListRenderPage.kt @@ -17,8 +17,8 @@ package com.instructure.student.ui.rendertests.renderpages import androidx.test.espresso.assertion.ViewAssertions.doesNotExist -import com.instructure.canvas.espresso.assertIsRefreshing -import com.instructure.canvas.espresso.scrollRecyclerView +import com.instructure.canvas.espresso.utils.assertIsRefreshing +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.espresso.OnViewWithId import com.instructure.espresso.assertDisplayed import com.instructure.espresso.assertGone diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/PairObserverRenderPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/PairObserverRenderPage.kt index c08fb787ce..64a52656dd 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/PairObserverRenderPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/PairObserverRenderPage.kt @@ -16,7 +16,7 @@ */ package com.instructure.student.ui.rendertests.renderpages -import com.instructure.canvas.espresso.waitForMatcherWithSleeps +import com.instructure.canvas.espresso.utils.waitForMatcherWithSleeps import com.instructure.espresso.OnViewWithId import com.instructure.espresso.assertDisplayed import com.instructure.espresso.assertGone diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/SubmissionCommentsRenderPage.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/SubmissionCommentsRenderPage.kt index bca33cea82..0e2f6f62be 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/SubmissionCommentsRenderPage.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/rendertests/renderpages/SubmissionCommentsRenderPage.kt @@ -23,8 +23,8 @@ import androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText -import com.instructure.canvas.espresso.DirectlyPopulateEditText -import com.instructure.canvas.espresso.scrollRecyclerView +import com.instructure.canvas.espresso.utils.DirectlyPopulateEditText +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.canvasapi2.utils.Pronouns import com.instructure.espresso.OnViewWithId import com.instructure.espresso.assertDisplayed diff --git a/apps/student/src/androidTest/java/com/instructure/student/ui/utils/extensions/StudentTestExtensions.kt b/apps/student/src/androidTest/java/com/instructure/student/ui/utils/extensions/StudentTestExtensions.kt index 881050f439..7aa6f0d5dd 100644 --- a/apps/student/src/androidTest/java/com/instructure/student/ui/utils/extensions/StudentTestExtensions.kt +++ b/apps/student/src/androidTest/java/com/instructure/student/ui/utils/extensions/StudentTestExtensions.kt @@ -24,14 +24,12 @@ import android.net.Uri import android.os.Environment import androidx.fragment.app.FragmentActivity import androidx.test.espresso.Espresso -import androidx.test.espresso.assertion.ViewAssertions import androidx.test.espresso.assertion.ViewAssertions.matches -import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.platform.app.InstrumentationRegistry import com.instructure.canvas.espresso.CanvasTest -import com.instructure.canvas.espresso.waitForMatcherWithSleeps +import com.instructure.canvas.espresso.utils.waitForMatcherWithSleeps import com.instructure.canvasapi2.models.User import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.CoursesApi @@ -210,9 +208,9 @@ fun CanvasTest.tokenLogin(domain: String, token: String, user: User) { } // Sometimes, especially on slow FTL emulators, it can take a bit for the dashboard to show // up after a token login. Add some tolerance for that. - waitForMatcherWithSleeps(ViewMatchers.withId(R.id.dashboardPage), 20000).check( - ViewAssertions.matches( - ViewMatchers.isDisplayed() + waitForMatcherWithSleeps(withId(R.id.dashboardPage), 20000).check( + matches( + isDisplayed() ) ) } diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/CourseSettingsE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/CourseSettingsE2ETest.kt index fe902958b3..f9c62a23ab 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/CourseSettingsE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/CourseSettingsE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.PagesApi import com.instructure.teacher.ui.utils.TeacherTest import com.instructure.teacher.ui.utils.extensions.seedData diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/DiscussionsE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/DiscussionsE2ETest.kt index 57aa73617e..ad0f9e7394 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/DiscussionsE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/DiscussionsE2ETest.kt @@ -24,7 +24,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.dataseeding.api.DiscussionTopicsApi import com.instructure.espresso.getCustomDateCalendar import com.instructure.teacher.ui.utils.TeacherComposeTest diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/FilesE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/FilesE2ETest.kt index 0e6e422a88..017fe41694 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/FilesE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/FilesE2ETest.kt @@ -31,7 +31,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.canvasapi2.managers.DiscussionManager import com.instructure.canvasapi2.models.CanvasContext import com.instructure.canvasapi2.utils.weave.awaitApiResponse diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/HelpMenuE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/HelpMenuE2ETest.kt index ab06c7897f..fc29dd5e61 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/HelpMenuE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/HelpMenuE2ETest.kt @@ -25,7 +25,7 @@ import com.instructure.canvas.espresso.StringConstants.HelpMenu import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.checkToastText +import com.instructure.canvas.espresso.utils.checkToastText import com.instructure.teacher.R import com.instructure.teacher.ui.utils.TeacherTest import com.instructure.teacher.ui.utils.extensions.seedData diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/LoginE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/LoginE2ETest.kt index 008090edc2..7bb77b66a1 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/LoginE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/LoginE2ETest.kt @@ -28,7 +28,7 @@ import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E import com.instructure.canvas.espresso.annotations.Stub -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.canvasapi2.utils.ApiPrefs import com.instructure.dataseeding.api.SeedApi import com.instructure.dataseeding.api.UserApi diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/PeopleE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/PeopleE2ETest.kt index 90b94db5ec..a9f712333a 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/PeopleE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/PeopleE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.dataseeding.api.GroupsApi import com.instructure.dataseeding.api.SubmissionsApi import com.instructure.dataseeding.model.SubmissionType diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/QuizE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/QuizE2ETest.kt index 18c6f89f08..6ce29caa54 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/QuizE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/QuizE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.util.days import com.instructure.dataseeding.util.fromNow import com.instructure.dataseeding.util.iso8601 diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/SettingsE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/SettingsE2ETest.kt index a63fd69d55..a56d4b74f8 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/SettingsE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/SettingsE2ETest.kt @@ -26,8 +26,8 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.checkToastText -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.checkToastText +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.canvasapi2.utils.RemoteConfigParam import com.instructure.canvasapi2.utils.RemoteConfigUtils import com.instructure.dataseeding.api.ConversationsApi diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/TodoE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/TodoE2ETest.kt index 5cec37a8e2..3564023c5b 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/TodoE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/classic/TodoE2ETest.kt @@ -17,17 +17,17 @@ package com.instructure.teacher.ui.e2e.classic import android.util.Log -import com.instructure.canvas.espresso.annotations.E2E import com.instructure.canvas.espresso.FeatureCategory import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData +import com.instructure.canvas.espresso.annotations.E2E +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.dataseeding.api.SubmissionsApi import com.instructure.dataseeding.model.SubmissionType import com.instructure.dataseeding.util.days import com.instructure.dataseeding.util.fromNow import com.instructure.dataseeding.util.iso8601 -import com.instructure.canvas.espresso.pressBackButton import com.instructure.teacher.ui.utils.TeacherTest import com.instructure.teacher.ui.utils.extensions.seedAssignmentSubmission import com.instructure.teacher.ui.utils.extensions.seedAssignments diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/AssignmentE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/AssignmentE2ETest.kt index 61aede1098..0236863495 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/AssignmentE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/AssignmentE2ETest.kt @@ -28,7 +28,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.FileUploadsApi import com.instructure.dataseeding.api.SectionsApi diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/CalendarE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/CalendarE2ETest.kt index 9c6a40d819..dd5bf37673 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/CalendarE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/CalendarE2ETest.kt @@ -23,7 +23,7 @@ import com.instructure.canvas.espresso.SecondaryFeatureCategory import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.checkToastText +import com.instructure.canvas.espresso.utils.checkToastText import com.instructure.dataseeding.util.days import com.instructure.dataseeding.util.fromNow import com.instructure.espresso.getDateInCanvasCalendarFormat diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/CustomStatusesE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/CustomStatusesE2ETest.kt index e66e78c29e..4476447de8 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/CustomStatusesE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/CustomStatusesE2ETest.kt @@ -6,7 +6,7 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton +import com.instructure.canvas.espresso.utils.pressBackButton import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.CustomStatusApi import com.instructure.dataseeding.api.DifferentiationTagsApi diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/InboxE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/InboxE2ETest.kt index 7bc32ffde6..ccee5a3cb4 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/InboxE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/InboxE2ETest.kt @@ -31,8 +31,8 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.pressBackButton +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.ConversationsApi import com.instructure.dataseeding.api.GroupsApi import com.instructure.dataseeding.model.CanvasUserApiModel diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/SpeedGraderE2ETest.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/SpeedGraderE2ETest.kt index 522a5b84af..0272312f7a 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/SpeedGraderE2ETest.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/e2e/compose/SpeedGraderE2ETest.kt @@ -23,8 +23,8 @@ import com.instructure.canvas.espresso.Priority import com.instructure.canvas.espresso.TestCategory import com.instructure.canvas.espresso.TestMetaData import com.instructure.canvas.espresso.annotations.E2E -import com.instructure.canvas.espresso.pressBackButton -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.pressBackButton +import com.instructure.canvas.espresso.utils.refresh import com.instructure.dataseeding.api.LatePolicyApi import com.instructure.dataseeding.api.SubmissionsApi import com.instructure.dataseeding.model.LatePolicy diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/AssigneeListPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/AssigneeListPage.kt index e8f754dbdd..7f826618e2 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/AssigneeListPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/AssigneeListPage.kt @@ -24,7 +24,7 @@ import androidx.test.espresso.contrib.RecyclerViewActions.scrollToHolder import androidx.test.espresso.matcher.BoundedMatcher import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText -import com.instructure.canvas.espresso.scrollRecyclerView +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.espresso.OnViewWithContentDescription import com.instructure.espresso.OnViewWithId import com.instructure.espresso.OnViewWithText diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/CourseBrowserPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/CourseBrowserPage.kt index f9e3b19bdd..6b3f2034a2 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/CourseBrowserPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/CourseBrowserPage.kt @@ -25,7 +25,7 @@ import androidx.test.espresso.assertion.ViewAssertions import androidx.test.espresso.contrib.RecyclerViewActions.scrollToPosition import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.isDisplayingAtLeast -import com.instructure.canvas.espresso.withCustomConstraints +import com.instructure.canvas.espresso.utils.actionWithCustomConstraints import com.instructure.espresso.OnViewWithId import com.instructure.espresso.TextViewColorAssertion import com.instructure.espresso.WaitForViewWithId @@ -167,12 +167,12 @@ class CourseBrowserPage : BasePage() { private fun scrollOpen(textName: String, scrollPosition: Int) { try { - waitForViewWithText(textName).perform(withCustomConstraints(click(), isDisplayingAtLeast(50))) + waitForViewWithText(textName).perform(actionWithCustomConstraints(click(), isDisplayingAtLeast(50))) } catch (e: Exception) { when(e) { is NoMatchingViewException, is PerformException -> { scrollDownToCourseBrowser(scrollPosition) - waitForViewWithText(textName).perform(withCustomConstraints(click(), isDisplayingAtLeast(50))) + waitForViewWithText(textName).perform(actionWithCustomConstraints(click(), isDisplayingAtLeast(50))) } else -> throw e } diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/CourseSettingsPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/CourseSettingsPage.kt index 2d1fef16b3..367625a472 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/CourseSettingsPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/CourseSettingsPage.kt @@ -18,8 +18,8 @@ package com.instructure.teacher.ui.pages.classic import androidx.test.espresso.Espresso.onView import androidx.test.espresso.assertion.ViewAssertions.matches -import com.instructure.canvas.espresso.checked -import com.instructure.canvas.espresso.matchToolbarText +import com.instructure.canvas.espresso.utils.isRadioButtonChecked +import com.instructure.canvas.espresso.utils.matchToolbarText import com.instructure.espresso.OnViewWithId import com.instructure.espresso.assertDisabled import com.instructure.espresso.assertEnabled @@ -87,7 +87,7 @@ class CourseSettingsPage : BasePage() { fun selectNewHomePage(): String { var newHomePageString = "" val unselectedRadioButton = - onView(checked(false) { newHomePageString = it }) + onView(isRadioButtonChecked(false) { newHomePageString = it }) val dialogOkButton = onViewWithText(android.R.string.ok) unselectedRadioButton.click() dialogOkButton.click() diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditAssignmentDetailsPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditAssignmentDetailsPage.kt index 686284c2b3..f2ccc6a553 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditAssignmentDetailsPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditAssignmentDetailsPage.kt @@ -23,9 +23,9 @@ import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.contrib.PickerActions import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility -import com.instructure.canvas.espresso.has -import com.instructure.canvas.espresso.hasTextInputLayoutErrorText -import com.instructure.canvas.espresso.withIndex +import com.instructure.canvas.espresso.utils.has +import com.instructure.canvas.espresso.utils.hasTextInputLayoutErrorText +import com.instructure.canvas.espresso.utils.withIndex import com.instructure.canvasapi2.utils.DateHelper import com.instructure.espresso.OnViewWithId import com.instructure.espresso.WaitForViewWithId diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditPageDetailsPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditPageDetailsPage.kt index 126611630d..ea2dcaa2e2 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditPageDetailsPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditPageDetailsPage.kt @@ -7,7 +7,7 @@ import androidx.test.espresso.web.sugar.Web.onWebView import androidx.test.espresso.web.webdriver.DriverAtoms.findElement import androidx.test.espresso.web.webdriver.DriverAtoms.getText import androidx.test.espresso.web.webdriver.Locator -import com.instructure.canvas.espresso.checkToastText +import com.instructure.canvas.espresso.utils.checkToastText import com.instructure.canvas.espresso.withElementRepeat import com.instructure.dataseeding.model.PageApiModel import com.instructure.espresso.ActivityHelper diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditQuizDetailsPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditQuizDetailsPage.kt index 3ca19651cb..dd27e90a39 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditQuizDetailsPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditQuizDetailsPage.kt @@ -25,9 +25,9 @@ import androidx.test.espresso.contrib.PickerActions import androidx.test.espresso.matcher.ViewMatchers.Visibility import androidx.test.espresso.matcher.ViewMatchers.withContentDescription import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility -import com.instructure.canvas.espresso.has -import com.instructure.canvas.espresso.hasTextInputLayoutErrorText -import com.instructure.canvas.espresso.withIndex +import com.instructure.canvas.espresso.utils.has +import com.instructure.canvas.espresso.utils.hasTextInputLayoutErrorText +import com.instructure.canvas.espresso.utils.withIndex import com.instructure.canvasapi2.utils.DateHelper import com.instructure.espresso.ClickUntilMethod import com.instructure.espresso.OnViewWithId diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditSyllabusPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditSyllabusPage.kt index 67203f5c21..b7eff413fa 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditSyllabusPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/EditSyllabusPage.kt @@ -18,7 +18,7 @@ package com.instructure.teacher.ui.pages.classic import androidx.test.espresso.action.ViewActions.click import androidx.test.espresso.matcher.ViewMatchers.isDisplayingAtLeast -import com.instructure.canvas.espresso.withCustomConstraints +import com.instructure.canvas.espresso.utils.actionWithCustomConstraints import com.instructure.espresso.OnViewWithId import com.instructure.espresso.OnViewWithText import com.instructure.espresso.WaitForViewWithId @@ -81,6 +81,6 @@ class EditSyllabusPage : BasePage(R.id.editSyllabusPage) { */ fun editSyllabusToggleShowSummary() { editSyllabusShowCourseSummaryLabel.scrollTo() - onView(withId(R.id.showSummarySwitch)).perform(withCustomConstraints(click(), isDisplayingAtLeast(50))) + onView(withId(R.id.showSummarySwitch)).perform(actionWithCustomConstraints(click(), isDisplayingAtLeast(50))) } } diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/FileListPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/FileListPage.kt index 475e1925f0..5931b08bcf 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/FileListPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/FileListPage.kt @@ -28,9 +28,9 @@ import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.isDisplayingAtLeast import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.scrollRecyclerView -import com.instructure.canvas.espresso.withCustomConstraints +import com.instructure.canvas.espresso.utils.actionWithCustomConstraints +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.espresso.OnViewWithId import com.instructure.espresso.Searchable import com.instructure.espresso.assertDisplayed @@ -114,7 +114,7 @@ class FileListPage(val searchable: Searchable) : BasePage(R.id.fileListPage) { */ fun refresh() { onView(allOf(withId(R.id.swipeRefreshLayout), isDisplayingAtLeast(50))) - .perform(withCustomConstraints(swipeDown(), isDisplayingAtLeast(10))) + .perform(actionWithCustomConstraints(swipeDown(), isDisplayingAtLeast(10))) } /** diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/HelpPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/HelpPage.kt index ac7606f125..c0f9552fbc 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/HelpPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/HelpPage.kt @@ -24,7 +24,7 @@ import androidx.test.espresso.intent.matcher.IntentMatchers import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText import com.instructure.canvas.espresso.StringConstants.HelpMenu -import com.instructure.canvas.espresso.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive import com.instructure.espresso.OnViewWithStringTextIgnoreCase import com.instructure.espresso.OnViewWithText import com.instructure.espresso.assertDisplayed diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/LeftSideNavigationDrawerPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/LeftSideNavigationDrawerPage.kt index 6c0d83251a..6857e2e9c7 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/LeftSideNavigationDrawerPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/LeftSideNavigationDrawerPage.kt @@ -7,7 +7,7 @@ import androidx.test.espresso.UiController import androidx.test.espresso.ViewAction import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.ViewMatchers -import com.instructure.canvas.espresso.waitForMatcherWithSleeps +import com.instructure.canvas.espresso.utils.waitForMatcherWithSleeps import com.instructure.dataseeding.model.CanvasUserApiModel import com.instructure.espresso.OnViewWithContentDescription import com.instructure.espresso.OnViewWithId diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/ModulesPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/ModulesPage.kt index 77abf532fd..5814919e66 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/ModulesPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/ModulesPage.kt @@ -3,7 +3,7 @@ package com.instructure.teacher.ui.pages.classic import androidx.annotation.StringRes import androidx.test.espresso.matcher.ViewMatchers.hasSibling import androidx.test.espresso.matcher.ViewMatchers.withChild -import com.instructure.canvas.espresso.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive import com.instructure.espresso.RecyclerViewItemCountAssertion import com.instructure.espresso.ViewAlphaAssertion import com.instructure.espresso.assertDisplayed diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/PageListPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/PageListPage.kt index e9578656ae..56029ca89e 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/PageListPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/PageListPage.kt @@ -19,7 +19,7 @@ import android.view.View import androidx.test.espresso.Espresso import androidx.test.espresso.matcher.ViewMatchers.hasSibling import androidx.test.espresso.matcher.ViewMatchers.withContentDescription -import com.instructure.canvas.espresso.scrollRecyclerView +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.canvasapi2.models.Page import com.instructure.espresso.OnViewWithId import com.instructure.espresso.RecyclerViewItemCountAssertion diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/PersonContextPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/PersonContextPage.kt index dc4ced74c7..3a87bcd5b9 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/PersonContextPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/PersonContextPage.kt @@ -18,7 +18,7 @@ package com.instructure.teacher.ui.pages.classic import androidx.test.espresso.assertion.ViewAssertions.matches -import com.instructure.canvas.espresso.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive import com.instructure.dataseeding.model.CourseApiModel import com.instructure.espresso.WaitForViewWithId import com.instructure.espresso.assertContainsText diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/RemoteConfigSettingsPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/RemoteConfigSettingsPage.kt index c94595441f..cf9d3f03ac 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/RemoteConfigSettingsPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/RemoteConfigSettingsPage.kt @@ -21,9 +21,9 @@ import android.widget.EditText import androidx.test.espresso.Espresso.onView import androidx.test.espresso.assertion.ViewAssertions import androidx.test.espresso.matcher.ViewMatchers -import com.instructure.canvas.espresso.clearFocus -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.scrollRecyclerView +import com.instructure.canvas.espresso.utils.clearFocus +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.scrollRecyclerView import com.instructure.canvasapi2.utils.RemoteConfigParam import com.instructure.espresso.click import com.instructure.espresso.page.BasePage diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/SyllabusPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/SyllabusPage.kt index 5351c68628..d57be70dda 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/SyllabusPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/classic/SyllabusPage.kt @@ -23,11 +23,21 @@ import androidx.test.espresso.web.sugar.Web import androidx.test.espresso.web.webdriver.DriverAtoms.findElement import androidx.test.espresso.web.webdriver.DriverAtoms.getText import androidx.test.espresso.web.webdriver.Locator -import com.instructure.canvas.espresso.checkToastText -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.scrollRecyclerView -import com.instructure.espresso.* -import com.instructure.espresso.page.* +import com.instructure.canvas.espresso.utils.checkToastText +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.scrollRecyclerView +import com.instructure.espresso.OnViewWithId +import com.instructure.espresso.assertDisplayed +import com.instructure.espresso.assertNotDisplayed +import com.instructure.espresso.click +import com.instructure.espresso.page.BasePage +import com.instructure.espresso.page.onView +import com.instructure.espresso.page.onViewWithId +import com.instructure.espresso.page.plus +import com.instructure.espresso.page.waitForView +import com.instructure.espresso.page.withAncestor +import com.instructure.espresso.page.withId +import com.instructure.espresso.swipeDown import com.instructure.teacher.R import org.hamcrest.Matchers.allOf import org.hamcrest.Matchers.comparesEqualTo diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/compose/SpeedGraderPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/compose/SpeedGraderPage.kt index 1fec868ba4..cdbe72ed4e 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/compose/SpeedGraderPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/pages/compose/SpeedGraderPage.kt @@ -48,7 +48,7 @@ import androidx.test.espresso.web.sugar.Web.onWebView import androidx.test.espresso.web.webdriver.DriverAtoms.findElement import androidx.test.espresso.web.webdriver.DriverAtoms.getText import androidx.test.espresso.web.webdriver.Locator -import com.instructure.canvas.espresso.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive import com.instructure.canvasapi2.models.Submission import com.instructure.canvasapi2.models.User import com.instructure.composetest.hasTestTagThatContains diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/rendertests/renderpages/ModuleListRenderPage.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/rendertests/renderpages/ModuleListRenderPage.kt index d448abd6f3..4a3013849b 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/rendertests/renderpages/ModuleListRenderPage.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/rendertests/renderpages/ModuleListRenderPage.kt @@ -21,8 +21,8 @@ import androidx.test.espresso.action.ViewActions import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.contrib.RecyclerViewActions import androidx.test.espresso.matcher.ViewMatchers.withContentDescription -import com.instructure.canvas.espresso.SwipeRefreshLayoutMatchers -import com.instructure.canvas.espresso.ViewSizeMatcher +import com.instructure.canvas.espresso.utils.SwipeRefreshLayoutMatchers +import com.instructure.canvas.espresso.utils.ViewSizeMatcher import com.instructure.espresso.OnViewWithId import com.instructure.espresso.RecyclerViewItemCountAssertion import com.instructure.espresso.assertDisplayed diff --git a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/utils/extensions/TeacherTestExtensions.kt b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/utils/extensions/TeacherTestExtensions.kt index 9f3dca688f..ce3896fcfa 100644 --- a/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/utils/extensions/TeacherTestExtensions.kt +++ b/apps/teacher/src/androidTest/java/com/instructure/teacher/ui/utils/extensions/TeacherTestExtensions.kt @@ -27,7 +27,7 @@ import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.platform.app.InstrumentationRegistry import com.instructure.canvas.espresso.CanvasTest -import com.instructure.canvas.espresso.waitForMatcherWithSleeps +import com.instructure.canvas.espresso.utils.waitForMatcherWithSleeps import com.instructure.canvasapi2.models.User import com.instructure.dataseeding.api.AssignmentsApi import com.instructure.dataseeding.api.ConversationsApi diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/interaction/InboxListInteractionTest.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/interaction/InboxListInteractionTest.kt index 806f1af8c7..99e7b61a25 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/interaction/InboxListInteractionTest.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/interaction/InboxListInteractionTest.kt @@ -27,7 +27,7 @@ import com.instructure.canvas.espresso.mockcanvas.addConversation import com.instructure.canvas.espresso.mockcanvas.addConversations import com.instructure.canvas.espresso.mockcanvas.addConversationsToCourseMap import com.instructure.canvas.espresso.mockcanvas.createBasicConversation -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.canvasapi2.models.Conversation import com.instructure.canvasapi2.models.User import org.junit.Test diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/AssignmentDetailsPage.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/AssignmentDetailsPage.kt index dbd2f9b6b6..17c8ea7dd2 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/AssignmentDetailsPage.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/AssignmentDetailsPage.kt @@ -41,10 +41,10 @@ import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.isEnabled import androidx.test.espresso.matcher.ViewMatchers.withContentDescription import com.instructure.canvas.espresso.CanvasTest -import com.instructure.canvas.espresso.containsTextCaseInsensitive -import com.instructure.canvas.espresso.stringContainsTextCaseInsensitive -import com.instructure.canvas.espresso.waitForMatcherWithSleeps -import com.instructure.canvas.espresso.withResourceIdContaining +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.stringContainsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.waitForMatcherWithSleeps +import com.instructure.canvas.espresso.utils.withResourceIdContaining import com.instructure.canvasapi2.models.Assignment import com.instructure.dataseeding.model.AssignmentApiModel import com.instructure.espresso.ModuleItemInteractions diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/AssignmentReminderPage.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/AssignmentReminderPage.kt index 9867a17115..b55beb1507 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/AssignmentReminderPage.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/AssignmentReminderPage.kt @@ -43,7 +43,7 @@ import androidx.test.espresso.matcher.ViewMatchers.isRoot import androidx.test.espresso.matcher.ViewMatchers.withClassName import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText -import com.instructure.canvas.espresso.withIndex +import com.instructure.canvas.espresso.utils.withIndex import com.instructure.espresso.click import com.instructure.espresso.matchers.WaitForViewMatcher.waitForView import com.instructure.espresso.scrollTo diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/FileChooserPage.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/FileChooserPage.kt index 658940b56f..3c54dcf371 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/FileChooserPage.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/FileChooserPage.kt @@ -22,7 +22,7 @@ import androidx.test.espresso.assertion.ViewAssertions.doesNotExist import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.hasSibling import androidx.test.espresso.matcher.ViewMatchers.withChild -import com.instructure.canvas.espresso.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive import com.instructure.espresso.OnViewWithId import com.instructure.espresso.WaitForViewWithId import com.instructure.espresso.assertDisplayed diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/InboxPage.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/InboxPage.kt index 7b991c195e..5a1e01466e 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/InboxPage.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/InboxPage.kt @@ -26,9 +26,9 @@ import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.platform.app.InstrumentationRegistry -import com.instructure.canvas.espresso.refresh -import com.instructure.canvas.espresso.scrollRecyclerView -import com.instructure.canvas.espresso.waitForMatcherWithRefreshes +import com.instructure.canvas.espresso.utils.refresh +import com.instructure.canvas.espresso.utils.scrollRecyclerView +import com.instructure.canvas.espresso.utils.waitForMatcherWithRefreshes import com.instructure.canvasapi2.models.Conversation import com.instructure.canvasapi2.models.Course import com.instructure.espresso.OnViewWithId diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/LegalPage.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/LegalPage.kt index abf0a235ee..9fb5fbb27d 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/LegalPage.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/LegalPage.kt @@ -19,12 +19,12 @@ package com.instructure.canvas.espresso.common.pages import androidx.test.espresso.Espresso.onView import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withParent -import com.instructure.canvas.espresso.containsTextCaseInsensitive +import com.instructure.canvas.espresso.utils.containsTextCaseInsensitive import com.instructure.espresso.OnViewWithId -import com.instructure.pandautils.R import com.instructure.espresso.assertDisplayed import com.instructure.espresso.click import com.instructure.espresso.page.BasePage +import com.instructure.pandautils.R import org.hamcrest.Matchers.allOf /** diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/LoginFindSchoolPage.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/LoginFindSchoolPage.kt index fe63eb0241..37a9057f2d 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/LoginFindSchoolPage.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/LoginFindSchoolPage.kt @@ -16,7 +16,7 @@ */ package com.instructure.canvas.espresso.common.pages -import com.instructure.canvas.espresso.getHintText +import com.instructure.canvas.espresso.utils.getHintText import com.instructure.espresso.OnViewWithId import com.instructure.espresso.assertDisplayed import com.instructure.espresso.click diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/compose/AssignmentListPage.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/compose/AssignmentListPage.kt index 6669521d8f..dc667a1233 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/compose/AssignmentListPage.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/compose/AssignmentListPage.kt @@ -41,7 +41,7 @@ import androidx.test.espresso.assertion.ViewAssertions.doesNotExist import androidx.test.espresso.matcher.ViewMatchers.hasSibling import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText -import com.instructure.canvas.espresso.refresh +import com.instructure.canvas.espresso.utils.refresh import com.instructure.canvasapi2.models.Assignment import com.instructure.dataseeding.model.AssignmentApiModel import com.instructure.dataseeding.model.QuizApiModel diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/compose/InboxDetailsPage.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/compose/InboxDetailsPage.kt index 3883e73d2d..f8f3d22416 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/compose/InboxDetailsPage.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/common/pages/compose/InboxDetailsPage.kt @@ -35,7 +35,7 @@ import androidx.compose.ui.test.onParent import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollTo import androidx.test.espresso.Espresso.onView -import com.instructure.canvas.espresso.withResourceIdContaining +import com.instructure.canvas.espresso.utils.withResourceIdContaining import com.instructure.canvasapi2.models.Conversation import com.instructure.espresso.assertDisplayed diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/CustomActions.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/utils/CustomActions.kt similarity index 58% rename from automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/CustomActions.kt rename to automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/utils/CustomActions.kt index d7800b70ed..0d52718251 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/CustomActions.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/utils/CustomActions.kt @@ -14,59 +14,42 @@ * along with this program. If not, see . * */ -package com.instructure.canvas.espresso +package com.instructure.canvas.espresso.utils -import android.app.Activity import android.os.SystemClock -import android.os.SystemClock.sleep import android.view.InputDevice import android.view.MotionEvent import android.view.View import android.widget.EditText -import androidx.annotation.StringRes import androidx.recyclerview.widget.RecyclerView -import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import androidx.test.espresso.Espresso import androidx.test.espresso.Espresso.onView -import androidx.test.espresso.NoMatchingViewException import androidx.test.espresso.PerformException import androidx.test.espresso.UiController import androidx.test.espresso.ViewAction -import androidx.test.espresso.ViewInteraction import androidx.test.espresso.action.CoordinatesProvider import androidx.test.espresso.action.GeneralClickAction import androidx.test.espresso.action.Press import androidx.test.espresso.action.Tap import androidx.test.espresso.action.ViewActions -import androidx.test.espresso.assertion.ViewAssertions -import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.contrib.RecyclerViewActions -import androidx.test.espresso.matcher.RootMatchers.withDecorView import androidx.test.espresso.matcher.ViewMatchers -import androidx.test.espresso.matcher.ViewMatchers.Visibility -import androidx.test.espresso.matcher.ViewMatchers.isDisplayed -import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility -import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.espresso.util.HumanReadables import androidx.viewpager.widget.ViewPager import com.instructure.espresso.assertDisplayed -import com.instructure.espresso.retryWithIncreasingDelay import com.instructure.espresso.swipeUp import instructure.rceditor.RCETextEditor import org.hamcrest.Matcher import org.hamcrest.Matchers -import org.hamcrest.Matchers.allOf -import org.hamcrest.Matchers.`is` -import org.hamcrest.Matchers.not - -// -// This is a repo for generally useful Espresso actions -// - -// Copied from https://stackoverflow.com/questions/33505953/espresso-how-to-test-swiperefreshlayout -// Allows you to perform an action with custom constraints. This is especially useful for -// being able to perform a swipe on a view that is not quite 90% displayed. -fun withCustomConstraints(action: ViewAction, constraints: Matcher): ViewAction { + +// This file is for generally useful Espresso and/or Compose UI actions + +/** + * Allows you to perform an action with custom constraints. This is especially useful for + * being able to perform a swipe on a view that is not quite 90% displayed. + * Source: https://stackoverflow.com/questions/33505953/espresso-how-to-test-swiperefreshlayout + */ +fun actionWithCustomConstraints(action: ViewAction, constraints: Matcher): ViewAction { return object : ViewAction { override fun getConstraints(): Matcher { return constraints @@ -96,7 +79,6 @@ fun scrollRecyclerView(recyclerViewId: Int, target: String) { fun scrollRecyclerView(recyclerViewId: Int, target: Matcher) { val recyclerViewMatcher = Matchers.allOf(ViewMatchers.withId(recyclerViewId), ViewMatchers.isDisplayed()) - // Grab the SwipeRefreshLayout, if one is available val swipeRefreshLayoutMatcher = getSwipeRefreshLayoutMatcher() // If a SwipeRefreshLayout is available, then allow a couple of swipe-refreshes if the list/recycler @@ -112,7 +94,7 @@ fun scrollRecyclerView(recyclerViewId: Int, target: Matcher) { catch(t: Throwable) { refreshesLeft -= 1 onView(swipeRefreshLayoutMatcher) - .perform(withCustomConstraints(ViewActions.swipeDown(), ViewMatchers.isDisplayingAtLeast(5))) + .perform(actionWithCustomConstraints(ViewActions.swipeDown(), ViewMatchers.isDisplayingAtLeast(5))) SystemClock.sleep(1000) // Allow some time to react to the update. } } @@ -132,56 +114,6 @@ fun scrollRecyclerView(recyclerViewId: Int, target: Matcher) { } -/** - * Returns a matcher for the SwipeRefreshLayout if one is available, otherwise null. - */ -private fun getSwipeRefreshLayoutMatcher(): Matcher? { - val swipeRefreshLayoutMatcher = allOf(ViewMatchers.isAssignableFrom(SwipeRefreshLayout::class.java), isDisplayed()) - try { - onView(swipeRefreshLayoutMatcher).check(matches(isDisplayed())); - return swipeRefreshLayoutMatcher - } - catch(e: Exception) { - return null - } -} - - -// Custom action to directly populate an EditText, bypassing the normal espresso actions -// of clicking on the EditText, typing into it, and then dismissing the soft keyboard. -class DirectlyPopulateEditText(val text: String) : ViewAction { - override fun getDescription(): String { - return "Populate EditText with $text" - } - - override fun getConstraints(): Matcher { - return ViewMatchers.isAssignableFrom(EditText::class.java) - } - - override fun perform(uiController: UiController?, view: View?) { - when(view) { - is EditText -> { - view.text.clear() - view.text.append(text) - } - } - } - -} - -/** - * Convenience method to see whether (and by how much) a view is displayed on the screen. - */ -private fun isDisplayedAtLeast(target: Matcher, displayPercentage: Int) : Boolean { - try { - onView(target).check(matches(ViewMatchers.isDisplayingAtLeast(displayPercentage))) - return true - } - catch(t: Throwable) { - return false - } -} - /** * Send an explicit performClick() to a view, instead of using Espresso's click(), which * can sometimes be interpreted as a long-click. @@ -249,31 +181,6 @@ fun clickCoordinates(percentX: Float, percentY: Float) : ViewAction { ) } -/** - * Wait for a specified matcher to appear, trying a couple of pull-to-refreshes before giving up. - * This is one way to combat the "late delayed job" problem. - */ -fun waitForMatcherWithRefreshes(target: Matcher) { - val swipeRefreshLayoutMatcher = getSwipeRefreshLayoutMatcher() - - if(swipeRefreshLayoutMatcher != null) { - var refreshesLeft = 2; - while(refreshesLeft > 0) { - try { - onView(target).assertDisplayed() - return - } - catch(t: Throwable) { - refreshesLeft -= 1 - onView(swipeRefreshLayoutMatcher) - .perform(withCustomConstraints(ViewActions.swipeDown(), ViewMatchers.isDisplayingAtLeast(5))) - SystemClock.sleep(1000) // Allow some time to react to the update. - - } - } - } -} - /** * Refresh the current screen via pull-to-refresh. * Assumes that a SwipeRefreshLayout element is visible. @@ -285,36 +192,51 @@ fun refresh() { swipeRefreshLayoutMatcher = getSwipeRefreshLayoutMatcher() } onView(swipeRefreshLayoutMatcher) - .perform(withCustomConstraints(ViewActions.swipeDown(), ViewMatchers.isDisplayingAtLeast(5))) + .perform(actionWithCustomConstraints(ViewActions.swipeDown(), ViewMatchers.isDisplayingAtLeast(5))) } -/** A better version of the shared espresso lib's WaitForViewMatcher.waitForView() - * for a couple of reasons: - * (1) It allows the caller to specify the wait time - * (2) It uses sleeps to avoid monopolizing the CPU and spamming our log files. - * - * Waits for [target] to become visible for up to [waitMs] milliseconds, - * sleeping [sleepMs] milliseconds after every attempt. +/** + * Helper method to press the Espresso back button for the given number of times. */ -fun waitForMatcherWithSleeps(target: Matcher, timeout: Long = 10000, pollInterval: Long = 100) : ViewInteraction { - val endTime = System.currentTimeMillis() + timeout - do { - try { - return onView(target).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) - } catch (ignored: Exception) { - println("There is an exception occurred. Stacktrace: " + ignored.stackTrace) - } catch (ignored: Error) { - println("There is an error occurred. Stacktrace: " + ignored.stackTrace) - } +fun pressBackButton(times: Int) { + for(i in 1..times) { + Espresso.pressBack() + } +} - sleep(pollInterval) // re-check every 100 ms - } while(System.currentTimeMillis() < endTime) +/** + * Helper method to create a View's String representation. + */ +fun toString(view: View): String { + return HumanReadables.getViewHierarchyErrorMessage(view, null, "", null) +} - // If we aren't successful by now, make one more unprotected attempt to throw - // the correct error. - return onView(target).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) +/** + * Custom action to directly populate an EditText, bypassing the normal espresso actions + * of clicking on the EditText, typing into it, and then dismissing the soft keyboard. + */ +class DirectlyPopulateEditText(val text: String) : ViewAction { + override fun getDescription(): String { + return "Populate EditText with $text" + } + + override fun getConstraints(): Matcher { + return ViewMatchers.isAssignableFrom(EditText::class.java) + } + + override fun perform(uiController: UiController?, view: View?) { + when(view) { + is EditText -> { + view.text.clear() + view.text.append(text) + } + } + } } +/** + * Custom action to set the current item of a ViewPager. + */ class SetViewPagerCurrentItemAction(private val pageNumber: Int) : ViewAction { override fun getDescription() = "set ViewPager current item to $pageNumber" @@ -340,56 +262,11 @@ class SetViewPagerCurrentItemAction(private val pageNumber: Int) : ViewAction { uiController.loopMainThreadUntilIdle() } - -} - -fun checkToastText(text: String, activity: Activity) { - onView(withText(text)).inRoot(withDecorView(not(`is`(activity.window.decorView)))).check(matches(isDisplayed())) -} - -fun checkToastText(@StringRes stringRes: Int, activity: Activity) { - retryWithIncreasingDelay(times = 3, initialDelay = 500, maxDelay = 5000) { - try { - onView(withText(stringRes)).inRoot(withDecorView(not(`is`(activity.window.decorView)))).check(matches(isDisplayed())) - } catch (e: NoMatchingViewException) { - // Toast did not appear yet, so try to check it again. - } - } - - retryWithIncreasingDelay(times = 5, initialDelay = 500, maxDelay = 15500) { - try { - onView(withText(stringRes)).check(matches(withEffectiveVisibility(Visibility.GONE))) - } catch (e: NoMatchingViewException) { - //Intentionally empty as we would like to wait for the toast to disappear. Somehow doesNotExist() doesn't work because it passes even if the toast is still there and visible. - } - } -} - -fun pressBackButton(times: Int) { - for(i in 1..times) { - Espresso.pressBack() - } -} - -fun waitForViewToDisappear(viewMatcher: Matcher, timeoutInSeconds: Long) { - val startTime = System.currentTimeMillis() - - while (System.currentTimeMillis() - startTime < (timeoutInSeconds * 1000)) { - try { - onView(viewMatcher) - .check(ViewAssertions.doesNotExist()) - return - } catch (e: AssertionError) { - Thread.sleep(200) - } - } - throw AssertionError("The view has not been displayed within $timeoutInSeconds seconds.") -} - -fun toString(view: View): String { - return HumanReadables.getViewHierarchyErrorMessage(view, null, "", null) } +/** + * Custom action to set (aka. "write") the html inner text of the current item. + */ class TypeInRCETextEditor(val text: String) : ViewAction { override fun getDescription(): String { return "Enters text into an RCETextEditor" @@ -404,5 +281,4 @@ class TypeInRCETextEditor(val text: String) : ViewAction { is RCETextEditor -> view.applyHtml(text) } } - } \ No newline at end of file diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/utils/CustomAssertions.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/utils/CustomAssertions.kt new file mode 100644 index 0000000000..ba41881e10 --- /dev/null +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/utils/CustomAssertions.kt @@ -0,0 +1,264 @@ +/* + * Copyright (C) 2026 - present Instructure, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +package com.instructure.canvas.espresso.utils + +import android.app.Activity +import android.os.SystemClock.sleep +import android.view.View +import android.widget.TextView +import androidx.annotation.StringRes +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.NoMatchingViewException +import androidx.test.espresso.ViewInteraction +import androidx.test.espresso.action.ViewActions +import androidx.test.espresso.assertion.ViewAssertions +import androidx.test.espresso.assertion.ViewAssertions.matches +import androidx.test.espresso.matcher.BoundedMatcher +import androidx.test.espresso.matcher.RootMatchers.withDecorView +import androidx.test.espresso.matcher.ViewMatchers +import androidx.test.espresso.matcher.ViewMatchers.Visibility +import androidx.test.espresso.matcher.ViewMatchers.assertThat +import androidx.test.espresso.matcher.ViewMatchers.isDisplayed +import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility +import androidx.test.espresso.matcher.ViewMatchers.withId +import androidx.test.espresso.matcher.ViewMatchers.withText +import com.instructure.espresso.assertDisplayed +import com.instructure.espresso.retryWithIncreasingDelay +import org.hamcrest.CoreMatchers +import org.hamcrest.Description +import org.hamcrest.Matcher +import org.hamcrest.Matchers.`is` +import org.hamcrest.Matchers.not +import org.hamcrest.TypeSafeMatcher + +// This file is for generally useful Espresso and/or Compose UI assertions. + +/** + * Check the toast text if it's displayed. + * @param text The string of the toast text. + * @param activity The activity to get the decor view from. + */ +fun checkToastText(text: String, activity: Activity) { + onView(withText(text)).inRoot(withDecorView(not(`is`(activity.window.decorView)))).check(matches(isDisplayed())) +} + +/** + * Check the toast text if it's displayed. + * @param stringRes The string resource ID of the toast text. + * @param activity The activity to get the decor view from. + */ +fun checkToastText(@StringRes stringRes: Int, activity: Activity) { + retryWithIncreasingDelay(times = 3, initialDelay = 500, maxDelay = 5000) { + try { + onView(withText(stringRes)).inRoot(withDecorView(not(`is`(activity.window.decorView)))).check(matches(isDisplayed())) + } catch (e: NoMatchingViewException) { + // Intentionally empty: Toast did not appear yet, so try to check it again. + } + } + + retryWithIncreasingDelay(times = 5, initialDelay = 500, maxDelay = 15500) { + try { + onView(withText(stringRes)).check(matches(withEffectiveVisibility(Visibility.GONE))) + } catch (e: NoMatchingViewException) { + //Intentionally empty as we would like to wait for the toast to disappear. Somehow doesNotExist() doesn't work because it passes even if the toast is still there and visible. + } + } +} + +/** + * Asserts that the SwipeRefreshLayout is refreshing or not. + */ +fun ViewInteraction.assertIsRefreshing(isRefreshing: Boolean) { + val matcher = object : BoundedMatcher(SwipeRefreshLayout::class.java) { + + override fun describeTo(description: Description) { + description.appendText(if (isRefreshing) "is refreshing" else "is not refreshing") + } + + override fun matchesSafely(view: SwipeRefreshLayout): Boolean { + return view.isRefreshing == isRefreshing + } + } + check(matches(matcher)) +} + +/** + * Asserts that the TextView uses the specified font size in scaled pixels. + * @param expectedSP The expected font size in scaled pixels. + */ +fun ViewInteraction.assertFontSizeSP(expectedSP: Float) { + val matcher = object : TypeSafeMatcher(View::class.java) { + + override fun matchesSafely(target: View): Boolean { + if (target !is TextView) return false + val actualSP = target.textSize / target.getResources().displayMetrics.scaledDensity + return actualSP.compareTo(expectedSP) == 0 + } + + override fun describeTo(description: Description) { + description.appendText("with fontSize: ${expectedSP}px") + } + } + check(matches(matcher)) +} + +/** + * Asserts that a view is completely above of another view. + * @param other The other view to compare against. + */ +fun ViewInteraction.assertCompletelyAbove(other: ViewInteraction) { + val view1 = getView() + val view2 = other.getView() + val location1 = view1.locationOnScreen + val location2 = view2.locationOnScreen + val isAbove = location1[1] + view1.height <= location2[1] + assertThat("completely above", isAbove, CoreMatchers.`is`(true)) +} + +/** + * Asserts that a view is completely below of another view. + * @param other The other view to compare against. + */ +fun ViewInteraction.assertCompletelyBelow(other: ViewInteraction) { + val view1 = getView() + val view2 = other.getView() + val location1 = view1.locationOnScreen + val location2 = view2.locationOnScreen + val isAbove = location2[1] + view2.height <= location1[1] + assertThat("completely below", isAbove, CoreMatchers.`is`(true)) +} + +/** + * Get the location of the view on the screen. + */ +val View.locationOnScreen get() = IntArray(2).apply { getLocationOnScreen(this) } + +/** + * Assert that a TextView has the specified number of lines. + * @param lineCount The number of the expected lines. + */ +fun ViewInteraction.assertLineCount(lineCount: Int) { + val matcher = object : TypeSafeMatcher() { + override fun matchesSafely(item: View): Boolean { + return (item as TextView).lineCount == lineCount + } + + override fun describeTo(description: Description) { + description.appendText("isTextInLines") + } + } + check(matches(matcher)) +} + +/** + * Waits for a view to disappear. + * @param viewMatcher The matcher for the view to wait for. + * @param timeoutInSeconds The timeout in seconds. + */ +fun waitForViewToDisappear(viewMatcher: Matcher, timeoutInSeconds: Long) { + val startTime = System.currentTimeMillis() + + while (System.currentTimeMillis() - startTime < (timeoutInSeconds * 1000)) { + try { + onView(viewMatcher) + .check(ViewAssertions.doesNotExist()) + return + } catch (e: AssertionError) { + Thread.sleep(200) + } + } + throw AssertionError("The view has not been displayed within $timeoutInSeconds seconds.") +} + +/** + * Wait for a specified matcher to appear, trying a couple of pull-to-refreshes before giving up. + * This is one way to combat the "late delayed job" problem. + */ +fun waitForMatcherWithRefreshes(target: Matcher) { + val swipeRefreshLayoutMatcher = getSwipeRefreshLayoutMatcher() + + if(swipeRefreshLayoutMatcher != null) { + var refreshesLeft = 2; + while(refreshesLeft > 0) { + try { + onView(target).assertDisplayed() + return + } + catch(t: Throwable) { + refreshesLeft -= 1 + onView(swipeRefreshLayoutMatcher) + .perform(actionWithCustomConstraints(ViewActions.swipeDown(), ViewMatchers.isDisplayingAtLeast(5))) + sleep(1000) // Allow some time to react to the update. + + } + } + } +} + +/** A better version of the shared espresso lib's WaitForViewMatcher.waitForView() + * for a couple of reasons: + * (1) It allows the caller to specify the wait time + * (2) It uses sleeps to avoid monopolizing the CPU and spamming our log files. + * + * Waits for [target] to become visible for up to [waitMs] milliseconds, + * sleeping [sleepMs] milliseconds after every attempt. + */ +fun waitForMatcherWithSleeps(target: Matcher, timeout: Long = 10000, pollInterval: Long = 100) : ViewInteraction { + val endTime = System.currentTimeMillis() + timeout + do { + try { + return onView(target).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) + } catch (ignored: Exception) { + println("There is an exception occurred. Stacktrace: " + ignored.stackTrace) + } catch (ignored: Error) { + println("There is an error occurred. Stacktrace: " + ignored.stackTrace) + } + + sleep(pollInterval) // re-check every 100 ms + } while(System.currentTimeMillis() < endTime) + + // If we aren't successful by now, make one more unprotected attempt to throw + // the correct error. + return onView(target).check(matches(withEffectiveVisibility(Visibility.VISIBLE))) +} + +/** + * Convenience method to see whether (and by how much) a view is displayed on the screen. + */ +fun isDisplayedAtLeast(target: Matcher, displayPercentage: Int) : Boolean { + try { + onView(target).check(matches(ViewMatchers.isDisplayingAtLeast(displayPercentage))) + return true + } + catch(t: Throwable) { + return false + } +} + +/** + * Returns true if the element with the given resource id is currently displayed, false otherwise. + */ +fun isElementDisplayed(resourceId: Int) : Boolean { + try { + onView(withId(resourceId)).check(matches(isDisplayed())) + return true + } + catch(t: Throwable) { + return false + } +} \ No newline at end of file diff --git a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/CustomMatchers.kt b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/utils/CustomMatchers.kt similarity index 81% rename from automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/CustomMatchers.kt rename to automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/utils/CustomMatchers.kt index e3f610772e..ad587ecb7e 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/CustomMatchers.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/canvas/espresso/utils/CustomMatchers.kt @@ -15,7 +15,7 @@ * */ -package com.instructure.canvas.espresso +package com.instructure.canvas.espresso.utils import android.content.Intent import android.content.res.Resources @@ -41,10 +41,8 @@ import androidx.test.espresso.ViewAssertion import androidx.test.espresso.ViewInteraction import androidx.test.espresso.assertion.ViewAssertions.matches import androidx.test.espresso.matcher.BoundedMatcher -import androidx.test.espresso.matcher.ViewMatchers.assertThat import androidx.test.espresso.matcher.ViewMatchers.isAssignableFrom import androidx.test.espresso.matcher.ViewMatchers.isDisplayed -import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.util.HumanReadables import androidx.test.espresso.util.TreeIterables import com.google.android.apps.common.testing.accessibility.framework.AccessibilityViewCheckResult @@ -54,14 +52,12 @@ import com.instructure.espresso.ActivityHelper import com.instructure.pandautils.utils.ColorUtils import junit.framework.AssertionFailedError import org.hamcrest.BaseMatcher -import org.hamcrest.CoreMatchers.`is` import org.hamcrest.Description import org.hamcrest.Matcher +import org.hamcrest.Matchers.allOf import org.hamcrest.TypeSafeMatcher -// -// This is a repo for useful custom matchers -// +// This is file is for Espresso and/or Compose UI matchers. /** * Matches if the view is a TextView and its text contains [textToMatch], case insensitive @@ -83,8 +79,10 @@ fun containsTextCaseInsensitive(textToMatch: String) : Matcher { } } -// Similar to containsTextCaseInsensitive(), but operates on a String rather than a TextView. -// Originally created to combat situations where a content description contains garbage characters. +/** + * Similar to containsTextCaseInsensitive(), but operates on a String rather than a TextView. + * Originally created to combat situations where a content description contains garbage characters. + */ fun stringContainsTextCaseInsensitive(textToMatch: String) : Matcher { return object: BaseMatcher() { override fun matches(item: Any?): Boolean { @@ -103,28 +101,12 @@ fun stringContainsTextCaseInsensitive(textToMatch: String) : Matcher { } /** - * Returns true if the element with the given resource id is currently displayed, false otherwise. + * Returns if the radio button is checked or not. + * @param checked True if the radio button should be checked, false otherwise. + * @param index The index of the radio button to check. + * @param getText A function to get the text of the checked radio button. */ -fun isElementDisplayed(resourceId: Int) : Boolean { - try { - onView(withId(resourceId)).check(matches(isDisplayed())) - return true - } - catch(t: Throwable) { - return false - } -} - -inline fun typedViewCondition(crossinline onCheckCondition: (T) -> Boolean): Matcher { - return object : BaseMatcher() { - override fun matches(item: Any?): Boolean = (item as? T)?.let(onCheckCondition) ?: false - override fun describeTo(description: Description?) { - description?.appendText("matches view type '${T::class.java.simpleName}' and fulfills the given condition") - } - } -} - -fun checked(checked: Boolean = true, index: Int = 0, getText: (String) -> Unit = {}): BoundedMatcher { +fun isRadioButtonChecked(checked: Boolean = true, index: Int = 0, getText: (String) -> Unit = {}): BoundedMatcher { return object : BoundedMatcher(RadioButton::class.java) { var currentIndex = 0 override fun describeTo(description: Description) { @@ -378,54 +360,9 @@ object SwipeRefreshLayoutMatchers { } } -object ViewSizeMatcher { - fun hasWidth(pixels: Int): Matcher = object : TypeSafeMatcher(View::class.java) { - override fun describeTo(description: Description) { - description.appendText("has a width of ${pixels}px") - } - - override fun matchesSafely(view: View): Boolean = view.width == pixels - } - - fun hasHeight(pixels: Int): Matcher = object : TypeSafeMatcher(View::class.java) { - override fun describeTo(description: Description) { - description.appendText("has a height of ${pixels}px") - } - - override fun matchesSafely(view: View): Boolean = view.height == pixels - } - - fun hasMinWidth(pixels: Int): Matcher = object : TypeSafeMatcher(View::class.java) { - override fun describeTo(description: Description) { - description.appendText("has a minimum width of ${pixels}px") - } - - override fun matchesSafely(view: View): Boolean = view.width >= pixels - } - - fun hasMinHeight(pixels: Int): Matcher = object : TypeSafeMatcher(View::class.java) { - override fun describeTo(description: Description) { - description.appendText("has a minimum height of ${pixels}px") - } - - override fun matchesSafely(view: View): Boolean = view.height >= pixels - } -} - -fun ViewInteraction.assertLineCount(lineCount: Int) { - val matcher = object : TypeSafeMatcher() { - override fun matchesSafely(item: View): Boolean { - return (item as TextView).lineCount == lineCount - } - - override fun describeTo(description: Description) { - description.appendText("isTextInLines") - } - } - check(matches(matcher)) -} - - +/** + * Get the view reference from a ViewInteraction + */ fun ViewInteraction.getView(): View { lateinit var matchingView: View perform(object : ViewAction { @@ -442,60 +379,11 @@ fun ViewInteraction.getView(): View { return matchingView } -fun ViewInteraction.assertCompletelyAbove(other: ViewInteraction) { - val view1 = getView() - val view2 = other.getView() - val location1 = view1.locationOnScreen - val location2 = view2.locationOnScreen - val isAbove = location1[1] + view1.height <= location2[1] - assertThat("completely above", isAbove, `is`(true)) -} - -fun ViewInteraction.assertCompletelyBelow(other: ViewInteraction) { - val view1 = getView() - val view2 = other.getView() - val location1 = view1.locationOnScreen - val location2 = view2.locationOnScreen - val isAbove = location2[1] + view2.height <= location1[1] - assertThat("completely below", isAbove, `is`(true)) -} - -val View.locationOnScreen get() = IntArray(2).apply { getLocationOnScreen(this) } - - /** - * Asserts that the TextView uses the specified font size in scaled pixels + * Custom matcher for intent and their data + * @param intentType The type of the specific intent + * @param dataMatcher The data to match in the intent */ -fun ViewInteraction.assertFontSizeSP(expectedSP: Float) { - val matcher = object : TypeSafeMatcher(View::class.java) { - - override fun matchesSafely(target: View): Boolean { - if (target !is TextView) return false - val actualSP = target.textSize / target.getResources().displayMetrics.scaledDensity - return actualSP.compareTo(expectedSP) == 0 - } - - override fun describeTo(description: Description) { - description.appendText("with fontSize: ${expectedSP}px") - } - } - check(matches(matcher)) -} - -fun ViewInteraction.assertIsRefreshing(isRefreshing: Boolean) { - val matcher = object : BoundedMatcher(SwipeRefreshLayout::class.java) { - - override fun describeTo(description: Description) { - description.appendText(if (isRefreshing) "is refreshing" else "is not refreshing") - } - - override fun matchesSafely(view: SwipeRefreshLayout): Boolean { - return view.isRefreshing == isRefreshing - } - } - check(matches(matcher)) -} - class IntentActionMatcher(private val intentType: String, private val dataMatcher: String) : TypeSafeMatcher() { override fun describeTo(description: Description?) { @@ -507,13 +395,13 @@ class IntentActionMatcher(private val intentType: String, private val dataMatche } } -// Adapted from https://medium.com/@dbottillo/android-ui-test-espresso-matcher-for-imageview-1a28c832626f /** * Matches ImageView (or ImageButton) with the drawable associated with [resourceId]. If [resourceId] < 0, will * match against "no drawable" / "drawable is null". * - * If the [color] param is non-null, then the drawable associated with [resourceId] will be colored - * prior to matching. + * Source: https://medium.com/@dbottillo/android-ui-test-espresso-matcher-for-imageview-1a28c832626f + * + * If the [color] param is non-null, then the drawable associated with [resourceId] will be colored prior to matching. */ class ImageViewDrawableMatcher(val resourceId: Int, val color: Int? = null) : TypeSafeMatcher( ImageView::class.java) { @@ -552,7 +440,7 @@ class ImageViewDrawableMatcher(val resourceId: Int, val color: Int? = null) : Ty /** * Matches views whose resource ID contains the specified substring. - * Useful for matching PSPDFKit or other third-party library views with dynamic resource IDs. + * Useful for matching PSPDFKit (aka. Nutrient) or other third-party library views with dynamic resource IDs. */ fun withResourceIdContaining(substring: String) = object : TypeSafeMatcher() { override fun describeTo(description: Description) { @@ -568,3 +456,54 @@ fun withResourceIdContaining(substring: String) = object : TypeSafeMatcher return resourceId.contains(substring, ignoreCase = true) } } + +/** + * Returns a matcher for the SwipeRefreshLayout if one is available, otherwise null. + */ +fun getSwipeRefreshLayoutMatcher(): Matcher? { + val swipeRefreshLayoutMatcher = allOf(isAssignableFrom(SwipeRefreshLayout::class.java), isDisplayed()) + try { + onView(swipeRefreshLayoutMatcher).check(matches(isDisplayed())); + return swipeRefreshLayoutMatcher + } + catch(e: Exception) { + return null + } +} + +/** + * This object collects the different view size matchers. + */ +object ViewSizeMatcher { + fun hasWidth(pixels: Int): Matcher = object : TypeSafeMatcher(View::class.java) { + override fun describeTo(description: Description) { + description.appendText("has a width of ${pixels}px") + } + + override fun matchesSafely(view: View): Boolean = view.width == pixels + } + + fun hasHeight(pixels: Int): Matcher = object : TypeSafeMatcher(View::class.java) { + override fun describeTo(description: Description) { + description.appendText("has a height of ${pixels}px") + } + + override fun matchesSafely(view: View): Boolean = view.height == pixels + } + + fun hasMinWidth(pixels: Int): Matcher = object : TypeSafeMatcher(View::class.java) { + override fun describeTo(description: Description) { + description.appendText("has a minimum width of ${pixels}px") + } + + override fun matchesSafely(view: View): Boolean = view.width >= pixels + } + + fun hasMinHeight(pixels: Int): Matcher = object : TypeSafeMatcher(View::class.java) { + override fun describeTo(description: Description) { + description.appendText("has a minimum height of ${pixels}px") + } + + override fun matchesSafely(view: View): Boolean = view.height >= pixels + } +} \ No newline at end of file diff --git a/automation/espresso/src/main/kotlin/com/instructure/espresso/ViewInteractionExtensions.kt b/automation/espresso/src/main/kotlin/com/instructure/espresso/ViewInteractionExtensions.kt index f6e0332e27..c830389292 100644 --- a/automation/espresso/src/main/kotlin/com/instructure/espresso/ViewInteractionExtensions.kt +++ b/automation/espresso/src/main/kotlin/com/instructure/espresso/ViewInteractionExtensions.kt @@ -22,13 +22,19 @@ import android.view.View import androidx.test.espresso.ViewAction import androidx.test.espresso.ViewAssertion import androidx.test.espresso.ViewInteraction -import androidx.test.espresso.action.* +import androidx.test.espresso.action.CoordinatesProvider +import androidx.test.espresso.action.EspressoKey +import androidx.test.espresso.action.GeneralLocation +import androidx.test.espresso.action.GeneralSwipeAction +import androidx.test.espresso.action.Press +import androidx.test.espresso.action.Swipe +import androidx.test.espresso.action.ViewActions import androidx.test.espresso.assertion.ViewAssertions import androidx.test.espresso.matcher.ViewMatchers -import com.instructure.canvas.espresso.SetViewPagerCurrentItemAction +import com.instructure.canvas.espresso.utils.SetViewPagerCurrentItemAction import org.hamcrest.Matcher import org.hamcrest.Matchers -import java.util.concurrent.* +import java.util.concurrent.TimeUnit fun ViewInteraction.assertVisible(): ViewInteraction