FadeTest.java revision 754cb29c50f09a83251dd4bb633ba445b2411adb
1e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki/* 2e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * Copyright (C) 2016 The Android Open Source Project 3e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * 4e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * Licensed under the Apache License, Version 2.0 (the "License"); 5e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * you may not use this file except in compliance with the License. 6e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * You may obtain a copy of the License at 7e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * 8e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * http://www.apache.org/licenses/LICENSE-2.0 9e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * 10e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * Unless required by applicable law or agreed to in writing, software 11e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * distributed under the License is distributed on an "AS IS" BASIS, 12e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * See the License for the specific language governing permissions and 14e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki * limitations under the License. 15e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki */ 16e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki 17e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakipackage android.support.transition; 18e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki 19e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakiimport static org.hamcrest.CoreMatchers.is; 20e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakiimport static org.hamcrest.CoreMatchers.notNullValue; 21e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakiimport static org.hamcrest.CoreMatchers.nullValue; 22e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakiimport static org.junit.Assert.assertThat; 23e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki 24e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakiimport android.animation.Animator; 25e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakiimport android.support.test.InstrumentationRegistry; 26e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakiimport android.support.test.annotation.UiThreadTest; 27754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikasimport android.support.test.filters.MediumTest; 28e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakiimport android.view.View; 29e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakiimport android.view.ViewGroup; 30e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki 31e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakiimport org.junit.Before; 32e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakiimport org.junit.Test; 33e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki 3424797374d6c3370ab857f254e8e58248c41c3dd9Aurimas Liutikas@MediumTest 35e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Arakipublic class FadeTest extends BaseTest { 36e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki 37e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki private View mView; 38e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki private ViewGroup mRoot; 39e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki 40e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki @Before 41e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki public void setUp() { 42e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() { 43e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki @Override 44e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki public void run() { 45e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki mRoot = rule.getActivity().getRoot(); 46e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki mView = new View(rule.getActivity()); 47e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki mRoot.addView(mView, new ViewGroup.LayoutParams(100, 100)); 48e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki } 49e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki }); 50e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki } 51e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki 52e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki @Test 53e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki @UiThreadTest 54e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki public void testDisappear() { 55e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki final Fade fade = new Fade(); 56e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki final TransitionValues startValues = new TransitionValues(); 57e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki startValues.view = mView; 58e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki fade.captureStartValues(startValues); 59e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki mView.setVisibility(View.INVISIBLE); 60e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki final TransitionValues endValues = new TransitionValues(); 61e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki endValues.view = mView; 62e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki fade.captureEndValues(endValues); 63e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki Animator animator = fade.createAnimator(mRoot, startValues, endValues); 64e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki assertThat(animator, is(notNullValue())); 65e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki } 66e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki 67e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki @Test 68e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki @UiThreadTest 69e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki public void testAppear() { 70e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki mView.setVisibility(View.INVISIBLE); 71e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki final Fade fade = new Fade(); 72e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki final TransitionValues startValues = new TransitionValues(); 73e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki startValues.view = mView; 74e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki fade.captureStartValues(startValues); 75e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki mView.setVisibility(View.VISIBLE); 76e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki final TransitionValues endValues = new TransitionValues(); 77e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki endValues.view = mView; 78e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki fade.captureEndValues(endValues); 79e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki Animator animator = fade.createAnimator(mRoot, startValues, endValues); 80e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki assertThat(animator, is(notNullValue())); 81e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki } 82e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki 83e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki @Test 84e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki @UiThreadTest 85e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki public void testNoChange() { 86e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki final Fade fade = new Fade(); 87e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki final TransitionValues startValues = new TransitionValues(); 88e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki startValues.view = mView; 89e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki fade.captureStartValues(startValues); 90e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki final TransitionValues endValues = new TransitionValues(); 91e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki endValues.view = mView; 92e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki fade.captureEndValues(endValues); 93e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki Animator animator = fade.createAnimator(mRoot, startValues, endValues); 94e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki // No visibility change; no animation should happen 95e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki assertThat(animator, is(nullValue())); 96e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki } 97e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki 98e73fed4be4cf678ea3828e20805ddffe73ae7ad0Yuichi Araki} 99