| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| package org.chromium.base.test.util; |
| |
| import java.lang.annotation.ElementType; |
| import java.lang.annotation.Retention; |
| import java.lang.annotation.RetentionPolicy; |
| import java.lang.annotation.Target; |
| |
| /** |
| * An annotation for listing restrictions for a test method. For example, if a test method is only |
| * applicable on a phone with small memory: |
| * @Restriction({RESTRICTION_TYPE_PHONE, RESTRICTION_TYPE_SMALL_MEMORY}) |
| * Test classes are free to define restrictions and enforce them using reflection at runtime. |
| */ |
| @Target(ElementType.METHOD) |
| @Retention(RetentionPolicy.RUNTIME) |
| public @interface Restriction { |
| /** Specifies the test is only valid on phone form factors. */ |
| public static final String RESTRICTION_TYPE_PHONE = "Phone"; |
| |
| /** Specifies the test is only valid on tablet form factors. */ |
| public static final String RESTRICTION_TYPE_TABLET = "Tablet"; |
| |
| /** Specifies the test is only valid on low end devices that have less memory. */ |
| public static final String RESTRICTION_TYPE_LOW_END_DEVICE = "Low_End_Device"; |
| |
| /** Specifies the test is only valid on non-low end devices. */ |
| public static final String RESTRICTION_TYPE_NON_LOW_END_DEVICE = "Non_Low_End_Device"; |
| |
| /** |
| * @return A list of restrictions. |
| */ |
| public String[] value(); |
| } |