Skip to content
This repository was archived by the owner on Feb 5, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions MASLoginUserAuthentication/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,21 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.multidex:multidex:2.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'androidx.test.espresso:espresso-idling-resource:3.2.0'
androidTestImplementation 'androidx.test:rules:1.3.0'
androidTestImplementation 'androidx.test:runner:1.3.0'
androidTestImplementation 'androidx.test:core:1.0.0-beta02'

implementation 'com.ca:mas-foundation:2.1.00'
implementation 'com.ca:masui:2.1.00' //remove if not using UI template
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:gridlayout-v7:28.0.0'
implementation(name: 'mas-foundation-release', ext: 'aar')
implementation(name: 'masui-release', ext: 'aar')

// implementation 'com.ca:mas-foundation:2.1.00'
// implementation 'com.ca:masui:2.1.00' //remove if not using UI template

}
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package com.ca.mas.massample;

import android.app.Application;
import android.test.ApplicationTestCase;
//import android.app.Application;
//import android.test.ApplicationTestCase;

/**
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
*/
public class ApplicationTest extends ApplicationTestCase<Application> {
public ApplicationTest() {
super(Application.class);
}
public class ApplicationTest {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
package com.ca.mas.massample;

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.assertion.ViewAssertions.matches;
import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.isRoot;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static org.hamcrest.core.StringContains.containsString;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.View;


import androidx.test.core.app.ActivityScenario;
import androidx.test.espresso.Espresso;
import androidx.test.espresso.IdlingRegistry;
import androidx.test.espresso.IdlingResource;
import androidx.test.espresso.PerformException;
import androidx.test.espresso.UiController;
import androidx.test.espresso.ViewAction;
import androidx.test.espresso.util.HumanReadables;
import androidx.test.espresso.util.TreeIterables;
import androidx.test.ext.junit.rules.ActivityScenarioRule;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.platform.app.InstrumentationRegistry;

import com.ca.mas.ui.MASLoginActivity;

import org.hamcrest.Matcher;
import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;


@RunWith(AndroidJUnit4.class)
public class LoginUserAuthenticationTest {


private IdlingResource mIdlingResource;

@Rule
public ActivityScenarioRule<MainActivity> mActivityRule =
new ActivityScenarioRule<>(MainActivity.class);


@Test
public void LoginTest() throws InterruptedException {

Thread.sleep(10000);
onView(withId(R.id.activity_mas_login_edit_text_username)).check(matches(isDisplayed()));
onView(withId(R.id.activity_mas_login_edit_text_username))
.perform(typeText(getResourceString(R.string.user_name)), closeSoftKeyboard());

onView(withId(R.id.activity_mas_login_edit_text_password))
.perform(typeText(getResourceString(R.string.password)), closeSoftKeyboard());
onView(withId(R.id.activity_mas_login_button_login)).perform(click());

Thread.sleep(8000);

onView(withId(R.id.apiResponse))
.check(matches(withText("{\"products\":[{\"id\":1,\"name\":\"AC544\",\"Time 13:00\":\"On Time\"},{\"id\":2,\"name\":\"WJ6345\",\"Arrival Time 14:55\":\"Delayed\"},{\"id\":3,\"name\":\"BA2490\",\"Arrival Time 14:55\":\"On Time\"},{\"id\":4,\"name\":\"AA1452\",\"Arrival Time 15:15\":\"Early Arrival\"},{\"id\":5,\"name\":\"WJ2678\",\"Arrival Time 16:32\":\"Delayed\"},{\"id\":6,\"name\":\"AC4455\",\"Arrival Time 17:45\":\"On Time\"}],\"device_geo\":\"\",\"clientCert.subject\":\"CN=admin, OU=6c639b93a7a6dc2b98f37326b261512b3f25c060c1d754540a3f857f968ef49d, DC=AOSPonIAEmulator, O=Broadcom\"}")));

}

private String getResourceString(int id) {
Context targetContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
return targetContext.getResources().getString(id);
}


}
Loading