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.SellerActivity; //Test edit profile button on SellerActivity action bar public class EditProfileUITest2 extends ActivityInstrumentationTestCase2<SellerActivity> { private Solo solo; public EditProfileUITest2() { super(SellerActivity.class); } protected void setUp() throws Exception { super.setUp(); this.setActivityInitialTouchMode(true); AccountManager.clearCurrentUser(this.getInstrumentation().getTargetContext()); } public void testEditProfileButton(){ AccountManager.setCurrentUser(this.getInstrumentation().getTargetContext(),"sellertest@domain.com",AppData.ROLE_SELLER); solo = new Solo(getInstrumentation(), getActivity()); solo.assertCurrentActivity("Not SellerActivity", SellerActivity.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.VISIBLE,solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.editprofile_label_address).getVisibility()); assertEquals(View.VISIBLE,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); EditText address = (EditText)solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.editprofile_address); assertEquals("Display Name", displayName.getText().toString()); assertEquals("32 Nanyang Crescent, Singapore 637658", address.getText().toString()); // Input validation test solo.enterText(displayName, "SellerABC"); solo.enterText(address, ""); solo.clickOnView(solo.getCurrentActivity().findViewById(com.onemore.karungguniapp.R.id.editprofile_submit)); assertEquals(solo.getCurrentActivity().getString(com.onemore.karungguniapp.R.string.editprofile_address_empty), address.getError().toString()); // Test update of profile details solo.enterText(displayName, "Display Name2"); solo.enterText(address, "33 Nanyang Crescent, Singapore 637658"); 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()); assertEquals("33 Nanyang Crescent, Singapore 637658", address.getText().toString()); // Undo update of profile details solo.enterText(displayName, "Display Name"); solo.enterText(address, "32 Nanyang Crescent, Singapore 637658"); 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(); } }