Add CTS tests for new Trigger Sensor APIs.

Change-Id: Id8eec745acbf8c2ba8faac48a6053f0b2ef59743
TODO: More manual sensor CTS tests to test functionality.
diff --git a/tests/tests/hardware/src/android/hardware/cts/SensorTest.java b/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
index 574e9e9..c865140 100644
--- a/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
+++ b/tests/tests/hardware/src/android/hardware/cts/SensorTest.java
@@ -16,21 +16,36 @@
 
 package android.hardware.cts;
 
+import java.lang.IllegalArgumentException;
+import java.lang.Override;
 import java.util.List;
 
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
+import android.hardware.TriggerEvent;
+import android.hardware.TriggerEventListener;
 import android.test.AndroidTestCase;
 
 public class SensorTest extends AndroidTestCase {
+    private SensorManager mSensorManager;
+    private TriggerListener mTriggerListener;
+    private SensorListener mSensorListener;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mSensorManager = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE);
+        mTriggerListener = new TriggerListener();
+        mSensorListener = new SensorListener();
+    }
 
     public void testSensorOperations() {
         // Because we can't know every sensors unit details, so we can't assert
         // get values with specified values.
-        final SensorManager mSensorManager =
-            (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE);
         List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL);
         assertNotNull(sensors);
         Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
@@ -70,7 +85,48 @@
         }
     }
 
-    private void assertSensorValues(Sensor sensor) {
+    public void testRequestTriggerWithNonTriggerSensor() {
+        Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+        boolean result;
+        if (sensor != null) {
+            result = mSensorManager.requestTriggerSensor(mTriggerListener, sensor);
+            assertFalse(result);
+        }
+    }
+
+    public void testCancelTriggerWithNonTriggerSensor() {
+        Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+        boolean result;
+        if (sensor != null) {
+            result = mSensorManager.cancelTriggerSensor(mTriggerListener, sensor);
+            assertFalse(result);
+        }
+    }
+
+    public void testRegisterWithTriggerSensor() {
+        Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION);
+        boolean result;
+        if (sensor != null) {
+            result = mSensorManager.registerListener(mSensorListener, sensor,
+                    SensorManager.SENSOR_DELAY_NORMAL);
+            assertFalse(result);
+        }
+    }
+
+    public void testRegisterTwiceWithSameSensor() {
+        Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+        boolean result;
+        if (sensor != null) {
+            result = mSensorManager.registerListener(mSensorListener, sensor,
+                    SensorManager.SENSOR_DELAY_NORMAL);
+            assertTrue(result);
+            result = mSensorManager.registerListener(mSensorListener, sensor,
+                    SensorManager.SENSOR_DELAY_NORMAL);
+            assertFalse(result);
+        }
+    }
+
+        private void assertSensorValues(Sensor sensor) {
         assertTrue(sensor.getMaximumRange() >= 0);
         assertTrue(sensor.getPower() >= 0);
         assertTrue(sensor.getResolution() >= 0);
@@ -96,4 +152,20 @@
         }
         assertEquals(sensors, mSensorManager.getSensors());
     }
+
+    class TriggerListener extends TriggerEventListener {
+        @Override
+        public void onTrigger(TriggerEvent event) {
+        }
+    }
+
+    class SensorListener implements SensorEventListener {
+        @Override
+        public void onSensorChanged(SensorEvent event) {
+        }
+
+        @Override
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
+        }
+    }
 }