You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ImmediateUploadTest.java 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.vaadin.tests.themes.valo;
  2. import static com.vaadin.tests.themes.valo.ImmediateUpload.TEST_MIME_TYPE;
  3. import static org.hamcrest.CoreMatchers.is;
  4. import static org.junit.Assert.assertThat;
  5. import java.io.IOException;
  6. import org.junit.Test;
  7. import org.openqa.selenium.By;
  8. import org.openqa.selenium.WebElement;
  9. import com.vaadin.testbench.elements.UploadElement;
  10. import com.vaadin.tests.tb3.MultiBrowserTest;
  11. /**
  12. * Test to see if upload immediate mode hides the native file input.
  13. *
  14. * @author Vaadin Ltd
  15. */
  16. public class ImmediateUploadTest extends MultiBrowserTest {
  17. @Override
  18. public void setup() throws Exception {
  19. super.setup();
  20. openTestURL();
  21. }
  22. private WebElement getUploadButton(String id) {
  23. UploadElement normalUpload = $(UploadElement.class).id(id);
  24. return normalUpload.findElement(By.tagName("div"));
  25. }
  26. private WebElement getUploadFileInput(String id) {
  27. UploadElement normalUpload = $(UploadElement.class).id(id);
  28. return normalUpload.findElement(By.cssSelector("input[type='file']"));
  29. }
  30. @Test
  31. public void normalUploadButtonIsVisible() {
  32. WebElement button = getUploadButton("upload");
  33. assertThat(button.getCssValue("display"), is("block"));
  34. }
  35. @Test
  36. public void fileInputIsVisibleForNormalUpload() {
  37. WebElement input = getUploadFileInput("upload");
  38. assertThat(input.getCssValue("position"), is("static"));
  39. }
  40. @Test
  41. public void immediateUploadButtonIsVisible() {
  42. WebElement button = getUploadButton("immediateupload");
  43. assertThat(button.getCssValue("display"), is("block"));
  44. }
  45. @Test
  46. public void fileInputIsNotVisibleForImmediateUpload() {
  47. WebElement input = getUploadFileInput("immediateupload");
  48. assertThat(input.getCssValue("position"), is("absolute"));
  49. }
  50. @Test
  51. public void fileInputIsNotClickableForImmediateUpload() throws IOException {
  52. WebElement input = getUploadFileInput("immediateupload");
  53. // input.click() and then verifying if the upload window is opened
  54. // would be better but couldn't figure a way to do that. screenshots
  55. // don't show the upload window, not at least in firefox.
  56. assertThat(input.getCssValue("z-index"), is("-1"));
  57. }
  58. @Test
  59. public void testAcceptAttribute() {
  60. WebElement input = getUploadFileInput("immediateupload");
  61. assertThat(input.getAttribute("accept"), is(TEST_MIME_TYPE));
  62. }
  63. }