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