Package com.googlecode.mgwt.helper

Source Code of com.googlecode.mgwt.helper.TouchTestUtil

package com.googlecode.mgwt.helper;

import com.google.gwt.core.client.JsArray;
import com.google.gwt.dom.client.Touch;
import com.google.gwt.event.dom.client.TouchEndEvent;
import com.google.gwt.event.dom.client.TouchEvent;
import com.google.gwt.event.dom.client.TouchMoveEvent;
import com.google.gwt.event.dom.client.TouchStartEvent;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import org.junit.Assert;

public class TouchTestUtil {

  public static TouchStartEvent createTouchStartEvent(int x, int y) {
    TouchStartEvent touchStartEvent = mock(TouchStartEvent.class);
    setupTouchEvenMock(touchStartEvent, new int[] {x, y});
    return touchStartEvent;
  }

  public static TouchStartEvent createTouchStartEvent(int[] positions) {
    TouchStartEvent touchStartEvent = mock(TouchStartEvent.class);
    setupTouchEvenMock(touchStartEvent, positions);
    return touchStartEvent;
  }


  public static TouchMoveEvent createTouchMoveEvent(int x, int y) {
    TouchMoveEvent touchStartEvent = mock(TouchMoveEvent.class);
    setupTouchEvenMock(touchStartEvent, new int[] {x, y});
    return touchStartEvent;
  }

  public static TouchMoveEvent createTouchMoveEvent(int[] positions) {
    TouchMoveEvent touchStartEvent = mock(TouchMoveEvent.class);
    setupTouchEvenMock(touchStartEvent, positions);
    return touchStartEvent;
  }


  private static void setupTouchEvenMock(TouchEvent<?> event, int[] positions) {
    Assert.assertTrue(positions.length % 2 == 0);
    @SuppressWarnings("unchecked")
    JsArray<Touch> touchArray = mock(JsArray.class);
    when(event.getTouches()).thenReturn(touchArray);
    int count = 0;
    for(; count < positions.length; count +=2) {
      Touch touch = mock(Touch.class);
      when(touchArray.get(count / 2)).thenReturn(touch);
      when(touch.getPageX()).thenReturn(positions[count]);
      when(touch.getPageY()).thenReturn(positions[count + 1]);
    }
    when(touchArray.length()).thenReturn(count / 2);
  }

  public static TouchEndEvent createTouchEndEvent() {
    return createTouchEndEvent(new int[]{});
  }

  public static TouchEndEvent createTouchEndEvent(int[] positions) {
    TouchEndEvent touchEndEvent = mock(TouchEndEvent.class);
    setupTouchEvenMock(touchEndEvent, positions);
    return touchEndEvent;
  }
}
TOP

Related Classes of com.googlecode.mgwt.helper.TouchTestUtil

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.