From d2abb98c21aa8661f05ec071315f5cbe1cc0db04 Mon Sep 17 00:00:00 2001 From: meonster <meonster.yi@gmail.com> Date: Wed, 23 Aug 2017 13:54:59 +0700 Subject: [PATCH 01/13] add new instrumented test --- .../cs/myui/NewsDetailInstrumentedTest.java | 3 +- .../ac/ui/cs/myui/PanicButtonTestSuite.java | 34 +++++++++++++++++ .../cs/myui/helper/OpenNavigationDrawer.java | 31 +++++++++++++++ .../pageObject/PanicButtonPageObject.java | 38 +++++++++++++++++++ 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java create mode 100644 app/src/androidTest/java/id/ac/ui/cs/myui/helper/OpenNavigationDrawer.java create mode 100644 app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/PanicButtonPageObject.java diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/NewsDetailInstrumentedTest.java b/app/src/androidTest/java/id/ac/ui/cs/myui/NewsDetailInstrumentedTest.java index 219c37d2..9addf383 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/NewsDetailInstrumentedTest.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/NewsDetailInstrumentedTest.java @@ -11,6 +11,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import id.ac.ui.cs.myui.activity.epic_1.news.NewsDetailActivity; +import id.ac.ui.cs.myui.activity.epic_1.news.NewsHomeActivity; import id.ac.ui.cs.myui.helper.android_helper.AppsHelper; import static android.support.test.espresso.Espresso.onData; @@ -32,7 +33,7 @@ public class NewsDetailInstrumentedTest { private final String PACKAGE_LINE = "jp.naver.line.android"; private final String PACKAGE_WA = "com.whatsapp"; @Rule - public ActivityTestRule<NewsDetailActivity> mActivityRule = new ActivityTestRule(NewsDetailActivity.class); + public ActivityTestRule<NewsHomeActivity> mActivityRule = new ActivityTestRule(NewsHomeActivity.class); Context context; diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java b/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java new file mode 100644 index 00000000..5d9ac870 --- /dev/null +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java @@ -0,0 +1,34 @@ +package id.ac.ui.cs.myui; + +import android.support.test.rule.ActivityTestRule; + +import org.junit.Rule; +import org.junit.Test; + +import id.ac.ui.cs.myui.activity.epic_1.news.NewsHomeActivity; +import id.ac.ui.cs.myui.helper.OpenNavigationDrawer; +import id.ac.ui.cs.myui.pageObject.PanicButtonPageObject; + +/** + * Created by muhammad.yusuf43 and eka on 23/08/17. + */ + +// terjadi infinite loop ketika checkmatch karena ada animation +// matikan animation terlebih dahulu untuk menjalankan test ini +public class PanicButtonTestSuite { + + @Rule + public ActivityTestRule<NewsHomeActivity> main = new ActivityTestRule<>(NewsHomeActivity.class); + + @Test + public void testView() { + OpenNavigationDrawer.navigateTo(R.id.panic_button_drawer); + PanicButtonPageObject.assertView(); + } + + @Test + public void testPanicButton() { + OpenNavigationDrawer.navigateTo(R.id.panic_button_drawer); + PanicButtonPageObject.panicButtonLongClick(); + } +} diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/helper/OpenNavigationDrawer.java b/app/src/androidTest/java/id/ac/ui/cs/myui/helper/OpenNavigationDrawer.java new file mode 100644 index 00000000..05d8bfa3 --- /dev/null +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/helper/OpenNavigationDrawer.java @@ -0,0 +1,31 @@ +package id.ac.ui.cs.myui.helper; + +import android.support.annotation.StringRes; +import android.support.test.espresso.ViewInteraction; +import android.support.test.espresso.contrib.DrawerActions; +import android.support.test.espresso.contrib.NavigationViewActions; + +import id.ac.ui.cs.myui.R; + +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.matcher.ViewMatchers.withId; +import static android.support.test.espresso.matcher.ViewMatchers.withText; + +/** + * Created by muhammad.yusuf43 on 23/08/17. + */ + +public class OpenNavigationDrawer { + + private static ViewInteraction burger = onView(withId(R.id.drawer_layout)); + private static ViewInteraction nav_view = onView(withId(R.id.nav_view)); + + public static void openDrawer() { + burger.perform(DrawerActions.open()); + } + + public static void navigateTo(int resource) { + openDrawer(); + nav_view.perform(NavigationViewActions.navigateTo(resource)); + } +} diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/PanicButtonPageObject.java b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/PanicButtonPageObject.java new file mode 100644 index 00000000..ce41cf1e --- /dev/null +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/PanicButtonPageObject.java @@ -0,0 +1,38 @@ +package id.ac.ui.cs.myui.pageObject; + +import android.provider.Settings; +import android.support.test.espresso.ViewInteraction; +import android.support.test.espresso.assertion.ViewAssertions; +import android.util.Log; + +import id.ac.ui.cs.myui.R; + +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.action.ViewActions.longClick; +import static android.support.test.espresso.assertion.ViewAssertions.matches; +import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; +import static android.support.test.espresso.matcher.ViewMatchers.withId; +import static android.support.test.espresso.matcher.ViewMatchers.withText; + +/** + * Created by muhammad.yusuf43 on 23/08/17. + */ + +public class PanicButtonPageObject { + +// private static ViewInteraction textMemanggil = onView(withText("Memangil")); + private static ViewInteraction spinnerCall = onView(withId(R.id.list_all_panic_number)); + private static ViewInteraction panicButton = onView(withId(R.id.panic_button)); + private static ViewInteraction textDescription = onView(withId(R.id.tv_press_and_hold_the_button)); + + public static void assertView() { +// textMemanggil.check(ViewAssertions.matches(withText("Memangil"))); + spinnerCall.check(matches(isDisplayed())); + panicButton.check(matches(isDisplayed())); + textDescription.check(matches(isDisplayed())); + } + + public static void panicButtonLongClick() { + panicButton.perform(longClick()); + } +} -- GitLab From 0b7fd8eb654e2ec750f08ce84180e39eddd59321 Mon Sep 17 00:00:00 2001 From: meonster <meonster.yi@gmail.com> Date: Wed, 23 Aug 2017 13:56:25 +0700 Subject: [PATCH 02/13] merge with develop --- .../androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java b/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java index 5d9ac870..9235d550 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java @@ -31,4 +31,5 @@ public class PanicButtonTestSuite { OpenNavigationDrawer.navigateTo(R.id.panic_button_drawer); PanicButtonPageObject.panicButtonLongClick(); } + } -- GitLab From ff599fc1258b24e1bd0ac193b8c77ae8d89194e7 Mon Sep 17 00:00:00 2001 From: meonster <meonster.yi@gmail.com> Date: Wed, 23 Aug 2017 14:22:18 +0700 Subject: [PATCH 03/13] add example code for webview test --- .../ac/ui/cs/myui/PanicButtonTestSuite.java | 2 +- .../cs/myui/pageObject/LoginPageObject.java | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/LoginPageObject.java diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java b/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java index 9235d550..721c9c34 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java @@ -31,5 +31,5 @@ public class PanicButtonTestSuite { OpenNavigationDrawer.navigateTo(R.id.panic_button_drawer); PanicButtonPageObject.panicButtonLongClick(); } - + } diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/LoginPageObject.java b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/LoginPageObject.java new file mode 100644 index 00000000..1027411b --- /dev/null +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/LoginPageObject.java @@ -0,0 +1,43 @@ +package id.ac.ui.cs.myui.pageObject; + +import android.support.test.espresso.web.model.Atom; +import android.support.test.espresso.web.webdriver.Locator; + +import static android.support.test.espresso.web.assertion.WebViewAssertions.webContent; +import static android.support.test.espresso.web.assertion.WebViewAssertions.webMatches; +import static android.support.test.espresso.web.matcher.DomMatchers.hasElementWithId; +import static android.support.test.espresso.web.sugar.Web.onWebView; +import static android.support.test.espresso.web.webdriver.DriverAtoms.findElement; +import static android.support.test.espresso.web.webdriver.DriverAtoms.getText; +import static android.support.test.espresso.web.webdriver.DriverAtoms.webClick; +import static android.support.test.espresso.web.webdriver.DriverAtoms.webKeys; +import static org.hamcrest.core.StringContains.containsString; + +/** + * Created by muhammad.yusuf43 on 23/08/17. + */ + + +//contoh pageobject untuk webview +public class LoginPageObject { + + public static void assertView() { + // for check some text without id + onWebView().withElement(findElement(Locator.ID, "welcome_text")).check(webMatches(getText(), containsString("WELCOME"))); + // check UI with specific ID + onWebView().check(webContent(hasElementWithId("email_edit"))); + onWebView().check(webContent(hasElementWithId("password_edit"))); + } + + public static void login(String username, String password) { + onWebView().withElement(findElement(Locator.ID,"email_edit")).perform(webKeys("anujabhatt88@gmail.com")); + onWebView().withElement(findElement(Locator.ID,"password_edit")).perform(webKeys("12345")); + onWebView().withElement(findElement(Locator.ID,"submit_button")).perform(webClick()); + // sleep for waiting response from server. + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } +} -- GitLab From fb19f78a6e682c1f211461603161e5dafedf5d88 Mon Sep 17 00:00:00 2001 From: meonster <meonster.yi@gmail.com> Date: Wed, 23 Aug 2017 16:15:09 +0700 Subject: [PATCH 04/13] update instrumented test for panic button (emon & eka) --- .../cs/myui/PanicButtonInstrumentedTest.java | 47 ------------------- .../ac/ui/cs/myui/PanicButtonTestSuite.java | 26 ++++++++++ .../id/ac/ui/cs/myui/helper/MethodHelper.java | 41 ++++++++++++++++ .../pageObject/PanicButtonPageObject.java | 14 ++++++ .../panic_button/PanicButtonActivity.java | 2 +- 5 files changed, 82 insertions(+), 48 deletions(-) delete mode 100644 app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonInstrumentedTest.java create mode 100644 app/src/androidTest/java/id/ac/ui/cs/myui/helper/MethodHelper.java diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonInstrumentedTest.java b/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonInstrumentedTest.java deleted file mode 100644 index 0c895b6c..00000000 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonInstrumentedTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package id.ac.ui.cs.myui; - -import android.support.test.rule.ActivityTestRule; - -import org.junit.Rule; -import org.junit.Test; - -import id.ac.ui.cs.myui.activity.epic_2.panic_button.PanicButtonActivity; - -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.action.ViewActions.longClick; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; -import static android.support.test.espresso.matcher.ViewMatchers.withId; - -/** - * Created by ekanaradhipa.d & ghozi on 09/08/17. - */ - -public class PanicButtonInstrumentedTest { - - @Rule - public ActivityTestRule<PanicButtonActivity> mActivityRule = new ActivityTestRule(PanicButtonActivity.class); - - @Test - public void buttonIsVisible(){ - onView(withId(R.id.panic_button)).check(matches(isDisplayed())); - onView(withId(R.id.tv_press_and_hold_the_button)).check(matches(isDisplayed())); - - } - - @Test - public void buttonIsClickable(){ - onView(withId(R.id.panic_button)).perform(longClick()); - //onView(withId(R.id.tv_calling)).check(matches(isDisplayed())); - - } - @Test - public void buttonClickedTwoTimes(){ - onView(withId(R.id.panic_button)).perform(longClick()); - //onView(withId(R.id.tv_calling)).check(matches(isDisplayed())); - onView(withId(R.id.panic_button)).perform(longClick()); - //onView(withId(R.id.tv_you_have_pressed_more_than_once)).check(matches(isDisplayed())); - - } -} diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java b/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java index 721c9c34..8ac57bce 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/PanicButtonTestSuite.java @@ -6,6 +6,7 @@ import org.junit.Rule; import org.junit.Test; import id.ac.ui.cs.myui.activity.epic_1.news.NewsHomeActivity; +import id.ac.ui.cs.myui.helper.MethodHelper; import id.ac.ui.cs.myui.helper.OpenNavigationDrawer; import id.ac.ui.cs.myui.pageObject.PanicButtonPageObject; @@ -27,6 +28,31 @@ public class PanicButtonTestSuite { } @Test + public void testSpinner() { + OpenNavigationDrawer.navigateTo(R.id.panic_button_drawer); + PanicButtonPageObject.spinnerEmergencyCall("Nomor Darurat"); + PanicButtonPageObject.spinnerEmergencyCall("PLK"); + PanicButtonPageObject.spinnerEmergencyCall("Kantor Polisi"); + PanicButtonPageObject.spinnerEmergencyCall("Klinik Satelit"); + PanicButtonPageObject.spinnerEmergencyCall("Pemadam Kebakaran"); + } + + @Test + public void testAppBackButton() { + OpenNavigationDrawer.navigateTo(R.id.panic_button_drawer); + MethodHelper.buttonBackAppPressed(); + MethodHelper.checkToolbarTitle("Berita Akademis"); + } + + @Test + public void testBackButton() { + OpenNavigationDrawer.navigateTo(R.id.panic_button_drawer); + MethodHelper.buttonBackPressed(); + MethodHelper.checkToolbarTitle("Berita Akademis"); + } + + // pass jika di test sendirian. + //@Test public void testPanicButton() { OpenNavigationDrawer.navigateTo(R.id.panic_button_drawer); PanicButtonPageObject.panicButtonLongClick(); diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/helper/MethodHelper.java b/app/src/androidTest/java/id/ac/ui/cs/myui/helper/MethodHelper.java new file mode 100644 index 00000000..9f808370 --- /dev/null +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/helper/MethodHelper.java @@ -0,0 +1,41 @@ +package id.ac.ui.cs.myui.helper; + +import android.support.test.espresso.Espresso; +import android.support.test.espresso.ViewInteraction; +import android.widget.ImageButton; +import android.widget.TextView; + +import id.ac.ui.cs.myui.R; + +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.action.ViewActions.click; +import static android.support.test.espresso.assertion.ViewAssertions.matches; +import static android.support.test.espresso.matcher.ViewMatchers.withContentDescription; +import static android.support.test.espresso.matcher.ViewMatchers.withId; +import static android.support.test.espresso.matcher.ViewMatchers.withParent; +import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.Matchers.instanceOf; + +/** + * Created by muhammad.yusuf43 on 23/08/17. + */ + +// siapapun tolong ganti nama classnya biar lebih keren +public class MethodHelper { + + private static ViewInteraction backButton = onView(withContentDescription("Navigate up")); + private static ViewInteraction titleToolBar = onView(allOf(instanceOf(TextView.class), withParent(withId(R.id.toolbar)))); + + public static void checkToolbarTitle(String title) { + titleToolBar.check(matches(withText(title))); + } + + public static void buttonBackPressed() { + Espresso.pressBack(); + } + + public static void buttonBackAppPressed() { + backButton.perform(click()); + } +} diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/PanicButtonPageObject.java b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/PanicButtonPageObject.java index ce41cf1e..73f507dd 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/PanicButtonPageObject.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/PanicButtonPageObject.java @@ -1,18 +1,26 @@ package id.ac.ui.cs.myui.pageObject; import android.provider.Settings; +import android.support.test.espresso.Espresso; import android.support.test.espresso.ViewInteraction; import android.support.test.espresso.assertion.ViewAssertions; import android.util.Log; import id.ac.ui.cs.myui.R; +import static android.support.test.espresso.Espresso.onData; import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.action.ViewActions.longClick; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.withId; +import static android.support.test.espresso.matcher.ViewMatchers.withSpinnerText; import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.Matchers.instanceOf; +import static org.hamcrest.Matchers.is; /** * Created by muhammad.yusuf43 on 23/08/17. @@ -32,6 +40,12 @@ public class PanicButtonPageObject { textDescription.check(matches(isDisplayed())); } + public static void spinnerEmergencyCall(String selectionText) { + spinnerCall.perform(click()); + onData(allOf(is(instanceOf(String.class)), is(selectionText))).perform(click()); + spinnerCall.check(matches(withSpinnerText(containsString(selectionText)))); + } + public static void panicButtonLongClick() { panicButton.perform(longClick()); } diff --git a/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java b/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java index 5c680462..67f2d879 100644 --- a/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java +++ b/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java @@ -84,7 +84,7 @@ public class PanicButtonActivity extends AppCompatActivity { MyBounceInterpolator interpolator = new MyBounceInterpolator(0.2, 20); myAnim.setInterpolator(interpolator); - panicButton.startAnimation(myAnim); + //panicButton.startAnimation(myAnim); panicButton.setOnLongClickListener(new View.OnLongClickListener() { @Override -- GitLab From c4a8908066386c616097d457bf5dcd2314cce40f Mon Sep 17 00:00:00 2001 From: meonster <meonster.yi@gmail.com> Date: Wed, 23 Aug 2017 16:17:31 +0700 Subject: [PATCH 05/13] activating animation --- .../myui/activity/epic_2/panic_button/PanicButtonActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java b/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java index 67f2d879..5c680462 100644 --- a/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java +++ b/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java @@ -84,7 +84,7 @@ public class PanicButtonActivity extends AppCompatActivity { MyBounceInterpolator interpolator = new MyBounceInterpolator(0.2, 20); myAnim.setInterpolator(interpolator); - //panicButton.startAnimation(myAnim); + panicButton.startAnimation(myAnim); panicButton.setOnLongClickListener(new View.OnLongClickListener() { @Override -- GitLab From 0954ae7223f9db5ab864eebc09adb593b264ab57 Mon Sep 17 00:00:00 2001 From: meonster <meonster.yi@gmail.com> Date: Wed, 23 Aug 2017 17:02:42 +0700 Subject: [PATCH 06/13] add bookmarkPageObject --- .../myui/pageObject/BookmarkPageObject.java | 51 +++++++++++++++++++ .../panic_button/PanicButtonActivity.java | 2 +- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java new file mode 100644 index 00000000..c250b982 --- /dev/null +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java @@ -0,0 +1,51 @@ +package id.ac.ui.cs.myui.pageObject; + +import android.support.test.espresso.DataInteraction; +import android.support.test.espresso.ViewInteraction; + +import id.ac.ui.cs.myui.R; + +import static android.support.test.espresso.Espresso.onData; +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.action.ViewActions.click; +import static android.support.test.espresso.action.ViewActions.swipeLeft; +import static android.support.test.espresso.assertion.ViewAssertions.matches; +import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; +import static android.support.test.espresso.matcher.ViewMatchers.withId; +import static org.hamcrest.Matchers.anything; + +/** + * Created by muhammad.yusuf43 on 23/08/17. + */ + +public class BookmarkPageObject { + + private static ViewInteraction buttonBookmark = onView(withId(R.id.button_bookmark)); + private static ViewInteraction emptyMessage = onView(withId(R.id.empty_message)); + private static ViewInteraction listBookmark = onView(withId(R.id.list_bookmark)); + + public static void assertView() { + listBookmark.check(matches(isDisplayed())); + + DataInteraction cardView = onData(anything()).inAdapterView(withId(R.id.list_view)).atPosition(0); + + assertCardView(cardView); + } + + private static void assertCardView(DataInteraction cardView) { + cardView.onChildView(withId(R.id.title_bookmark)).check(matches(isDisplayed())); + cardView.onChildView(withId(R.id.author_name)).check(matches(isDisplayed())); + cardView.onChildView(withId(R.id.bookmark_date)).check(matches(isDisplayed())); + cardView.onChildView(withId(R.id.description_bookmark)).check(matches(isDisplayed())); + cardView.onChildView(withId(R.id.pin_bookmark_newshome)).check(matches(isDisplayed())); + } + + public static void assertViewEmpty() { + emptyMessage.check(matches(isDisplayed())); + } + + public static void clikBookmarkButton() { + buttonBookmark.perform(click()); + } + +} diff --git a/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java b/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java index 5c680462..67f2d879 100644 --- a/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java +++ b/app/src/main/java/id/ac/ui/cs/myui/activity/epic_2/panic_button/PanicButtonActivity.java @@ -84,7 +84,7 @@ public class PanicButtonActivity extends AppCompatActivity { MyBounceInterpolator interpolator = new MyBounceInterpolator(0.2, 20); myAnim.setInterpolator(interpolator); - panicButton.startAnimation(myAnim); + //panicButton.startAnimation(myAnim); panicButton.setOnLongClickListener(new View.OnLongClickListener() { @Override -- GitLab From 651fb1d07ec0a17a96533c6c5d22576f6bc560f4 Mon Sep 17 00:00:00 2001 From: ekanaradhipad <ekanaradhipad@gmail.com> Date: Thu, 24 Aug 2017 13:57:30 +0700 Subject: [PATCH 07/13] update with current develop and add Schedule page object -eka --- .../myui/pageObject/SchedulePageObject.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java new file mode 100644 index 00000000..2abf8dbc --- /dev/null +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java @@ -0,0 +1,26 @@ +package id.ac.ui.cs.myui.pageObject; + +import android.support.test.espresso.ViewInteraction; + +import id.ac.ui.cs.myui.R; + +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.assertion.ViewAssertions.matches; +import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; +import static android.support.test.espresso.matcher.ViewMatchers.withId; + +/** + * Created by ekanaradhipa.d on 24/08/17. + */ + +public class SchedulePageObject { + + private static ViewInteraction spinner1 = onView(withId(R.id.spinner1)); + private static ViewInteraction jadwal_kuliah = onView(withId(R.id.title_jadwal_kuliah)); + + public static void assertView() { + spinner1.check(matches(isDisplayed())); + jadwal_kuliah.check(matches(isDisplayed())); + + } +} -- GitLab From 97f203d566cd0278f93ab48cc1d668b747eba23c Mon Sep 17 00:00:00 2001 From: ekanaradhipad <ekanaradhipad@gmail.com> Date: Thu, 24 Aug 2017 14:16:24 +0700 Subject: [PATCH 08/13] add ScheduleTestSuite -eka --- .../id/ac/ui/cs/myui/ScheduleTestSuite.java | 37 +++++++++++++++++++ .../myui/pageObject/SchedulePageObject.java | 13 +++++++ 2 files changed, 50 insertions(+) create mode 100644 app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java b/app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java new file mode 100644 index 00000000..e9d09404 --- /dev/null +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java @@ -0,0 +1,37 @@ +package id.ac.ui.cs.myui; + +import android.support.test.rule.ActivityTestRule; + +import org.junit.Rule; +import org.junit.Test; + +import id.ac.ui.cs.myui.activity.epic_2.schedule.ScheduleActivity; +import id.ac.ui.cs.myui.helper.OpenNavigationDrawer; +import id.ac.ui.cs.myui.pageObject.SchedulePageObject; + +/** + * Created by ekanaradhipa.d on 24/08/17. + */ + +public class ScheduleTestSuite { + + @Rule + public ActivityTestRule<ScheduleActivity> main = new ActivityTestRule<>(ScheduleActivity.class); + + @Test + public void testView() { + OpenNavigationDrawer.navigateTo(R.id.schedule_drawer); + SchedulePageObject.assertView(); + } + + @Test + public void testSpinner1() { + OpenNavigationDrawer.navigateTo(R.id.schedule_drawer); + SchedulePageObject.spinner1Click("Senin"); + SchedulePageObject.spinner1Click("Selasa"); + SchedulePageObject.spinner1Click("Rabu"); + SchedulePageObject.spinner1Click("Kamis"); + SchedulePageObject.spinner1Click("Jumat"); + SchedulePageObject.spinner1Click("Sabtu"); + } +} diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java index 2abf8dbc..65dfb25c 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java @@ -4,10 +4,17 @@ import android.support.test.espresso.ViewInteraction; import id.ac.ui.cs.myui.R; +import static android.support.test.espresso.Espresso.onData; import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.withId; +import static android.support.test.espresso.matcher.ViewMatchers.withSpinnerText; +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.Matchers.instanceOf; +import static org.hamcrest.Matchers.is; /** * Created by ekanaradhipa.d on 24/08/17. @@ -23,4 +30,10 @@ public class SchedulePageObject { jadwal_kuliah.check(matches(isDisplayed())); } + + public static void spinner1Click(String selectionText){ + spinner1.perform(click()); + onData(allOf(is(instanceOf(String.class)), is(selectionText))).perform(click()); + spinner1.check(matches(withSpinnerText(containsString(selectionText)))); + } } -- GitLab From dc032454d24910b6928d6c98a45bf8b0ed39f288 Mon Sep 17 00:00:00 2001 From: ekanaradhipad <ekanaradhipad@gmail.com> Date: Thu, 24 Aug 2017 15:03:55 +0700 Subject: [PATCH 09/13] update belum selesai -eka --- .../java/id/ac/ui/cs/myui/ScheduleTestSuite.java | 8 +++++++- .../cs/myui/pageObject/SchedulePageObject.java | 16 +++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java b/app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java index e9d09404..583efc98 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java @@ -21,7 +21,7 @@ public class ScheduleTestSuite { @Test public void testView() { OpenNavigationDrawer.navigateTo(R.id.schedule_drawer); - SchedulePageObject.assertView(); + SchedulePageObject.assertViewBasic(); } @Test @@ -34,4 +34,10 @@ public class ScheduleTestSuite { SchedulePageObject.spinner1Click("Jumat"); SchedulePageObject.spinner1Click("Sabtu"); } + + // @Test + public void testCheckSchedule(){ + OpenNavigationDrawer.navigateTo(R.id.schedule_drawer); + SchedulePageObject.assertViewEmpty(); + } } diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java index 65dfb25c..49656039 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/SchedulePageObject.java @@ -24,13 +24,27 @@ public class SchedulePageObject { private static ViewInteraction spinner1 = onView(withId(R.id.spinner1)); private static ViewInteraction jadwal_kuliah = onView(withId(R.id.title_jadwal_kuliah)); + private static ViewInteraction tvInformation = onView(withId(R.id.schedule_information_text_view)); + private static ViewInteraction listView = onView(withId(R.id.list_matkul)); - public static void assertView() { + + + public static void assertViewBasic() { spinner1.check(matches(isDisplayed())); jadwal_kuliah.check(matches(isDisplayed())); } + public static void assertViewEmpty() { + assertViewBasic(); + tvInformation.check(matches(isDisplayed())); + } + + public static void assertViewNotEmpty() { + assertViewBasic(); + listView.check(matches(isDisplayed())); + } + public static void spinner1Click(String selectionText){ spinner1.perform(click()); onData(allOf(is(instanceOf(String.class)), is(selectionText))).perform(click()); -- GitLab From 35ba6e2a336746601d626585394bfff4bfc42c4b Mon Sep 17 00:00:00 2001 From: ekanaradhipad <ekanaradhipad@gmail.com> Date: Thu, 24 Aug 2017 15:53:39 +0700 Subject: [PATCH 10/13] simplify method, need help with schedule -eka --- .../id/ac/ui/cs/myui/ScheduleTestSuite.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java b/app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java index 583efc98..5e6f2fab 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/ScheduleTestSuite.java @@ -15,6 +15,8 @@ import id.ac.ui.cs.myui.pageObject.SchedulePageObject; public class ScheduleTestSuite { + private final String[] arr = {"Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"}; + @Rule public ActivityTestRule<ScheduleActivity> main = new ActivityTestRule<>(ScheduleActivity.class); @@ -27,17 +29,18 @@ public class ScheduleTestSuite { @Test public void testSpinner1() { OpenNavigationDrawer.navigateTo(R.id.schedule_drawer); - SchedulePageObject.spinner1Click("Senin"); - SchedulePageObject.spinner1Click("Selasa"); - SchedulePageObject.spinner1Click("Rabu"); - SchedulePageObject.spinner1Click("Kamis"); - SchedulePageObject.spinner1Click("Jumat"); - SchedulePageObject.spinner1Click("Sabtu"); + for(String day : arr){ + SchedulePageObject.spinner1Click(day); + } } - // @Test + //Cara ngambil data gmn ya? + // @Test public void testCheckSchedule(){ OpenNavigationDrawer.navigateTo(R.id.schedule_drawer); - SchedulePageObject.assertViewEmpty(); + for(String day : arr){ + SchedulePageObject.spinner1Click(day); + SchedulePageObject.assertViewEmpty(); + } } } -- GitLab From e8f64b7730837513fa862916daf81f75ea2c4861 Mon Sep 17 00:00:00 2001 From: agniwirab <agniwp1@live.com> Date: Thu, 24 Aug 2017 16:00:15 +0700 Subject: [PATCH 11/13] automated test bookmarking news --- .../ui/cs/myui/BookmarkInstrumentedTest.java | 33 +++++++++++++++++-- .../myui/pageObject/BookmarkPageObject.java | 30 ++++++++++------- .../res/layout/activity_bookmark_news.xml | 3 +- 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/BookmarkInstrumentedTest.java b/app/src/androidTest/java/id/ac/ui/cs/myui/BookmarkInstrumentedTest.java index c8d4ba79..9cdc4f5b 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/BookmarkInstrumentedTest.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/BookmarkInstrumentedTest.java @@ -1,23 +1,33 @@ package id.ac.ui.cs.myui; +import android.support.test.espresso.action.ViewActions; +import android.support.test.espresso.contrib.NavigationViewActions; import android.support.test.rule.ActivityTestRule; +import android.view.Gravity; import android.widget.ListView; import org.junit.Rule; import org.junit.Test; import id.ac.ui.cs.myui.activity.epic_1.news.BookmarkNewsActivity; +import id.ac.ui.cs.myui.activity.epic_1.news.NewsHomeActivity; +import static android.support.test.espresso.Espresso.onData; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.action.ViewActions.scrollTo; import static android.support.test.espresso.assertion.ViewAssertions.matches; +import static android.support.test.espresso.contrib.DrawerActions.open; +import static android.support.test.espresso.contrib.DrawerMatchers.isClosed; import static android.support.test.espresso.matcher.RootMatchers.withDecorView; import static android.support.test.espresso.matcher.ViewMatchers.isClickable; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; +import static android.support.test.espresso.matcher.ViewMatchers.isRoot; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static id.ac.ui.cs.myui.pageObject.BookmarkPageObject.assertView; +import static org.hamcrest.Matchers.anything; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; @@ -35,17 +45,36 @@ import static org.hamcrest.Matchers.not; public class BookmarkInstrumentedTest { @Rule - public ActivityTestRule<BookmarkNewsActivity> mActivityRule = new ActivityTestRule(BookmarkNewsActivity.class); + public ActivityTestRule<NewsHomeActivity> mActivityRule = new ActivityTestRule(NewsHomeActivity.class); ListView listView; // Test listview bookmark is exist @Test - public void listviewBookmarkIsExist() { + public void BookmarkingScenarioTest() { onView(withId(R.id.list_news)).check(matches(isDisplayed())); + + onData(anything()).inAdapterView(withId(R.id.list_news)).atPosition(0).perform(click()); + onView(withId(R.id.button_bookmark)).perform(click()); + onView(withText(R.string.bookmarking)). + inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))). + check(matches(isDisplayed())); + onView(isRoot()).perform(ViewActions.pressBack()); + + onView(withId(R.id.drawer_layout)) + .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. + .perform(open()); // Open Drawer + + // Start the screen of your activity. + onView(withId(R.id.nav_view)) + .perform(NavigationViewActions.navigateTo(R.id.bookmark_menu_drawer)); + //onView(withText("OK")) + assertView(); } + + @Test public void bookmarkNews() { onView(withId(R.id.list_news)).perform(click()); diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java index c250b982..dd0f3605 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java @@ -1,6 +1,5 @@ package id.ac.ui.cs.myui.pageObject; -import android.support.test.espresso.DataInteraction; import android.support.test.espresso.ViewInteraction; import id.ac.ui.cs.myui.R; @@ -8,10 +7,12 @@ import id.ac.ui.cs.myui.R; import static android.support.test.espresso.Espresso.onData; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.action.ViewActions.swipeLeft; import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; +import static android.support.test.espresso.matcher.ViewMatchers.isFocusable; import static android.support.test.espresso.matcher.ViewMatchers.withId; +import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.anything; /** @@ -22,24 +23,29 @@ public class BookmarkPageObject { private static ViewInteraction buttonBookmark = onView(withId(R.id.button_bookmark)); private static ViewInteraction emptyMessage = onView(withId(R.id.empty_message)); - private static ViewInteraction listBookmark = onView(withId(R.id.list_bookmark)); + public static void assertView() { - listBookmark.check(matches(isDisplayed())); + //onData(allOf(withId(R.id.list_bookmark),withChild(isClickable())).; + onData(anything()).inAdapterView(allOf(withId(R.id.list_bookmark), isFocusable())).atPosition(0).perform(); - DataInteraction cardView = onData(anything()).inAdapterView(withId(R.id.list_view)).atPosition(0); + assertCardView(); + } - assertCardView(cardView); + private static void assertCardView() { + onView(withId(R.id.title_bookmark)).check(matches(isDisplayed())); + onView(withId(R.id.author_name)).check(matches(isDisplayed())); + onView(withId(R.id.bookmark_date)).check(matches(isDisplayed())); + onView(withId(R.id.description_bookmark)).check(matches(isDisplayed())); + onView(withId(R.id.pin_bookmark_newshome)).check(matches(isDisplayed())); } - private static void assertCardView(DataInteraction cardView) { - cardView.onChildView(withId(R.id.title_bookmark)).check(matches(isDisplayed())); - cardView.onChildView(withId(R.id.author_name)).check(matches(isDisplayed())); - cardView.onChildView(withId(R.id.bookmark_date)).check(matches(isDisplayed())); - cardView.onChildView(withId(R.id.description_bookmark)).check(matches(isDisplayed())); - cardView.onChildView(withId(R.id.pin_bookmark_newshome)).check(matches(isDisplayed())); + private static void unbookmarkScenario(){ + onView(withId(R.id.button_bookmark)).perform(click()); + onView(withText("UNBOOKMARK")).perform(click()); } + public static void assertViewEmpty() { emptyMessage.check(matches(isDisplayed())); } diff --git a/app/src/main/res/layout/activity_bookmark_news.xml b/app/src/main/res/layout/activity_bookmark_news.xml index 736a881f..fa397a24 100644 --- a/app/src/main/res/layout/activity_bookmark_news.xml +++ b/app/src/main/res/layout/activity_bookmark_news.xml @@ -7,7 +7,8 @@ android:orientation="vertical" tools:context="id.ac.ui.cs.myui.activity.epic_1.news.BookmarkNewsActivity" tools:layout_editor_absoluteY="81dp" - tools:layout_editor_absoluteX="0dp"> + tools:layout_editor_absoluteX="0dp" + android:id="@+id/bookmark_activity_layout"> <TextView android:id="@+id/empty_message" -- GitLab From 5d9e51c416d55291463627faba1764ecaae4a5c2 Mon Sep 17 00:00:00 2001 From: agniwirab <agniwp1@live.com> Date: Thu, 24 Aug 2017 16:23:34 +0700 Subject: [PATCH 12/13] automated test bookmarking & unbookmark --- .../ui/cs/myui/BookmarkInstrumentedTest.java | 34 ++++------------- .../myui/pageObject/BookmarkPageObject.java | 37 ++++++++++++------- 2 files changed, 32 insertions(+), 39 deletions(-) diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/BookmarkInstrumentedTest.java b/app/src/androidTest/java/id/ac/ui/cs/myui/BookmarkInstrumentedTest.java index 9cdc4f5b..8d41fe7a 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/BookmarkInstrumentedTest.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/BookmarkInstrumentedTest.java @@ -35,12 +35,7 @@ import static org.hamcrest.Matchers.not; * Created by agni.wira on 18/07/17. */ -/*TODO: Tes hanya berhasil jika news belum pernah dibookmark*/ -/*TODO: Jika tes dijalankan lebih dari sekali, maka tes gagal karena pesan pada toast akan berubah -* TODO: Perlu diperbaiki supaya dapat passed dalam semua kondisi -* TODO: Jika sudah berhasil, todo ini silahkan dihapus -* -* by: meitya*/ + public class BookmarkInstrumentedTest { @@ -66,31 +61,18 @@ public class BookmarkInstrumentedTest { .check(matches(isClosed(Gravity.LEFT))) // Left Drawer should be closed. .perform(open()); // Open Drawer - // Start the screen of your activity. + onView(withId(R.id.nav_view)) .perform(NavigationViewActions.navigateTo(R.id.bookmark_menu_drawer)); - //onView(withText("OK")) + //bookmarkscenario assertView(); + //unbookmarkscenario + onView(withText(R.string.unbookmarked)). + inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))). + check(matches(isDisplayed())); } - @Test - public void bookmarkNews() { - onView(withId(R.id.list_news)).perform(click()); - onView(withId(R.id.button_bookmark)).check(matches(isClickable())); - onView(withId(R.id.button_bookmark)).perform(scrollTo()).perform(click()); - onView(withText(R.string.bookmarking)). - inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))). - check(matches(isDisplayed())); - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - onView(withId(R.id.button_bookmark)).perform(scrollTo()).perform(click()); - onView(withText(R.string.bookmarked)). - inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))). - check(matches(isDisplayed())); - } + } diff --git a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java index dd0f3605..086094bc 100644 --- a/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java +++ b/app/src/androidTest/java/id/ac/ui/cs/myui/pageObject/BookmarkPageObject.java @@ -1,5 +1,6 @@ package id.ac.ui.cs.myui.pageObject; +import android.support.test.espresso.DataInteraction; import android.support.test.espresso.ViewInteraction; import id.ac.ui.cs.myui.R; @@ -7,13 +8,17 @@ import id.ac.ui.cs.myui.R; import static android.support.test.espresso.Espresso.onData; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; +import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist; import static android.support.test.espresso.assertion.ViewAssertions.matches; +import static android.support.test.espresso.matcher.RootMatchers.withDecorView; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.isFocusable; import static android.support.test.espresso.matcher.ViewMatchers.withId; import static android.support.test.espresso.matcher.ViewMatchers.withText; import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.anything; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; /** * Created by muhammad.yusuf43 on 23/08/17. @@ -26,26 +31,32 @@ public class BookmarkPageObject { public static void assertView() { - //onData(allOf(withId(R.id.list_bookmark),withChild(isClickable())).; - onData(anything()).inAdapterView(allOf(withId(R.id.list_bookmark), isFocusable())).atPosition(0).perform(); + DataInteraction card = onData(anything()).inAdapterView(allOf(withId(R.id.list_bookmark), isFocusable())).atPosition(0); + assertCardView(card); + card.perform(click()); + + + onView(withId(R.id.button_bookmark)).perform(click()); + //unbookmark + onView(withId(android.R.id.button1)).perform(click()); + - assertCardView(); - } - private static void assertCardView() { - onView(withId(R.id.title_bookmark)).check(matches(isDisplayed())); - onView(withId(R.id.author_name)).check(matches(isDisplayed())); - onView(withId(R.id.bookmark_date)).check(matches(isDisplayed())); - onView(withId(R.id.description_bookmark)).check(matches(isDisplayed())); - onView(withId(R.id.pin_bookmark_newshome)).check(matches(isDisplayed())); } - private static void unbookmarkScenario(){ - onView(withId(R.id.button_bookmark)).perform(click()); - onView(withText("UNBOOKMARK")).perform(click()); + private static void assertCardView(DataInteraction card) { + card.onChildView(withId(R.id.title_bookmark)).check(matches(isDisplayed())); + card.onChildView(withId(R.id.author_name)).check(matches(isDisplayed())); + card.onChildView(withId(R.id.bookmark_date)).check(matches(isDisplayed())); + card.onChildView(withId(R.id.description_bookmark)).check(matches(isDisplayed())); + card.onChildView(withId(R.id.pin_bookmark_newshome)).check(matches(isDisplayed())); + + + } + public static void assertViewEmpty() { emptyMessage.check(matches(isDisplayed())); } -- GitLab From 4d81770d9b126614b5a89cb599363dc4e75e66e9 Mon Sep 17 00:00:00 2001 From: agniwirab <agniwp1@live.com> Date: Thu, 24 Aug 2017 16:48:10 +0700 Subject: [PATCH 13/13] change config for release build --- app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index cce5f1f8..8aad7fe1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -37,10 +37,10 @@ android { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' buildConfigField "String", "API_URL", "\"https://api.cs.ui.ac.id/\"" - buildConfigField "String", "CLIENT_ID", "\"2bfJDNTlHhR9TJO6kQ5OsINqeMpNqFrudWOC8Vg9\"" + buildConfigField "String", "CLIENT_ID", "\"PzXKDfr31cBBbuXLl2hSHqpoEIJgu3dP5OoLLtbK\"" buildConfigField "String", "AUTH_BASE_URL", "\"https://akun.cs.ui.ac.id/\"" - buildConfigField "String", "BACKEND_BASE_URL", "\"https://myui-dev.cs.ui.ac.id/backend/\"" - buildConfigField "String", "REDIRECT_URI", "\"akuncs://myui-dev.cs.ui.ac.id/\"" + buildConfigField "String", "BACKEND_BASE_URL", "\"https://myui.cs.ui.ac.id/backend/\"" + buildConfigField "String", "REDIRECT_URI", "\"akuncs://myui.cs.ui.ac.id/\"" buildConfigField "String", "SCELE_URL", "\"https://scele.cs.ui.ac.id/\"" } debug { -- GitLab