Переглянути джерело

Hide visible file input in immediate Upload (#14238)

Change-Id: I4f5bc370a1a60ed2acbd38f62732547f1db7bee9
tags/7.3.0.rc1
Sami Ekblad 9 роки тому
джерело
коміт
161d5289e2

+ 11
- 0
WebContent/VAADIN/themes/valo/components/_upload.scss Переглянути файл

@@ -2,4 +2,15 @@
.#{$primary-stylename} .v-button {
@include valo-widget-style;
}

.#{$primary-stylename}-immediate input[type="file"] {
@include opacity(0);
z-index: 2;
position: absolute;
right: 0;
height: $v-unit-size;
text-align: right;
border: none;
background: transparent;
}
}

+ 71
- 0
uitest/src/com/vaadin/tests/themes/valo/ImmediateUpload.java Переглянути файл

@@ -0,0 +1,71 @@
/*
* 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.themes.valo;

import com.vaadin.annotations.Theme;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.Upload;

/**
*
* @since
* @author Vaadin Ltd
*/
@Theme("valo")
public class ImmediateUpload extends AbstractTestUI {

/*
* (non-Javadoc)
*
* @see com.vaadin.tests.components.AbstractTestUI#setup(com.vaadin.server.
* VaadinRequest)
*/
@Override
protected void setup(VaadinRequest request) {

Upload upload = new Upload();
upload.setId("upload");
upload.setImmediate(false);
addComponent(upload);

Upload immediateUpload = new Upload();
immediateUpload.setId("immediateupload");
immediateUpload.setImmediate(true);
addComponent(immediateUpload);
}

/*
* (non-Javadoc)
*
* @see com.vaadin.tests.components.AbstractTestUI#getTestDescription()
*/
@Override
protected String getTestDescription() {
return "Immediate upload should hide the button";
}

/*
* (non-Javadoc)
*
* @see com.vaadin.tests.components.AbstractTestUI#getTicketNumber()
*/
@Override
protected Integer getTicketNumber() {
return Integer.valueOf(14238);
}

}

+ 73
- 0
uitest/src/com/vaadin/tests/themes/valo/ImmediateUploadTest.java Переглянути файл

@@ -0,0 +1,73 @@
/*
* 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.themes.valo;

import static org.hamcrest.Matchers.equalToIgnoringCase;
import static org.junit.Assert.assertThat;

import java.util.List;

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;

import com.vaadin.testbench.elements.UploadElement;
import com.vaadin.tests.tb3.MultiBrowserTest;

/**
* Test to see if upload immediate mode hides the native file input.
*
* @author Vaadin Ltd
*/
public class ImmediateUploadTest extends MultiBrowserTest {

@Override
public List<DesiredCapabilities> getBrowsersToTest() {
return getAllBrowsers();
}

@Test
public void fileInputShouldNotBeVisibleInImmediate()
throws InterruptedException {
openTestURL();

UploadElement normalUpload = $(UploadElement.class).id("upload");
UploadElement immediateUpload = $(UploadElement.class).id(
"immediateupload");

WebElement normalUploadInput = normalUpload.findElement(By
.cssSelector("input[type='file']"));
WebElement immediateUploadInput = immediateUpload.findElement(By
.cssSelector("input[type='file']"));

WebElement normalUploadButton = normalUpload.findElement(By
.tagName("div"));
WebElement immediateUploadButton = immediateUpload.findElement(By
.tagName("div"));

assertThat(normalUploadButton.getCssValue("display"),
equalToIgnoringCase("block"));
assertThat(immediateUploadButton.getCssValue("display"),
equalToIgnoringCase("block"));

assertThat(normalUploadInput.getCssValue("position"),
equalToIgnoringCase("static"));
assertThat(immediateUploadInput.getCssValue("position"),
equalToIgnoringCase("absolute"));

}
}

Завантаження…
Відмінити
Зберегти