diff options
Diffstat (limited to 'base/test/android/javatests/src/org/chromium/base/test/SetUpStatement.java')
-rw-r--r-- | base/test/android/javatests/src/org/chromium/base/test/SetUpStatement.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/base/test/android/javatests/src/org/chromium/base/test/SetUpStatement.java b/base/test/android/javatests/src/org/chromium/base/test/SetUpStatement.java new file mode 100644 index 0000000000..30ac2b6c5c --- /dev/null +++ b/base/test/android/javatests/src/org/chromium/base/test/SetUpStatement.java @@ -0,0 +1,35 @@ +// Copyright 2017 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; + +import org.junit.rules.TestRule; +import org.junit.runners.model.Statement; + +/** + * Custom Statement for SetUpTestRules. + * + * Calls {@link SetUpTestRule#setUp} before evaluating {@link SetUpTestRule#base} if + * {@link SetUpTestRule#shouldSetUp} is true + */ +public class SetUpStatement extends Statement { + private final Statement mBase; + private final SetUpTestRule<? extends TestRule> mSetUpTestRule; + private final boolean mShouldSetUp; + + public SetUpStatement( + final Statement base, SetUpTestRule<? extends TestRule> callback, boolean shouldSetUp) { + mBase = base; + mSetUpTestRule = callback; + mShouldSetUp = shouldSetUp; + } + + @Override + public void evaluate() throws Throwable { + if (mShouldSetUp) { + mSetUpTestRule.setUp(); + } + mBase.evaluate(); + } +} |