Search in sources :

Example 1 with JButtonFixture

use of org.fest.swing.fixture.JButtonFixture in project ats-framework by Axway.

the class SwingButton method click.

/**
     * Click button
     * @throws VerificationException if the element doesn't exist
     */
@Override
@PublicAtsApi
public void click() {
    new SwingElementState(this).waitToBecomeExisting();
    ((JButtonFixture) SwingElementLocator.findFixture(this)).click();
}
Also used : JButtonFixture(org.fest.swing.fixture.JButtonFixture) SwingElementState(com.axway.ats.uiengine.utilities.swing.SwingElementState) PublicAtsApi(com.axway.ats.common.PublicAtsApi)

Example 2 with JButtonFixture

use of org.fest.swing.fixture.JButtonFixture in project intellij-community by JetBrains.

the class ComboBoxActionFixture method click.

private void click() {
    final JButtonFixture comboBoxButtonFixture = new JButtonFixture(myRobot, myTarget);
    Pause.pause(new Condition("Wait until comboBoxButton is enabled") {

        @Override
        public boolean test() {
            //noinspection ConstantConditions
            return execute(new GuiQuery<Boolean>() {

                @Override
                protected Boolean executeInEDT() throws Throwable {
                    return comboBoxButtonFixture.target().isEnabled();
                }
            });
        }
    }, GuiTestUtil.SHORT_TIMEOUT);
    comboBoxButtonFixture.click();
}
Also used : Condition(org.fest.swing.timing.Condition) JButtonFixture(org.fest.swing.fixture.JButtonFixture) GuiQuery(org.fest.swing.edt.GuiQuery)

Example 3 with JButtonFixture

use of org.fest.swing.fixture.JButtonFixture in project android by JetBrains.

the class ConvertToConstraintLayoutTest method testConvert2.

