diff options
author | Hyunyoung Song <hyunyoungs@google.com> | 2017-07-06 12:35:55 -0700 |
---|---|---|
committer | Hyunyoung Song <hyunyoungs@google.com> | 2017-07-06 14:32:35 -0700 |
commit | f40e94955cba0ca351f587358b9e07496d132a1b (patch) | |
tree | ada5929c818f0fb9db689af4154bd144d7c39ab6 /tests/src/com/android/launcher3/touch | |
parent | 19b3165c890ecb897a2c3f519db78aba1b5d64df (diff) | |
download | android_packages_apps_Trebuchet-f40e94955cba0ca351f587358b9e07496d132a1b.tar.gz android_packages_apps_Trebuchet-f40e94955cba0ca351f587358b9e07496d132a1b.tar.bz2 android_packages_apps_Trebuchet-f40e94955cba0ca351f587358b9e07496d132a1b.zip |
Add tests to SwipeDetector (formerly VerticalPullDetector).
Change-Id: I09ab4f22d7204ad806825ab0d6374c2b9616bf39
Diffstat (limited to 'tests/src/com/android/launcher3/touch')
-rw-r--r-- | tests/src/com/android/launcher3/touch/SwipeDetectorTest.java | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/tests/src/com/android/launcher3/touch/SwipeDetectorTest.java b/tests/src/com/android/launcher3/touch/SwipeDetectorTest.java new file mode 100644 index 000000000..8724704ed --- /dev/null +++ b/tests/src/com/android/launcher3/touch/SwipeDetectorTest.java @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.launcher3.touch; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.filters.SmallTest; +import android.support.test.runner.AndroidJUnit4; +import android.util.Log; +import android.view.MotionEvent; +import android.view.ViewConfiguration; + +import com.android.launcher3.testcomponent.TouchEventGenerator; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import static org.mockito.Matchers.anyBoolean; +import static org.mockito.Matchers.anyFloat; +import static org.mockito.Mockito.verify; + +@SmallTest +@RunWith(AndroidJUnit4.class) +public class SwipeDetectorTest{ + + private static final String TAG = SwipeDetectorTest.class.getSimpleName(); + public static void L(String s, Object... parts) { + Log.d(TAG, (parts.length == 0) ? s : String.format(s, parts)); + } + + private TouchEventGenerator mGenerator; + private SwipeDetector mDetector; + private int mTouchSlop; + + @Mock + private SwipeDetector.Listener mMockListener; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + Context context = InstrumentationRegistry.getTargetContext(); + mDetector = new SwipeDetector(context); + mGenerator = new TouchEventGenerator(new TouchEventGenerator.Listener() { + @Override + public void onTouchEvent(MotionEvent event) { + mDetector.onTouchEvent(event); + } + }); + mDetector.setListener(mMockListener); + mDetector.setDetectableScrollConditions(SwipeDetector.DIRECTION_BOTH, false); + mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); + L("mTouchSlop=", mTouchSlop); + } + + @Test + public void testDragStart() throws Exception { + mGenerator.put(0, 100, 100); + mGenerator.move(0, 100, 100 + mTouchSlop); + // TODO: actually calculate the following parameters and do exact value checks. + verify(mMockListener).onDragStart(anyBoolean()); + } + + @Test + public void testDrag() throws Exception { + mGenerator.put(0, 100, 100); + mGenerator.move(0, 100, 100 + mTouchSlop); + // TODO: actually calculate the following parameters and do exact value checks. + verify(mMockListener).onDrag(anyFloat(), anyFloat()); + } + + @Test + public void testDragEnd() throws Exception { + mGenerator.put(0, 100, 100); + mGenerator.move(0, 100, 100 + mTouchSlop); + mGenerator.move(0, 100, 100 + mTouchSlop * 2); + mGenerator.lift(0); + // TODO: actually calculate the following parameters and do exact value checks. + verify(mMockListener).onDragEnd(anyFloat(), anyBoolean()); + } +} |