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.7KB

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