diff options
author | Tomi Virtanen <tltv@vaadin.com> | 2013-12-09 13:44:27 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2014-01-07 09:27:08 +0000 |
commit | 0579fba63048ffa8daa22db5243a149e67f73594 (patch) | |
tree | b59603dcbe436e2c5433e44120bfabe3881dd915 /uitest/src/com | |
parent | 0b95f8d6f6e3f278b51c0242e8ce2dfc82ed829e (diff) | |
download | vaadin-framework-0579fba63048ffa8daa22db5243a149e67f73594.tar.gz vaadin-framework-0579fba63048ffa8daa22db5243a149e67f73594.zip |
Upload control with empty selection (#9602)
Event is now sent on submit even if no file is selected. Removed forceSubmit UIDL attribute and replaced it with a UploadClientRpc call. Added TestBench3 test.
Change-Id: Id32b82532ec34e61a9c0718413fd1755015d2c30
Diffstat (limited to 'uitest/src/com')
-rw-r--r-- | uitest/src/com/vaadin/tests/components/upload/UploadNoSelection.java | 83 | ||||
-rw-r--r-- | uitest/src/com/vaadin/tests/components/upload/UploadNoSelectionTest.java | 56 |
2 files changed, 139 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/upload/UploadNoSelection.java b/uitest/src/com/vaadin/tests/components/upload/UploadNoSelection.java new file mode 100644 index 0000000000..c304293170 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/upload/UploadNoSelection.java @@ -0,0 +1,83 @@ +/* + * 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.upload; + +import java.io.ByteArrayOutputStream; +import java.io.OutputStream; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUIWithLog; +import com.vaadin.ui.Upload; +import com.vaadin.ui.Upload.FailedEvent; +import com.vaadin.ui.Upload.FinishedEvent; +import com.vaadin.ui.Upload.Receiver; + +public class UploadNoSelection extends AbstractTestUIWithLog implements + Receiver { + + static final String LOG_ID_PREFIX = "Log_row_"; + static final String UPLOAD_ID = "u"; + + static final String UPLOAD_FINISHED = "Upload Finished"; + static final String RECEIVING_UPLOAD = "Receiving upload"; + + static final String FILE_LENGTH_PREFIX = "File length:"; + static final String FILE_NAME_PREFIX = "File name:"; + + @Override + protected Integer getTicketNumber() { + return 9602; + } + + @Override + protected String getTestDescription() { + return "Uploading an empty selection (no file) will trigger FinishedEvent with 0-length file size and empty filename."; + } + + @Override + protected void setup(VaadinRequest request) { + Upload u = new Upload("Upload", this); + u.setId(UPLOAD_ID); + u.setSizeUndefined(); + + addComponent(u); + + u.addFinishedListener(new Upload.FinishedListener() { + @Override + public void uploadFinished(FinishedEvent event) { + log(UPLOAD_FINISHED); + log(FILE_LENGTH_PREFIX + " " + event.getLength()); + log(FILE_NAME_PREFIX + " " + event.getFilename()); + } + }); + u.addFailedListener(new Upload.FailedListener() { + + @Override + public void uploadFailed(FailedEvent event) { + log("Upload Failed"); + log(FILE_LENGTH_PREFIX + " " + event.getLength()); + log(FILE_NAME_PREFIX + " " + event.getFilename()); + } + }); + } + + @Override + public OutputStream receiveUpload(String filename, String MIMEType) { + log(RECEIVING_UPLOAD); + return new ByteArrayOutputStream(); + } + +} diff --git a/uitest/src/com/vaadin/tests/components/upload/UploadNoSelectionTest.java b/uitest/src/com/vaadin/tests/components/upload/UploadNoSelectionTest.java new file mode 100644 index 0000000000..1b30c4080a --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/upload/UploadNoSelectionTest.java @@ -0,0 +1,56 @@ +/* + * 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.upload; + +import org.junit.Assert; +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; + +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class UploadNoSelectionTest extends MultiBrowserTest { + + @Test + public void testUploadNoSelection() throws Exception { + openTestURL(); + + // empty content is populated by com.vaadin.tests.util.Log + Assert.assertEquals(" ", getLogRow(0)); + + getSubmitButton().click(); + + // expecting empty file name + assertLogRow(0, 4, UploadNoSelection.FILE_NAME_PREFIX); + // expecting 0-length file + assertLogRow(1, 3, UploadNoSelection.FILE_LENGTH_PREFIX + " " + 0); + assertLogRow(2, 2, UploadNoSelection.UPLOAD_FINISHED); + assertLogRow(3, 1, UploadNoSelection.RECEIVING_UPLOAD); + } + + private WebElement getSubmitButton() { + WebElement element = getDriver().findElement( + By.id(UploadNoSelection.UPLOAD_ID)); + WebElement submitButton = element.findElement(By.className("v-button")); + return submitButton; + } + + private void assertLogRow(int index, int expentedRowNo, + String expectedValueWithoutRowNo) { + Assert.assertEquals(expentedRowNo + ". " + expectedValueWithoutRowNo, + getLogRow(index)); + } +} |