diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt index 4ee3c042a..f7ce9e36b 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteFragmentTest.kt @@ -129,17 +129,7 @@ class NoteFragmentTest : BaseActivityTest() { @Test fun testUserCanSeeNotesForDeletedFiles() { - // delete the notes if any saved to properly run the test scenario - note { - openNoteFragment() - assertToolbarExist() - assertNoteRecyclerViewExist() - clickOnTrashIcon() - assertDeleteNoteDialogDisplayed() - clickOnDeleteButton() - assertNoNotesTextDisplayed() - pressBack() - } + deletePreviouslySavedNotes() loadZimFileInReader("testzim.zim") StandardActions.closeDrawer() // close the drawer if open before running the test cases. note { @@ -188,17 +178,7 @@ class NoteFragmentTest : BaseActivityTest() { @Test fun testZimFileOpenedAfterOpeningNoteOnNotesScreen() { - // delete the notes if any saved to properly run the test scenario - note { - openNoteFragment() - assertToolbarExist() - assertNoteRecyclerViewExist() - clickOnTrashIcon() - assertDeleteNoteDialogDisplayed() - clickOnDeleteButton() - assertNoNotesTextDisplayed() - pressBack() - } + deletePreviouslySavedNotes() loadZimFileInReader("testzim.zim") note { assertHomePageIsLoadedOfTestZimFile() @@ -220,6 +200,65 @@ class NoteFragmentTest : BaseActivityTest() { } } + @Test + fun testNoteEntryIsRemovedFromDatabaseWhenDeletedInAddNoteDialog() { + deletePreviouslySavedNotes() + loadZimFileInReader("testzim.zim") + note { + clickOnNoteMenuItem(context) + assertNoteDialogDisplayed() + writeDemoNote() + saveNote() + pressBack() + openNoteFragment() + assertToolbarExist() + assertNoteRecyclerViewExist() + clickOnSavedNote() + clickOnOpenNote() + assertNoteSaved() + clickOnDeleteIcon() + pressBack() + assertNoNotesTextDisplayed() + } + } + + @Test + fun testNoteFileIsDeletedWhenNoteIsRemovedFromNotesScreen() { + deletePreviouslySavedNotes() + loadZimFileInReader("testzim.zim") + // Save a note. + note { + clickOnNoteMenuItem(context) + assertNoteDialogDisplayed() + writeDemoNote() + saveNote() + pressBack() + } + // Delete that note from "Note" screen. + deletePreviouslySavedNotes() + // Test the note file is deleted or not. + note { + clickOnNoteMenuItem(context) + assertNoteDialogDisplayed() + assertNotDoesNotExist() + pressBack() + } + } + + private fun deletePreviouslySavedNotes() { + // delete the notes if any saved to properly run the test scenario + note { + openNoteFragment() + assertToolbarExist() + assertNoteRecyclerViewExist() + clickOnTrashIcon() + assertDeleteNoteDialogDisplayed() + clickOnDeleteButton() + assertNoNotesTextDisplayed() + pressBack() + } + } + private fun loadZimFileInReader(zimFileName: String) { activityScenario.onActivity { kiwixMainActivity = it diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteRobot.kt index 9131edba5..9a5659c5c 100644 --- a/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteRobot.kt +++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/note/NoteRobot.kt @@ -26,6 +26,7 @@ import androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu import androidx.test.espresso.action.ViewActions.clearText import androidx.test.espresso.action.ViewActions.click import androidx.test.espresso.action.ViewActions.typeText +import androidx.test.espresso.assertion.ViewAssertions.doesNotExist import androidx.test.espresso.contrib.RecyclerViewActions.actionOnItemAtPosition import androidx.test.espresso.matcher.ViewMatchers import androidx.test.espresso.matcher.ViewMatchers.withContentDescription @@ -111,6 +112,15 @@ class NoteRobot : BaseRobot() { testFlakyView({ isVisible(Text(noteText)) }) } + fun assertNotDoesNotExist() { + testFlakyView({ onView(withText(noteText)).check(doesNotExist()) }) + } + + fun clickOnDeleteIcon() { + pauseForBetterTestPerformance() + testFlakyView({ clickOn(ViewId(R.id.delete_note)) }) + } + fun clickOnTrashIcon() { testFlakyView({ onView(withContentDescription(R.string.pref_clear_notes)).perform(click()) }) }