/** * PHR_AndroidNative * * Copyright (C) 1999-2014 Photon Infotech 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. */ /** * Author by {phresco} QA Automation Team */ package com.photon.phresco.nativeapp.performance.test.testcases; import java.util.ArrayList; import java.util.Iterator; import junit.framework.TestCase; import android.util.Log; import android.view.View; import android.widget.EditText; import android.widget.ImageView; import com.photon.phresco.nativeapp.R; import com.jayway.android.robotium.solo.Solo; public class LoginValidationTest extends TestCase { private Solo soloLoginValid; private String activityName; public ImageView clickCancel; private String TAG = "*****LoginValidationTestCase******"; public LoginValidationTest(Solo solo) { this.soloLoginValid = solo; } public void testLoginValidation() throws TestException { try { Log.i(TAG, "------It is testLoginValidation()-----------"); activityName = soloLoginValid.getCurrentActivity().getClass().getSimpleName(); if (activityName.equalsIgnoreCase("MainActivity")) { Log.i(TAG, "------It is MainActivity-----------" + activityName); soloLoginValid.waitForActivity("HomeActivity", 2000); for (int i = 0; i < 40; i++) { activityName = soloLoginValid.getCurrentActivity().getClass().getSimpleName(); if (activityName.equalsIgnoreCase("HomeActivity")) { Log.i(TAG, "------for()-- loop-----"); break; } soloLoginValid.waitForActivity("HomeActivity", 2000); } } else { Log.i(TAG, "------ testLoginValidation failed-----------"); throw new TestException("Current Activity Failed----" + soloLoginValid.getCurrentActivity().getClass().getSimpleName() + "failed"); } if (activityName.equalsIgnoreCase("HomeActivity")) { Log.i(TAG, "------HomeActivity-----------"); System.out.println(" Activity name ---->" + soloLoginValid.getCurrentActivity()); ArrayList<View> al = soloLoginValid.getViews(); Iterator<View> it = al.iterator(); while (it.hasNext()) { String viewName = it.next().getClass().getSimpleName(); if (viewName.equalsIgnoreCase("ImageView")) { Log.i(TAG, "------ImageView found-----------"); break; } continue; } } else { Log.i(TAG, "------HomeActivity not found-----------"); throw new TestException(TAG + soloLoginValid.getCurrentActivity().getClass().getSimpleName() + "failed"); } // click on Loginbutton soloLoginValid.waitForActivity("MainActivity", 5000); // get the login button view with id i.e home_login_btn ImageView loginButton = (ImageView) soloLoginValid .getView(R.id.home_login_btn); // click on login button with view id soloLoginValid.clickOnView(loginButton); // control waits for 2 seconds to activate the screen soloLoginValid.waitForActivity("SplashActivity", 2000); // clears the text at first Editfield EditText emailField = (EditText) soloLoginValid.getView(R.id.txt_email); soloLoginValid.clearEditText(emailField); // it will type the text at first field which i gave in method soloLoginValid.enterText(emailField, "android@"); // clear the text at second Editfield EditText passwordField = (EditText) soloLoginValid .getView(R.id.txt_password); soloLoginValid.clearEditText(passwordField); // finding the password field view // click the password field based on EditText view object soloLoginValid.clickOnView(passwordField); soloLoginValid.waitForActivity("MainActivity", 1000); soloLoginValid.enterText(passwordField, "*****"); soloLoginValid.waitForActivity("MainActivity", 1000); // click on Login button ImageView clickLogin = (ImageView) soloLoginValid .getView(R.id.login_btn); soloLoginValid.clickOnView(clickLogin); // soloSplash.clickOnImageButton(1); soloLoginValid.waitForActivity("LoginActivity"); soloLoginValid.clickOnView(emailField); soloLoginValid.waitForActivity("LoginActivity", 1000); boolean valid = soloLoginValid.searchText("Invalid Email address!"); if (valid) { assertTrue("Invalid Email address!", valid); } else { throw new TestException("Testcase failed"); } soloLoginValid.waitForActivity("LoginActivity", 1000); // Get the view location of cancel button. clickCancel = (ImageView) soloLoginValid.getView(R.id.cancel_btn); soloLoginValid.waitForActivity("MainActivity", 1000); // click on cancel button soloLoginValid.clickOnView(clickCancel); soloLoginValid.waitForActivity("LoginActivity", 1000); } catch (TestException e) { e.printStackTrace(); } } }