package fr.adrienbrault.idea.symfony2plugin.tests.profiler;
import com.intellij.psi.PsiFile;
import fr.adrienbrault.idea.symfony2plugin.profiler.dict.LocalProfilerRequest;
import fr.adrienbrault.idea.symfony2plugin.profiler.utils.ProfilerUtil;
import fr.adrienbrault.idea.symfony2plugin.profiler.dict.ProfilerRequestInterface;
import fr.adrienbrault.idea.symfony2plugin.tests.SymfonyLightCodeInsightFixtureTestCase;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
import java.util.Collection;
import java.util.Map;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
* @see ProfilerUtil
*/
public class ProfilerUtilTest extends SymfonyLightCodeInsightFixtureTestCase {
public void setUp() throws Exception {
super.setUp();
}
protected String getTestDataPath() {
return new File(this.getClass().getResource("fixtures").getFile()).getAbsolutePath();
}
/**
* @see ProfilerUtil#createRequestsFromIndexHtml
*/
public void testCreateRequestsFromIndexHtml() {
PsiFile psiFile = myFixture.configureByFile("profiler-index.html");
Collection<ProfilerRequestInterface> requests = ProfilerUtil.createRequestsFromIndexHtml(getProject(), psiFile.getText(), "http://127.0.0.1:8000/");
ProfilerRequestInterface request = requests.iterator().next();
assertEquals("a9eaab", request.getHash());
assertEquals("GET", request.getMethod());
assertEquals("http://127.0.0.1:8000/_profiler/search/results?ip=&limit=10", request.getUrl());
assertEquals("http://127.0.0.1:8000/_profiler/a9eaab", request.getProfilerUrl());
assertEquals(404, request.getStatusCode());
}
/**
* @see ProfilerUtil#getRequestAttributes
*/
public void testGetRequestValues() {
PsiFile psiFile = myFixture.configureByFile("profiler-request.html");
Map<String, String> requests = ProfilerUtil.getRequestAttributes(getProject(), psiFile.getText());
assertEquals("my.controller:latestAction", requests.get("_controller"));
assertEquals("foo_route", requests.get("_route"));
}
/**
* @see ProfilerUtil#getRenderedElementTwigTemplates
*/
public void testGetRenderedElementTwigTemplates() {
PsiFile psiFile = myFixture.configureByFile("profiler-twig.html");
Map<String, Integer> requests = ProfilerUtil.getRenderedElementTwigTemplates(getProject(), psiFile.getText());
assertEquals(16, requests.get("@Twig/Exception/trace.html.twig").intValue());
assertEquals(1, requests.get("@Twig/Exception/traces.html.twig").intValue());
}
/**
* @see ProfilerUtil#getBaseProfilerUrlFromRequest
*/
public void testGetBaseProfilerUrlFromRequest() {
assertEquals("http://127.0.0.1", ProfilerUtil.getBaseProfilerUrlFromRequest("http://127.0.0.1"));
assertEquals("http://127.0.0.1", ProfilerUtil.getBaseProfilerUrlFromRequest("http://127.0.0.1:80"));
assertEquals("http://127.0.0.1:8080", ProfilerUtil.getBaseProfilerUrlFromRequest("http://127.0.0.1:8080"));
assertEquals("http://127.0.0.1:8080", ProfilerUtil.getBaseProfilerUrlFromRequest("http://127.0.0.1:8080/"));
assertEquals("http://127.0.0.1:8080", ProfilerUtil.getBaseProfilerUrlFromRequest("http://127.0.0.1:8080/app_dev.php"));
assertEquals(
"http://127.0.0.1:8080/app_dev.php",
ProfilerUtil.getBaseProfilerUrlFromRequest("http://127.0.0.1:8080/app_dev.php/")
);
assertEquals(
"http://127.0.0.1:8080/app/app_dev.php",
ProfilerUtil.getBaseProfilerUrlFromRequest("http://127.0.0.1:8080/app/app_dev.php/")
);
assertEquals(
"http://127.0.0.1:8080/app/app_stage.php",
ProfilerUtil.getBaseProfilerUrlFromRequest("http://127.0.0.1:8080/app/app_stage.php/")
);
assertEquals(
"http://127.0.0.1:8080/app/app_test.php",
ProfilerUtil.getBaseProfilerUrlFromRequest("http://127.0.0.1:8080/app/app_test.php/")
);
}
/**
* @see ProfilerUtil#formatProfilerRow
*/
public void testFormatProfilerRow() {
assertEquals(
"(200) /foobar",
ProfilerUtil.formatProfilerRow(new LocalProfilerRequest("18e6b8,127.0.0.1,GET,http://127.0.0.1:8000/foobar,1474185112,76c8ab,200".split(",")))
);
assertEquals(
"(200) /foobar",
ProfilerUtil.formatProfilerRow(new LocalProfilerRequest("18e6b8,127.0.0.1,GET,http://127.0.0.1:8000/app_dev.php/foobar,1474185112,76c8ab,200".split(",")))
);
assertEquals(
"(404) /foobar/foobar/foobar/foobar/foo...",
ProfilerUtil.formatProfilerRow(new LocalProfilerRequest("18e6b8,127.0.0.1,GET,http://127.0.0.1:8000/app_test.php/foobar/foobar/foobar/foobar/foobar/,1474185112,76c8ab,404".split(",")))
);
assertEquals(
"(404) asdss127.0.0.1:8000/app_test.php...",
ProfilerUtil.formatProfilerRow(new LocalProfilerRequest("18e6b8,127.0.0.1,GET,asdss127.0.0.1:8000/app_test.php/foobar/foobar/,1474185112,76c8ab,404".split(",")))
);
}
}