diff --git a/app/src/androidTest/java/in/sminnovations/arrest_tb/LoginActivity.java b/app/src/androidTest/java/in/sminnovations/arrest_tb/LoginActivity.java new file mode 100644 index 0000000..a22eebb --- /dev/null +++ b/app/src/androidTest/java/in/sminnovations/arrest_tb/LoginActivity.java @@ -0,0 +1,138 @@ +package in.sminnovations.arrest_tb; + + +import androidx.test.filters.LargeTest; +import androidx.test.rule.ActivityTestRule; +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.closeSoftKeyboard; +import static androidx.test.espresso.action.ViewActions.replaceText; +import static androidx.test.espresso.action.ViewActions.typeText; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; + +@LargeTest +@RunWith(AndroidJUnit4.class) +public class LoginActivity { + + @Rule + public ActivityTestRule mActivityTestRule = new ActivityTestRule<>(LoginScreen.class); + + + @Test + public void LoginSuccess_2() { + // Type text and then press the button. + onView(withId(R.id.contactnumber)) + .perform(replaceText("9779057263"), closeSoftKeyboard()); + onView(withId(R.id.password)) + .perform(typeText("Deep"), closeSoftKeyboard()); + + + onView(withId(R.id.showpassword)).perform(click()); + onView(withId(R.id.login)).perform(click()); + try { + Thread.sleep(160); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // onView(withText("logged in Successfully...")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + // Check that the text was changed. + } + @Test + public void LoginInvalidNumber_3() { + // Type text and then press the button. + onView(withId(R.id.contactnumber)) + .perform(typeText("977905"), closeSoftKeyboard()); + onView(withId(R.id.password)) + .perform(typeText("Deep"), closeSoftKeyboard()); + + + onView(withId(R.id.showpassword)).perform(click()); + onView(withId(R.id.login)).perform(click()); + try { + Thread.sleep(160); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withText("No such user exists")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + // Check that the text was changed. + } + @Test + public void LoginWrongPassword_4() { + // Type text and then press the button. + onView(withId(R.id.contactnumber)) + .perform(typeText("9779057263"), closeSoftKeyboard()); + onView(withId(R.id.password)) + .perform(typeText("Deep1"), closeSoftKeyboard()); + + + onView(withId(R.id.showpassword)).perform(click()); + onView(withId(R.id.login)).perform(click()); + try { + Thread.sleep(160); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withText("Wrong Password")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + // Check that the text was changed. + } + @Test + public void EmptyPassword_5() { + // Type text and then press the button. + onView(withId(R.id.contactnumber)) + .perform(typeText("9779057263"), closeSoftKeyboard()); + + + onView(withId(R.id.showpassword)).perform(click()); + onView(withId(R.id.login)).perform(click()); + try { + Thread.sleep(160); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withText("Please enter all the required fields")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + // Check that the text was changed. + } + + @Test + public void EmptyNumber_6() { + // Type text and then press the button. + onView(withId(R.id.password)) + .perform(typeText("Deep1"), closeSoftKeyboard()); + + onView(withId(R.id.showpassword)).perform(click()); + onView(withId(R.id.login)).perform(click()); + try { + Thread.sleep(160); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withText("Please enter all the required fields")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + // Check that the text was changed. + } + + + +} diff --git a/app/src/androidTest/java/in/sminnovations/arrest_tb/ToastMatcher.java b/app/src/androidTest/java/in/sminnovations/arrest_tb/ToastMatcher.java new file mode 100644 index 0000000..e43ce9c --- /dev/null +++ b/app/src/androidTest/java/in/sminnovations/arrest_tb/ToastMatcher.java @@ -0,0 +1,30 @@ +package in.sminnovations.arrest_tb; + +import android.os.IBinder; +import android.view.WindowManager; + +import androidx.test.espresso.Root; + +import org.hamcrest.Description; +import org.hamcrest.TypeSafeMatcher; + +public class ToastMatcher extends TypeSafeMatcher { + + @Override + public void describeTo(Description description) { + description.appendText("is toast"); + } + + @Override + public boolean matchesSafely(Root root) { + int type = root.getWindowLayoutParams().get().type; + if ((type == WindowManager.LayoutParams.TYPE_TOAST)) { + IBinder windowToken = root.getDecorView().getWindowToken(); + IBinder appToken = root.getDecorView().getApplicationWindowToken(); + if (windowToken == appToken) { + return true; + } + } + return false; + } +} \ No newline at end of file