1331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogpackage com.xtremelabs.robolectric.shadows;
2331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
3331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport static com.xtremelabs.robolectric.Robolectric.shadowOf;
4331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport static org.hamcrest.CoreMatchers.equalTo;
5331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport static org.hamcrest.CoreMatchers.is;
6331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport static org.junit.Assert.assertThat;
7331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
8331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport org.junit.Before;
9331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport org.junit.Test;
10331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport org.junit.runner.RunWith;
11331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
12331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport android.app.Activity;
13331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport android.content.Context;
14331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport android.os.Vibrator;
15331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
16331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport com.xtremelabs.robolectric.WithTestDefaultsRunner;
17331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
18331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog@RunWith(WithTestDefaultsRunner.class)
19331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogpublic class VibratorTest {
20331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    private Vibrator vibrator;
21331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    private ShadowVibrator shadowVibrator;
22331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
23331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    @Before
24331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    public void before() {
25331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        vibrator = (Vibrator) new Activity().getSystemService(Context.VIBRATOR_SERVICE);
26331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        shadowVibrator = shadowOf(vibrator);
27331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    }
28331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
29331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    @Test
30331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    public void vibrateMilliseconds() {
31331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        vibrator.vibrate(5000);
32331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
33aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog        assertThat(shadowVibrator.isVibrating(), is(true));
34331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        assertThat(shadowVibrator.getMilliseconds(), equalTo(5000L));
35331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    }
36331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
37331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    @Test
38331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    public void vibratePattern() {
39331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        long[] pattern = new long[] { 0, 200 };
40331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        vibrator.vibrate(pattern, 2);
41331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
42aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog        assertThat(shadowVibrator.isVibrating(), is(true));
43331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        assertThat(shadowVibrator.getPattern(), equalTo(pattern));
44331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        assertThat(shadowVibrator.getRepeat(), equalTo(2));
45331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    }
46331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
47331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    @Test
48331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    public void cancelled() {
49aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog        vibrator.vibrate(5000);
50aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog        assertThat(shadowVibrator.isVibrating(), is(true));
51331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        assertThat(shadowVibrator.isCancelled(), is(false));
52331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        vibrator.cancel();
53aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog
54aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog        assertThat(shadowVibrator.isVibrating(), is(false));
55331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        assertThat(shadowVibrator.isCancelled(), is(true));
56331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    }
57331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog}