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