1 /*
   2   test
   3   @bug 6260659
   4   @summary File Name set programmatically in FileDialog is overridden during navigation, XToolkit
   5   @author Dmitry.Cherepanov@SUN.COM area=awt.filedialog
   6   @library ../../regtesthelpers
   7   @build Sysout
   8   @run applet/manual=yesno FileNameOverrideTest.html
   9 */
  10 
  11 import test.java.awt.regtesthelpers.Sysout;
  12 
  13 import java.applet.Applet;
  14 import java.awt.*;
  15 import java.awt.event.ActionEvent;
  16 import java.awt.event.ActionListener;
  17 import java.io.File;
  18 import java.io.IOException;
  19 
  20 public class FileNameOverrideTest extends Applet implements ActionListener {
  21     private final static String fileName = "input";
  22     private final static String clickDirName = "Directory for double click";
  23     private final static String dirPath = ".";
  24     private Button showBtn;
  25     private FileDialog fd;
  26 
  27     public void init() {
  28         this.setLayout(new GridLayout(1, 1));
  29 
  30         fd = new FileDialog(new Frame(), "Open");
  31 
  32         showBtn = new Button("Show File Dialog");
  33         showBtn.addActionListener(this);
  34         add(showBtn);
  35 
  36         try {
  37             File tmpFileUp = new File(dirPath + File.separator + fileName);
  38             File tmpDir = new File(dirPath + File.separator + clickDirName);
  39             File tmpFileIn = new File(tmpDir.getAbsolutePath() + File.separator + fileName);
  40             tmpDir.mkdir();
  41             tmpFileUp.createNewFile();
  42             tmpFileIn.createNewFile();
  43         } catch (IOException ex) {
  44             throw new RuntimeException("Cannot create test folder", ex);
  45         }
  46 
  47         String[] instructions = {
  48                 "1) Click on 'Show File Dialog' button. A file dialog will come up.",
  49                 "2) Double-click on '" + clickDirName + "' and click OK.",
  50                 "3) See result of the test below"
  51         };
  52         Sysout.createDialogWithInstructions(instructions);
  53     }//End  init()
  54 
  55     public void start() {
  56         setSize(200, 200);
  57         show();
  58     }// start()
  59 
  60     public void actionPerformed(ActionEvent e) {
  61         if (e.getSource() == showBtn) {
  62             fd.setFile(fileName);
  63             fd.setDirectory(dirPath);
  64             fd.setVisible(true);
  65             String output = fd.getFile();
  66             if (fileName.equals(output)) {
  67                 Sysout.println("TEST PASSED");
  68             } else {
  69                 Sysout.println("TEST FAILED (output file - " + output + ")");
  70             }
  71         }
  72     }
  73 }// class ManualYesNoTest