package com.googlecode.jmeter.plugins.webdriver.sampler.gui;
import com.googlecode.jmeter.plugins.webdriver.sampler.WebDriverSampler;
import kg.apc.emulators.TestJMeterUtils;
import org.apache.jmeter.gui.JMeterGUIComponent;
import org.hamcrest.CoreMatchers;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class WebDriverSamplerGuiTest {
private WebDriverSamplerGui gui;
@BeforeClass
public static void setupJMeterEnv() {
TestJMeterUtils.createJmeterEnv();
}
@Before
public void createGui() {
gui = new WebDriverSamplerGui();
}
@Test
public void shouldImplementJMeterGUIComponent() {
assertThat(gui, is(CoreMatchers.instanceOf(JMeterGUIComponent.class)));
}
@Test
public void shouldReturnStaticLabel() {
assertThat(gui.getStaticLabel(), containsString("WebDriver Sampler"));
}
@Test
public void shouldReturnCanonicalClassNameAsLabelResource() {
assertThat(gui.getLabelResource(), is(gui.getClass().getCanonicalName()));
}
@Test
public void shouldSetParameters() {
gui.parameters.setText("parameter1 parameter2");
final WebDriverSampler testElement = (WebDriverSampler) gui.createTestElement();
assertThat(testElement.getParameters(), is("parameter1 parameter2"));
}
@Test
public void shouldSetScript() {
gui.script.setText("some script");
final WebDriverSampler testElement = (WebDriverSampler) gui.createTestElement();
assertThat(testElement.getScript(), is("some script"));
}
@Test
public void shouldResetValuesOnClearGui() {
gui.script.setText("script");
gui.parameters.setText("p1 p2");
gui.clearGui();
assertThat(gui.script.getText(), is(WebDriverSampler.defaultScript));
assertThat(gui.parameters.getText(), is(""));
assertThat((String) gui.languages.getSelectedItem(), is(WebDriverSampler.DEFAULT_ENGINE));
}
@Test
public void shouldSetValuesOnConfigure() {
WebDriverSampler sampler = new WebDriverSampler();
sampler.setParameters("param1 param2");
sampler.setScript("var script;");
gui.configure(sampler);
assertThat(gui.script.getText(), is(sampler.getScript()));
assertThat(gui.parameters.getText(), is(sampler.getParameters()));
}
}