Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3553)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/printing/PrintingControllerTest.java

Issue 123883002: Fix PrintingControllerTest#testNormalPrintingFlow and reenable the test (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove redundant imports Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/javatests/src/org/chromium/chrome/browser/printing/PrintingControllerTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/printing/PrintingControllerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/printing/PrintingControllerTest.java
index bd7b862b79d96f8a99a208a6917ff01f61b3ff2e..255bae1d5c0ec263ea175988a7ec2e474259f1a5 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/printing/PrintingControllerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/printing/PrintingControllerTest.java
@@ -13,16 +13,12 @@ import android.print.PrintDocumentInfo;
import android.test.suitebuilder.annotation.LargeTest;
import org.chromium.base.ApiCompatibilityUtils;
-import org.chromium.base.test.util.DisabledTest;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.TestFileUtil;
import org.chromium.base.test.util.UrlUtils;
import org.chromium.chrome.browser.printing.TabPrinter;
import org.chromium.chrome.testshell.ChromiumTestShellTestBase;
import org.chromium.chrome.testshell.TestShellTab;
-import org.chromium.printing.PrintDocumentAdapterWrapper;
-import org.chromium.printing.PrintManagerDelegate;
-import org.chromium.printing.PrintingControllerImpl;
import java.io.File;
import java.io.FileInputStream;
@@ -75,30 +71,18 @@ public class PrintingControllerTest extends ChromiumTestShellTestBase {
* Test a basic printing flow by emulating the corresponding system calls to the printing
* controller: onStart, onLayout, onWrite, onFinish. Each one is called once, and in this
* order, in the UI thread.
- @LargeTest
- @Feature({"Printing"})
- crbug.com/330291
*/
- @DisabledTest
+ @LargeTest
+ @Feature({"Printing"})
public void testNormalPrintingFlow() throws Throwable {
if (!ApiCompatibilityUtils.isPrintingSupported()) return;
final TestShellTab currentTab = launchChromiumTestShellWithUrl(URL).getActiveTab();
assertTrue(waitForActiveShellToBeDoneLoading());
- final PrintManagerDelegate mockPrintManagerDelegate = new PrintManagerDelegate() {
- @Override
- public void print(String printJobName,
- PrintDocumentAdapter documentAdapter,
- PrintAttributes attributes) {
- // Do nothing, as we will emulate the framework call sequence within the test.
- }
- };
- final PrintingControllerImpl printingController =
- (PrintingControllerImpl) PrintingControllerImpl.create(mockPrintManagerDelegate,
- new PrintDocumentAdapterWrapper(), PRINT_JOB_NAME);
+ final PrintingControllerImpl printingController = createControllerOnUiThread();
- startController(printingController, currentTab);
+ startControllerOnUiThread(printingController, currentTab);
// {@link PrintDocumentAdapter#onStart} is always called first.
callStartOnUiThread(printingController);
@@ -156,7 +140,39 @@ public class PrintingControllerTest extends ChromiumTestShellTestBase {
}
- private void startController(final PrintingControllerImpl controller, final TestShellTab tab) {
+ private PrintingControllerImpl createControllerOnUiThread() {
+ try {
+ final PrintManagerDelegate mockPrintManagerDelegate = new PrintManagerDelegate() {
+ @Override
+ public void print(String printJobName,
+ PrintDocumentAdapter documentAdapter,
+ PrintAttributes attributes) {
+ // Do nothing, as we will emulate the framework call sequence within the test.
+ }
+ };
+
+ final FutureTask<PrintingControllerImpl> task =
+ new FutureTask<PrintingControllerImpl>(new Callable<PrintingControllerImpl>() {
+ @Override
+ public PrintingControllerImpl call() throws Exception {
+ return (PrintingControllerImpl) PrintingControllerImpl.create(
+ mockPrintManagerDelegate,
+ new PrintDocumentAdapterWrapper(),
+ PRINT_JOB_NAME);
+ }
+ });
+
+ runTestOnUiThread(task);
+ PrintingControllerImpl result = task.get(TEST_TIMEOUT, TimeUnit.MILLISECONDS);
+ return result;
+ } catch (Throwable e) {
+ fail("Error on creating PrintingControllerImpl on the UI thread: " + e);
+ }
+ return null;
+ }
+
+ private void startControllerOnUiThread(final PrintingControllerImpl controller,
+ final TestShellTab tab) {
try {
runTestOnUiThread(new Runnable() {
@Override
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698