8315981: Opensource five more random Swing tests
Reviewed-by: tr, azvegint
This commit is contained in:
parent
e30e356442
commit
c43ebd34af
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2023, 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.
|
||||
*/
|
||||
|
||||
/* @test
|
||||
* @bug 4180943
|
||||
* @summary Extra borders created by DefaultListCellRenderer
|
||||
* @run main bug4180943
|
||||
*/
|
||||
|
||||
import javax.swing.DefaultListCellRenderer;
|
||||
|
||||
public class bug4180943 {
|
||||
public static void main(String[] argv) {
|
||||
DefaultListCellRenderer lcr1 = new DefaultListCellRenderer();
|
||||
DefaultListCellRenderer lcr2 = new DefaultListCellRenderer();
|
||||
if (lcr1.getBorder() != lcr2.getBorder()) {
|
||||
throw new RuntimeException("Extra borders created by DefaultListCellRenderer");
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2023, 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.
|
||||
*/
|
||||
|
||||
/* @test
|
||||
* @bug 4466250
|
||||
* @summary DefaultListModel.removeRange does not throw IllegalArgumentException
|
||||
* @run main bug4466250
|
||||
*/
|
||||
|
||||
import javax.swing.DefaultListModel;
|
||||
import javax.swing.JLabel;
|
||||
|
||||
public class bug4466250 {
|
||||
public static void main(String[] args) {
|
||||
DefaultListModel model = new DefaultListModel();
|
||||
int size = 16;
|
||||
for (int i = 0; i < size; i++ ) {
|
||||
model.addElement(new JLabel("wow"));
|
||||
}
|
||||
|
||||
try {
|
||||
model.removeRange(3, 1);
|
||||
throw new RuntimeException("IllegalArgumentException has not been thrown");
|
||||
} catch (IllegalArgumentException e) {
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2023, 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 4140619
|
||||
* @summary Breaks SINGLE_SELECTION in DefaultListSelectionModel.setLeadSelectionIndex()
|
||||
* @run main bug4140619
|
||||
*/
|
||||
|
||||
import javax.swing.DefaultListSelectionModel;
|
||||
import javax.swing.ListSelectionModel;
|
||||
|
||||
public class bug4140619 {
|
||||
public static void main(String[] args) {
|
||||
DefaultListSelectionModel selection = new DefaultListSelectionModel();
|
||||
selection.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
||||
selection.setSelectionInterval(10, 10);
|
||||
selection.removeSelectionInterval(10, 10);
|
||||
selection.setLeadSelectionIndex(2);
|
||||
selection.setLeadSelectionIndex(30);
|
||||
selection.setLeadSelectionIndex(5);
|
||||
|
||||
if (selection.getMinSelectionIndex()!=5
|
||||
|| selection.getMaxSelectionIndex()!=5) {
|
||||
throw new RuntimeException("DefaultListSelectionModel: breaks SINGLE_SELECTION "
|
||||
+ "in setLeadSelectionIndex()");
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2023, 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.
|
||||
*/
|
||||
|
||||
/* @test
|
||||
* @bug 4177723
|
||||
* @summary ListSelectionEvents fired on model changes affecting JList selection
|
||||
* @run main bug4177723
|
||||
*/
|
||||
|
||||
import javax.swing.DefaultListModel;
|
||||
import javax.swing.JList;
|
||||
|
||||
public class bug4177723 {
|
||||
static int count = 0;
|
||||
|
||||
public static void main (String[] args) {
|
||||
DefaultListModel model = new DefaultListModel();
|
||||
for (int i = 0; i < 10; i++) {
|
||||
model.addElement("item " + i);
|
||||
}
|
||||
|
||||
JList list = new JList(model);
|
||||
list.addListSelectionListener(e -> count++);
|
||||
|
||||
list.getSelectionModel().setSelectionInterval(3, 8);
|
||||
model.removeRange(4, 7);
|
||||
if (count != 2) {
|
||||
throw new RuntimeException("ListSelectionEvent wasn't generated");
|
||||
}
|
||||
}
|
||||
}
|
109
test/jdk/javax/swing/ImageIcon/4827074/bug4827074.java
Normal file
109
test/jdk/javax/swing/ImageIcon/4827074/bug4827074.java
Normal file
@ -0,0 +1,109 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2023, 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.
|
||||
*/
|
||||
|
||||
/* @test
|
||||
* @bug 4827074
|
||||
* @summary ImageIcon serialization does not preload restored images
|
||||
* @run main bug4827074
|
||||
*/
|
||||
|
||||
import javax.swing.ImageIcon;
|
||||
import java.awt.Image;
|
||||
import java.awt.Panel;
|
||||
import java.awt.image.MemoryImageSource;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
|
||||
public class bug4827074 extends Panel {
|
||||
|
||||
static ImageIcon testIcon = null;
|
||||
private volatile static boolean passed = false;
|
||||
|
||||
public void init() {
|
||||
testIcon = new TestImageIcon();
|
||||
ImageIcon icon = saveAndLoad(testIcon);
|
||||
|
||||
if (!passed) {
|
||||
throw new RuntimeException("Image was not loaded properly");
|
||||
}
|
||||
}
|
||||
|
||||
synchronized static void setPassed(boolean p) {
|
||||
passed = p;
|
||||
}
|
||||
|
||||
static ImageIcon saveAndLoad(ImageIcon ii) {
|
||||
ImageIcon _ii = null;
|
||||
try {
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
ObjectOutputStream out = new ObjectOutputStream(baos);
|
||||
out.writeObject(ii);
|
||||
out.flush();
|
||||
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
|
||||
ObjectInputStream in = new ObjectInputStream(bais);
|
||||
_ii = (ImageIcon)in.readObject();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
return _ii;
|
||||
}
|
||||
|
||||
class TestImageIcon extends ImageIcon {
|
||||
public TestImageIcon() {
|
||||
super();
|
||||
setImage(buildImage());
|
||||
}
|
||||
|
||||
private Image buildImage() {
|
||||
int w = 32, h = 32;
|
||||
float halfW = w / 2 , halfH = h / 2;
|
||||
int col = 0xff0000;
|
||||
int[] pixels = new int[w * h];
|
||||
for(int y = 0; y < h; y++) {
|
||||
for(int x = 0; x < w; x++) {
|
||||
float cx = 1f - (float)x / halfW;
|
||||
float cy = 1f - (float)y / halfH;
|
||||
double ray = Math.sqrt(cx * cx + cy * cy);
|
||||
pixels[y * w + x] = ray < 1 ? col | (255 - (int)(ray * 255)) << 24:0;
|
||||
}
|
||||
}
|
||||
MemoryImageSource mis = new MemoryImageSource(w, h, pixels, 0, w);
|
||||
Image image = createImage(mis);
|
||||
return image;
|
||||
}
|
||||
|
||||
protected void loadImage(Image image) {
|
||||
super.loadImage(image);
|
||||
if (testIcon != null && image != testIcon.getImage()) {
|
||||
setPassed(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
bug4827074 bug = new bug4827074();
|
||||
bug.init();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user