1e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu/*
2e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu * Copyright (C) 2018 The Android Open Source Project
3e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu *
4e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu * Licensed under the Apache License, Version 2.0 (the "License");
5e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu * you may not use this file except in compliance with the License.
6e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu * You may obtain a copy of the License at
7e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu *
8e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu *      http://www.apache.org/licenses/LICENSE-2.0
9e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu *
10e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu * Unless required by applicable law or agreed to in writing, software
11e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu * distributed under the License is distributed on an "AS IS" BASIS,
12e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu * See the License for the specific language governing permissions and
14e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu * limitations under the License.
15e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu */
16e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu
17e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsupackage android.widget;
18e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu
19e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsuimport android.support.test.InstrumentationRegistry;
20e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsuimport android.support.test.annotation.UiThreadTest;
21e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsuimport android.support.test.filters.SmallTest;
22e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsuimport android.support.test.runner.AndroidJUnit4;
23e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu
24e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsuimport org.junit.Test;
25e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsuimport org.junit.runner.RunWith;
26e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu
27e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu@RunWith(AndroidJUnit4.class)
28e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu@SmallTest
29e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsupublic class DateTimeViewTest {
30e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu
31e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu    @UiThreadTest
32e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu    @Test
33e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu    public void additionalOnDetachedFromWindow_noException() {
34e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu        final DateTimeView dateTimeView = new DateTimeView(InstrumentationRegistry.getContext());
35e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu        dateTimeView.onAttachedToWindow();
36e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu        dateTimeView.onAttachedToWindow();
37e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu        // Even there is an additional detach (abnormal), DateTimeView should not unregister
38e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu        // receiver again that raises "java.lang.IllegalArgumentException: Receiver not registered".
39e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu        dateTimeView.onDetachedFromWindow();
40e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu    }
41e8f0fe3140c30f7752b70ad4ee126615e923dbdfRiddle Hsu}
42