@Ignore("http://b.android.com/211200")
@Test
public void testConvert2() throws Exception {
    guiTest.importSimpleApplication();
    EditorFixture editor = guiTest.ideFrame().getEditor();
    editor.open("app/src/main/res/layout/frames.xml", EditorFixture.Tab.DESIGN);
    NlEditorFixture layout = editor.getLayoutEditor(false);
    layout.waitForRenderToFinish();
    // Find and click the first text View
    NlComponentFixture button = layout.findView("TextView", 0);
    button.invokeContextMenuAction("Convert LinearLayout to ConstraintLayout");
    // Confirm dialog
    DialogFixture quickFixDialog = WindowFinder.findDialog(Matchers.byTitle(Dialog.class, "Convert to ConstraintLayout")).withTimeout(TimeUnit.MINUTES.toMillis(2)).using(guiTest.robot());
    // Press OK
    JButtonFixture finish = quickFixDialog.button(withText("OK"));
    finish.click();
    // Check that we've converted to what we expected
    layout.waitForRenderToFinish();
    editor.selectEditorTab(EditorFixture.Tab.EDITOR);
    waitForScout();
    editor.invokeAction(EditorFixture.EditorAction.FORMAT);
    @Language("XML") String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + "<android.support.constraint.ConstraintLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" + "    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n" + "    xmlns:tools=\"http://schemas.android.com/tools\"\n" + "    android:id=\"@+id/constraintLayout\"\n" + "    android:layout_width=\"match_parent\"\n" + "    android:layout_height=\"wrap_content\"\n" + "    android:orientation=\"vertical\"\n" + "    tools:layout_editor_absoluteX=\"<test>\"\n" + "    tools:layout_editor_absoluteY=\"<test>\">\n" + "\n" + "    <TextView\n" + "        android:id=\"@+id/title\"\n" + "        android:layout_width=\"wrap_content\"\n" + "        android:layout_height=\"wrap_content\"\n" + "        android:text=\"Welcome\"\n" + "        app:layout_constraintBottom_toBottomOf=\"@+id/constraintLayout\"\n" + "        app:layout_constraintLeft_toLeftOf=\"@+id/constraintLayout\"\n" + "        app:layout_constraintRight_toLeftOf=\"@+id/constraintLayout\"\n" + "        app:layout_constraintTop_toBottomOf=\"@+id/constraintLayout\"\n" + "        tools:layout_constraintBottom_creator=\"1\"\n" + "        tools:layout_constraintLeft_creator=\"1\"\n" + "        tools:layout_constraintRight_creator=\"1\"\n" + "        tools:layout_constraintTop_creator=\"1\"\n" + "        tools:layout_editor_absoluteX=\"<test>\"\n" + "        tools:layout_editor_absoluteY=\"<test>\" />\n" + "\n" + "    <FrameLayout\n" + "        android:id=\"@+id/attending_remotely\"\n" + "        android:layout_width=\"0dp\"\n" + "        android:layout_height=\"wrap_content\"\n" + "        android:foreground=\"?android:selectableItemBackground\"\n" + "        app:layout_constraintBottom_toBottomOf=\"@+id/constraintLayout\"\n" + "        app:layout_constraintLeft_toLeftOf=\"@+id/constraintLayout\"\n" + "        app:layout_constraintRight_toLeftOf=\"@+id/constraintLayout\"\n" + "        app:layout_constraintTop_toBottomOf=\"@+id/constraintLayout\"\n" + "        tools:layout_constraintBottom_creator=\"1\"\n" + "        tools:layout_constraintLeft_creator=\"1\"\n" + "        tools:layout_constraintRight_creator=\"1\"\n" + "        tools:layout_constraintTop_creator=\"1\"\n" + "        tools:layout_editor_absoluteX=\"<test>\"\n" + "        tools:layout_editor_absoluteY=\"<test>\">\n" + "\n" + "        <ImageView\n" + "            android:layout_width=\"100dp\"\n" + "            android:layout_height=\"100dp\"\n" + "            android:adjustViewBounds=\"true\"\n" + "            android:scaleType=\"centerInside\"\n" + "            app:layout_constraintLeft_toLeftOf=\"@+id/attending_remotely\"\n" + "            tools:layout_constraintLeft_creator=\"1\"\n" + "            tools:layout_editor_absoluteX=\"<test>\"\n" + "            tools:layout_editor_absoluteY=\"<test>\" />\n" + "\n" + "        <TextView\n" + "            android:layout_width=\"wrap_content\"\n" + "            android:layout_height=\"wrap_content\"\n" + "            android:layout_gravity=\"bottom|end|right\"\n" + "            android:text=\"Remotely\"\n" + "            tools:layout_editor_absoluteX=\"<test>\"\n" + "            tools:layout_editor_absoluteY=\"<test>\" />\n" + "\n" + "    </FrameLayout>\n" + "\n" + "    <FrameLayout\n" + "        android:id=\"@+id/attending_in_person\"\n" + "        android:layout_width=\"0dp\"\n" + "        android:layout_height=\"wrap_content\"\n" + "        android:foreground=\"?android:selectableItemBackground\"\n" + "        app:layout_constraintBottom_toBottomOf=\"@+id/constraintLayout\"\n" + "        app:layout_constraintLeft_toLeftOf=\"@+id/constraintLayout\"\n" + "        app:layout_constraintRight_toLeftOf=\"@+id/constraintLayout\"\n" + "        app:layout_constraintTop_toBottomOf=\"@+id/constraintLayout\"\n" + "        tools:layout_constraintBottom_creator=\"1\"\n" + "        tools:layout_constraintLeft_creator=\"1\"\n" + "        tools:layout_constraintRight_creator=\"1\"\n" + "        tools:layout_constraintTop_creator=\"1\"\n" + "        tools:layout_editor_absoluteX=\"<test>\"\n" + "        tools:layout_editor_absoluteY=\"<test>\">\n" + "\n" + "        <ImageView\n" + "            android:layout_width=\"100dp\"\n" + "            android:layout_height=\"100dp\"\n" + "            android:adjustViewBounds=\"true\"\n" + "            android:scaleType=\"centerInside\"\n" + "            app:layout_constraintLeft_toLeftOf=\"@+id/attending_in_person\"\n" + "            tools:layout_constraintLeft_creator=\"1\"\n" + "            tools:layout_editor_absoluteX=\"<test>\"\n" + "            tools:layout_editor_absoluteY=\"<test>\" />\n" + "\n" + "        <TextView\n" + "            android:layout_width=\"wrap_content\"\n" + "            android:layout_height=\"wrap_content\"\n" + "            android:layout_gravity=\"bottom|end|right\"\n" + "            android:text=\"In Person\"\n" + "            tools:layout_editor_absoluteX=\"<test>\"\n" + "            tools:layout_editor_absoluteY=\"<test>\" />\n" + "\n" + "    </FrameLayout>\n" + "\n" + "</android.support.constraint.ConstraintLayout>\n";
    assertThat(wipeDimensions(editor.getCurrentFileContents())).isEqualTo(wipeDimensions(xml));
}
Also used : JButtonFixture(org.fest.swing.fixture.JButtonFixture) EditorFixture(com.android.tools.idea.tests.gui.framework.fixture.EditorFixture) NlEditorFixture(com.android.tools.idea.tests.gui.framework.fixture.layout.NlEditorFixture) NlEditorFixture(com.android.tools.idea.tests.gui.framework.fixture.layout.NlEditorFixture) DialogFixture(org.fest.swing.fixture.DialogFixture) Language(org.intellij.lang.annotations.Language) NlComponentFixture(com.android.tools.idea.tests.gui.framework.fixture.layout.NlComponentFixture) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 4 with JButtonFixture

