1e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu/*
2e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu * Copyright (C) 2012 The Android Open Source Project
3e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu *
4e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu * Licensed under the Apache License, Version 2.0 (the "License");
5e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu * you may not use this file except in compliance with the License.
6e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu * You may obtain a copy of the License at
7e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu *
8e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu *      http://www.apache.org/licenses/LICENSE-2.0
9e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu *
10e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu * Unless required by applicable law or agreed to in writing, software
11e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu * distributed under the License is distributed on an "AS IS" BASIS,
12e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu * See the License for the specific language governing permissions and
14e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu * limitations under the License.
15e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu */
16e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu
17e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhupackage com.android.uiautomator.testrunner;
18e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu
19e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhuimport com.android.uiautomator.testrunner.TestCaseCollector.TestCaseFilter;
20e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu
21e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhuimport java.lang.reflect.Method;
22e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu
23e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu/**
24e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu * A {@link TestCaseFilter} that accepts testFoo methods and {@link UiAutomatorTestCase} classes
25e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu *
26ddc1008f06fd2a875037026490ce1f848a442572Guang Zhu * @hide
27e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu */
28e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhupublic class UiAutomatorTestCaseFilter implements TestCaseFilter {
29e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu
30e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu    @Override
31e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu    public boolean accept(Method method) {
32e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu        return ((method.getParameterTypes().length == 0) &&
33e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu                (method.getName().startsWith("test")) &&
34e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu                (method.getReturnType().getSimpleName().equals("void")));
35e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu    }
36e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu
37e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu    @Override
38e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu    public boolean accept(Class<?> clazz) {
39e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu        return UiAutomatorTestCase.class.isAssignableFrom(clazz);
40e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu    }
41e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu
42e54d649fb83a0a44516e5c25a9ac1992c8950e59Guang Zhu}
43