1/* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.support.transition; 18 19import static org.junit.Assert.assertSame; 20 21import android.graphics.Path; 22import android.graphics.RectF; 23import android.support.test.filters.SmallTest; 24import android.support.test.runner.AndroidJUnit4; 25 26import org.junit.Test; 27import org.junit.runner.RunWith; 28 29@SmallTest 30@RunWith(AndroidJUnit4.class) 31public class PatternPathMotionTest extends PathMotionTest { 32 33 @Test 34 public void testStraightPath() { 35 Path pattern = new Path(); 36 pattern.moveTo(100, 500); 37 pattern.lineTo(300, 1000); 38 39 PatternPathMotion pathMotion = new PatternPathMotion(pattern); 40 assertPathMatches(pattern, pathMotion.getPatternPath()); 41 42 Path expected = new Path(); 43 expected.moveTo(0, 0); 44 expected.lineTo(100, 100); 45 46 assertPathMatches(expected, pathMotion.getPath(0, 0, 100, 100)); 47 } 48 49 @Test 50 public void testCurve() { 51 RectF oval = new RectF(); 52 Path pattern = new Path(); 53 oval.set(0, 0, 100, 100); 54 pattern.addArc(oval, 0, 180); 55 56 PatternPathMotion pathMotion = new PatternPathMotion(pattern); 57 assertPathMatches(pattern, pathMotion.getPatternPath()); 58 59 Path expected = new Path(); 60 oval.set(-50, 0, 50, 100); 61 expected.addArc(oval, -90, 180); 62 63 assertPathMatches(expected, pathMotion.getPath(0, 0, 0, 100)); 64 } 65 66 @Test 67 public void testSetPatternPath() { 68 Path pattern = new Path(); 69 RectF oval = new RectF(0, 0, 100, 100); 70 pattern.addArc(oval, 0, 180); 71 72 PatternPathMotion patternPathMotion = new PatternPathMotion(); 73 patternPathMotion.setPatternPath(pattern); 74 assertSame(pattern, patternPathMotion.getPatternPath()); 75 } 76 77} 78