/* * Copyright 2016-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.example; import griffon.javafx.test.GriffonTestFXClassRule; import junitparams.JUnitParamsRunner; import junitparams.Parameters; import org.junit.ClassRule; import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.MethodSorters; import org.testfx.matcher.base.NodeMatchers; import org.testfx.util.WaitForAsyncUtils; import java.util.concurrent.TimeUnit; import static org.hamcrest.CoreMatchers.not; import static org.testfx.api.FxAssert.verifyThat; import static org.testfx.matcher.control.LabeledMatchers.hasText; @RunWith(JUnitParamsRunner.class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class SampleFunctionalTest { @ClassRule public static GriffonTestFXClassRule testfx = new GriffonTestFXClassRule("mainWindow"); @Test @Parameters({",Howdy stranger!", "Test, Hello Test"}) public void clickSayHelloButton(String input, String output) throws Exception { // given: testfx.clickOn("#input").write(input); // when: testfx.clickOn("#sayHelloActionTarget"); // then: WaitForAsyncUtils.waitFor(2, TimeUnit.SECONDS, () -> { return NodeMatchers.hasText(not("")).matches(testfx.lookup("#output").query()); }); verifyThat("#output", hasText(output)); } }