use of org.fest.swing.fixture.JButtonFixture in project android by JetBrains.

the class NewComponentTest method testNewValueWizard.

@Test
public void testNewValueWizard() throws IOException {
    guiTest.importSimpleApplication();
    guiTest.ideFrame().getProjectView().selectAndroidPane();
    guiTest.ideFrame().invokeMenuPath("File", "New", "XML", "Values XML File");
    final NewXmlValueWizardFixture wizardFixture = NewXmlValueWizardFixture.find(guiTest.robot());
    final JButtonFixture finishFixture = wizardFixture.findWizardButton("Finish");
    finishFixture.requireEnabled();
    wizardFixture.getFileNameField().enterText("strings");
    final JLabelFixture errorLabel = wizardFixture.findLabel("Values File Name must be unique");
    Wait.seconds(1).expecting("Finish to be disabled").until(() -> !finishFixture.isEnabled());
    wizardFixture.getFileNameField().enterText("2");
    Wait.seconds(1).expecting("Finish to be enabled").until(finishFixture::isEnabled);
    // Now test an invalid file name. Currently we have "strings2" so add an space to make it invalid.
    wizardFixture.getFileNameField().enterText(" ");
    Wait.seconds(1).expecting("Finish to be disabled").until(() -> !finishFixture.isEnabled());
    errorLabel.requireText("Values File Name is not set to a valid resource name: ' ' is not a valid resource name character");
    // UI tests should close all dialogs before finishing
    wizardFixture.findWizardButton("Cancel").click();
}
Also used : JButtonFixture(org.fest.swing.fixture.JButtonFixture) JLabelFixture(org.fest.swing.fixture.JLabelFixture) NewXmlValueWizardFixture(com.android.tools.idea.tests.gui.framework.fixture.npw.NewXmlValueWizardFixture) Test(org.junit.Test)

Example 5 with JButtonFixture

use of org.fest.swing.fixture.JButtonFixture in project ats-framework by Axway.

the class SwingElementLocator method findFixture.

