package com.onemore.karungguniapp.test;
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.AppData;
import com.onemore.karungguniapp.EditProfile;
import com.onemore.karungguniapp.KarungGuniActivity;
// Test edit profile button on KarungGuniActivity action bar
public class EditProfileUITest extends ActivityInstrumentationTestCase2<KarungGuniActivity> {
private Solo solo;
public EditProfileUITest() {
super(KarungGuniActivity.class);
}
protected void setUp() throws Exception {
super.setUp();
this.setActivityInitialTouchMode(true);
AccountManager.clearCurrentUser(this.getInstrumentation().getTargetContext());
}
public void testEditProfileButton(){
AccountManager.setCurrentUser(this.getInstrumentation().getTargetContext(),"kgtest@domain.com",AppData.ROLE_KG);
solo = new Solo(getInstrumentation(), getActivity());
solo.assertCurrentActivity("Not KarungGuniActivity", KarungGuniActivity.class);
solo.clickOnActionBarItem(com.onemore.karungguniapp.R.id.edit_profile);
assertTrue("EditProfile not launched",solo.waitForActivity(EditProfile.class, 10000));
solo.assertCurrentActivity("Not EditProfile", EditProfile.class);
solo.waitForDialogToClose();
assertEquals(View.GONE,solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.editprofile_label_address).getVisibility());
assertEquals(View.GONE,solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.editprofile_address).getVisibility());
// Test pre-population of fields
EditText displayName = (EditText)solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.editprofile_displayname);
assertEquals("Not Sahil",displayName.getText().toString());
// Input validation test
solo.enterText(displayName, "");
solo.clickOnView(solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.editprofile_submit));
assertEquals(solo.getCurrentActivity().getString(com.onemore.karungguniapp.R.string.editprofile_compulsory),
displayName.getError().toString());
// Test update of profile details
solo.enterText(displayName, "Display Name2");
solo.clickOnView(solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.editprofile_submit));
solo.waitForDialogToClose();
solo.goBack();
solo.clickOnActionBarItem(com.onemore.karungguniapp.R.id.edit_profile);
solo.waitForDialogToClose();
assertEquals("Display Name2", displayName.getText().toString());
// Undo update of profile details
solo.enterText(displayName, "Not Sahil");
solo.clickOnView(solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.editprofile_submit));
solo.waitForDialogToClose();
}
protected void tearDown() throws Exception {
AccountManager.clearCurrentUser(this.getInstrumentation().getTargetContext());
solo.finishOpenedActivities();
super.tearDown();
}
}