app/src/androidTest/java/ch/epfl/sweng/zuluzulu/fragments/AdminPanelFragmentAsAdminTest.java
package ch.epfl.sweng.zuluzulu.fragments;
import android.support.test.espresso.action.ViewActions;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.io.BufferedReader;
import java.io.StringReader;
import ch.epfl.sweng.zuluzulu.database.MockedProxy;
import ch.epfl.sweng.zuluzulu.firebase.DatabaseFactory;
import ch.epfl.sweng.zuluzulu.fragments.adminFragments.AdminPanelFragment;
import ch.epfl.sweng.zuluzulu.R;
import ch.epfl.sweng.zuluzulu.testingUtility.TestWithAdminAndFragment;
import ch.epfl.sweng.zuluzulu.urlTools.UrlReader;
import ch.epfl.sweng.zuluzulu.urlTools.UrlReaderFactory;
import ch.epfl.sweng.zuluzulu.Utility;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
@RunWith(AndroidJUnit4.class)
public class AdminPanelFragmentAsAdminTest extends TestWithAdminAndFragment {
@Override
public void initFragment() {
DatabaseFactory.setDependency(new MockedProxy());
fragment = AdminPanelFragment.newInstance();
}
@Test
public void canOpenMementoFragment() {
UrlReader reader = new UrlReader() {
@Override
public BufferedReader read(String name) {
return new BufferedReader(new StringReader("[{\n" +
" \"title\": \"MoveOn - Free dance lessons\"," +
" \"description\": \"<p>MoveOn, a commission of Agepoly, offer free disco-fox lessons. Disco-fox is a couple dance that is performed on current music, on what you can hear on the radio for example. The lessons take place in the PolydĂ´me at EPFL on Tuesdays. <br>\\r\\n<br>\\r\\n18h30 : Hustle (4-count disco-fox, recommended for complete beginners)<br>\\r\\n19h45 : Disco-fox, with choreography <br>\\r\\n<br>\\r\\nThe lessons are for beginners. No registration, you can just come to the lesson. <br>\\r\\n<br>\\r\\nMore infos : fb.me/moveonepfl</p>\",\n" +
" \"event_id\": \"43453\"," +
" \"event_start_date\": \"2018-09-25\"," +
" \"event_end_date\": \"2018-12-18\"," +
" \"event_start_time\": \"18:30:00\"," +
" \"event_end_time\": \"21:00:00\"," +
" \"event_place_and_room\": \"PO 094.0\"," +
" \"event_url_place_and_room\": \"https://plan.epfl.ch/?room=PO094.0\"," +
" \"event_visual_absolute_url\": \"https://memento.epfl.ch/image/11476/112x112.jpg\"," +
" \"event_speaker\": \"Mike Bardet, Eva Lorendeaux\"," +
" \"event_organizer\": \"Mike Bardet\"," +
" \"event_contact\": \"Mike Bardet\"," +
" \"event_url_link\": \"\"," +
" \"event_url_place_and_room\": \"https://plan.epfl.ch/?room=PO094.0\",\n" +
" \"event_category_fr\": \"Divers\",\n" + "\"event_speaker\": \"Roda Fawaz\"\n" + " }]"));
}
};
// Change the factory
UrlReaderFactory.setDependency(reader);
onView(withId(R.id.panel_memento)).perform(ViewActions.click());
Utility.checkFragmentIsOpen(R.id.memento_fragment);
}
@Test
public void canOpenAssociationGeneratorFragment() {
changeFactory("– <a href=\"http://example.com\">Other</a> (Other)<br />\n"
+ "– <a href=\"http://lauzhack.com\">LauzHack</a> (Organisation d’un Hackaton)<br />\n"
+ "<link rel=\"icon\" type=\"image/png\" href=\"images/favicon.png\" sizes=\"16x16\">");
onView(withId(R.id.panel_association)).perform(ViewActions.click());
Utility.checkFragmentIsOpen(R.id.associations_generator_fragment);
}
@Test
public void canOpenUserRoleFragment() {
onView(withId(R.id.panel_user)).perform(ViewActions.click());
Utility.checkFragmentIsOpen(R.id.user_role_fragment);
}
@Test
public void canOpenAddEventFragment() {
onView(withId(R.id.panel_create_event)).perform(ViewActions.click());
Utility.checkFragmentIsOpen(R.id.add_event_fragment);
}
private void changeFactory(String s) {
UrlReader reader = new UrlReader() {
@Override
public BufferedReader read(String name) {
return new BufferedReader(new StringReader(s));
}
};
UrlReaderFactory.setDependency(reader);
}
}