You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

VaadinServletTest.java 5.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package com.vaadin.server;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertNull;
  4. import javax.servlet.http.HttpServletRequest;
  5. import org.junit.Test;
  6. import org.mockito.Mockito;
  7. public class VaadinServletTest {
  8. @Test
  9. public void testGetLastPathParameter() {
  10. assertEquals("",
  11. VaadinServlet.getLastPathParameter("http://myhost.com"));
  12. assertEquals(";a",
  13. VaadinServlet.getLastPathParameter("http://myhost.com;a"));
  14. assertEquals("",
  15. VaadinServlet.getLastPathParameter("http://myhost.com/hello"));
  16. assertEquals(";b=c", VaadinServlet
  17. .getLastPathParameter("http://myhost.com/hello;b=c"));
  18. assertEquals("",
  19. VaadinServlet.getLastPathParameter("http://myhost.com/hello/"));
  20. assertEquals("", VaadinServlet
  21. .getLastPathParameter("http://myhost.com/hello;a/"));
  22. assertEquals("", VaadinServlet
  23. .getLastPathParameter("http://myhost.com/hello;a=1/"));
  24. assertEquals(";b", VaadinServlet
  25. .getLastPathParameter("http://myhost.com/hello/;b"));
  26. assertEquals(";b=1", VaadinServlet
  27. .getLastPathParameter("http://myhost.com/hello/;b=1"));
  28. assertEquals(";b=1,c=2", VaadinServlet
  29. .getLastPathParameter("http://myhost.com/hello/;b=1,c=2"));
  30. assertEquals("", VaadinServlet
  31. .getLastPathParameter("http://myhost.com/hello/;b=1,c=2/"));
  32. assertEquals("", VaadinServlet
  33. .getLastPathParameter("http://myhost.com/a;hello/;a/"));
  34. assertEquals("", VaadinServlet
  35. .getLastPathParameter("http://myhost.com/a;hello/;a=1/"));
  36. assertEquals(";b", VaadinServlet
  37. .getLastPathParameter("http://myhost.com/a;hello/;b"));
  38. assertEquals(";b=1", VaadinServlet
  39. .getLastPathParameter("http://myhost.com/a;hello/;b=1"));
  40. assertEquals(";b=1,c=2", VaadinServlet
  41. .getLastPathParameter("http://myhost.com/a;hello/;b=1,c=2"));
  42. assertEquals("", VaadinServlet
  43. .getLastPathParameter("http://myhost.com/a;hello/;b=1,c=2/"));
  44. }
  45. @Test
  46. public void getStaticFilePath() {
  47. VaadinServlet servlet = new VaadinServlet();
  48. // Mapping: /VAADIN/*
  49. // /VAADIN
  50. assertNull(servlet
  51. .getStaticFilePath(createServletRequest("/VAADIN", null)));
  52. // /VAADIN/ - not really sensible but still interpreted as a resource
  53. // request
  54. assertEquals("/VAADIN/", servlet
  55. .getStaticFilePath(createServletRequest("/VAADIN", "/")));
  56. // /VAADIN/vaadinBootstrap.js
  57. assertEquals("/VAADIN/vaadinBootstrap.js", servlet.getStaticFilePath(
  58. createServletRequest("/VAADIN", "/vaadinBootstrap.js")));
  59. // /VAADIN/foo bar.js
  60. assertEquals("/VAADIN/foo bar.js", servlet.getStaticFilePath(
  61. createServletRequest("/VAADIN", "/foo bar.js")));
  62. // /VAADIN/.. - not normalized and disallowed in this method
  63. assertEquals("/VAADIN/..", servlet
  64. .getStaticFilePath(createServletRequest("/VAADIN", "/..")));
  65. // Mapping: /*
  66. // /
  67. assertNull(servlet.getStaticFilePath(createServletRequest("", null)));
  68. // /VAADIN
  69. assertNull(
  70. servlet.getStaticFilePath(createServletRequest("", "/VAADIN")));
  71. // /VAADIN/
  72. assertEquals("/VAADIN/", servlet
  73. .getStaticFilePath(createServletRequest("", "/VAADIN/")));
  74. // /VAADIN/foo bar.js
  75. assertEquals("/VAADIN/foo bar.js", servlet.getStaticFilePath(
  76. createServletRequest("", "/VAADIN/foo bar.js")));
  77. // /VAADIN/.. - not normalized and disallowed in this method
  78. assertEquals("/VAADIN/..", servlet
  79. .getStaticFilePath(createServletRequest("", "/VAADIN/..")));
  80. // /BAADIN/foo.js
  81. assertNull(servlet
  82. .getStaticFilePath(createServletRequest("", "/BAADIN/foo.js")));
  83. // Mapping: /myservlet/*
  84. // /myservlet
  85. assertNull(servlet
  86. .getStaticFilePath(createServletRequest("/myservlet", null)));
  87. // /myservlet/VAADIN
  88. assertNull(servlet.getStaticFilePath(
  89. createServletRequest("/myservlet", "/VAADIN")));
  90. // /myservlet/VAADIN/
  91. assertEquals("/VAADIN/", servlet.getStaticFilePath(
  92. createServletRequest("/myservlet", "/VAADIN/")));
  93. // /myservlet/VAADIN/foo bar.js
  94. assertEquals("/VAADIN/foo bar.js", servlet.getStaticFilePath(
  95. createServletRequest("/myservlet", "/VAADIN/foo bar.js")));
  96. // /myservlet/VAADIN/.. - not normalized and disallowed in this method
  97. assertEquals("/VAADIN/..", servlet.getStaticFilePath(
  98. createServletRequest("/myservlet", "/VAADIN/..")));
  99. // /myservlet/BAADIN/foo.js
  100. assertNull(servlet.getStaticFilePath(
  101. createServletRequest("/myservlet", "/BAADIN/foo.js")));
  102. }
  103. private HttpServletRequest createServletRequest(String servletPath,
  104. String pathInfo) {
  105. HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
  106. Mockito.when(request.getServletPath()).thenReturn(servletPath);
  107. Mockito.when(request.getPathInfo()).thenReturn(pathInfo);
  108. Mockito.when(request.getRequestURI()).thenReturn("/context"+pathInfo);
  109. Mockito.when(request.getContextPath()).thenReturn("/context");
  110. return request;
  111. }
  112. }