package com.onemore.karungguniapp.test;
import android.content.Context;
import android.test.ActivityInstrumentationTestCase2;
import android.view.View;
import android.widget.EditText;
import com.jayway.android.robotium.solo.Solo;
import com.onemore.karungguniapp.AccountManager;
import com.onemore.karungguniapp.KarungGuniActivity;
import com.onemore.karungguniapp.LoginActivity;
import com.onemore.karungguniapp.Main;
import com.onemore.karungguniapp.SellerActivity;
// TODO Not working
// Test cases for successful logins
public class LoginProcessTest extends ActivityInstrumentationTestCase2<Main>{
Solo solo;
Context context;
EditText email, password;
View submit;
String[] testEmail = {"kgtest@domain.com",
"accountdoesnotexist@domain.com",
"kgtest@domain.com",
"sellertest@domain.com"};
String[] testPassword = {"wrongpass",
"password",
"password",
"password"};
public LoginProcessTest() {
super(Main.class);
}
protected void setUp() throws Exception {
super.setUp();
AccountManager.clearCurrentUser(getInstrumentation().getTargetContext());
solo = new Solo(getInstrumentation(),getActivity());
}
public void testLoginProcess_InvalidLogin1(){
solo.assertCurrentActivity("Current activity not Main", Main.class);
solo.clickOnView(solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.signin));
assertTrue("LoginActivity not launched", solo.waitForActivity(LoginActivity.class, 10000));
solo.assertCurrentActivity("Current activity not LoginActivity", LoginActivity.class);
email = (EditText)solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.Leditemail);
password = (EditText)solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.Leditpw);
submit = solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.login);
assertNotNull(email);
assertNotNull(password);
assertNotNull(submit);
int i = 0;
solo.enterText(email, testEmail[i]);
solo.enterText(password, testPassword[i]);
solo.clickOnView(submit);
assertFalse("KarungGuniActivity launched", solo.waitForActivity(KarungGuniActivity.class, 2000));
assertFalse("SellerActivity launched", solo.waitForActivity(SellerActivity.class, 2000));
solo.assertCurrentActivity("Current activity LoginActivity", LoginActivity.class);
}
public void testLoginProcess_InvalidLogin2(){
solo.assertCurrentActivity("Current activity not Main", Main.class);
solo.clickOnView(solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.signin));
assertTrue("LoginActivity not launched", solo.waitForActivity(LoginActivity.class, 10000));
solo.assertCurrentActivity("Current activity not LoginActivity", LoginActivity.class);
email = (EditText)solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.Leditemail);
password = (EditText)solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.Leditpw);
submit = solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.login);
assertNotNull(email);
assertNotNull(password);
assertNotNull(submit);
int i = 1;
solo.enterText(email, testEmail[i]);
solo.enterText(password, testPassword[i]);
solo.clickOnView(submit);
assertFalse("KarungGuniActivity launched", solo.waitForActivity(KarungGuniActivity.class, 2000));
assertFalse("SellerActivity launched", solo.waitForActivity(SellerActivity.class, 2000));
solo.assertCurrentActivity("Current activity LoginActivity", LoginActivity.class);
}
public void testLoginProcess_KgLogin(){
solo.assertCurrentActivity("Current activity not Main", Main.class);
solo.clickOnView(solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.signin));
assertTrue("LoginActivity not launched", solo.waitForActivity(LoginActivity.class, 10000));
solo.assertCurrentActivity("Current activity not LoginActivity", LoginActivity.class);
email = (EditText)solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.Leditemail);
password = (EditText)solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.Leditpw);
submit = solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.login);
assertNotNull(email);
assertNotNull(password);
assertNotNull(submit);
int i = 2;
solo.enterText(email, testEmail[i]);
solo.enterText(password, testPassword[i]);
solo.clickOnView(submit);
assertTrue("KarungGuniActivity not launched", solo.waitForActivity(KarungGuniActivity.class, 10000));
solo.assertCurrentActivity("Current activity not KarungGuniActivity", KarungGuniActivity.class);
}
public void testLoginProcess_SellerLogin(){
solo.assertCurrentActivity("Current activity not Main", Main.class);
solo.clickOnView(solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.signin));
assertTrue("LoginActivity not launched", solo.waitForActivity(LoginActivity.class, 10000));
solo.assertCurrentActivity("Current activity not LoginActivity", LoginActivity.class);
email = (EditText)solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.Leditemail);
password = (EditText)solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.Leditpw);
submit = solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.login);
assertNotNull(email);
assertNotNull(password);
assertNotNull(submit);
int i = 3;
solo.enterText(email, testEmail[i]);
solo.enterText(password, testPassword[i]);
solo.clickOnView(submit);
assertTrue("SellerActivity not launched", solo.waitForActivity(SellerActivity.class, 10000));
solo.assertCurrentActivity("Current activity not SellerActivity", SellerActivity.class);
}
protected void tearDown() throws Exception {
AccountManager.clearCurrentUser(getInstrumentation().getTargetContext());
solo.finishOpenedActivities();
super.tearDown();
}
}