8153056: 8152647(duplicate of 6439354) Manual Test always passes
Reviewed-by: alexsch, psadhukhan
--- a/jdk/test/javax/swing/LookAndFeel/6439354/TitledBorderTest.java Sat Apr 16 23:39:45 2016 +0300
+++ b/jdk/test/javax/swing/LookAndFeel/6439354/TitledBorderTest.java Mon Apr 18 15:39:29 2016 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 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
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 6439354
+ * @bug 8153056 8152647 6439354
* @summary Verify TitleBorder appearance Color/Visibility for WLAF
* @requires (os.family == "windows")
* @run main/manual TitledBorderTest
@@ -33,6 +33,7 @@
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.util.concurrent.CountDownLatch;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
@@ -41,7 +42,26 @@
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
-public class TitledBorderTest implements ActionListener {
+public class TitledBorderTest {
+
+ public static void main(String args[]) throws Exception {
+ final CountDownLatch latch = new CountDownLatch(1);
+
+ TitledBorder test = new TitledBorder(latch);
+ Thread T1 = new Thread(test);
+ T1.start();
+
+ // wait for latch to complete
+ latch.await();
+
+ if (test.testResult == false) {
+ throw new RuntimeException("User Clicked Fail!"
+ + " TitledBorder Not Valid");
+ }
+ }
+}
+
+class TitledBorder implements Runnable {
private static GridBagLayout layout;
private static JPanel mainControlPanel;
@@ -50,88 +70,98 @@
private static JButton passButton;
private static JButton failButton;
private static JFrame mainFrame;
+ private final CountDownLatch latch;
+ public boolean testResult = false;
- public static void main(String[] args) throws Exception {
- TitledBorderTest titledBorderTest = new TitledBorderTest();
+ public TitledBorder(CountDownLatch latch) throws Exception {
+ this.latch = latch;
}
- public TitledBorderTest() throws Exception {
- createUI();
+ @Override
+ public void run() {
+
+ try {
+ createUI();
+ } catch (Exception ex) {
+ if (mainFrame != null) {
+ mainFrame.dispose();
+ }
+ latch.countDown();
+ throw new RuntimeException("createUI Failed: " + ex.getMessage());
+ }
+
}
public final void createUI() throws Exception {
UIManager.setLookAndFeel("com.sun.java.swing.plaf."
+ "windows.WindowsLookAndFeel");
-
- SwingUtilities.invokeAndWait(() -> {
-
- mainFrame = new JFrame("Window LAF TitledBorder Test");
- layout = new GridBagLayout();
- mainControlPanel = new JPanel(layout);
- resultButtonPanel = new JPanel(layout);
+ SwingUtilities.invokeAndWait(new Runnable() {
+ @Override
+ public void run() {
+ mainFrame = new JFrame("Window LAF TitledBorder Test");
+ layout = new GridBagLayout();
+ mainControlPanel = new JPanel(layout);
+ resultButtonPanel = new JPanel(layout);
- GridBagConstraints gbc = new GridBagConstraints();
- String instructions
- = "INSTRUCTIONS:"
- + "\n set Windows Theme to HighContrast#1."
- + "\n (ControlPanel->Personalization->High Contrast#1)"
- + "\n If Titled Border(Border Line) is visible then test"
- + " passes else failed.";
+ GridBagConstraints gbc = new GridBagConstraints();
+ String instructions
+ = "INSTRUCTIONS:"
+ + "\n set Windows Theme to HighContrast#1."
+ + "\n (ControlPanel->Personalization->High Contrast#1)"
+ + "\n If Titled Border(Border Line) is visible then test"
+ + " passes else failed.";
- instructionTextArea = new JTextArea();
- instructionTextArea.setText(instructions);
- instructionTextArea.setEnabled(false);
- instructionTextArea.setDisabledTextColor(Color.black);
- instructionTextArea.setBackground(Color.white);
+ instructionTextArea = new JTextArea();
+ instructionTextArea.setText(instructions);
+ instructionTextArea.setEnabled(false);
+ instructionTextArea.setDisabledTextColor(Color.black);
+ instructionTextArea.setBackground(Color.white);
- gbc.gridx = 0;
- gbc.gridy = 0;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- mainControlPanel.add(instructionTextArea, gbc);
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ gbc.fill = GridBagConstraints.HORIZONTAL;
+ mainControlPanel.add(instructionTextArea, gbc);
- mainControlPanel.setBorder(BorderFactory.
- createTitledBorder("Titled Border"));
+ mainControlPanel.setBorder(BorderFactory.
+ createTitledBorder("Titled Border"));
- passButton = new JButton("Pass");
- passButton.setActionCommand("Pass");
- passButton.addActionListener(TitledBorderTest.this);
- failButton = new JButton("Fail");
- failButton.setActionCommand("Fail");
- failButton.addActionListener(TitledBorderTest.this);
- gbc.gridx = 0;
- gbc.gridy = 0;
- resultButtonPanel.add(passButton, gbc);
- gbc.gridx = 1;
- gbc.gridy = 0;
- resultButtonPanel.add(failButton, gbc);
+ passButton = new JButton("Pass");
+ passButton.setActionCommand("Pass");
+ passButton.addActionListener((ActionEvent e) -> {
+ System.out.println("Pass Button pressed!");
+ testResult = true;
+ mainFrame.dispose();
+ latch.countDown();
- gbc.gridx = 0;
- gbc.gridy = 1;
- mainControlPanel.add(resultButtonPanel, gbc);
+ });
+ failButton = new JButton("Fail");
+ failButton.setActionCommand("Fail");
+ failButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ System.out.println("Fail Button pressed!");
+ testResult = false;
+ mainFrame.dispose();
+ latch.countDown();
+ }
+ });
+ gbc.gridx = 0;
+ gbc.gridy = 0;
+ resultButtonPanel.add(passButton, gbc);
+ gbc.gridx = 1;
+ gbc.gridy = 0;
+ resultButtonPanel.add(failButton, gbc);
- mainFrame.add(mainControlPanel);
- mainFrame.pack();
- mainFrame.setVisible(true);
+ gbc.gridx = 0;
+ gbc.gridy = 1;
+ mainControlPanel.add(resultButtonPanel, gbc);
+
+ mainFrame.add(mainControlPanel);
+ mainFrame.pack();
+ mainFrame.setVisible(true);
+ }
});
+
}
-
- @Override
- public void actionPerformed(ActionEvent evt) {
- if (evt.getSource() instanceof JButton) {
- JButton btn = (JButton) evt.getSource();
- cleanUp();
- switch (btn.getActionCommand()) {
- case "Pass":
- break;
- case "Fail":
- throw new AssertionError("User Clicked Fail!");
- }
- }
- }
-
- private static void cleanUp() {
- mainFrame.dispose();
- }
-
}