12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package com.vaadin.tests.application;
-
- import java.util.Arrays;
- import java.util.Date;
- import java.util.TimeZone;
-
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.tests.components.AbstractReindeerTestUI;
- import com.vaadin.ui.Label;
-
- public class WebBrowserTimeZone extends AbstractReindeerTestUI {
-
- @Override
- protected void setup(VaadinRequest request) {
-
- final Label offsetLabel = addLabel("Browser offset");
- final Label rawOffsetLabel = addLabel("Browser raw offset");
- final Label dstDiffLabel = addLabel(
- "Difference between raw offset and DST");
- final Label dstInEffectLabel = addLabel("Is DST currently active?");
- final Label curDateLabel = addLabel("Current date in the browser");
- final Label diffLabel = addLabel(
- "Browser to Europe/Helsinki offset difference");
- final Label containsLabel = addLabel("Browser could be in Helsinki");
-
- addButton("Get TimeZone from browser", event -> {
- TimeZone hkiTZ = TimeZone.getTimeZone("Europe/Helsinki");
- int hkiOffset = hkiTZ.getOffset(new Date().getTime());
-
- int browserOffset = getBrowser().getTimezoneOffset();
- int browserRawOffset = getBrowser().getRawTimezoneOffset();
- String[] tzs = TimeZone.getAvailableIDs(browserRawOffset);
-
- boolean contains = Arrays.asList(tzs).contains(hkiTZ.getID());
-
- offsetLabel.setValue(String.valueOf(browserOffset));
- rawOffsetLabel.setValue(String.valueOf(browserRawOffset));
- diffLabel.setValue(String.valueOf(browserOffset - hkiOffset));
- containsLabel.setValue(contains ? "Yes" : "No");
- dstDiffLabel.setValue(String.valueOf(getBrowser().getDSTSavings()));
- dstInEffectLabel
- .setValue(getBrowser().isDSTInEffect() ? "Yes" : "No");
- curDateLabel.setValue(getBrowser().getCurrentDate().toString());
- });
- }
-
- private Label addLabel(String caption) {
- final Label label = new Label("n/a");
- label.setCaption(caption);
- addComponent(label);
- return label;
- }
-
- @Override
- protected String getTestDescription() {
- return "Verifies that browser TimeZone offset works - should be same as server in our case (NOTE assumes server+browser in same TZ)";
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 6691;
- }
-
- }
|