diff --git a/res/values-mcc440-mnc20/config.xml b/res/values-mcc440-mnc20/config.xml
index bc6925b..fbe7edc 100644
--- a/res/values-mcc440-mnc20/config.xml
+++ b/res/values-mcc440-mnc20/config.xml
@@ -16,10 +16,10 @@
 
 <resources>
     <string-array name="additional_cbs_channels_strings" translatable="false">
-        <item>0xA800:type=earthquake, emergency=true</item>
-        <item>0xAFEE:type=tsunami, emergency=true</item>
+        <item>0xA800:type=etws_earthquake, emergency=true</item>
+        <item>0xAFEE:type=etws_tsunami, emergency=true</item>
         <item>0xAC00-0xAFED:type=other, emergency=true</item>
-        <item>0xA802:type=etws_default, emergency=true</item>
-        <item>0xA804:type=etws_default, emergency=true</item>
+        <item>0xA802:type=etws_test, emergency=true</item>
+        <item>0xA804:type=etws_test, emergency=true</item>
     </string-array>
 </resources>
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java
index fe75c96..68eaf2d 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java
@@ -420,11 +420,11 @@
 
                 // Load the tones based on type
                 switch (alertType) {
-                    case EARTHQUAKE:
+                    case ETWS_EARTHQUAKE:
                         setDataSourceFromResource(getResources(), mMediaPlayer,
                                 R.raw.etws_earthquake);
                         break;
-                    case TSUNAMI:
+                    case ETWS_TSUNAMI:
                         setDataSourceFromResource(getResources(), mMediaPlayer,
                                 R.raw.etws_tsunami);
                         break;
@@ -433,6 +433,7 @@
                                 R.raw.etws_other_disaster);
                         break;
                     case ETWS_DEFAULT:
+                    case ETWS_TEST:
                         setDataSourceFromResource(getResources(), mMediaPlayer,
                                 R.raw.etws_default);
                         break;
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
index d80bff7..593a0b4 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
@@ -98,8 +98,9 @@
     public enum AlertType {
         CMAS_DEFAULT,
         ETWS_DEFAULT,
-        EARTHQUAKE,
-        TSUNAMI,
+        ETWS_EARTHQUAKE,
+        ETWS_TSUNAMI,
+        ETWS_TEST,
         AREA,
         OTHER
     }
@@ -440,6 +441,12 @@
                             // area info broadcasts are displayed in Settings status screen
                         }
                         return false;
+                    } else if (range.mAlertType == AlertType.ETWS_TEST) {
+                        return emergencyAlertEnabled
+                                && !forceDisableEtwsCmasTest
+                                && PreferenceManager.getDefaultSharedPreferences(this)
+                                .getBoolean(CellBroadcastSettings.KEY_ENABLE_ETWS_TEST_ALERTS,
+                                        false);
                     }
 
                     return emergencyAlertEnabled;
@@ -510,10 +517,13 @@
                 switch (warningType) {
                     case SmsCbEtwsInfo.ETWS_WARNING_TYPE_EARTHQUAKE:
                     case SmsCbEtwsInfo.ETWS_WARNING_TYPE_EARTHQUAKE_AND_TSUNAMI:
-                        alertType = AlertType.EARTHQUAKE;
+                        alertType = AlertType.ETWS_EARTHQUAKE;
                         break;
                     case SmsCbEtwsInfo.ETWS_WARNING_TYPE_TSUNAMI:
-                        alertType = AlertType.TSUNAMI;
+                        alertType = AlertType.ETWS_TSUNAMI;
+                        break;
+                    case SmsCbEtwsInfo.ETWS_WARNING_TYPE_TEST_MESSAGE:
+                        alertType = AlertType.ETWS_TEST;
                         break;
                     case SmsCbEtwsInfo.ETWS_WARNING_TYPE_OTHER_EMERGENCY:
                         alertType = AlertType.OTHER;
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java b/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java
index 9946ce9..05cb772 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java
@@ -304,10 +304,12 @@
                         switch (range.mAlertType) {
                             case CMAS_DEFAULT:
                                 return R.string.pws_other_message_identifiers;
-                            case EARTHQUAKE:
+                            case ETWS_EARTHQUAKE:
                                 return R.string.etws_earthquake_warning;
-                            case TSUNAMI:
+                            case ETWS_TSUNAMI:
                                 return R.string.etws_tsunami_warning;
+                            case ETWS_TEST:
+                                return R.string.etws_test_message;
                             case ETWS_DEFAULT:
                             case OTHER:
                                 return R.string.etws_other_emergency_type;
diff --git a/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManagerTest.java b/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManagerTest.java
index 264ee3d..b86234f 100644
--- a/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManagerTest.java
+++ b/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManagerTest.java
@@ -53,11 +53,12 @@
     @SmallTest
     public void testGetCellBroadcastChannelRanges() throws Exception {
         putResources(R.array.additional_cbs_channels_strings, new String[]{
-                "12:type=earthquake, emergency=true",
-                "456:type=tsunami, emergency=true",
+                "12:type=etws_earthquake, emergency=true",
+                "456:type=etws_tsunami, emergency=true",
                 "0xAC00-0xAFED:type=other, emergency=false",
                 "54-60:emergency=true",
-                "100-200"
+                "100-200",
+                "0xA804:type=etws_test, emergency=true"
         });
 
         ArrayList<CellBroadcastChannelRange> list = CellBroadcastChannelManager.getInstance()
@@ -65,12 +66,12 @@
 
         assertEquals(12, list.get(0).mStartId);
         assertEquals(12, list.get(0).mEndId);
-        assertEquals(AlertType.EARTHQUAKE, list.get(0).mAlertType);
+        assertEquals(AlertType.ETWS_EARTHQUAKE, list.get(0).mAlertType);
         assertTrue(list.get(0).mIsEmergency);
 
         assertEquals(456, list.get(1).mStartId);
         assertEquals(456, list.get(1).mEndId);
-        assertEquals(AlertType.TSUNAMI, list.get(1).mAlertType);
+        assertEquals(AlertType.ETWS_TSUNAMI, list.get(1).mAlertType);
         assertTrue(list.get(1).mIsEmergency);
 
         assertEquals(0xAC00, list.get(2).mStartId);
@@ -87,5 +88,10 @@
         assertEquals(200, list.get(4).mEndId);
         assertEquals(AlertType.CMAS_DEFAULT, list.get(4).mAlertType);
         assertFalse(list.get(4).mIsEmergency);
+
+        assertEquals(0xA804, list.get(5).mStartId);
+        assertEquals(0xA804, list.get(5).mEndId);
+        assertEquals(AlertType.ETWS_TEST, list.get(5).mAlertType);
+        assertTrue(list.get(5).mIsEmergency);
     }
 }
diff --git a/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastSettingsTest.java b/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastSettingsTest.java
index e4ea05f..f342a58 100644
--- a/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastSettingsTest.java
+++ b/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastSettingsTest.java
@@ -23,6 +23,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.FlakyTest;
 import android.support.test.runner.AndroidJUnit4;
 import android.support.test.uiautomator.UiDevice;
 
@@ -45,6 +46,7 @@
         mDevice = UiDevice.getInstance(mInstrumentation);
     }
 
+    @FlakyTest
     @Test
     public void testRotate_alertReminderDialogOpen_shouldNotCrash() {
         mInstrumentation.startActivitySync(createActivityIntent());
