// /* This Source Code Form is subject to the terms of the Mozilla Public // * License, v. 2.0. If a copy of the MPL was not distributed with this // * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // // package org.mozilla.fenix.ui.screenshots; // // import android.Manifest; // import android.app.Instrumentation; // import android.content.Context; // import androidx.annotation.StringRes; // import androidx.test.platform.app.InstrumentationRegistry; // import androidx.test.rule.GrantPermissionRule; // import androidx.test.uiautomator.UiDevice; // import android.text.format.DateUtils; // // import org.junit.Before; // import org.junit.Rule; // import org.junit.rules.TestRule; // import org.junit.rules.TestWatcher; // import org.junit.runner.Description; // // import tools.fastlane.screengrab.Screengrab; // import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy; // // /** // * Base class for tests that take screenshots. // */ // public abstract class ScreenshotTest { // final long waitingTime = DateUtils.SECOND_IN_MILLIS * 10; // // private Context targetContext; // // UiDevice device; // // @Rule // public GrantPermissionRule permissionRule = GrantPermissionRule.grant(Manifest.permission.WRITE_EXTERNAL_STORAGE); // // @Rule // public TestRule screenshotOnFailureRule = new TestWatcher() { // @Override // protected void failed(Throwable e, Description description) { // // On error take a screenshot so that we can debug it easily // Screengrab.screenshot("FAILURE-" + getScreenshotName(description)); // } // // private String getScreenshotName(Description description) { // return description.getClassName().replace(".", "-") // + "_" // + description.getMethodName().replace(".", "-"); // } // }; // // @Before // public void setUpScreenshots() { // Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); // targetContext = instrumentation.getTargetContext(); // device = UiDevice.getInstance(instrumentation); // // // Use this to switch between default strategy and HostScreencap strategy // Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy()); // } // // String getString(@StringRes int resourceId) { // return targetContext.getString(resourceId).trim(); // } // // String getString(@StringRes int resourceId, Object... formatArgs) { // return targetContext.getString(resourceId, formatArgs).trim(); // } // // public void takeScreenshotsAfterWait(String filename, int waitingTime) throws InterruptedException { // Thread.sleep(waitingTime); // Screengrab.screenshot(filename); // } // }