|
|
@@ -0,0 +1,47 @@ |
|
|
|
package com.vaadin.tests.layouts.gridlayout; |
|
|
|
|
|
|
|
import com.vaadin.testbench.elements.ButtonElement; |
|
|
|
import com.vaadin.testbench.elements.GridLayoutElement; |
|
|
|
import com.vaadin.testbench.elements.TextFieldElement; |
|
|
|
import com.vaadin.tests.tb3.MultiBrowserTest; |
|
|
|
import org.junit.Test; |
|
|
|
import org.openqa.selenium.By; |
|
|
|
import org.openqa.selenium.WebElement; |
|
|
|
|
|
|
|
import static org.junit.Assert.assertEquals; |
|
|
|
|
|
|
|
public class GridLayoutCaptionOnBottomAlignedComponentTest extends MultiBrowserTest { |
|
|
|
|
|
|
|
@Test |
|
|
|
public void captionShouldBeImmediatelyAboveItsComponent() { |
|
|
|
openTestURL(); |
|
|
|
GridLayoutElement gridLayout = $(GridLayoutElement.class).first(); |
|
|
|
WebElement caption = gridLayout.findElement(By.className("v-caption")); |
|
|
|
TextFieldElement component = $(TextFieldElement.class).first(); |
|
|
|
|
|
|
|
assertEquals("Caption and component have the same horizontal alignment", |
|
|
|
caption.getLocation().x, component.getLocation().x); |
|
|
|
|
|
|
|
// We have to do the assertion in this way because different browsers on different operating systems |
|
|
|
// measure the height of the caption in different ways. |
|
|
|
int diff = Math.abs(caption.getLocation().y - component.getLocation().y + caption.getSize().height); |
|
|
|
assertLessThanOrEqual("Caption is placed directly above the component", diff, 1); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void captionShouldStillBeImmediatelyAboveItsComponentEvenWhenRealigned() { |
|
|
|
openTestURL(); |
|
|
|
GridLayoutElement gridLayout = $(GridLayoutElement.class).first(); |
|
|
|
WebElement caption = gridLayout.findElement(By.className("v-caption")); |
|
|
|
TextFieldElement component = $(TextFieldElement.class).first(); |
|
|
|
|
|
|
|
// Click the button, this changes the alignment of the component |
|
|
|
$(ButtonElement.class).first().click(); |
|
|
|
|
|
|
|
assertEquals("Caption and component have the same horizontal alignment", |
|
|
|
caption.getLocation().x, component.getLocation().x); |
|
|
|
|
|
|
|
assertEquals("Caption is placed in the top-left corner", |
|
|
|
gridLayout.getLocation().y, caption.getLocation().y); |
|
|
|
} |
|
|
|
} |