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.

TimeoutRedirectResetsOnActivity.java 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package com.vaadin.tests.components.ui;
  2. import com.vaadin.server.CustomizedSystemMessages;
  3. import com.vaadin.server.SystemMessages;
  4. import com.vaadin.server.SystemMessagesInfo;
  5. import com.vaadin.server.SystemMessagesProvider;
  6. import com.vaadin.server.VaadinRequest;
  7. import com.vaadin.tests.components.AbstractReindeerTestUI;
  8. import com.vaadin.ui.Button;
  9. import com.vaadin.ui.Label;
  10. public class TimeoutRedirectResetsOnActivity extends AbstractReindeerTestUI {
  11. private int maxActiveInterval = 15;
  12. private int timeoutOverhead = 15;
  13. @Override
  14. protected void setup(VaadinRequest request) {
  15. setupTimeout(request);
  16. Label startedLabel = new Label();
  17. startedLabel.setValue(String.valueOf(System.currentTimeMillis()));
  18. startedLabel.setId("startedTime");
  19. Label originalLabel = new Label();
  20. originalLabel.setId("originalExpireTime");
  21. originalLabel.setValue(String.valueOf(getExpireTime()));
  22. final Label expiresLabel = new Label();
  23. expiresLabel.setId("actualExpireTime");
  24. Button button = new Button("Reset", event -> expiresLabel
  25. .setValue(String.valueOf(getExpireTime())));
  26. button.setId("reset");
  27. addComponent(button);
  28. addComponent(startedLabel);
  29. addComponent(originalLabel);
  30. addComponent(expiresLabel);
  31. }
  32. private long getExpireTime() {
  33. return System.currentTimeMillis()
  34. + (maxActiveInterval + timeoutOverhead) * 1000;
  35. }
  36. private void setupTimeout(VaadinRequest request) {
  37. request.getService()
  38. .setSystemMessagesProvider(new SystemMessagesProvider() {
  39. @Override
  40. public SystemMessages getSystemMessages(
  41. SystemMessagesInfo systemMessagesInfo) {
  42. CustomizedSystemMessages msgs = new CustomizedSystemMessages();
  43. msgs.setSessionExpiredMessage(null);
  44. msgs.setSessionExpiredCaption(null);
  45. msgs.setSessionExpiredNotificationEnabled(true);
  46. msgs.setSessionExpiredURL("http://example.com/");
  47. return msgs;
  48. }
  49. });
  50. /*
  51. * NOTE: in practice, this means a timeout after 25 seconds, because of
  52. * implementation details in
  53. * com.vaadin.server.communication.MetadataWriter
  54. */
  55. getSession().getSession().setMaxInactiveInterval(maxActiveInterval);
  56. }
  57. @Override
  58. protected String getTestDescription() {
  59. return "The timeout redirect timer should reset if there's activity between the client and server.";
  60. }
  61. @Override
  62. @SuppressWarnings("boxing")
  63. protected Integer getTicketNumber() {
  64. return 12446;
  65. }
  66. }