< prev index next >

test/org/netbeans/jemmy/operators/FileChooserTest.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2017, 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. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2017, 2018, 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. Oracle designates this
*** 23,52 **** * questions. */ package org.netbeans.jemmy.operators; import org.netbeans.jemmy.ComponentChooser; import org.netbeans.jemmy.util.Dumper; import org.testng.ITestResult; - import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import javax.swing.JFileChooser; import java.awt.Component; import java.awt.Container; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; - import static org.testng.Assert.assertEquals; - import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; public class FileChooserTest { private JFileChooserOperator fileChooser; private File dir, file; @BeforeClass public void setup() throws IOException { --- 23,58 ---- * questions. */ package org.netbeans.jemmy.operators; import org.netbeans.jemmy.ComponentChooser; + import org.netbeans.jemmy.LookAndFeelProvider; import org.netbeans.jemmy.util.Dumper; + import org.netbeans.jemmy.util.Platform; import org.testng.ITestResult; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import javax.swing.JFileChooser; + import javax.swing.UIManager; + import java.awt.Component; import java.awt.Container; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; + import java.nio.file.Path; + import java.nio.file.Paths; import static org.testng.Assert.assertTrue; public class FileChooserTest { + private static final String USER_HOME = "user.home"; + private static final String DESKTOP = "Desktop"; + private JFrameOperator frame; private JFileChooserOperator fileChooser; private File dir, file; @BeforeClass public void setup() throws IOException {
*** 54,75 **** dir.delete(); dir.mkdirs(); File.createTempFile("aestFile", ".txt", dir).deleteOnExit(); file = File.createTempFile("testFile", ".txt", dir); file.deleteOnExit(); File.createTempFile("zestFile", ".txt", dir).deleteOnExit(); FileChooserApp.show(dir); ! JFrameOperator frame = new JFrameOperator("Sample File Chooser"); fileChooser = new JFileChooserOperator( JFileChooserOperator.findJFileChooser((Container) frame.getSource())); } @AfterMethod public void tearDown(ITestResult result) throws FileNotFoundException { if(!result.isSuccess()) ! Dumper.dumpAll(new File(result.getMethod() + "-dump.xml").getAbsolutePath()); } ! @Test ! public void testSelection() { fileChooser.selectFile(file.getName()); fileChooser.waitState(new ComponentChooser() { @Override public boolean checkComponent(Component comp) { return ((JFileChooser)comp).getSelectedFile() != null && --- 60,91 ---- dir.delete(); dir.mkdirs(); File.createTempFile("aestFile", ".txt", dir).deleteOnExit(); file = File.createTempFile("testFile", ".txt", dir); file.deleteOnExit(); File.createTempFile("zestFile", ".txt", dir).deleteOnExit(); + } + + public void setUpBeforeMethod() { FileChooserApp.show(dir); ! frame = new JFrameOperator("Sample File Chooser"); fileChooser = new JFileChooserOperator( JFileChooserOperator.findJFileChooser((Container) frame.getSource())); } + @AfterMethod public void tearDown(ITestResult result) throws FileNotFoundException { + frame.setVisible(false); + frame.dispose(); if(!result.isSuccess()) ! Dumper.dumpAll(new File(UIManager.getLookAndFeel().getClass().getSimpleName() ! + "_" + result.getMethod() + "-dump.xml").getAbsolutePath()); } ! ! @Test(dataProvider = "availableLookAndFeels", dataProviderClass = LookAndFeelProvider.class) ! public void testSelection(String lookAndFeel) throws Exception { ! UIManager.setLookAndFeel(lookAndFeel); ! setUpBeforeMethod(); fileChooser.selectFile(file.getName()); fileChooser.waitState(new ComponentChooser() { @Override public boolean checkComponent(Component comp) { return ((JFileChooser)comp).getSelectedFile() != null &&
*** 80,89 **** public String getDescription() { return "test file is selected"; } }); } ! @Test ! public void testCount() { assertTrue(fileChooser.getFileCount() >= 3); } } --- 96,135 ---- public String getDescription() { return "test file is selected"; } }); } ! ! @Test(dataProvider = "availableLookAndFeels", dataProviderClass = LookAndFeelProvider.class) ! public void testCount(String lookAndFeel) throws Exception { ! UIManager.setLookAndFeel(lookAndFeel); ! setUpBeforeMethod(); assertTrue(fileChooser.getFileCount() >= 3); } + + @Test(dataProvider = "availableLookAndFeels", dataProviderClass = LookAndFeelProvider.class) + public void testGoHome(String lookAndFeel) throws Exception { + UIManager.setLookAndFeel(lookAndFeel); + setUpBeforeMethod(); + // In Aqua, GTK and Motif L&Fs, JFileChooser does not have + // "Go Home" button. + if (!UIManager.getLookAndFeel().getID().equals("Aqua") + && !UIManager.getLookAndFeel().getID().equals("Motif") + && !UIManager.getLookAndFeel().getID().equals("GTK")) { + File previousDirectory = fileChooser.getCurrentDirectory(); + fileChooser.goHome(); + // In Windows, pressing goHome navigates to Desktop inside the home directory. + // This is the expected behavior for windows. + if (!Platform.isWindows()) { + waitCurrentPath(Paths.get(System.getProperty(USER_HOME))); + } else { + waitCurrentPath(Paths.get(System.getProperty(USER_HOME)).resolve(DESKTOP)); + } + fileChooser.setCurrentDirectory(previousDirectory); + fileChooser.rescanCurrentDirectory(); + } + } + + private void waitCurrentPath(Path expectedPath) { + fileChooser.waitState(chooser -> fileChooser.getCurrentDirectory().toPath().equals(expectedPath)); + } }
< prev index next >