17bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds/** 27bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * Copyright (c) 2017, The Android Open Source Project 37bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * 47bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * Licensed under the Apache License, Version 2.0 (the "License"); 57bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * you may not use this file except in compliance with the License. 67bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * You may obtain a copy of the License at 77bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * 87bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * http://www.apache.org/licenses/LICENSE-2.0 97bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * 107bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * Unless required by applicable law or agreed to in writing, software 117bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * distributed under the License is distributed on an "AS IS" BASIS, 127bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * See the License for the specific language governing permissions and 147bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds * limitations under the License. 157bcb57b79dd391ad62230143e858ebe9952083b1Julia Reynolds */ 16503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynoldspackage com.android.server.notification; 17503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 18503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynoldsimport static android.service.notification.NotificationStats.DISMISSAL_PEEK; 19503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 20503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynoldsimport static junit.framework.Assert.assertEquals; 21503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynoldsimport static junit.framework.Assert.assertFalse; 22503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynoldsimport static junit.framework.Assert.assertTrue; 23503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 24503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynoldsimport android.os.Parcel; 25503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynoldsimport android.service.notification.NotificationStats; 26503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynoldsimport android.support.test.runner.AndroidJUnit4; 27503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynoldsimport android.test.suitebuilder.annotation.SmallTest; 28503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 2974f5e36f49b32baef90bf31bbbaf487c18002944Jason Monkimport com.android.server.UiServiceTestCase; 3074f5e36f49b32baef90bf31bbbaf487c18002944Jason Monk 31503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynoldsimport org.junit.Test; 32503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynoldsimport org.junit.runner.RunWith; 33503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 34503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds@SmallTest 35503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds@RunWith(AndroidJUnit4.class) 3674f5e36f49b32baef90bf31bbbaf487c18002944Jason Monkpublic class NotificationStatsTest extends UiServiceTestCase { 37503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 38503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds @Test 39503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds public void testConstructor() { 40503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds NotificationStats stats = new NotificationStats(); 41503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 42503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertFalse(stats.hasSeen()); 43503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertFalse(stats.hasDirectReplied()); 44503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertFalse(stats.hasExpanded()); 45503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertFalse(stats.hasInteracted()); 46503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertFalse(stats.hasViewedSettings()); 47503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertFalse(stats.hasSnoozed()); 48503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertEquals(NotificationStats.DISMISSAL_NOT_DISMISSED, stats.getDismissalSurface()); 49503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds } 50503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 51503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds @Test 52503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds public void testSeen() { 53503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds NotificationStats stats = new NotificationStats(); 54503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds stats.setSeen(); 55503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertTrue(stats.hasSeen()); 56503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertFalse(stats.hasInteracted()); 57503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds } 58503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 59503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds @Test 60503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds public void testDirectReplied() { 61503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds NotificationStats stats = new NotificationStats(); 62503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds stats.setDirectReplied(); 63503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertTrue(stats.hasDirectReplied()); 64503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertTrue(stats.hasInteracted()); 65503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds } 66503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 67503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds @Test 68503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds public void testExpanded() { 69503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds NotificationStats stats = new NotificationStats(); 70503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds stats.setExpanded(); 71503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertTrue(stats.hasExpanded()); 72503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertTrue(stats.hasInteracted()); 73503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds } 74503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 75503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds @Test 76503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds public void testSnoozed() { 77503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds NotificationStats stats = new NotificationStats(); 78503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds stats.setSnoozed(); 79503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertTrue(stats.hasSnoozed()); 80503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertTrue(stats.hasInteracted()); 81503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds } 82503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 83503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds @Test 84503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds public void testViewedSettings() { 85503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds NotificationStats stats = new NotificationStats(); 86503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds stats.setViewedSettings(); 87503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertTrue(stats.hasViewedSettings()); 88503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertTrue(stats.hasInteracted()); 89503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds } 90503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 91503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds @Test 92503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds public void testDismissalSurface() { 93503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds NotificationStats stats = new NotificationStats(); 94503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds stats.setDismissalSurface(DISMISSAL_PEEK); 95503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertEquals(DISMISSAL_PEEK, stats.getDismissalSurface()); 96503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertFalse(stats.hasInteracted()); 97503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds } 98503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds 99503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds @Test 100503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds public void testWriteToParcel() { 101503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds NotificationStats stats = new NotificationStats(); 102503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds stats.setViewedSettings(); 103503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds stats.setDismissalSurface(NotificationStats.DISMISSAL_AOD); 104503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds Parcel parcel = Parcel.obtain(); 105503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds stats.writeToParcel(parcel, 0); 106503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds parcel.setDataPosition(0); 107503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds NotificationStats stats1 = NotificationStats.CREATOR.createFromParcel(parcel); 108503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds assertEquals(stats, stats1); 109503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds } 110503ed9404e30d0a965d137c67cbac863ef303b70Julia Reynolds} 111