aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnna Miroshnik <anna.miroshnik@arcadia.spb.ru>2014-09-16 13:33:35 +0400
committerVaadin Code Review <review@vaadin.com>2014-09-19 10:02:53 +0000
commit43a523ae2d92e2230591fa654f49c1ac726148ef (patch)
treedfaba60edc3b6e8a82e776d557d7563c75611963
parent6a2d458d28cc99eb448870714f512d197d9cf2ab (diff)
downloadvaadin-framework-43a523ae2d92e2230591fa654f49c1ac726148ef.tar.gz
vaadin-framework-43a523ae2d92e2230591fa654f49c1ac726148ef.zip
Setting null as URI fragment doesn't remove the fragment in the browser (#11312)
Tests only. Because this defect was fixed during fixing #12207. Change-Id: If47f06d30fd3c8318df9b3197cea5771a1b38063
-rw-r--r--uitest/src/com/vaadin/tests/urifragments/SettingNullFragment.java53
-rw-r--r--uitest/src/com/vaadin/tests/urifragments/SettingNullFragmentTest.java68
2 files changed, 121 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/urifragments/SettingNullFragment.java b/uitest/src/com/vaadin/tests/urifragments/SettingNullFragment.java
new file mode 100644
index 0000000000..4c3921e1a4
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/urifragments/SettingNullFragment.java
@@ -0,0 +1,53 @@
+package com.vaadin.tests.urifragments;
+
+import com.vaadin.server.Page;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+
+@SuppressWarnings("serial")
+public class SettingNullFragment extends AbstractTestUI {
+
+ protected static final String BUTTON_FRAG_1_ID = "buttonFrag1";
+ protected static final String BUTTON_NULL_FRAGMENT_ID = "buttonNullFragment";
+
+ protected static final String FRAG_1_URI = "FRAG1";
+ protected static final String NULL_FRAGMENT_URI = "";
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ Button button1 = new Button("Set Fragment");
+ button1.setId(BUTTON_FRAG_1_ID);
+
+ Button button2 = new Button("Set Null Fragment");
+ button2.setId(BUTTON_NULL_FRAGMENT_ID);
+
+ button1.addClickListener(new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ Page.getCurrent().setUriFragment(FRAG_1_URI);
+ }
+ });
+
+ button2.addClickListener(new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ Page.getCurrent().setUriFragment(null);
+ }
+ });
+
+ getLayout().addComponent(button1);
+ getLayout().addComponent(button2);
+ }
+
+ @Override
+ protected String getTestDescription() {
+ return "Setting null as URI fragment should remove (clear) old fragment in the browser";
+ }
+
+ @Override
+ protected Integer getTicketNumber() {
+ return 11312;
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/urifragments/SettingNullFragmentTest.java b/uitest/src/com/vaadin/tests/urifragments/SettingNullFragmentTest.java
new file mode 100644
index 0000000000..4fed0b2602
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/urifragments/SettingNullFragmentTest.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2000-2014 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.urifragments;
+
+import org.junit.Test;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.support.ui.ExpectedCondition;
+
+import com.vaadin.tests.tb3.MultiBrowserTest;
+
+/**
+ * UI test: setting null as URI fragment clear (remove) the fragment in the
+ * browser
+ *
+ * @author Vaadin Ltd
+ */
+public class SettingNullFragmentTest extends MultiBrowserTest {
+
+ @Test
+ public void testSettingNullURIFragment() throws Exception {
+ openTestURL();
+
+ navigateToFrag1();
+ assertFragment(SettingNullFragment.FRAG_1_URI);
+
+ navigateToNull();
+ assertFragment(SettingNullFragment.NULL_FRAGMENT_URI);
+ }
+
+ private void assertFragment(String fragment) {
+ final String expectedText = fragment;
+
+ waitUntil(new ExpectedCondition<Boolean>() {
+
+ @Override
+ public Boolean apply(WebDriver input) {
+ String currentURL = getDriver().getCurrentUrl();
+ String currentURIFragment = "";
+ if (currentURL.contains("#") && !currentURL.endsWith("#")) {
+ currentURIFragment = currentURL.split("#")[1];
+ }
+ return expectedText.equals(currentURIFragment);
+ }
+ });
+ }
+
+ private void navigateToFrag1() {
+ hitButton(SettingNullFragment.BUTTON_FRAG_1_ID);
+ }
+
+ private void navigateToNull() {
+ hitButton(SettingNullFragment.BUTTON_NULL_FRAGMENT_ID);
+ }
+
+}