1bf7c3b4fa6d971201ab3fce162611639b857b810George Mount/*
2bf7c3b4fa6d971201ab3fce162611639b857b810George Mount * Copyright (C) 2016 The Android Open Source Project
3bf7c3b4fa6d971201ab3fce162611639b857b810George Mount *
4bf7c3b4fa6d971201ab3fce162611639b857b810George Mount * Licensed under the Apache License, Version 2.0 (the "License");
5bf7c3b4fa6d971201ab3fce162611639b857b810George Mount * you may not use this file except in compliance with the License.
6bf7c3b4fa6d971201ab3fce162611639b857b810George Mount * You may obtain a copy of the License at
7bf7c3b4fa6d971201ab3fce162611639b857b810George Mount *
8bf7c3b4fa6d971201ab3fce162611639b857b810George Mount *      http://www.apache.org/licenses/LICENSE-2.0
9bf7c3b4fa6d971201ab3fce162611639b857b810George Mount *
10bf7c3b4fa6d971201ab3fce162611639b857b810George Mount * Unless required by applicable law or agreed to in writing, software
11bf7c3b4fa6d971201ab3fce162611639b857b810George Mount * distributed under the License is distributed on an "AS IS" BASIS,
12bf7c3b4fa6d971201ab3fce162611639b857b810George Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bf7c3b4fa6d971201ab3fce162611639b857b810George Mount * See the License for the specific language governing permissions and
14bf7c3b4fa6d971201ab3fce162611639b857b810George Mount * limitations under the License.
15bf7c3b4fa6d971201ab3fce162611639b857b810George Mount */
16bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
17bf7c3b4fa6d971201ab3fce162611639b857b810George Mountpackage android.transition;
18bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
19bf7c3b4fa6d971201ab3fce162611639b857b810George Mountimport android.animation.AnimatorSetActivity;
20bf7c3b4fa6d971201ab3fce162611639b857b810George Mountimport android.app.Activity;
21bf7c3b4fa6d971201ab3fce162611639b857b810George Mountimport android.graphics.Rect;
22bf7c3b4fa6d971201ab3fce162611639b857b810George Mountimport android.test.ActivityInstrumentationTestCase2;
23bf7c3b4fa6d971201ab3fce162611639b857b810George Mountimport android.transition.Transition.EpicenterCallback;
24bf7c3b4fa6d971201ab3fce162611639b857b810George Mountimport android.util.ArrayMap;
25bf7c3b4fa6d971201ab3fce162611639b857b810George Mountimport android.view.View;
26bf7c3b4fa6d971201ab3fce162611639b857b810George Mountimport android.view.animation.AccelerateInterpolator;
27bf7c3b4fa6d971201ab3fce162611639b857b810George Mountimport android.widget.TextView;
28bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
29bf7c3b4fa6d971201ab3fce162611639b857b810George Mountimport com.android.frameworks.coretests.R;
30bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
31bf7c3b4fa6d971201ab3fce162611639b857b810George Mountpublic class TransitionTest extends ActivityInstrumentationTestCase2<AnimatorSetActivity> {
32bf7c3b4fa6d971201ab3fce162611639b857b810George Mount    Activity mActivity;
33bf7c3b4fa6d971201ab3fce162611639b857b810George Mount    public TransitionTest() {
34bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        super(AnimatorSetActivity.class);
35bf7c3b4fa6d971201ab3fce162611639b857b810George Mount    }
36bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
37bf7c3b4fa6d971201ab3fce162611639b857b810George Mount    @Override
38bf7c3b4fa6d971201ab3fce162611639b857b810George Mount    protected void setUp() throws Exception {
39bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        mActivity = getActivity();
40bf7c3b4fa6d971201ab3fce162611639b857b810George Mount    }
41bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
42bf7c3b4fa6d971201ab3fce162611639b857b810George Mount    public void testClone() throws Throwable {
43bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        View square1 = mActivity.findViewById(R.id.square1);
44bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        View square2 = mActivity.findViewById(R.id.square2);
45bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        View square3 = mActivity.findViewById(R.id.square3);
46bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        Fade fade = new Fade();
47bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.setStartDelay(1000);
48bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.setDuration(1001);
49bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
50bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.addTarget(square1);
51bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.excludeTarget(square2, true);
52bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.excludeChildren(square3, true);
53bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
54bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.addTarget(R.id.square4);
55bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.excludeTarget(R.id.square3, true);
56bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.excludeChildren(R.id.square2, true);
57bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
58bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.addTarget("hello");
59bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.excludeTarget("world", true);
60bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
61bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.addTarget(View.class);
62bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.excludeTarget(TextView.class, true);
63bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
64bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.setMatchOrder(Transition.MATCH_ID);
65bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.setPropagation(new CircularPropagation());
66bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.setPathMotion(new ArcMotion());
67bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.setInterpolator(new AccelerateInterpolator());
68bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.setNameOverrides(new ArrayMap<>());
69bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
70bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        EpicenterCallback epicenterCallback = new EpicenterCallback() {
71bf7c3b4fa6d971201ab3fce162611639b857b810George Mount            @Override
72bf7c3b4fa6d971201ab3fce162611639b857b810George Mount            public Rect onGetEpicenter(Transition transition) {
73bf7c3b4fa6d971201ab3fce162611639b857b810George Mount                return null;
74bf7c3b4fa6d971201ab3fce162611639b857b810George Mount            }
75bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        };
76bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
77bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        fade.setEpicenterCallback(epicenterCallback);
78bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
79bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        Fade clone = (Fade) fade.clone();
80bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mStartDelay, clone.mStartDelay);
81bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mDuration, clone.mDuration);
82bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mInterpolator, clone.mInterpolator);
83bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mPropagation, clone.mPropagation);
84bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.getPathMotion(), clone.getPathMotion());
85bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.getEpicenterCallback(), clone.getEpicenterCallback());
86bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mNameOverrides, clone.mNameOverrides);
87bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mMatchOrder, clone.mMatchOrder);
88bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
89bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mTargets, clone.mTargets);
90bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mTargetExcludes, clone.mTargetExcludes);
91bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mTargetChildExcludes, clone.mTargetChildExcludes);
92bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
93bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mTargetIds, clone.mTargetIds);
94bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mTargetIdExcludes, clone.mTargetIdExcludes);
95bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mTargetIdChildExcludes, clone.mTargetIdChildExcludes);
96bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
97bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mTargetNames, clone.mTargetNames);
98bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mTargetNameExcludes, clone.mTargetNameExcludes);
99bf7c3b4fa6d971201ab3fce162611639b857b810George Mount
100bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mTargetTypes, clone.mTargetTypes);
101bf7c3b4fa6d971201ab3fce162611639b857b810George Mount        assertEquals(fade.mTargetTypeExcludes, clone.mTargetTypeExcludes);
102bf7c3b4fa6d971201ab3fce162611639b857b810George Mount    }
103bf7c3b4fa6d971201ab3fce162611639b857b810George Mount}
104