8160755: bug6492108.java test fails with exception Image comparison failed at (0, 0) for image 4 in GTK L&F
Reviewed-by: aivanov, dnguyen, tr
This commit is contained in:
parent
438121be6b
commit
5dcb7a627e
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -747,12 +747,12 @@ class GTKStyle extends SynthStyle implements GTKConstants {
|
||||
region == Region.TOOL_TIP ||
|
||||
region == Region.TREE ||
|
||||
region == Region.VIEWPORT ||
|
||||
region == Region.TEXT_PANE) {
|
||||
region == Region.TEXT_PANE ||
|
||||
region == Region.EDITOR_PANE) {
|
||||
return true;
|
||||
}
|
||||
if (!GTKLookAndFeel.is3()) {
|
||||
if (region == Region.EDITOR_PANE ||
|
||||
region == Region.FORMATTED_TEXT_FIELD ||
|
||||
if (region == Region.FORMATTED_TEXT_FIELD ||
|
||||
region == Region.PASSWORD_FIELD ||
|
||||
region == Region.SPINNER ||
|
||||
region == Region.TEXT_FIELD) {
|
||||
|
145
test/jdk/com/sun/java/swing/plaf/gtk/bug6492108.java
Normal file
145
test/jdk/com/sun/java/swing/plaf/gtk/bug6492108.java
Normal file
@ -0,0 +1,145 @@
|
||||
/*
|
||||
* Copyright (c) 2011, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import java.awt.Component;
|
||||
import java.awt.Container;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.GridLayout;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.image.BufferedImage;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.swing.JEditorPane;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTextArea;
|
||||
import javax.swing.JTextPane;
|
||||
import javax.swing.UIManager;
|
||||
import javax.swing.text.JTextComponent;
|
||||
|
||||
import jtreg.SkippedException;
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 6492108 8160755
|
||||
* @key headful
|
||||
* @requires (os.family == "linux")
|
||||
* @summary Verifies that the background is painted the same for
|
||||
* JTextArea, JTextPane, and JEditorPane.
|
||||
* @library /javax/swing/regtesthelpers /test/lib
|
||||
* @build SwingTestHelper Util
|
||||
* @run main/othervm bug6492108
|
||||
*/
|
||||
|
||||
public class bug6492108 extends SwingTestHelper {
|
||||
|
||||
private JPanel panel;
|
||||
|
||||
public static void main(String[] args) throws Throwable {
|
||||
try {
|
||||
UIManager.setLookAndFeel(
|
||||
"com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
|
||||
} catch (Exception e) {
|
||||
throw new SkippedException("GTK LAF is not supported on this system");
|
||||
}
|
||||
new bug6492108().run(args);
|
||||
}
|
||||
|
||||
private static void addTextComps(Container parent,
|
||||
Class<? extends JTextComponent> type)
|
||||
throws Throwable
|
||||
{
|
||||
JTextComponent text = type.newInstance();
|
||||
addTextComp(parent, text);
|
||||
|
||||
text = type.newInstance();
|
||||
text.setEditable(false);
|
||||
addTextComp(parent, text);
|
||||
|
||||
text = type.newInstance();
|
||||
text.setEnabled(false);
|
||||
addTextComp(parent, text);
|
||||
|
||||
text = type.newInstance();
|
||||
text.setEnabled(false);
|
||||
text.setEditable(false);
|
||||
addTextComp(parent, text);
|
||||
}
|
||||
|
||||
private static void addTextComp(Container parent, JTextComponent text) {
|
||||
JScrollPane sp = new JScrollPane(text);
|
||||
text.setFocusable(false); // to avoid showing the blinking caret
|
||||
sp.setPreferredSize(new Dimension(150, 150));
|
||||
sp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
|
||||
sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
|
||||
parent.add(sp);
|
||||
}
|
||||
|
||||
protected Component createContentPane() {
|
||||
panel = new JPanel();
|
||||
panel.setLayout(new GridLayout(3, 4));
|
||||
try {
|
||||
addTextComps(panel, JTextArea.class);
|
||||
addTextComps(panel, JEditorPane.class);
|
||||
addTextComps(panel, JTextPane.class);
|
||||
} catch (Throwable t) {
|
||||
fail("Problem creating text components");
|
||||
}
|
||||
return panel;
|
||||
}
|
||||
|
||||
private void onEDT10() {
|
||||
requestAndWaitForFocus(panel);
|
||||
}
|
||||
|
||||
private void onEDT20() {
|
||||
// For each component on the top row, compare against the two
|
||||
// components below in the same column. All three components in
|
||||
// that column should be the same pixel-for-pixel.
|
||||
for (int count = 0; count < 4; count++) {
|
||||
Component ref = panel.getComponent(count);
|
||||
Rectangle refRect = new Rectangle(ref.getLocationOnScreen(), ref.getSize());
|
||||
BufferedImage refImg = robot.createScreenCapture(refRect);
|
||||
|
||||
for (int k = 1; k < 3; k++) {
|
||||
int index = count + (k*4);
|
||||
Component test = panel.getComponent(index);
|
||||
Rectangle testRect = new Rectangle(test.getLocationOnScreen(), test.getSize());
|
||||
BufferedImage testImg = robot.createScreenCapture(testRect);
|
||||
|
||||
if (!Util.compareBufferedImages(refImg, testImg)) {
|
||||
try {
|
||||
ImageIO.write(refImg, "png", new File("refImg.png"));
|
||||
ImageIO.write(testImg, "png", new File("testImg.png"));
|
||||
} catch (IOException ignored) {}
|
||||
|
||||
fail("Image comparison failed for images at index " + count + " and " + index);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user