1154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos/*
2154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos * Copyright (C) 2016 The Android Open Source Project
3154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos *
4154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos * Licensed under the Apache License, Version 2.0 (the "License");
5154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos * you may not use this file except in compliance with the License.
6154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos * You may obtain a copy of the License at
7154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos *
8154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos *      http://www.apache.org/licenses/LICENSE-2.0
9154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos *
10154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos * Unless required by applicable law or agreed to in writing, software
11154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos * distributed under the License is distributed on an "AS IS" BASIS,
12154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos * See the License for the specific language governing permissions and
14154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos * limitations under the License
15154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos */
16154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
17154b9ee638d1917f064781b5e08823898a73b92cAdrian Roospackage com.android.keyguard;
18154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
19e97892844a5c21c91c7f82b96f82202b18a1a24dJason Monkimport static junit.framework.Assert.assertEquals;
20154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
21e97892844a5c21c91c7f82b96f82202b18a1a24dJason Monkimport static org.mockito.Mockito.mock;
22154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
23154b9ee638d1917f064781b5e08823898a73b92cAdrian Roosimport android.os.Handler;
24154b9ee638d1917f064781b5e08823898a73b92cAdrian Roosimport android.os.Looper;
25154b9ee638d1917f064781b5e08823898a73b92cAdrian Roosimport android.support.test.runner.AndroidJUnit4;
26154b9ee638d1917f064781b5e08823898a73b92cAdrian Roosimport android.test.suitebuilder.annotation.SmallTest;
27154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
28e97892844a5c21c91c7f82b96f82202b18a1a24dJason Monkimport com.android.systemui.SysuiTestCase;
29e97892844a5c21c91c7f82b96f82202b18a1a24dJason Monk
30e97892844a5c21c91c7f82b96f82202b18a1a24dJason Monkimport org.junit.Before;
31e97892844a5c21c91c7f82b96f82202b18a1a24dJason Monkimport org.junit.Test;
32e97892844a5c21c91c7f82b96f82202b18a1a24dJason Monkimport org.junit.runner.RunWith;
33154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
34154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos@SmallTest
35154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos@RunWith(AndroidJUnit4.class)
36154b9ee638d1917f064781b5e08823898a73b92cAdrian Roospublic class KeyguardMessageAreaTest extends SysuiTestCase {
37154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos    private Handler mHandler = new Handler(Looper.getMainLooper());
38154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos    private KeyguardMessageArea mMessageArea;
39154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
40154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos    @Before
41154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos    public void setUp() throws Exception {
42154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos        KeyguardUpdateMonitor monitor = mock(KeyguardUpdateMonitor.class);
43154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos        mHandler.post(()-> mMessageArea = new KeyguardMessageArea(mContext, null, monitor));
44154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos        waitForIdleSync();
45154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos    }
46154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
47154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos    @Test
48154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos    public void clearFollowedByMessage_keepsMessage() {
49154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos        mHandler.post(()-> {
50154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos            mMessageArea.setMessage("");
51154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos            mMessageArea.setMessage("test");
52154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos        });
53154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
54154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos        waitForIdleSync();
55154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
56154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos        CharSequence[] messageText = new CharSequence[1];
57154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos        mHandler.post(()-> {
58154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos            messageText[0] = mMessageArea.getText();
59154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos        });
60154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
61154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos        waitForIdleSync();
62154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
63154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos        assertEquals("test", messageText[0]);
64154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos    }
65154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos
66154b9ee638d1917f064781b5e08823898a73b92cAdrian Roos}
67