package io.selendroid.server;
import io.selendroid.server.action.ActionChain;
import io.selendroid.server.common.action.touch.TouchActionName;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Assert;
import org.junit.Test;
/**
* Created by colin on 4/19/15.
*/
public class ActionChainTest {
@Test
public void testCreateActionChain() throws JSONException {
JSONObject actionJSON = new JSONObject();
JSONArray jsonArray = new JSONArray();
JSONObject obj1 = new JSONObject();
obj1.put("name", TouchActionName.POINTER_DOWN);
jsonArray.put(obj1);
actionJSON.put("actions", jsonArray);
actionJSON.put("inputDevice", "TestDevice");
ActionChain actionChain = new ActionChain(actionJSON);
// Should not be paused, should have 1 item next
Assert.assertTrue(actionChain.hasNext());
JSONObject nextItem = actionChain.next();
// Should not be paused, should not have next.
Assert.assertEquals(nextItem.get("name"), TouchActionName.POINTER_DOWN);
Assert.assertEquals(nextItem, obj1);
Assert.assertFalse(actionChain.hasNext());
}
@Test
public void testPauseAction() throws JSONException {
JSONObject actionJSON = new JSONObject();
JSONArray jsonArray = new JSONArray();
JSONObject obj1 = new JSONObject();
obj1.put("name", TouchActionName.PAUSE);
obj1.put("ms", 500);
jsonArray.put(obj1);
actionJSON.put("actions", jsonArray);
actionJSON.put("inputDevice", "TestDevice");
ActionChain actionChain = new ActionChain(actionJSON);
// Should not be paused, should have 1 item next
Assert.assertTrue(actionChain.hasNext());
JSONObject nextItem = actionChain.next();
// Should be paused, should not have next.
Assert.assertEquals(nextItem.get("name"), TouchActionName.PAUSE);
Assert.assertEquals(actionChain.getPauseTime(), 500);
Assert.assertEquals(nextItem, obj1);
Assert.assertFalse(actionChain.hasNext());
}
}