blob: b088725c85844846bd5fa610b645673f5071a0c3 [file] [log] [blame]
// Copyright (c) 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();
}