diff --git a/app/src/androidTest/java/in/sminnovations/arrest_tb/ExampleInstrumentedTest.java b/app/src/androidTest/java/in/sminnovations/arrest_tb/ExampleInstrumentedTest.java deleted file mode 100644 index fafc55a..0000000 --- a/app/src/androidTest/java/in/sminnovations/arrest_tb/ExampleInstrumentedTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package in.sminnovations.arrest_tb; - -import android.content.Context; - -import androidx.test.platform.app.InstrumentationRegistry; -import androidx.test.ext.junit.runners.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumented test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); - assertEquals("in.sminnovations.arrest_tb", appContext.getPackageName()); - } -} \ No newline at end of file diff --git a/app/src/androidTest/java/in/sminnovations/arrest_tb/LoginActivity.java b/app/src/androidTest/java/in/sminnovations/arrest_tb/LoginActivity.java index 8e9208b..a22eebb 100644 --- a/app/src/androidTest/java/in/sminnovations/arrest_tb/LoginActivity.java +++ b/app/src/androidTest/java/in/sminnovations/arrest_tb/LoginActivity.java @@ -65,7 +65,7 @@ public class LoginActivity { e.printStackTrace(); } - onView(withText("No such user Exists")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + onView(withText("No such user exists")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); // Check that the text was changed. diff --git a/app/src/androidTest/java/in/sminnovations/arrest_tb/Navigationdrawer.java b/app/src/androidTest/java/in/sminnovations/arrest_tb/Navigationdrawer.java new file mode 100644 index 0000000..c5bed17 --- /dev/null +++ b/app/src/androidTest/java/in/sminnovations/arrest_tb/Navigationdrawer.java @@ -0,0 +1,634 @@ +package in.sminnovations.arrest_tb; + + +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewParent; + +import androidx.test.espresso.contrib.DrawerActions; +import androidx.test.espresso.contrib.NavigationViewActions; +import androidx.test.filters.LargeTest; +import androidx.test.rule.ActivityTestRule; +import androidx.test.runner.AndroidJUnit4; + +import org.hamcrest.Description; +import org.hamcrest.Matcher; +import org.hamcrest.TypeSafeMatcher; +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.contrib.DrawerMatchers.isClosed; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; + +@LargeTest +@RunWith(AndroidJUnit4.class) +public class Navigationdrawer { + + @Rule + public ActivityTestRule mActivityTestRule2 = new ActivityTestRule<>(LoginScreen.class); + + + + /*@Before + public void stubCameraIntent() { + Instrumentation.ActivityResult result = createImageCaptureActivityResultStub(); + + // Stub the Intent. + intending(hasAction(MediaStore.ACTION_IMAGE_CAPTURE)).respondWith(result); + } +*/ + /* private Instrumentation.ActivityResult createImageCaptureActivityResultStub() { + Bundle bundle = new Bundle(); + bundle.putParcelable(AddImage., BitmapFactory.decodeResource( + mActivityTestRule2.getActivity().getResources(), R.drawable.ic_launcher_background)); + + // Create the Intent that will include the bundle. + Intent resultData = new Intent(); + resultData.putExtras(bundle); + + // Create the ActivityResult with the Intent. + return new ActivityResult(Activity.RESULT_OK, resultData); + } +*/ + + @Test + public void NavAddTest() { + // 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()); + /*ViewInteraction appCompatImageButton2 = onView( + allOf(withContentDescription("Open navigation drawer"), + childAtPosition( + allOf(withId(R.id.tollbar), + childAtPosition( + withId(R.id.line), + 0)), + 1), + isDisplayed())); + appCompatImageButton2.perform(click()); + + ViewInteraction navigationMenuItemView2 = onView( + allOf(childAtPosition( + allOf(withId(R.id.design_navigation_view), + childAtPosition( + withId(R.id.navigation), + 0)), + 2), + isDisplayed())); + navigationMenuItemView2.perform(click());*/ + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withId(R.id.Drawer)) + .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. + .perform(DrawerActions.open()); // Open Drawer + + // Start the screen of your activity. + onView(withId(R.id.navigation)) + .perform(NavigationViewActions.navigateTo(R.id.nav_add_Test)); + + // Check that you Activity was opened. + + // Added a sleep statement to match the app's execution delay. + // The recommended way to handle such scenarios is to use Espresso idling resources: + // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + + + } + @Test + public void NavPositiveTest() { + // 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()); + /*ViewInteraction appCompatImageButton2 = onView( + allOf(withContentDescription("Open navigation drawer"), + childAtPosition( + allOf(withId(R.id.tollbar), + childAtPosition( + withId(R.id.line), + 0)), + 1), + isDisplayed())); + appCompatImageButton2.perform(click()); + + ViewInteraction navigationMenuItemView2 = onView( + allOf(childAtPosition( + allOf(withId(R.id.design_navigation_view), + childAtPosition( + withId(R.id.navigation), + 0)), + 2), + isDisplayed())); + navigationMenuItemView2.perform(click());*/ + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withId(R.id.Drawer)) + .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. + .perform(DrawerActions.open()); // Open Drawer + + // Start the screen of your activity. + onView(withId(R.id.navigation)) + .perform(NavigationViewActions.navigateTo(R.id.nav_positive)); + + // Check that you Activity was opened. + + // Added a sleep statement to match the app's execution delay. + // The recommended way to handle such scenarios is to use Espresso idling resources: + // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + + + } + @Test + public void NavHomeTest() { + // 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()); + /*ViewInteraction appCompatImageButton2 = onView( + allOf(withContentDescription("Open navigation drawer"), + childAtPosition( + allOf(withId(R.id.tollbar), + childAtPosition( + withId(R.id.line), + 0)), + 1), + isDisplayed())); + appCompatImageButton2.perform(click()); + + ViewInteraction navigationMenuItemView2 = onView( + allOf(childAtPosition( + allOf(withId(R.id.design_navigation_view), + childAtPosition( + withId(R.id.navigation), + 0)), + 2), + isDisplayed())); + navigationMenuItemView2.perform(click());*/ + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withId(R.id.Drawer)) + .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. + .perform(DrawerActions.open()); // Open Drawer + + // Start the screen of your activity. + onView(withId(R.id.navigation)) + .perform(NavigationViewActions.navigateTo(R.id.nav_home)); + + // Check that you Activity was opened. + + // Added a sleep statement to match the app's execution delay. + // The recommended way to handle such scenarios is to use Espresso idling resources: + // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + + + } + + @Test + public void NavNegativeTest() { + // 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()); + /*ViewInteraction appCompatImageButton2 = onView( + allOf(withContentDescription("Open navigation drawer"), + childAtPosition( + allOf(withId(R.id.tollbar), + childAtPosition( + withId(R.id.line), + 0)), + 1), + isDisplayed())); + appCompatImageButton2.perform(click()); + + ViewInteraction navigationMenuItemView2 = onView( + allOf(childAtPosition( + allOf(withId(R.id.design_navigation_view), + childAtPosition( + withId(R.id.navigation), + 0)), + 2), + isDisplayed())); + navigationMenuItemView2.perform(click());*/ + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withId(R.id.Drawer)) + .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. + .perform(DrawerActions.open()); // Open Drawer + + // Start the screen of your activity. + onView(withId(R.id.navigation)) + .perform(NavigationViewActions.navigateTo(R.id.nav_negative)); + + // Check that you Activity was opened. + + // Added a sleep statement to match the app's execution delay. + // The recommended way to handle such scenarios is to use Espresso idling resources: + // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + + + } + @Test + public void NavResultTest() { + // Type text and then press the button. + onView(withId(R.id.contactnumber)) + .perform(typeText("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()); + /*ViewInteraction appCompatImageButton2 = onView( + allOf(withContentDescription("Open navigation drawer"), + childAtPosition( + allOf(withId(R.id.tollbar), + childAtPosition( + withId(R.id.line), + 0)), + 1), + isDisplayed())); + appCompatImageButton2.perform(click()); + + ViewInteraction navigationMenuItemView2 = onView( + allOf(childAtPosition( + allOf(withId(R.id.design_navigation_view), + childAtPosition( + withId(R.id.navigation), + 0)), + 2), + isDisplayed())); + navigationMenuItemView2.perform(click());*/ + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withId(R.id.Drawer)) + .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. + .perform(DrawerActions.open()); // Open Drawer + + // Start the screen of your activity. + onView(withId(R.id.navigation)) + .perform(NavigationViewActions.navigateTo(R.id.nav_results)); + + // Check that you Activity was opened. + + // Added a sleep statement to match the app's execution delay. + // The recommended way to handle such scenarios is to use Espresso idling resources: + // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + + + } + @Test + public void NavAboutTest() { + // Type text and then press the button. + onView(withId(R.id.contactnumber)) + .perform(typeText("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()); + /*ViewInteraction appCompatImageButton2 = onView( + allOf(withContentDescription("Open navigation drawer"), + childAtPosition( + allOf(withId(R.id.tollbar), + childAtPosition( + withId(R.id.line), + 0)), + 1), + isDisplayed())); + appCompatImageButton2.perform(click()); + + ViewInteraction navigationMenuItemView2 = onView( + allOf(childAtPosition( + allOf(withId(R.id.design_navigation_view), + childAtPosition( + withId(R.id.navigation), + 0)), + 2), + isDisplayed())); + navigationMenuItemView2.perform(click());*/ + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withId(R.id.Drawer)) + .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. + .perform(DrawerActions.open()); // Open Drawer + + // Start the screen of your activity. + onView(withId(R.id.navigation)) + .perform(NavigationViewActions.navigateTo(R.id.nav_contact_us)); + + // Check that you Activity was opened. + + // Added a sleep statement to match the app's execution delay. + // The recommended way to handle such scenarios is to use Espresso idling resources: + // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + + + } + + @Test + public void NavLogoutTest() { + // Type text and then press the button. + onView(withId(R.id.contactnumber)) + .perform(typeText("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()); + /*ViewInteraction appCompatImageButton2 = onView( + allOf(withContentDescription("Open navigation drawer"), + childAtPosition( + allOf(withId(R.id.tollbar), + childAtPosition( + withId(R.id.line), + 0)), + 1), + isDisplayed())); + appCompatImageButton2.perform(click()); + + ViewInteraction navigationMenuItemView2 = onView( + allOf(childAtPosition( + allOf(withId(R.id.design_navigation_view), + childAtPosition( + withId(R.id.navigation), + 0)), + 2), + isDisplayed())); + navigationMenuItemView2.perform(click());*/ + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withId(R.id.Drawer)) + .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. + .perform(DrawerActions.open()); // Open Drawer + + // Start the screen of your activity. + onView(withId(R.id.navigation)) + .perform(NavigationViewActions.navigateTo(R.id.nav_logout)); + + // Check that you Activity was opened. + + // Added a sleep statement to match the app's execution delay. + // The recommended way to handle such scenarios is to use Espresso idling resources: + // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + + + } + + @Test + public void NavUserNameTest() { + // Type text and then press the button. + onView(withId(R.id.contactnumber)) + .perform(typeText("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()); + /*ViewInteraction appCompatImageButton2 = onView( + allOf(withContentDescription("Open navigation drawer"), + childAtPosition( + allOf(withId(R.id.tollbar), + childAtPosition( + withId(R.id.line), + 0)), + 1), + isDisplayed())); + appCompatImageButton2.perform(click()); + + ViewInteraction navigationMenuItemView2 = onView( + allOf(childAtPosition( + allOf(withId(R.id.design_navigation_view), + childAtPosition( + withId(R.id.navigation), + 0)), + 2), + isDisplayed())); + navigationMenuItemView2.perform(click());*/ + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withId(R.id.Drawer)) + .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. + .perform(DrawerActions.open()); // Open Drawer + + // Start the screen of your activity. + + onView(withId(R.id.text)) + .check( + matches(withText("Ramandeep"))); + + + // Check that you Activity was opened. + + // Added a sleep statement to match the app's execution delay. + // The recommended way to handle such scenarios is to use Espresso idling resources: + // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + + + } + + @Test + public void NavPhoneTest() { + // Type text and then press the button. + onView(withId(R.id.contactnumber)) + .perform(typeText("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()); + /*ViewInteraction appCompatImageButton2 = onView( + allOf(withContentDescription("Open navigation drawer"), + childAtPosition( + allOf(withId(R.id.tollbar), + childAtPosition( + withId(R.id.line), + 0)), + 1), + isDisplayed())); + appCompatImageButton2.perform(click()); + + ViewInteraction navigationMenuItemView2 = onView( + allOf(childAtPosition( + allOf(withId(R.id.design_navigation_view), + childAtPosition( + withId(R.id.navigation), + 0)), + 2), + isDisplayed())); + navigationMenuItemView2.perform(click());*/ + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withId(R.id.Drawer)) + .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. + .perform(DrawerActions.open()); // Open Drawer + + // Start the screen of your activity. + + onView(withId(R.id.not_sign_in)) + .check( + matches(withText("9779057263"))); + + + // Check that you Activity was opened. + + // Added a sleep statement to match the app's execution delay. + // The recommended way to handle such scenarios is to use Espresso idling resources: + // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + + + } + + + + + + + private static Matcher childAtPosition( + final Matcher parentMatcher, final int position) { + + return new TypeSafeMatcher() { + @Override + public void describeTo(Description description) { + description.appendText("Child at position " + position + " in parent "); + parentMatcher.describeTo(description); + } + + @Override + public boolean matchesSafely(View view) { + ViewParent parent = view.getParent(); + return parent instanceof ViewGroup && parentMatcher.matches(parent) + && view.equals(((ViewGroup) parent).getChildAt(position)); + } + }; + + + + // Check that the text was changed. + } + + +} diff --git a/app/src/androidTest/java/in/sminnovations/arrest_tb/PatientDetails.java b/app/src/androidTest/java/in/sminnovations/arrest_tb/PatientDetails.java new file mode 100644 index 0000000..9398dda --- /dev/null +++ b/app/src/androidTest/java/in/sminnovations/arrest_tb/PatientDetails.java @@ -0,0 +1,292 @@ +package in.sminnovations.arrest_tb; + + +import androidx.test.espresso.Espresso; +import androidx.test.espresso.ViewInteraction; +import androidx.test.filters.LargeTest; +import androidx.test.rule.ActivityTestRule; +import androidx.test.rule.GrantPermissionRule; +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.scrollTo; +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; +import static org.hamcrest.Matchers.allOf; +import static org.hamcrest.Matchers.instanceOf; +import static org.hamcrest.Matchers.is; + +@LargeTest +@RunWith(AndroidJUnit4.class) +public class PatientDetails { + @Rule + public GrantPermissionRule mGrantPermissionRule = + GrantPermissionRule.grant( + "android.permission.ACCESS_FINE_LOCATION", + "android.permission.READ_EXTERNAL_STORAGE", + "android.permission.WRITE_EXTERNAL_STORAGE", + + "android.permission.ACCESS_COARSE_LOCATION" + ); + + @Rule + public ActivityTestRule mActivityTestRule = new ActivityTestRule<>(PatientDetail.class); + + + @Test + public void PatientIdDigitOnly() { + onView(withId(R.id.patientid)) + .perform(typeText("12345"), closeSoftKeyboard()); + onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.age), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("77"), closeSoftKeyboard()); + + ViewInteraction appCompatEditText4 = onView( + allOf(withId(R.id.NikshayID), + isDisplayed())); + appCompatEditText4.perform(scrollTo(), replaceText("777777777"), closeSoftKeyboard()); + + onView(withId(R.id.next)) + .perform(scrollTo()) + + .perform(click()); + + onView(withText("Patient Id must be alphanumeric")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + } + @Test + public void PatientIdwrongchar() { + onView(withId(R.id.patientid)) + .perform(typeText("A23"), closeSoftKeyboard()); + onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.age), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("77"), closeSoftKeyboard()); + + ViewInteraction appCompatEditText4 = onView( + allOf(withId(R.id.NikshayID), + isDisplayed())); + appCompatEditText4.perform(scrollTo(), replaceText("777777777"), closeSoftKeyboard()); + + onView(withId(R.id.next)) + .perform(scrollTo()) + + .perform(click()); + + onView(withText("Patient Id must be 5 characters")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + } + @Test + public void PatientIdAlphabetOnly() { + onView(withId(R.id.patientid)) + .perform(typeText("ABCDE"), closeSoftKeyboard()); + onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.age), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("77"), closeSoftKeyboard()); + + ViewInteraction appCompatEditText4 = onView( + allOf(withId(R.id.NikshayID), + isDisplayed())); + appCompatEditText4.perform(scrollTo(), replaceText("777777777"), closeSoftKeyboard()); + + onView(withId(R.id.next)) + .perform(scrollTo()) + + .perform(click()); + + onView(withText("Patient Id must be alphanumeric")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + } + @Test + public void PatientGenderValidation() { + onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + + } + @Test + public void PatientAgeLess() { + onView(withId(R.id.patientid)) + .perform(typeText("A2345"), closeSoftKeyboard()); + onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.age), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("0"), closeSoftKeyboard()); + + ViewInteraction appCompatEditText4 = onView( + allOf(withId(R.id.NikshayID), + isDisplayed())); + appCompatEditText4.perform(scrollTo(), replaceText("777777777"), closeSoftKeyboard()); + + onView(withId(R.id.next)) + .perform(scrollTo()) + + .perform(click()); + onView(withText("Enter a valid Age")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + } + @Test + public void PatientAgeMore() { + onView(withId(R.id.patientid)) + .perform(typeText("A2345"), closeSoftKeyboard()); + onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.age), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("123"), closeSoftKeyboard()); + + ViewInteraction appCompatEditText4 = onView( + allOf(withId(R.id.NikshayID), + isDisplayed())); + appCompatEditText4.perform(scrollTo(), replaceText("777777777"), closeSoftKeyboard()); + + onView(withId(R.id.next)) + .perform(scrollTo()) + + .perform(click()); + onView(withText("Enter a valid Age")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + } + @Test + public void LeaveAge() { + onView(withId(R.id.patientid)) + .perform(typeText("A2345"), closeSoftKeyboard()); + onView(withId(R.id.patientid)) + .check(matches(withText("A2345"))); + onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.NikshayID), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("A77777777"), closeSoftKeyboard()); + appCompatEditText2.check( + matches(withText("A77777777"))); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.next), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + onView(withText("Please fill all fields")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + } + @Test + public void LeaveNikshayId() { + onView(withId(R.id.patientid)) + .perform(typeText("A2345"), closeSoftKeyboard()); + onView(withId(R.id.patientid)) + .check(matches(withText("A2345"))); + onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.age), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("77"), closeSoftKeyboard()); + appCompatEditText2.check( + matches(withText("77"))); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.next), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + onView(withText("Please fill all fields")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + } + @Test + public void LeavePatientId() { + + onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.age), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("77"), closeSoftKeyboard()); + appCompatEditText2.check( + matches(withText("77"))); + ViewInteraction appCompatEditText4 = onView( + allOf(withId(R.id.NikshayID), + isDisplayed())); + appCompatEditText4.perform(scrollTo(), replaceText("A77777777"), closeSoftKeyboard()); + appCompatEditText4.check( + matches(withText("A77777777"))); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.next), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + onView(withText("Please fill all fields")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + } + @Test + public void PatientNikshayIdValidation() { + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.NikshayID), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("7777777777777"), closeSoftKeyboard()); + appCompatEditText2.check( + matches(withText("777777777"))); + } + @Test + public void AllData() { + onView(withId(R.id.patientid)) + .perform(typeText("A2345"), closeSoftKeyboard()); + onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.age), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("77"), closeSoftKeyboard()); + + ViewInteraction appCompatEditText4 = onView( + allOf(withId(R.id.NikshayID), + isDisplayed())); + appCompatEditText4.perform(scrollTo(), replaceText("777777777"), closeSoftKeyboard()); + + onView(withId(R.id.next)) + .perform(scrollTo()) + + .perform(click()); + + /*ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.next), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click());*/ + + } + + /* onView(withId(R.id.)) + .perform(typeText("123456789"), closeSoftKeyboard()); + +*/ + + + + /*onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + +*/ + // Type text and then press the button. + + // Check that the text was changed. + + +} diff --git a/app/src/androidTest/java/in/sminnovations/arrest_tb/RegisterActivity.java b/app/src/androidTest/java/in/sminnovations/arrest_tb/RegisterActivity.java new file mode 100644 index 0000000..9317e9c --- /dev/null +++ b/app/src/androidTest/java/in/sminnovations/arrest_tb/RegisterActivity.java @@ -0,0 +1,235 @@ +package in.sminnovations.arrest_tb; + + +import androidx.test.espresso.ViewInteraction; +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.scrollTo; +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; +import static org.hamcrest.Matchers.allOf; + +@LargeTest +@RunWith(AndroidJUnit4.class) +public class RegisterActivity { + + @Rule + public ActivityTestRule mActivityTestRule = new ActivityTestRule<>(Register.class); + + + /* @Test + public void loginactivityv() { + // Type text and then press the button. + + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.register_user), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("Ramandeep Bains ............"), closeSoftKeyboard()); + appCompatEditText2.check( + matches(withText("123456"))); + // Check that the text was changed. + }*/ + @Test + public void RegisterEmptyName() { + // Type text and then press the button. + ViewInteraction appCompatEditText6 = onView( + allOf(withId(R.id.editTextName), + isDisplayed())); + appCompatEditText6.perform(scrollTo(), closeSoftKeyboard()); + + ViewInteraction appCompatEditText31 = onView( + allOf(withId(R.id.editTextMobile), + isDisplayed())); + appCompatEditText31.perform(scrollTo(), closeSoftKeyboard()); + + + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.editTextMobile), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("9779057833"), closeSoftKeyboard()); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.buttonContinue), + isDisplayed())); + appCompatEditText3.perform(click()); + + + onView(withText("Please enter all the required fields")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + // Check that the text was changed. + } + + @Test + public void RegisterEmptyNumber() { + // Type text and then press the button. + ViewInteraction appCompatEditText6 = onView( + allOf(withId(R.id.editTextName), + isDisplayed())); + appCompatEditText6.perform(scrollTo(), closeSoftKeyboard()); + + ViewInteraction appCompatEditText31 = onView( + allOf(withId(R.id.editTextMobile), + isDisplayed())); + appCompatEditText31.perform(scrollTo(), closeSoftKeyboard()); + + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.editTextName), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("Ramandeep"), closeSoftKeyboard()); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.buttonContinue), + isDisplayed())); + appCompatEditText3.perform(click()); + + + onView(withText("Please enter all the required fields")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + // Check that the text was changed. + } + + @Test + public void RegisterDigitLess() { + // Type text and then press the button. + ViewInteraction appCompatEditText6 = onView( + allOf(withId(R.id.editTextName), + isDisplayed())); + appCompatEditText6.perform(scrollTo(), closeSoftKeyboard()); + + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.editTextMobile), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), closeSoftKeyboard()); + + + appCompatEditText3.perform(scrollTo(), replaceText("98760"), closeSoftKeyboard()); + + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.editTextName), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("Ramandeep"), closeSoftKeyboard()); + ViewInteraction appCompatEditText4 = onView( + allOf(withId(R.id.buttonContinue), + isDisplayed())); + appCompatEditText4.perform(click()); + + onView(withText("Enter a valid Phone")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + // Check that the text was changed. + } + + @Test + public void RegisterDigitMore() { + // Type text and then press the button. + ViewInteraction appCompatEditText6 = onView( + allOf(withId(R.id.editTextName), + isDisplayed())); + appCompatEditText6.perform(scrollTo(), closeSoftKeyboard()); + + ViewInteraction appCompatEditText7 = onView( + allOf(withId(R.id.editTextMobile), + isDisplayed())); + appCompatEditText7.perform(scrollTo(), closeSoftKeyboard()); + + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.editTextMobile), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), replaceText("9876007249123"), closeSoftKeyboard()); + + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.editTextName), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("Ramandeep"), closeSoftKeyboard()); + ViewInteraction appCompatEditText4 = onView( + allOf(withId(R.id.buttonContinue), + isDisplayed())); + appCompatEditText4.perform(click()); + + onView(withText("Enter a valid Phone")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + // Check that the text was changed. + } + + /* @Test + public void RegisterNumberExist() { + // Type text and then press the button. + *//* ViewInteraction appCompatEditText678 = onView( + allOf(withId(R.id.editTextName), + isDisplayed())); + appCompatEditText678.perform(scrollTo(), closeSoftKeyboard()); + + ViewInteraction appCompatEditText679 = onView( + allOf(withId(R.id.editTextMobile), + isDisplayed())); + appCompatEditText679.perform(scrollTo(), closeSoftKeyboard()); +*//* + ViewInteraction appCompatEditText113 = onView( + allOf(withId(R.id.editTextMobile), + isDisplayed())); + appCompatEditText113.perform(scrollTo(), replaceText("9779057263"), closeSoftKeyboard()); + + ViewInteraction appCompatEditText112 = onView( + allOf(withId(R.id.editTextName), + isDisplayed())); + appCompatEditText112.perform(scrollTo(), replaceText("Ramandeep"), closeSoftKeyboard()); + ViewInteraction appCompatEditText411 = onView( + allOf(withId(R.id.buttonContinue), + isDisplayed())); + appCompatEditText411.perform(click()); + onView(withText("User Already Exist")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + // Check that the text was changed. + } + + +*/ + @Test + public void RegisterNumberExist1() { + // Type text and then press the button. + ViewInteraction appCompatEditText6 = onView( + allOf(withId(R.id.editTextName), + isDisplayed())); + appCompatEditText6.perform(scrollTo(), closeSoftKeyboard()); + + ViewInteraction appCompatEditText7 = onView( + allOf(withId(R.id.editTextMobile), + isDisplayed())); + appCompatEditText7.perform(scrollTo(), closeSoftKeyboard()); + + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.editTextMobile), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), replaceText("9779057263"), closeSoftKeyboard()); + + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.editTextName), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("Ramandeep"), closeSoftKeyboard()); + ViewInteraction appCompatEditText4 = onView( + allOf(withId(R.id.buttonContinue), + isDisplayed())); + appCompatEditText4.perform(click()); + + onView(withText("User Already Exist")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + // Check that the text was changed. + } + + +} diff --git a/app/src/androidTest/java/in/sminnovations/arrest_tb/SearchOperation.java b/app/src/androidTest/java/in/sminnovations/arrest_tb/SearchOperation.java new file mode 100644 index 0000000..e07f95b --- /dev/null +++ b/app/src/androidTest/java/in/sminnovations/arrest_tb/SearchOperation.java @@ -0,0 +1,69 @@ +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.typeText; +import static androidx.test.espresso.contrib.RecyclerViewActions.actionOnItemAtPosition; +import static androidx.test.espresso.matcher.ViewMatchers.withId; + +@LargeTest +@RunWith(AndroidJUnit4.class) +public class SearchOperation { + + @Rule + public ActivityTestRule mActivityTestRule = new ActivityTestRule<>(LoginScreen.class); + + + @Test + public void SearchData() { + onView(withId(R.id.contactnumber)) + .perform(typeText("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(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + onView(withId(R.id.search)) + .perform(typeText("12345"), closeSoftKeyboard()); + // onView(withText("12345")).perform(click()); + onView(withId(R.id.recycler_view)) + .perform(actionOnItemAtPosition(0, click())); + + + /* onView(withId(R.id.textToBeChanged)) + .check(matches(withText("12345")));*/ + // Type text and then press the button. + // onView(withId(R.id.search)).perform(click()); + + + /* onView(withId(R.id.search)).p + .perform(typeText("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()); +*/ + + // Check that the text was changed. + } + +} diff --git a/app/src/androidTest/java/in/sminnovations/arrest_tb/SplashActivity.java b/app/src/androidTest/java/in/sminnovations/arrest_tb/SplashActivity.java new file mode 100644 index 0000000..dcaa84d --- /dev/null +++ b/app/src/androidTest/java/in/sminnovations/arrest_tb/SplashActivity.java @@ -0,0 +1,32 @@ +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; + +@LargeTest +@RunWith(AndroidJUnit4.class) +public class SplashActivity { + + @Rule + public ActivityTestRule mActivityTestRule = new ActivityTestRule<>(SplashScreen.class); + + @Test + public void SplashActivity_1() { + // Added a sleep statement to match the app's execution delay. + // The recommended way to handle such scenarios is to use Espresso idling resources: + // https://google.github.io/android-testing-support-library/docs/espresso/idling-resource/index.html + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + +} diff --git a/app/src/androidTest/java/in/sminnovations/arrest_tb/TestDetail_Data.java b/app/src/androidTest/java/in/sminnovations/arrest_tb/TestDetail_Data.java new file mode 100644 index 0000000..d011ec8 --- /dev/null +++ b/app/src/androidTest/java/in/sminnovations/arrest_tb/TestDetail_Data.java @@ -0,0 +1,294 @@ +package in.sminnovations.arrest_tb; + + +import androidx.test.espresso.Espresso; +import androidx.test.espresso.ViewInteraction; +import androidx.test.filters.LargeTest; +import androidx.test.rule.ActivityTestRule; +import androidx.test.rule.GrantPermissionRule; +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.scrollTo; +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; +import static org.hamcrest.Matchers.allOf; +import static org.hamcrest.Matchers.instanceOf; +import static org.hamcrest.Matchers.is; + +@LargeTest +@RunWith(AndroidJUnit4.class) +public class TestDetail_Data { + @Rule + public GrantPermissionRule mGrantPermissionRule = + GrantPermissionRule.grant( + "android.permission.ACCESS_FINE_LOCATION", + "android.permission.READ_EXTERNAL_STORAGE", + "android.permission.WRITE_EXTERNAL_STORAGE", + + "android.permission.ACCESS_COARSE_LOCATION" + ); + @Rule + public ActivityTestRule mActivityTestRule = new ActivityTestRule<>(TestResult.class); + + + @Test + public void NIRTLabDigitOnly() { + onView(withId(R.id.NIRTLab)) + .perform(typeText("123456789"), closeSoftKeyboard()); + + + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.SPINTubeID), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("A12345678"), closeSoftKeyboard()); + appCompatEditText2.check( + matches(withText("A12345"))); + onView(withId(R.id.spinner_sample)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Culture"))).perform(click()); + + onView(withId(R.id.spinner_validity)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Valid"))).perform(click()); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.startTest), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + onView(withText("NIRT Lab Number must be alphanumeric")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + } + + @Test + public void NIRTLabAlphabetOnly() { + onView(withId(R.id.NIRTLab)) + .perform(typeText("ABCDEFGH"), closeSoftKeyboard()); + + + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.SPINTubeID), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("A12345678"), closeSoftKeyboard()); + appCompatEditText2.check( + matches(withText("A12345"))); + onView(withId(R.id.spinner_sample)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Culture"))).perform(click()); + + onView(withId(R.id.spinner_validity)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Valid"))).perform(click()); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.startTest), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + onView(withText("NIRT Lab Number must be alphanumeric")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + } + @Test + public void NIRTLabInvalidChar() { + onView(withId(R.id.NIRTLab)) + .perform(typeText("A1222"), closeSoftKeyboard()); + + + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.SPINTubeID), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("A12345"), closeSoftKeyboard()); + + onView(withId(R.id.spinner_sample)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Culture"))).perform(click()); + + onView(withId(R.id.spinner_validity)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Valid"))).perform(click()); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.startTest), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + onView(withText("NIRT Lab Number must be 7 characters")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + } + @Test + public void SampleValidation() { + onView(withId(R.id.spinner_sample)).perform(scrollTo(), closeSoftKeyboard()); + + onView(withId(R.id.spinner_sample)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Culture"))).perform(click()); + + } + @Test + public void TubeValidation() { + + onView(withId(R.id.spinner_validity)).perform(scrollTo(), closeSoftKeyboard()); + + onView(withId(R.id.spinner_validity)).perform(scrollTo(), click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Valid"))).perform(scrollTo(), click()); + + + } + @Test + public void SPINTubeIdValidation(){ + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.SPINTubeID), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("A12345678"), closeSoftKeyboard()); + appCompatEditText2.check( + matches(withText("A12345"))); + } + @Test + public void LeaveSpinTubeId() { + + + onView(withId(R.id.NIRTLab)) + .perform(typeText("A123456"), closeSoftKeyboard()); + onView(withId(R.id.NIRTLab)) + .check(matches(withText("A123456"))); + onView(withId(R.id.spinner_sample)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Culture"))).perform(click()); + + onView(withId(R.id.spinner_validity)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Valid"))).perform(click()); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.startTest), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + onView(withText("Please fill all required fields")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + + } + @Test + public void LeaveNirtLab() { + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.SPINTubeID), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("A12345678"), closeSoftKeyboard()); + appCompatEditText2.check( + matches(withText("A12345"))); + onView(withId(R.id.spinner_sample)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Culture"))).perform(click()); + + onView(withId(R.id.spinner_validity)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Valid"))).perform(click()); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.startTest), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + onView(withText("Please fill all required fields")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + } + + @Test + public void AllDataTest() { + onView(withId(R.id.NIRTLab)) + .perform(typeText("A12345678"), closeSoftKeyboard()); + onView(withId(R.id.NIRTLab)) + .check(matches(withText("A123456"))); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.SPINTubeID), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("A12345678"), closeSoftKeyboard()); + appCompatEditText2.check( + matches(withText("A12345"))); + onView(withId(R.id.spinner_sample)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Culture"))).perform(click()); + + onView(withId(R.id.spinner_validity)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Valid"))).perform(click()); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.startTest), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + } + + @Test + public void SpinTubeInvalidChar() { + onView(withId(R.id.NIRTLab)) + .perform(typeText("A123456"), closeSoftKeyboard()); + + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.SPINTubeID), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("A123"), closeSoftKeyboard()); + + onView(withId(R.id.spinner_sample)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Culture"))).perform(click()); + + onView(withId(R.id.spinner_validity)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Valid"))).perform(click()); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.startTest), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + onView(withText("Spin Tube ID must be 6 characters")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + } + public void SpinTubeDigitOnly() { + onView(withId(R.id.NIRTLab)) + .perform(typeText("A12345678"), closeSoftKeyboard()); + onView(withId(R.id.NIRTLab)) + .check(matches(withText("A123456"))); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.SPINTubeID), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("123456"), closeSoftKeyboard()); + + onView(withId(R.id.spinner_sample)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Culture"))).perform(click()); + + onView(withId(R.id.spinner_validity)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Valid"))).perform(click()); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.startTest), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + onView(withText("Spin Tube ID must be alphanumeric")).inRoot(new ToastMatcher()).check(matches(isDisplayed())); + + } + public void SpinTubeNumericOnly() { + onView(withId(R.id.NIRTLab)) + .perform(typeText("A12345678"), closeSoftKeyboard()); + onView(withId(R.id.NIRTLab)) + .check(matches(withText("A123456"))); + ViewInteraction appCompatEditText2 = onView( + allOf(withId(R.id.SPINTubeID), + isDisplayed())); + appCompatEditText2.perform(scrollTo(), replaceText("A12345678"), closeSoftKeyboard()); + appCompatEditText2.check( + matches(withText("A12345"))); + onView(withId(R.id.spinner_sample)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Culture"))).perform(click()); + + onView(withId(R.id.spinner_validity)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Valid"))).perform(click()); + ViewInteraction appCompatEditText3 = onView( + allOf(withId(R.id.startTest), + isDisplayed())); + appCompatEditText3.perform(scrollTo(), click()); + } + + + + + /* onView(withId(R.id.)) + .perform(typeText("123456789"), closeSoftKeyboard()); + +*/ + + + + /*onView(withId(R.id.spinner_gender)).perform(click()); + Espresso.onData(allOf(is(instanceOf(String.class)), is("Female"))).perform(click()); + +*/ + // Type text and then press the button. + + // Check that the text was changed. + + +} diff --git a/app/src/main/assets/labels.txt b/app/src/main/assets/labels.txt index 0dcf43b..c154cd2 100644 --- a/app/src/main/assets/labels.txt +++ b/app/src/main/assets/labels.txt @@ -1,2 +1,2 @@ -0 negative -1 positive +0 positive +1 negative diff --git a/app/src/main/assets/model.tflite b/app/src/main/assets/model.tflite index 1df51dc..3b67555 100644 Binary files a/app/src/main/assets/model.tflite and b/app/src/main/assets/model.tflite differ diff --git a/app/src/main/java/in/sminnovations/arrest_tb/Register.java b/app/src/main/java/in/sminnovations/arrest_tb/Register.java index 4a670d5..fda1a9c 100644 --- a/app/src/main/java/in/sminnovations/arrest_tb/Register.java +++ b/app/src/main/java/in/sminnovations/arrest_tb/Register.java @@ -101,20 +101,44 @@ String numberwithcode; else { if (mobile.equals("") || name.equals("")) { - Toast.makeText(Register.this, "please enter all the required fields", Toast.LENGTH_SHORT).show(); + Toast.makeText(Register.this, "Please enter all the required fields", Toast.LENGTH_SHORT).show(); } else if (!Patterns.PHONE.matcher(mobile).matches()) { - editTextMobile.setError("Enter a valid Phone "); + editTextMobile.setError("Enter a valid Phone"); // Toast.makeText(Consumer_register.this, "Please Enter a valid email", Toast.LENGTH_SHORT).show(); - } else { + } + + else if (mobile.length() <9 ) { + Toast.makeText(Register.this, "Enter a valid Phone", Toast.LENGTH_SHORT).show(); + // Toast.makeText(Consumer_register.this, "Please Enter a valid email", Toast.LENGTH_SHORT).show(); + + } + else if (mobile.length() >=11 ) { + Toast.makeText(Register.this, "Enter a valid Phone", Toast.LENGTH_SHORT).show(); + // Toast.makeText(Consumer_register.this, "Please Enter a valid email", Toast.LENGTH_SHORT).show(); + + } + + + + + + + + + + + + else { Query chekuser = FirebaseDatabase.getInstance().getReference("USERS").orderByChild("number").equalTo(mobile); chekuser.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { if (dataSnapshot.exists()) { - editTextMobile.setError("User Already Exist "); + Toast.makeText(Register.this, "User Already Exist", Toast.LENGTH_SHORT).show(); + } else { @@ -125,10 +149,10 @@ String numberwithcode; Log.e("main", "error " + numberwithcode); if (mobile.equals("") || name.equals("")) { - Toast.makeText(Register.this, "please enter all the required fields", Toast.LENGTH_SHORT).show(); + Toast.makeText(Register.this, "Please enter all the required fields", Toast.LENGTH_SHORT).show(); } else if (!Patterns.PHONE.matcher(mobile).matches()) { - editTextMobile.setError("Enter a valid Phone "); + editTextMobile.setError("Enter a valid Phone"); // Toast.makeText(Consumer_register.this, "Please Enter a valid email", Toast.LENGTH_SHORT).show(); } else {