blob: f32535e201c912f3f390a0eba7e6c38698106de7 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2016 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
* Red Hat Inc. - Bug 462631
*******************************************************************************/
package org.eclipse.swt.tests.junit;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.eclipse.swt.SWT;
import org.eclipse.swt.SWTError;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.printing.Printer;
import org.eclipse.swt.printing.PrinterData;
import org.junit.Test;
/**
* Automated Test Suite for class org.eclipse.swt.printing.Printer
*
* @see org.eclipse.swt.printing.Printer
*/
public class Test_org_eclipse_swt_printing_Printer {
@Test
public void test_Constructor() {
boolean exceptionThrown = false;
String detail = "";
if (Printer.getDefaultPrinterData() == null) {
/* There aren't any printers, so verify that the
* constructor throws an ERROR_NO_HANDLES SWTError.
*/
try {
Printer printer = new Printer();
printer.dispose();
} catch (SWTError ex) {
if (ex.code == SWT.ERROR_NO_HANDLES) exceptionThrown = true;
}
assertTrue("ERROR_NO_HANDLES not thrown", exceptionThrown);
} else {
/* There is at least a default printer, so verify that
* the constructor does not throw any exceptions.
*/
try {
Printer printer = new Printer();
printer.dispose();
} catch (Throwable ex) {
exceptionThrown = true;
detail = ex.getMessage();
}
assertFalse("Exception thrown: " + detail, exceptionThrown);
}
}
@Test
public void test_ConstructorLorg_eclipse_swt_printing_PrinterData() {
boolean exceptionThrown = false;
String detail = "";
PrinterData data = Printer.getDefaultPrinterData();
if (data == null) {
/* There aren't any printers, so verify that the
* constructor throws an ERROR_NO_HANDLES SWTError.
*/
try {
Printer printer = new Printer(data);
printer.dispose();
} catch (SWTError ex) {
if (ex.code == SWT.ERROR_NO_HANDLES) exceptionThrown = true;
}
assertTrue("ERROR_NO_HANDLES not thrown", exceptionThrown);
} else {
/* There is at least a default printer, so verify that
* the constructor does not throw any exceptions.
*/
try {
Printer printer = new Printer(data);
printer.dispose();
} catch (Throwable ex) {
exceptionThrown = true;
detail = ex.getMessage();
}
assertFalse("Exception thrown: " + detail, exceptionThrown);
}
}
@Test
public void test_computeTrimIIII() {
PrinterData data = Printer.getDefaultPrinterData();
// if there aren't any printers, don't do this test
if (data == null) return;
Printer printer = new Printer(data);
Rectangle trim = printer.computeTrim(0, 0, 10, 10);
assertTrue("trim width or height is incorrect", trim.width >= 10 && trim.height >= 10);
printer.dispose();
}
@Test
public void test_getBounds() {
PrinterData data = Printer.getDefaultPrinterData();
// if there aren't any printers, don't do this test
if (data == null) return;
Printer printer = new Printer(data);
Rectangle bounds = printer.getBounds();
assertTrue("bounds width or height is zero", bounds.width > 0 && bounds.height > 0);
printer.dispose();
}
@Test
public void test_getClientArea() {
PrinterData data = Printer.getDefaultPrinterData();
// if there aren't any printers, don't do this test
if (data == null) return;
Printer printer = new Printer(data);
Rectangle clientArea = printer.getClientArea();
assertTrue("clientArea width or height is zero", clientArea.width > 0 && clientArea.height > 0);
printer.dispose();
}
@Test
public void test_getDPI() {
PrinterData data = Printer.getDefaultPrinterData();
// if there aren't any printers, don't do this test
if (data == null) return;
Printer printer = new Printer(data);
Point dpi = printer.getDPI();
assertTrue("dpi x or y is zero", dpi.x > 0 && dpi.y > 0);
printer.dispose();
}
@Test
public void test_getPrinterData() {
PrinterData data = Printer.getDefaultPrinterData();
// if there aren't any printers, don't do this test
if (data == null) return;
Printer printer = new Printer(data);
assertTrue("getPrinterData != data used in constructor",
data == printer.getPrinterData());
printer.dispose();
}
@Test
public void test_getPrinterList() {
PrinterData data = Printer.getDefaultPrinterData();
if (data == null) {
/* If there aren't any printers, verify that the
* printer list is empty.
*/
PrinterData list[] = Printer.getPrinterList();
if (list.length == 1) {
if (SWT.getPlatform().equals("gtk")) {
/* Even though there is no default printer data,
* on GTK it is still possible to have a print
* to file backend
*/
assertTrue(list[0].driver.equals("GtkPrintBackendFile"));
}
} else {
assertTrue("printer list contains items even though there are no printers",
list.length == 0);
}
} else {
/* If there is at least a default printer, verify
* that the printer list is not empty.
*/
PrinterData list[] = Printer.getPrinterList();
assertTrue("printer list is empty", list.length > 0);
}
}
@Test
public void test_isAutoScalable() {
PrinterData data = Printer.getDefaultPrinterData();
// if there aren't any printers, don't do this test
if (data == null) return;
Printer printer = new Printer(data);
boolean isAutoScalable = printer.isAutoScalable();
assertFalse("SWT doesnot auto-scale for Printer devices", isAutoScalable);
printer.dispose();
}
}