package kg.apc.jmeter; import kg.apc.emulators.TestJMeterUtils; import org.apache.jmeter.gui.util.PowerTableModel; import org.apache.jmeter.gui.util.VerticalPanel; import org.apache.jmeter.samplers.SampleSaveConfiguration; import org.apache.jmeter.testelement.property.CollectionProperty; import org.apache.jmeter.util.JMeterUtils; import org.junit.Test; import javax.swing.*; import java.awt.*; import java.io.IOException; import java.nio.ByteBuffer; import java.util.Map; import static org.junit.Assert.*; public class JMeterPluginsUtilsTest { @Test public void testPrefixLabel() { System.out.println("prefixLabel"); String string = "TEST"; String result = JMeterPluginsUtils.prefixLabel(string); assertTrue(result.contains(string)); } @Test public void testGetStackTrace() { System.out.println("getStackTrace"); Exception ex = new Exception(); String result = JMeterPluginsUtils.getStackTrace(ex); assertTrue(result.length() > 0); } @Test public void testReplaceRNT() { System.out.println("replaceRNT"); assertEquals("\t", JMeterPluginsUtils.replaceRNT("\\t")); assertEquals("\t\t", JMeterPluginsUtils.replaceRNT("\\t\\t")); assertEquals("-\t-", JMeterPluginsUtils.replaceRNT("-\\t-")); System.out.println("\\\\t"); assertEquals("\\t", JMeterPluginsUtils.replaceRNT("\\\\t")); assertEquals("\t\n\r", JMeterPluginsUtils.replaceRNT("\\t\\n\\r")); assertEquals("\t\n\n\r", JMeterPluginsUtils.replaceRNT("\\t\\n\\n\\r")); } @Test public void testGetWikiLinkText() { System.out.println("getWikiLinkText"); String wikiPage = "test"; String result = JMeterPluginsUtils.getWikiLinkText(wikiPage); assertTrue(result.endsWith(wikiPage) || java.awt.Desktop.isDesktopSupported()); } @Test public void testOpenInBrowser() { System.out.println("openInBrowser"); // don't do this, because of odd window popups // JMeterPluginsUtils.openInBrowser("http://jmeter-plugins.org/"); } @Test public void testAddHelpLinkToPanel() { System.out.println("addHelpLinkToPanel"); VerticalPanel titlePanel = new VerticalPanel(); titlePanel.add(new JLabel("title")); VerticalPanel contentPanel = new VerticalPanel(); contentPanel.setBorder(BorderFactory.createEtchedBorder()); contentPanel.add(new JPanel()); contentPanel.add(new JPanel()); contentPanel.setName("THIS"); titlePanel.add(contentPanel); String helpPage = ""; Component result = JMeterPluginsUtils.addHelpLinkToPanel(titlePanel, helpPage); assertNotNull(result); } @Test public void testGetSecondsForShortString() { System.out.println("getSecondsForShort"); assertEquals(105, JMeterPluginsUtils.getSecondsForShortString("105")); assertEquals(105, JMeterPluginsUtils.getSecondsForShortString("105s")); assertEquals(60 * 15, JMeterPluginsUtils.getSecondsForShortString("15m")); assertEquals(60 * 60 * 4, JMeterPluginsUtils.getSecondsForShortString("4h")); assertEquals(104025, JMeterPluginsUtils.getSecondsForShortString("27h103m645s")); } private PowerTableModel getTestModel() { String[] headers = {"col1", "col2"}; Class[] classes = {String.class, String.class}; PowerTableModel model = new PowerTableModel(headers, classes); String[] row1 = {"1", "2"}; String[] row2 = {"3", "4"}; model.addRow(row1); model.addRow(row2); return model; } @Test public void testTableModelRowsToCollectionProperty() { System.out.println("tableModelRowsToCollectionProperty"); PowerTableModel model = getTestModel(); String propname = "prop"; CollectionProperty result = JMeterPluginsUtils.tableModelRowsToCollectionProperty(model, propname); assertEquals(2, result.size()); assertEquals("[[1, 2], [3, 4]]", result.toString()); } @Test public void testCollectionPropertyToTableModelRows() { System.out.println("collectionPropertyToTableModelRows"); String propname = "prop"; PowerTableModel modelSrc = getTestModel(); CollectionProperty propExp = JMeterPluginsUtils.tableModelRowsToCollectionProperty(modelSrc, propname); PowerTableModel modelDst = getTestModel(); modelDst.clearData(); JMeterPluginsUtils.collectionPropertyToTableModelRows(propExp, modelDst); CollectionProperty propRes = JMeterPluginsUtils.tableModelRowsToCollectionProperty(modelDst, propname); assertEquals(propExp.toString(), propRes.toString()); } @Test public void testTableModelRowsToCollectionPropertyEval() { System.out.println("tableModelRowsToCollectionPropertyEval"); PowerTableModel model = getTestModel(); String propname = "prop"; CollectionProperty result = JMeterPluginsUtils.tableModelRowsToCollectionPropertyEval(model, propname); assertEquals(2, result.size()); assertEquals("[[1, 2], [3, 4]]", result.toString()); } @Test public void testGetFloatFromString() { System.out.println("getFloatFromString"); String stringValue = "5.3"; float defaultValue = 1.0F; float expResult = 5.3F; float result = JMeterPluginsUtils.getFloatFromString(stringValue, defaultValue); assertEquals(expResult, result, 0.0); } @Test public void testDoBestCSVSetup() throws IOException { System.out.println("doBestCSVSetup"); TestJMeterUtils.createJmeterEnv(); SampleSaveConfiguration conf = new SampleSaveConfiguration(); JMeterPluginsUtils.doBestCSVSetup(conf); } @Test public void testGetEnvDefault() throws IOException { System.out.println("getEnvDefault"); TestJMeterUtils.createJmeterEnv(); Map<String, String> env = System.getenv(); if (!env.isEmpty()) { String key = env.keySet().iterator().next(); assertEquals(env.get(key), JMeterPluginsUtils.getEnvDefault(key, "testGetEnvDefault")); assertEquals("testGetEnvDefault", JMeterPluginsUtils.getEnvDefault(key + "testGetEnvDefault", "testGetEnvDefault")); } } @Test public void testGetShortHostnameDefault() throws IOException { System.out.println("testShortHostnameDefault"); TestJMeterUtils.createJmeterEnv(); String host; host = JMeterPluginsUtils.getShortHostname("host1.us-west-2.ec2.internal"); assertEquals("host1", host); host = JMeterPluginsUtils.getShortHostname("host.us-west-2.ec2.internal"); assertEquals("host", host); host = JMeterPluginsUtils.getShortHostname("1host.us-west-2.ec2.internal"); assertEquals("1host", host); host = JMeterPluginsUtils.getShortHostname("search-head.us-west-2.ec2.internal"); assertEquals("search-head", host); host = JMeterPluginsUtils.getShortHostname("search-index.us-west-2.ec2.internal"); assertEquals("search-index", host); } @Test public void testGetShortHostnameCustomPattern1() throws IOException { System.out.println("testGetShortHostnameCustomPattern1"); TestJMeterUtils.createJmeterEnv(); JMeterUtils.setProperty("jmeterPlugin.perfmon.label.useHostname.pattern", "([\\w\\-]+\\.us-(east|west)-[0-9]).*"); String host; host = JMeterPluginsUtils.getShortHostname("host1.us-west-2.ec2.internal"); assertEquals("host1.us-west-2", host); host = JMeterPluginsUtils.getShortHostname("host.us-west-2.ec2.internal"); assertEquals("host.us-west-2", host); host = JMeterPluginsUtils.getShortHostname("1host.us-east-1.ec2.internal"); assertEquals("1host.us-east-1", host); host = JMeterPluginsUtils.getShortHostname("search-head.us-west-1.ec2.internal"); assertEquals("search-head.us-west-1", host); host = JMeterPluginsUtils.getShortHostname("search-index.us-west-2.ec2.internal"); assertEquals("search-index.us-west-2", host); } @Test public void testGetShortHostnameInvalidPattern() throws IOException { System.out.println("testGetShortHostnameInvalidPattern"); TestJMeterUtils.createJmeterEnv(); JMeterUtils.setProperty("jmeterPlugin.perfmon.label.useHostname.pattern", "([\\w\\-]+\\.region.*"); String host; host = JMeterPluginsUtils.getShortHostname("aaa-bbb-1234.region.com"); assertEquals("aaa-bbb-1234.region.com", host); } }