public static ComponentFixture<? extends Component> findFixture(UiElement uiElement) {
    SwingDriverInternal driver = (SwingDriverInternal) uiElement.getUiDriver();
    ContainerFixture<?> containerFixture = (ContainerFixture<?>) driver.getActiveContainerFixture();
    Class<? extends Component> componentClass = componentsMap.get(uiElement.getClass());
    try {
        if (componentClass.equals(JButton.class)) {
            return (ComponentFixture<? extends Component>) new JButtonFixture(containerFixture.robot, (JButton) findElement(uiElement));
        } else if (componentClass.equals(JTextComponent.class)) {
            return (ComponentFixture<? extends Component>) new JTextComponentFixture(containerFixture.robot, (JTextComponent) findElement(uiElement));
        } else if (componentClass.equals(JMenuItem.class)) {
            if (uiElement.getElementProperty("path") != null) {
                return containerFixture.menuItemWithPath(uiElement.getElementProperty("path").split("[\\,\\/]+"));
            } else {
                return (ComponentFixture<? extends Component>) new JMenuItemFixture(containerFixture.robot, (JMenuItem) findElement(uiElement));
            }
        } else if (componentClass.equals(JPopupMenu.class)) {
            return (ComponentFixture<? extends Component>) new JPopupMenuFixture(containerFixture.robot, (JPopupMenu) findElement(uiElement));
        } else if (componentClass.equals(JTree.class)) {
            return (ComponentFixture<? extends Component>) new JTreeFixture(containerFixture.robot, (JTree) findElement(uiElement));
        } else if (componentClass.equals(JList.class)) {
            return (ComponentFixture<? extends Component>) new JListFixture(containerFixture.robot, (JList) findElement(uiElement));
        } else if (componentClass.equals(JCheckBox.class)) {
            return (ComponentFixture<? extends Component>) new JCheckBoxFixture(containerFixture.robot, (JCheckBox) findElement(uiElement));
        } else if (componentClass.equals(JToggleButton.class)) {
            return (ComponentFixture<? extends Component>) new JToggleButtonFixture(containerFixture.robot, (JToggleButton) findElement(uiElement));
        } else if (componentClass.equals(JComboBox.class)) {
            return (ComponentFixture<? extends Component>) new JComboBoxFixture(containerFixture.robot, (JComboBox) findElement(uiElement));
        } else if (componentClass.equals(JRadioButton.class)) {
            return (ComponentFixture<? extends Component>) new JRadioButtonFixture(containerFixture.robot, (JRadioButton) findElement(uiElement));
        } else if (componentClass.equals(JTable.class)) {
            return (ComponentFixture<? extends Component>) new JTableFixture(containerFixture.robot, (JTable) findElement(uiElement));
        } else if (componentClass.equals(JSpinner.class)) {
            return (ComponentFixture<? extends Component>) new JSpinnerFixture(containerFixture.robot, (JSpinner) findElement(uiElement));
        } else if (componentClass.equals(JTabbedPane.class)) {
            return (ComponentFixture<? extends Component>) new JTabbedPaneFixture(containerFixture.robot, (JTabbedPane) findElement(uiElement));
        } else if (componentClass.equals(JOptionPane.class)) {
            return (ComponentFixture<? extends Component>) containerFixture.optionPane();
        } else if (componentClass.equals(JLabel.class)) {
            return (ComponentFixture<? extends Component>) new JLabelFixture(containerFixture.robot, (JLabel) findElement(uiElement));
        } else if (componentClass.equals(Component.class)) {
            return new ComponentFixture<Component>(containerFixture.robot, findElement(uiElement)) {
            };
        } else if (componentClass.equals(JFileChooser.class)) {
            // TODO - might be searched by name too
            return containerFixture.fileChooser(Timeout.timeout(UiEngineConfigurator.getInstance().getElementStateChangeDelay()));
        } else {
            throw new ElementNotFoundException(uiElement.toString() + " not found. No such Fixture");
        }
    } catch (ComponentLookupException cle) {
        throw new ElementNotFoundException(uiElement.toString() + " not found.", cle);
    } catch (WaitTimedOutError exc) {
        // thrown for OptionPane search, wait for Window (BasicRobot.waitForWindow), AbstractJTableCellWriter, JTreeDriver.waitForChildrenToShowUp, each Pause wait
        throw new ElementNotFoundException(uiElement.toString() + " not found.", exc);
    }
}
Also used : JTreeFixture(org.fest.swing.fixture.JTreeFixture) JRadioButton(javax.swing.JRadioButton) SwingDriverInternal(com.axway.ats.uiengine.internal.driver.SwingDriverInternal) JTabbedPane(javax.swing.JTabbedPane) JButton(javax.swing.JButton) JTextComponent(javax.swing.text.JTextComponent) JSpinnerFixture(org.fest.swing.fixture.JSpinnerFixture) ElementNotFoundException(com.axway.ats.uiengine.exceptions.ElementNotFoundException) ComponentLookupException(org.fest.swing.exception.ComponentLookupException) WaitTimedOutError(org.fest.swing.exception.WaitTimedOutError) JLabelFixture(org.fest.swing.fixture.JLabelFixture) JTabbedPaneFixture(org.fest.swing.fixture.JTabbedPaneFixture) JButtonFixture(org.fest.swing.fixture.JButtonFixture) JToggleButtonFixture(org.fest.swing.fixture.JToggleButtonFixture) JComboBoxFixture(org.fest.swing.fixture.JComboBoxFixture) JTableFixture(org.fest.swing.fixture.JTableFixture) JToggleButton(javax.swing.JToggleButton) JTextComponentFixture(org.fest.swing.fixture.JTextComponentFixture) ComponentFixture(org.fest.swing.fixture.ComponentFixture) JMenuItemFixture(org.fest.swing.fixture.JMenuItemFixture) Component(java.awt.Component) JTextComponent(javax.swing.text.JTextComponent) JMenuItem(javax.swing.JMenuItem) JTextComponentFixture(org.fest.swing.fixture.JTextComponentFixture) JRadioButtonFixture(org.fest.swing.fixture.JRadioButtonFixture) JComboBox(javax.swing.JComboBox) JLabel(javax.swing.JLabel) JOptionPane(javax.swing.JOptionPane) JPopupMenu(javax.swing.JPopupMenu) JCheckBox(javax.swing.JCheckBox) JTree(javax.swing.JTree) JPopupMenuFixture(org.fest.swing.fixture.JPopupMenuFixture) JListFixture(org.fest.swing.fixture.JListFixture) ContainerFixture(org.fest.swing.fixture.ContainerFixture) JTable(javax.swing.JTable) JSpinner(javax.swing.JSpinner) JCheckBoxFixture(org.fest.swing.fixture.JCheckBoxFixture) JList(javax.swing.JList)

