Change-Id: Icf7b8da00e80ea4dc4843bcd28b005b5e91b866ftags/7.1.13
@@ -1193,6 +1193,7 @@ public class VCalendarPanel extends FocusableFlexTable implements | |||
} else if (keycode == getCloseKey()) { | |||
// TODO fire listener, on users responsibility?? | |||
onCancel(); | |||
return true; | |||
} | |||
return false; | |||
@@ -1244,6 +1245,7 @@ public class VCalendarPanel extends FocusableFlexTable implements | |||
return true; | |||
} else if (keycode == getCloseKey() || keycode == KeyCodes.KEY_TAB) { | |||
onCancel(); | |||
// TODO fire close event | |||
@@ -0,0 +1,57 @@ | |||
/* | |||
* Copyright 2000-2013 Vaadin Ltd. | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not | |||
* use this file except in compliance with the License. You may obtain a copy of | |||
* the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | |||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | |||
* License for the specific language governing permissions and limitations under | |||
* the License. | |||
*/ | |||
package com.vaadin.tests.components.datefield; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.shared.ui.datefield.Resolution; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
import com.vaadin.ui.DateField; | |||
import com.vaadin.ui.VerticalLayout; | |||
public class PopupClosingWithEsc extends AbstractTestUI { | |||
@Override | |||
protected void setup(VaadinRequest request) { | |||
DateField df1 = new DateField("Day"); | |||
df1.setId("day"); | |||
df1.setResolution(Resolution.DAY); | |||
DateField df2 = new DateField("Month"); | |||
df2.setId("month"); | |||
df2.setResolution(Resolution.MONTH); | |||
DateField df3 = new DateField("Year"); | |||
df3.setId("year"); | |||
df3.setResolution(Resolution.YEAR); | |||
VerticalLayout layout = new VerticalLayout(); | |||
layout.setMargin(true); | |||
layout.setSpacing(true); | |||
layout.addComponents(df1, df2, df3); | |||
setContent(layout); | |||
} | |||
@Override | |||
protected String getTestDescription() { | |||
return "Testing that the DateField popup can be closed with ESC key."; | |||
} | |||
@Override | |||
protected Integer getTicketNumber() { | |||
return 12317; | |||
} | |||
} |
@@ -0,0 +1,67 @@ | |||
/* | |||
* Copyright 2000-2013 Vaadin Ltd. | |||
* | |||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not | |||
* use this file except in compliance with the License. You may obtain a copy of | |||
* the License at | |||
* | |||
* http://www.apache.org/licenses/LICENSE-2.0 | |||
* | |||
* Unless required by applicable law or agreed to in writing, software | |||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | |||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | |||
* License for the specific language governing permissions and limitations under | |||
* the License. | |||
*/ | |||
package com.vaadin.tests.components.datefield; | |||
import static org.junit.Assert.assertFalse; | |||
import static org.junit.Assert.assertTrue; | |||
import org.junit.Test; | |||
import org.openqa.selenium.By; | |||
import org.openqa.selenium.Keys; | |||
import org.openqa.selenium.WebElement; | |||
import org.openqa.selenium.interactions.Actions; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
public class PopupClosingWithEscTest extends MultiBrowserTest { | |||
@Test | |||
public void testPopupClosingDayResolution() { | |||
testPopupClosing("day"); | |||
} | |||
@Test | |||
public void testPopupClosingMonthResolution() { | |||
testPopupClosing("month"); | |||
} | |||
@Test | |||
public void testPopupClosingYearResolution() { | |||
testPopupClosing("year"); | |||
} | |||
private void testPopupClosing(String dateFieldId) { | |||
openTestURL(); | |||
driver.findElement( | |||
vaadinLocator("PID_S" + dateFieldId + "#popupButton")).click(); | |||
assertTrue(isPopupVisible()); | |||
sendEsc(); | |||
assertFalse(isPopupVisible()); | |||
} | |||
private boolean isPopupVisible() { | |||
return !(driver.findElements(By.cssSelector(".v-datefield-popup")) | |||
.isEmpty()); | |||
} | |||
private void sendEsc() { | |||
WebElement elem = driver.findElement(By | |||
.cssSelector(".v-datefield-calendarpanel")); | |||
new Actions(driver).sendKeys(elem, Keys.ESCAPE).perform(); | |||
} | |||
} |