1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
package com.vaadin.tests.components.upload;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import com.vaadin.testbench.elements.ButtonElement;
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
assertEquals(" ", getLogRow(0));
WebElement submitButton = getSubmitButton();
assertTrue("Upload button should be disabled when no selection.",
hasCssClass(submitButton, "v-disabled"));
submitButton.click();
// clicking the disabled default button doesn't do a thing
assertEquals(" ", getLogRow(0));
$(ButtonElement.class).id("programmatic").click();
// neither does triggering upload programmatically
assertEquals(" ", getLogRow(0));
// add an extension that allows upload without filename
$(ButtonElement.class).id("extend").click();
submitButton.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);
// and the same programmatically
$(ButtonElement.class).id("programmatic").click();
// expecting empty file name
assertLogRow(0, 8, UploadNoSelection.FILE_NAME_PREFIX);
// expecting 0-length file
assertLogRow(1, 7, UploadNoSelection.FILE_LENGTH_PREFIX + " " + 0);
assertLogRow(2, 6, UploadNoSelection.UPLOAD_FINISHED);
assertLogRow(3, 5, 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) {
assertEquals(expentedRowNo + ". " + expectedValueWithoutRowNo,
getLogRow(index));
}
}
|