Aggregations

JButtonFixture (org.fest.swing.fixture.JButtonFixture)12 Test (org.junit.Test)4 EditorFixture (com.android.tools.idea.tests.gui.framework.fixture.EditorFixture)3 DialogFixture (org.fest.swing.fixture.DialogFixture)3 Ignore (org.junit.Ignore)3 NlComponentFixture (com.android.tools.idea.tests.gui.framework.fixture.layout.NlComponentFixture)2 NlEditorFixture (com.android.tools.idea.tests.gui.framework.fixture.layout.NlEditorFixture)2 BasicRobot (org.fest.swing.core.BasicRobot)2 Robot (org.fest.swing.core.Robot)2 JLabelFixture (org.fest.swing.fixture.JLabelFixture)2 NewXmlValueWizardFixture (com.android.tools.idea.tests.gui.framework.fixture.npw.NewXmlValueWizardFixture)1 PublicAtsApi (com.axway.ats.common.PublicAtsApi)1 ElementNotFoundException (com.axway.ats.uiengine.exceptions.ElementNotFoundException)1 SwingDriverInternal (com.axway.ats.uiengine.internal.driver.SwingDriverInternal)1 SwingElementState (com.axway.ats.uiengine.utilities.swing.SwingElementState)1 VirtualFile (com.intellij.openapi.vfs.VirtualFile)1 Component (java.awt.Component)1 JButton (javax.swing.JButton)1 JCheckBox (javax.swing.JCheckBox)1 JComboBox (javax.swing.JComboBox)1