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.

WebBrowserTimeZone.java 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.vaadin.tests.application;
  2. import java.util.Arrays;
  3. import java.util.Date;
  4. import java.util.TimeZone;
  5. import com.vaadin.server.VaadinRequest;
  6. import com.vaadin.tests.components.AbstractReindeerTestUI;
  7. import com.vaadin.ui.Label;
  8. public class WebBrowserTimeZone extends AbstractReindeerTestUI {
  9. @Override
  10. protected void setup(VaadinRequest request) {
  11. final Label offsetLabel = addLabel("Browser offset");
  12. final Label rawOffsetLabel = addLabel("Browser raw offset");
  13. final Label dstDiffLabel = addLabel(
  14. "Difference between raw offset and DST");
  15. final Label dstInEffectLabel = addLabel("Is DST currently active?");
  16. final Label curDateLabel = addLabel("Current date in the browser");
  17. final Label diffLabel = addLabel(
  18. "Browser to Europe/Helsinki offset difference");
  19. final Label containsLabel = addLabel("Browser could be in Helsinki");
  20. addButton("Get TimeZone from browser", event -> {
  21. TimeZone hkiTZ = TimeZone.getTimeZone("Europe/Helsinki");
  22. int hkiOffset = hkiTZ.getOffset(new Date().getTime());
  23. int browserOffset = getBrowser().getTimezoneOffset();
  24. int browserRawOffset = getBrowser().getRawTimezoneOffset();
  25. String[] tzs = TimeZone.getAvailableIDs(browserRawOffset);
  26. boolean contains = Arrays.asList(tzs).contains(hkiTZ.getID());
  27. offsetLabel.setValue(String.valueOf(browserOffset));
  28. rawOffsetLabel.setValue(String.valueOf(browserRawOffset));
  29. diffLabel.setValue(String.valueOf(browserOffset - hkiOffset));
  30. containsLabel.setValue(contains ? "Yes" : "No");
  31. dstDiffLabel.setValue(String.valueOf(getBrowser().getDSTSavings()));
  32. dstInEffectLabel
  33. .setValue(getBrowser().isDSTInEffect() ? "Yes" : "No");
  34. curDateLabel.setValue(getBrowser().getCurrentDate().toString());
  35. });
  36. }
  37. private Label addLabel(String caption) {
  38. final Label label = new Label("n/a");
  39. label.setCaption(caption);
  40. addComponent(label);
  41. return label;
  42. }
  43. @Override
  44. protected String getTestDescription() {
  45. return "Verifies that browser TimeZone offset works - should be same as server in our case (NOTE assumes server+browser in same TZ)";
  46. }
  47. @Override
  48. protected Integer getTicketNumber() {
  49. return 6691;
  50. }
  51. }