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