Bladeren bron

Use TestBench-4.0.2

- Based on TB4 Parallel testing.
- Browser setup no longer uses static capabilities.
- Some code cleanup here and there.

Change-Id: I5c419316cd36f4f5041eaa8da8fda3d8b46596c4
tags/7.5.0.alpha1
Teemu Suo-Anttila 9 jaren geleden
bovenliggende
commit
fd8078d691
100 gewijzigde bestanden met toevoegingen van 324 en 922 verwijderingen
  1. 4
    0
      ivysettings.xml
  2. 3
    0
      uitest/integration_tests.xml
  3. 22
    14
      uitest/ivy.xml
  4. 2
    0
      uitest/src/com/vaadin/testbench/elements/GridElement.java
  5. 24
    18
      uitest/src/com/vaadin/tests/VerifyBrowserVersionTest.java
  6. 3
    6
      uitest/src/com/vaadin/tests/actions/ActionsOnInvisibleComponentsTest.java
  7. 0
    31
      uitest/src/com/vaadin/tests/annotations/TestCategory.java
  8. 2
    3
      uitest/src/com/vaadin/tests/applicationservlet/NoApplicationClassTest.java
  9. 1
    0
      uitest/src/com/vaadin/tests/components/AbstractOrderedLayoutWithCaptionsTest.java
  10. 2
    2
      uitest/src/com/vaadin/tests/components/SaneErrorsTest.java
  11. 1
    0
      uitest/src/com/vaadin/tests/components/calendar/SetFirstVisibleHourOfDayTest.java
  12. 1
    0
      uitest/src/com/vaadin/tests/components/combobox/ComboBoxSetNullWhenNewItemsAllowedTest.java
  13. 2
    2
      uitest/src/com/vaadin/tests/components/combobox/ComboboxPageLengthZeroScrollTest.java
  14. 1
    8
      uitest/src/com/vaadin/tests/components/datefield/DisabledDateFieldPopupTest.java
  15. 1
    0
      uitest/src/com/vaadin/tests/components/datefield/LocaleChangeTest.java
  16. 5
    6
      uitest/src/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRangeTest.java
  17. 4
    3
      uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java
  18. 2
    1
      uitest/src/com/vaadin/tests/components/grid/AbstractGridColumnAutoWidthTest.java
  19. 1
    1
      uitest/src/com/vaadin/tests/components/grid/CustomRendererTest.java
  20. 1
    1
      uitest/src/com/vaadin/tests/components/grid/GridAddAndRemoveDataOnInitTest.java
  21. 1
    1
      uitest/src/com/vaadin/tests/components/grid/GridAddRowTest.java
  22. 3
    2
      uitest/src/com/vaadin/tests/components/grid/GridClientRenderers.java
  23. 1
    1
      uitest/src/com/vaadin/tests/components/grid/GridColspansTest.java
  24. 1
    1
      uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthClientTest.java
  25. 1
    1
      uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthServerTest.java
  26. 1
    1
      uitest/src/com/vaadin/tests/components/grid/GridEditorUITest.java
  27. 1
    1
      uitest/src/com/vaadin/tests/components/grid/GridGeneratedPropertiesTest.java
  28. 1
    1
      uitest/src/com/vaadin/tests/components/grid/GridHeaderStyleNamesTest.java
  29. 1
    1
      uitest/src/com/vaadin/tests/components/grid/GridInTabSheetTest.java
  30. 1
    1
      uitest/src/com/vaadin/tests/components/grid/GridSingleColumnTest.java
  31. 1
    1
      uitest/src/com/vaadin/tests/components/grid/GridWithoutRendererTest.java
  32. 1
    1
      uitest/src/com/vaadin/tests/components/grid/InitialFrozenColumnsTest.java
  33. 16
    13
      uitest/src/com/vaadin/tests/components/grid/WidgetRenderersTest.java
  34. 1
    1
      uitest/src/com/vaadin/tests/components/grid/basicfeatures/EscalatorBasicClientFeaturesTest.java
  35. 2
    3
      uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicClientFeaturesTest.java
  36. 3
    8
      uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java
  37. 1
    1
      uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientDataSourcesTest.java
  38. 1
    1
      uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientHeightByRowOnInitTest.java
  39. 2
    2
      uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java
  40. 1
    1
      uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridHeightByRowOnInitTest.java
  41. 0
    3
      uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridSortingIndicatorsTest.java
  42. 1
    5
      uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridMultiSortingTest.java
  43. 0
    2
      uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSortingTest.java
  44. 1
    0
      uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExtraSpacingTest.java
  45. 1
    13
      uitest/src/com/vaadin/tests/components/javascriptcomponent/JavaScriptPreloadingTest.java
  46. 2
    6
      uitest/src/com/vaadin/tests/components/menubar/MenuBarTooltipsNearEdgeTest.java
  47. 2
    26
      uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsAndChromeKeyboardNavigationTest.java
  48. 1
    0
      uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsFocusAndBlurListenerTests.java
  49. 4
    10
      uitest/src/com/vaadin/tests/components/notification/NotificationsWaiAriaTest.java
  50. 1
    0
      uitest/src/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java
  51. 5
    5
      uitest/src/com/vaadin/tests/components/orderedlayout/VerticalLayoutFocusWithDOMChangesTest.java
  52. 2
    2
      uitest/src/com/vaadin/tests/components/popupview/PopupViewResizeWhileOpenTest.java
  53. 5
    10
      uitest/src/com/vaadin/tests/components/table/AddSelectionToRemovedRangeTest.java
  54. 4
    8
      uitest/src/com/vaadin/tests/components/table/ContextMenuSizeTest.java
  55. 1
    6
      uitest/src/com/vaadin/tests/components/table/CtrlShiftMultiselectTest.java
  56. 11
    11
      uitest/src/com/vaadin/tests/components/table/DisabledSortingTableTest.java
  57. 2
    5
      uitest/src/com/vaadin/tests/components/table/MemoryLeakTableTest.java
  58. 1
    7
      uitest/src/com/vaadin/tests/components/table/SelectAllRowsTest.java
  59. 9
    12
      uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthIE8Test.java
  60. 8
    13
      uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthTest.java
  61. 7
    9
      uitest/src/com/vaadin/tests/components/table/TableNavigationPageDownTest.java
  62. 1
    4
      uitest/src/com/vaadin/tests/components/table/TableScrollAfterAddRowTest.java
  63. 1
    3
      uitest/src/com/vaadin/tests/components/table/TableWithPollingTest.java
  64. 1
    0
      uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZoomingTest.java
  65. 1
    3
      uitest/src/com/vaadin/tests/components/tabsheet/TabSheetFocusedTabTest.java
  66. 2
    2
      uitest/src/com/vaadin/tests/components/ui/DynamicViewportEmptyTest.java
  67. 4
    11
      uitest/src/com/vaadin/tests/components/ui/TextAreaEventPropagationModifierKeysTest.java
  68. 3
    9
      uitest/src/com/vaadin/tests/components/uitest/UIScrollingTest.java
  69. 1
    3
      uitest/src/com/vaadin/tests/components/upload/TestFileUploadTest.java
  70. 8
    11
      uitest/src/com/vaadin/tests/components/window/CloseShortcutTest.java
  71. 2
    11
      uitest/src/com/vaadin/tests/components/window/SubWindowsTextSelectionTest.java
  72. 2
    4
      uitest/src/com/vaadin/tests/components/window/WindowBGColorChameleonIE8Test.java
  73. 1
    5
      uitest/src/com/vaadin/tests/components/window/WindowShadowTest.java
  74. 1
    1
      uitest/src/com/vaadin/tests/debug/PushVersionInfoTest.java
  75. 1
    1
      uitest/src/com/vaadin/tests/extensions/SetThemeAndResponsiveLayoutTest.java
  76. 1
    1
      uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java
  77. 1
    1
      uitest/src/com/vaadin/tests/integration/AbstractIntegrationTest.java
  78. 2
    2
      uitest/src/com/vaadin/tests/layouts/IE8MeasuredSizeMemoryLeakTest.java
  79. 1
    1
      uitest/src/com/vaadin/tests/push/BarInUIDLTest.java
  80. 1
    1
      uitest/src/com/vaadin/tests/push/BasicPushTest.java
  81. 1
    1
      uitest/src/com/vaadin/tests/push/EnableDisablePushTest.java
  82. 1
    1
      uitest/src/com/vaadin/tests/push/IdlePushChannelTest.java
  83. 1
    1
      uitest/src/com/vaadin/tests/push/PushConfigurationTest.java
  84. 1
    7
      uitest/src/com/vaadin/tests/push/PushConfigurationWebSocketTest.java
  85. 2
    1
      uitest/src/com/vaadin/tests/push/PushErrorHandlingTest.java
  86. 1
    1
      uitest/src/com/vaadin/tests/push/PushFromInitTest.java
  87. 1
    1
      uitest/src/com/vaadin/tests/push/PushLargeDataLongPollingTest.java
  88. 1
    1
      uitest/src/com/vaadin/tests/push/PushLargeDataStreamingTest.java
  89. 1
    2
      uitest/src/com/vaadin/tests/push/RefreshCloseConnectionTest.java
  90. 3
    2
      uitest/src/com/vaadin/tests/push/SendMultibyteCharactersTest.java
  91. 1
    1
      uitest/src/com/vaadin/tests/push/TogglePushTest.java
  92. 1
    1
      uitest/src/com/vaadin/tests/push/TrackMessageSizeUITest.java
  93. 24
    458
      uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
  94. 4
    1
      uitest/src/com/vaadin/tests/tb3/AffectedTB3Tests.java
  95. 4
    1
      uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java
  96. 4
    1
      uitest/src/com/vaadin/tests/tb3/ChangedTB3Tests.java
  97. 2
    0
      uitest/src/com/vaadin/tests/tb3/DndActionsTest.java
  98. 44
    74
      uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java
  99. 1
    1
      uitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java
  100. 0
    0
      uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java

+ 4
- 0
ivysettings.xml Bestand weergeven

<modules> <modules>
<module organisation="com.vaadin" name="vaadin-testbench" <module organisation="com.vaadin" name="vaadin-testbench"
resolver="vaadin-addons" /> resolver="vaadin-addons" />
<module organisation="com.vaadin" name="vaadin-testbench-core"
resolver="vaadin-addons" />
<module organisation="com.vaadin" name="vaadin-testbench-api"
resolver="vaadin-addons" />
<module organisation="com.vaadin" name="vaadin-buildhelpers" <module organisation="com.vaadin" name="vaadin-buildhelpers"
resolver="build-temp" /> resolver="build-temp" />
<module organisation="com.vaadin" name="vaadin-shared" <module organisation="com.vaadin" name="vaadin-shared"

+ 3
- 0
uitest/integration_tests.xml Bestand weergeven

<!-- Base url where the testable application is deployed --> <!-- Base url where the testable application is deployed -->
<property name="deployment.url" value="http://${test.integration.server}:8080" /> <property name="deployment.url" value="http://${test.integration.server}:8080" />


<!-- TestBench license parameter -->
<property name="vaadin.testbench.developer.license" value="" />


<property name="report.dir" location="${integration_test.dir}/result/reports-integration" /> <property name="report.dir" location="${integration_test.dir}/result/reports-integration" />


<jvmarg value="-Dserver-name=${server-name}" /> <jvmarg value="-Dserver-name=${server-name}" />
<jvmarg value="-Djava.awt.headless=true" /> <jvmarg value="-Djava.awt.headless=true" />
<jvmarg value="-Ddemo.war=${demo.war}" /> <jvmarg value="-Ddemo.war=${demo.war}" />
<jvmarg value="-Dvaadin.testbench.developer.license=${vaadin.testbench.developer.license}" />
<test name="${junit.test.suite}" todir="${server.report.dir}" /> <test name="${junit.test.suite}" todir="${server.report.dir}" />
</junit> </junit>
</target> </target>

+ 22
- 14
uitest/ivy.xml Bestand weergeven

<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ivy-module [ <!DOCTYPE ivy-module [
<!ENTITY jetty.version "8.1.9.v20130131">
<!ENTITY jetty.version "8.1.12.v20130726">
]> ]>
<ivy-module version="2.0" <ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<dependency org="javax.validation" name="validation-api" <dependency org="javax.validation" name="validation-api"
rev="1.0.0.GA" conf="build,ide -> default,sources" /> rev="1.0.0.GA" conf="build,ide -> default,sources" />
<dependency org="org.hibernate" name="hibernate-validator" <dependency org="org.hibernate" name="hibernate-validator"
rev="4.2.0.Final" conf="build,ide -> default" />
rev="4.2.0.Final" conf="build,ide -> default" />
<!-- Google App Engine --> <!-- Google App Engine -->
<dependency org="com.google.appengine" name="appengine-api-1.0-sdk" <dependency org="com.google.appengine" name="appengine-api-1.0-sdk"
rev="1.2.1" conf="build-provided,ide -> default" /> rev="1.2.1" conf="build-provided,ide -> default" />
</dependency> </dependency>
<!-- jetty-servlets needed by ProxyTest, but not by jetty-runner --> <!-- jetty-servlets needed by ProxyTest, but not by jetty-runner -->
<dependency org="org.eclipse.jetty" name="jetty-servlets" <dependency org="org.eclipse.jetty" name="jetty-servlets"
rev="&jetty.version;" conf="ide, build-provided, jetty-run->default" />
rev="&jetty.version;" conf="ide, build-provided, jetty-run->default">
<exclude org="org.eclipse.jetty.orbit"></exclude>
</dependency>
<dependency org="org.eclipse.jetty" name="jetty-websocket" <dependency org="org.eclipse.jetty" name="jetty-websocket"
rev="&jetty.version;" conf="ide, jetty-run->default" />
rev="&jetty.version;" conf="ide, jetty-run->default">
<exclude org="org.eclipse.jetty.orbit"></exclude>
</dependency>
<dependency org="org.eclipse.jetty" name="jetty-webapp" <dependency org="org.eclipse.jetty" name="jetty-webapp"
rev="&jetty.version;" conf="ide, build-provided, jetty-run->default" />
rev="&jetty.version;" conf="ide, build-provided, jetty-run->default">
<exclude org="org.eclipse.jetty.orbit"></exclude>
</dependency>
<dependency org="org.mortbay.jetty" name="jetty-runner" <dependency org="org.mortbay.jetty" name="jetty-runner"
rev="&jetty.version;" conf="ide, jetty-run->default"> rev="&jetty.version;" conf="ide, jetty-run->default">
<exclude org="org.eclipse.jetty.orbit"></exclude> <exclude org="org.eclipse.jetty.orbit"></exclude>


<dependency org="junit" name="junit" rev="4.11" <dependency org="junit" name="junit" rev="4.11"
conf="build,ide -> default" /> conf="build,ide -> default" />
<dependency org="org.hamcrest" name="hamcrest-all" rev="1.3"
conf="build,ide->default" />
<dependency org="org.hamcrest" name="hamcrest-all"
rev="1.3" conf="build,ide->default" />
<dependency org="com.jcraft" name="jsch" rev="0.1.50" <dependency org="com.jcraft" name="jsch" rev="0.1.50"
conf="ide, build->default" /> conf="ide, build->default" />
<dependency org="commons-codec" name="commons-codec" <dependency org="commons-codec" name="commons-codec"
rev="1.5" conf="build,ide->default" /> rev="1.5" conf="build,ide->default" />
<dependency org="commons-io" name="commons-io" rev="${commons-io.version}"
conf="build,ide->default" />
<dependency org="commons-io" name="commons-io"
rev="${commons-io.version}" conf="build,ide->default" />
<!-- Mainly for SQLContainer tests --> <!-- Mainly for SQLContainer tests -->
<dependency org="org.hsqldb" name="hsqldb" rev="2.2.6" <dependency org="org.hsqldb" name="hsqldb" rev="2.2.6"
conf="build,ide -> default" /> conf="build,ide -> default" />
<dependency org="com.vaadin" name="vaadin-testbench" <dependency org="com.vaadin" name="vaadin-testbench"
rev="4.0.0.alpha1" conf="build-provided,ide -> default" />
rev="4.0.2" conf="build-provided,ide -> default" />
<!-- This should be removed once tests have been updated to use lang3 --> <!-- This should be removed once tests have been updated to use lang3 -->
<dependency org="commons-lang" name="commons-lang" <dependency org="commons-lang" name="commons-lang"
rev="2.6" conf="build,ide -> default" /> rev="2.6" conf="build,ide -> default" />


<dependency org="com.vaadin" name="vaadin-sass-compiler"
<dependency org="com.vaadin" name="vaadin-sass-compiler"
rev="${vaadin.sass.version}" conf="compile-theme->default" /> rev="${vaadin.sass.version}" conf="compile-theme->default" />


<dependency org="com.vaadin" name="vaadin-buildhelpers" <dependency org="com.vaadin" name="vaadin-buildhelpers"
rev="${vaadin.version}" conf="compile-theme->build" />
rev="${vaadin.version}" conf="compile-theme->build" />


<dependency org="org.eclipse.jgit" name="org.eclipse.jgit"
rev="3.5.1.201410131835-r" conf="ide,build->default" />
<dependency org="org.eclipse.jgit" name="org.eclipse.jgit"
rev="3.5.1.201410131835-r" conf="ide,build->default">
<exclude org="org.apache.httpcomponents"></exclude>
</dependency>


</dependencies> </dependencies>



+ 2
- 0
uitest/src/com/vaadin/testbench/elements/GridElement.java Bestand weergeven



import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.TestBenchElement; import com.vaadin.testbench.TestBenchElement;
import com.vaadin.testbench.elementsbase.AbstractElement;
import com.vaadin.testbench.elementsbase.ServerClass;


/** /**
* TestBench Element API for Grid * TestBench Element API for Grid

+ 24
- 18
uitest/src/com/vaadin/tests/VerifyBrowserVersionTest.java Bestand weergeven

import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.MatcherAssert.assertThat;


import java.util.HashMap;
import java.util.Map;

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


import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class VerifyBrowserVersionTest extends MultiBrowserTest { public class VerifyBrowserVersionTest extends MultiBrowserTest {


private Map<DesiredCapabilities, String> expectedUserAgent = new HashMap<DesiredCapabilities, String>();

{
expectedUserAgent.put(Browser.FIREFOX.getDesiredCapabilities(), "Firefox/");
expectedUserAgent.put(Browser.IE8.getDesiredCapabilities(), "MSIE ");
expectedUserAgent.put(Browser.IE9.getDesiredCapabilities(), "MSIE ");
expectedUserAgent.put(Browser.IE10.getDesiredCapabilities(), "MSIE ");
expectedUserAgent.put(Browser.IE11.getDesiredCapabilities(), "Trident/7.0; rv:");
expectedUserAgent.put(Browser.CHROME.getDesiredCapabilities(), "Chrome/");
expectedUserAgent.put(Browser.PHANTOMJS.getDesiredCapabilities(), "PhantomJS/");
}

@Test @Test
public void verifyUserAgent() { public void verifyUserAgent() {
openTestURL(); openTestURL();
DesiredCapabilities desiredCapabilities = getDesiredCapabilities(); DesiredCapabilities desiredCapabilities = getDesiredCapabilities();


assertThat(vaadinElementById("userAgent").getText(), assertThat(vaadinElementById("userAgent").getText(),
containsString(expectedUserAgent.get(desiredCapabilities)
+ desiredCapabilities.getVersion()));
containsString(getExpectedUserAgentString(desiredCapabilities)
+ desiredCapabilities.getVersion()));


assertThat(vaadinElementById("touchDevice").getText(), assertThat(vaadinElementById("touchDevice").getText(),
is("Touch device? No"));
is("Touch device? No"));
}

private String getExpectedUserAgentString(DesiredCapabilities dCap) {
if (BrowserUtil.isIE(dCap)) {
if (!BrowserUtil.isIE(dCap, 11)) {
// IE8-10
return "MSIE ";
} else {
// IE11
return "Trident/7.0; rv:";
}
} else if (BrowserUtil.isFirefox(dCap)) {
return "Firefox/";
} else if (BrowserUtil.isChrome(dCap)) {
return "Chrome/";
} else if (BrowserUtil.isPhantomJS(dCap)) {
return "PhantomJS/";
}
throw new UnsupportedOperationException(
"Test is being run on unknown browser.");
} }


} }

+ 3
- 6
uitest/src/com/vaadin/tests/actions/ActionsOnInvisibleComponentsTest.java Bestand weergeven

import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class ActionsOnInvisibleComponentsTest extends MultiBrowserTest { public class ActionsOnInvisibleComponentsTest extends MultiBrowserTest {
// This method should be removed once #12785 is fixed // This method should be removed once #12785 is fixed
@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
List<DesiredCapabilities> browsers = super.getBrowsersToTest();
// Send Keys does not function correctly on these browsers.
browsers.remove(Browser.CHROME.getDesiredCapabilities());
browsers.remove(Browser.FIREFOX.getDesiredCapabilities());
browsers.remove(Browser.IE8.getDesiredCapabilities());
return browsers;
return getBrowserCapabilities(Browser.IE9, Browser.IE10, Browser.IE11,
Browser.PHANTOMJS);
} }


@Test @Test

+ 0
- 31
uitest/src/com/vaadin/tests/annotations/TestCategory.java Bestand weergeven

/*
* 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.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Inherited
public @interface TestCategory {

String value();

}

+ 2
- 3
uitest/src/com/vaadin/tests/applicationservlet/NoApplicationClassTest.java Bestand weergeven

*/ */
package com.vaadin.tests.applicationservlet; package com.vaadin.tests.applicationservlet;


import java.util.Collections;
import java.util.List; import java.util.List;


import org.junit.Assert; import org.junit.Assert;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class NoApplicationClassTest extends MultiBrowserTest { public class NoApplicationClassTest extends MultiBrowserTest {


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
return Collections.singletonList(Browser.CHROME
.getDesiredCapabilities());
return getBrowserCapabilities(Browser.CHROME);
} }


@Override @Override

+ 1
- 0
uitest/src/com/vaadin/tests/components/AbstractOrderedLayoutWithCaptionsTest.java Bestand weergeven

import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;


import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**

+ 2
- 2
uitest/src/com/vaadin/tests/components/SaneErrorsTest.java Bestand weergeven

*/ */
package com.vaadin.tests.components; package com.vaadin.tests.components;


import java.util.Collections;
import java.util.List; import java.util.List;


import org.junit.Assert; import org.junit.Assert;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class SaneErrorsTest extends MultiBrowserTest { public class SaneErrorsTest extends MultiBrowserTest {
*/ */
@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
return Collections.singletonList(DesiredCapabilities.firefox());
return getBrowserCapabilities(Browser.FIREFOX);
} }


@Test @Test

+ 1
- 0
uitest/src/com/vaadin/tests/components/calendar/SetFirstVisibleHourOfDayTest.java Bestand weergeven

import org.openqa.selenium.StaleElementReferenceException; import org.openqa.selenium.StaleElementReferenceException;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;


import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**

+ 1
- 0
uitest/src/com/vaadin/tests/components/combobox/ComboBoxSetNullWhenNewItemsAllowedTest.java Bestand weergeven

import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.commands.TestBenchElementCommands; import com.vaadin.testbench.commands.TestBenchElementCommands;
import com.vaadin.testbench.elements.ComboBoxElement; import com.vaadin.testbench.elements.ComboBoxElement;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**

+ 2
- 2
uitest/src/com/vaadin/tests/components/combobox/ComboboxPageLengthZeroScrollTest.java Bestand weergeven

*/ */
package com.vaadin.tests.components.combobox; package com.vaadin.tests.components.combobox;


import java.util.Collections;
import java.util.List; import java.util.List;


import org.junit.Assert; import org.junit.Assert;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
return Collections.singletonList(Browser.IE8.getDesiredCapabilities());
return getBrowserCapabilities(Browser.IE8);
} }
} }

+ 1
- 8
uitest/src/com/vaadin/tests/components/datefield/DisabledDateFieldPopupTest.java Bestand weergeven

package com.vaadin.tests.components.datefield; package com.vaadin.tests.components.datefield;


import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import java.util.List;


import org.junit.Assert; import org.junit.Assert;


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>();
for (DesiredCapabilities browser : super.getBrowsersToTest()) {
if (BrowserUtil.isIE(browser)) {
browsers.add(browser);
}
}
return browsers;
return getIEBrowsersOnly();
} }


@Test @Test

+ 1
- 0
uitest/src/com/vaadin/tests/components/datefield/LocaleChangeTest.java Bestand weergeven

import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.By; import org.openqa.selenium.By;


import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class LocaleChangeTest extends MultiBrowserTest { public class LocaleChangeTest extends MultiBrowserTest {

+ 5
- 6
uitest/src/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRangeTest.java Bestand weergeven

import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.DateFieldElement; import com.vaadin.testbench.elements.DateFieldElement;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**
new Actions(driver).keyUp(Keys.SHIFT).perform(); new Actions(driver).keyUp(Keys.SHIFT).perform();


// TODO: remove this once #14406 has been fixed // TODO: remove this once #14406 has been fixed
if (!getBrowsersExcludingIE().contains(getDesiredCapabilities())
&& !Browser.IE8.getDesiredCapabilities().equals(
getDesiredCapabilities())) {
if (BrowserUtil.isIE(getDesiredCapabilities())
&& !BrowserUtil.isIE8(getDesiredCapabilities())) {
popup.findElement( popup.findElement(
By.className("v-datefield-calendarpanel-prevmonth")) By.className("v-datefield-calendarpanel-prevmonth"))
.findElement(By.tagName("button")).click(); .findElement(By.tagName("button")).click();
.size()); .size());
// TODO: remove this check once #14406 has been fixed -- clicking the // TODO: remove this check once #14406 has been fixed -- clicking the
// button instead of navigating with arrow keys steals the focus // button instead of navigating with arrow keys steals the focus
if (getBrowsersExcludingIE().contains(getDesiredCapabilities())
|| Browser.IE8.getDesiredCapabilities().equals(
getDesiredCapabilities())) {
if (!BrowserUtil.isIE(getDesiredCapabilities())
|| BrowserUtil.isIE8(getDesiredCapabilities())) {
assertEquals( assertEquals(
"unexpected focus", "unexpected focus",
"16", "16",

+ 4
- 3
uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java Bestand weergeven

import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;


import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;


import org.junit.Before; import org.junit.Before;
import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.EmbeddedElement; import com.vaadin.testbench.elements.EmbeddedElement;
import com.vaadin.testbench.elements.ImageElement; import com.vaadin.testbench.elements.ImageElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.SingleBrowserTest; import com.vaadin.tests.tb3.SingleBrowserTest;
import com.vaadin.ui.Embedded; import com.vaadin.ui.Embedded;
import com.vaadin.ui.Image;


/** /**
* Tests that {@link Embedded} uses correct theme when the theme is set with * Tests that {@link Embedded} uses correct theme when the theme is set with
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
// Seems like stylesheet onload is not fired on PhantomJS // Seems like stylesheet onload is not fired on PhantomJS
// https://github.com/ariya/phantomjs/issues/12332 // https://github.com/ariya/phantomjs/issues/12332
return Arrays.asList(MultiBrowserTest.Browser.FIREFOX
return Collections.singletonList(Browser.FIREFOX
.getDesiredCapabilities()); .getDesiredCapabilities());
} }



+ 2
- 1
uitest/src/com/vaadin/tests/components/grid/AbstractGridColumnAutoWidthTest.java Bestand weergeven

import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@SuppressWarnings("boxing") @SuppressWarnings("boxing")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/CustomRendererTest.java Bestand weergeven



import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.LabelElement; import com.vaadin.testbench.elements.LabelElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/GridAddAndRemoveDataOnInitTest.java Bestand weergeven



import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/GridAddRowTest.java Bestand weergeven



import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 3
- 2
uitest/src/com/vaadin/tests/components/grid/GridClientRenderers.java Bestand weergeven

import com.vaadin.testbench.elements.LabelElement; import com.vaadin.testbench.elements.LabelElement;
import com.vaadin.testbench.elements.NativeButtonElement; import com.vaadin.testbench.elements.NativeButtonElement;
import com.vaadin.testbench.elements.NativeSelectElement; import com.vaadin.testbench.elements.NativeSelectElement;
import com.vaadin.testbench.elements.ServerClass;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.elementsbase.ServerClass;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;
import com.vaadin.tests.widgetset.client.grid.GridClientColumnRendererConnector.Renderers; import com.vaadin.tests.widgetset.client.grid.GridClientColumnRendererConnector.Renderers;
import com.vaadin.tests.widgetset.server.grid.GridClientColumnRenderers; import com.vaadin.tests.widgetset.server.grid.GridClientColumnRenderers;

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/GridColspansTest.java Bestand weergeven

import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement; import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthClientTest.java Bestand weergeven

*/ */
package com.vaadin.tests.components.grid; package com.vaadin.tests.components.grid;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;


@TestCategory("grid") @TestCategory("grid")
public class GridColumnAutoWidthClientTest extends public class GridColumnAutoWidthClientTest extends

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthServerTest.java Bestand weergeven

*/ */
package com.vaadin.tests.components.grid; package com.vaadin.tests.components.grid;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;


@TestCategory("grid") @TestCategory("grid")
public class GridColumnAutoWidthServerTest extends public class GridColumnAutoWidthServerTest extends

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/GridEditorUITest.java Bestand weergeven

import com.vaadin.testbench.elements.GridElement.GridCellElement; import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.NotificationElement; import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.testbench.elements.PasswordFieldElement; import com.vaadin.testbench.elements.PasswordFieldElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/GridGeneratedPropertiesTest.java Bestand weergeven

import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement; import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.NotificationElement; import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/GridHeaderStyleNamesTest.java Bestand weergeven

import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement; import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.SingleBrowserTest; import com.vaadin.tests.tb3.SingleBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/GridInTabSheetTest.java Bestand weergeven

import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.NotificationElement; import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.testbench.elements.TabSheetElement; import com.vaadin.testbench.elements.TabSheetElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/GridSingleColumnTest.java Bestand weergeven

import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement; import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.NotificationElement; import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/GridWithoutRendererTest.java Bestand weergeven

import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.SingleBrowserTest; import com.vaadin.tests.tb3.SingleBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/InitialFrozenColumnsTest.java Bestand weergeven



import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.NotificationElement; import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 16
- 13
uitest/src/com/vaadin/tests/components/grid/WidgetRenderersTest.java Bestand weergeven

*/ */
package com.vaadin.tests.components.grid; package com.vaadin.tests.components.grid;


import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;

import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedCondition;


import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**
* TB tests for the various builtin widget-based renderers. * TB tests for the various builtin widget-based renderers.
waitUntilmageSrcEndsWith(image, "window/img/maximize.png"); waitUntilmageSrcEndsWith(image, "window/img/maximize.png");
} }


private void waitUntilmageSrcEndsWith(final WebElement image, final String expectedText) {
private void waitUntilmageSrcEndsWith(final WebElement image,
final String expectedText) {
waitUntil(new ExpectedCondition<Boolean>() { waitUntil(new ExpectedCondition<Boolean>() {


@Override @Override
@Override @Override
public String toString() { public String toString() {
// Timed out after 10 seconds waiting for ... // Timed out after 10 seconds waiting for ...
return String.format("image source to update. Supposed to end with '%s' (was: '%s').",
expectedText, image.getAttribute("src"));
return String
.format("image source to update. Supposed to end with '%s' (was: '%s').",
expectedText, image.getAttribute("src"));
} }
}); });
} }

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/basicfeatures/EscalatorBasicClientFeaturesTest.java Bestand weergeven

import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;


import com.vaadin.testbench.TestBenchElement; import com.vaadin.testbench.TestBenchElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("escalator") @TestCategory("escalator")

+ 2
- 3
uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicClientFeaturesTest.java Bestand weergeven

import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;


/** /**
* Variant of GridBasicFeaturesTest to be used with GridBasicClientFeatures.
* GridBasicClientFeatures.
* *
* @since * @since
* @author Vaadin Ltd * @author Vaadin Ltd
if (composite) { if (composite) {
// Composite requires the basic client features widget for subparts // Composite requires the basic client features widget for subparts
return ((TestBenchElement) findElement(By return ((TestBenchElement) findElement(By
.vaadin("//TestWidgetComponent")))
.wrap(GridElement.class);
.vaadin("//TestWidgetComponent"))).wrap(GridElement.class);
} else { } else {
return super.getGridElement(); return super.getGridElement();
} }

+ 3
- 8
uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java Bestand weergeven

import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.TestBenchElement; import com.vaadin.testbench.TestBenchElement;
import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")
public abstract class GridBasicFeaturesTest extends MultiBrowserTest { public abstract class GridBasicFeaturesTest extends MultiBrowserTest {


@Override @Override
protected DesiredCapabilities getDesiredCapabilities() {
DesiredCapabilities dCap = super.getDesiredCapabilities();
if (BrowserUtil.isIE(dCap)) {
dCap.setCapability("requireWindowFocus", true);
}
return super.getDesiredCapabilities();
protected boolean requireWindowFocusForIE() {
return true;
} }


@Override @Override

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientDataSourcesTest.java Bestand weergeven

import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientHeightByRowOnInitTest.java Bestand weergeven

import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.By; import org.openqa.selenium.By;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@SuppressWarnings("all") @SuppressWarnings("all")

+ 2
- 2
uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java Bestand weergeven

import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.NotificationElement; import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.testbench.elements.ServerClass;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.elementsbase.ServerClass;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridHeightByRowOnInitTest.java Bestand weergeven

import org.junit.Test; import org.junit.Test;


import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@SuppressWarnings("all") @SuppressWarnings("all")

+ 0
- 3
uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridSortingIndicatorsTest.java Bestand weergeven

import org.junit.Test; import org.junit.Test;


import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid")
public class GridSortingIndicatorsTest extends MultiBrowserTest { public class GridSortingIndicatorsTest extends MultiBrowserTest {


@Test @Test


compareScreen("reversedSort"); compareScreen("reversedSort");
} }

} }

+ 1
- 5
uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridMultiSortingTest.java Bestand weergeven



@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
List<DesiredCapabilities> browsersToTest = super.getBrowsersToTest();
/* FireFox and PhantomJS don't know how to press Shift key... */
browsersToTest.remove(Browser.FIREFOX.getDesiredCapabilities());
browsersToTest.remove(Browser.PHANTOMJS.getDesiredCapabilities());
return browsersToTest;
return super.getBrowsersSupportingShiftClick();
} }


@Test @Test

+ 0
- 2
uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSortingTest.java Bestand weergeven

import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement; import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.tests.components.grid.basicfeatures.GridBasicFeatures; import com.vaadin.tests.components.grid.basicfeatures.GridBasicFeatures;
import com.vaadin.tests.components.grid.basicfeatures.GridBasicFeaturesTest; import com.vaadin.tests.components.grid.basicfeatures.GridBasicFeaturesTest;


@TestCategory("grid")
public class GridSortingTest extends GridBasicFeaturesTest { public class GridSortingTest extends GridBasicFeaturesTest {


private static class SortInfo { private static class SortInfo {

+ 1
- 0
uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExtraSpacingTest.java Bestand weergeven

import com.vaadin.testbench.elements.CheckBoxElement; import com.vaadin.testbench.elements.CheckBoxElement;
import com.vaadin.testbench.elements.CssLayoutElement; import com.vaadin.testbench.elements.CssLayoutElement;
import com.vaadin.testbench.elements.GridLayoutElement; import com.vaadin.testbench.elements.GridLayoutElement;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class GridLayoutExtraSpacingTest extends MultiBrowserTest { public class GridLayoutExtraSpacingTest extends MultiBrowserTest {

+ 1
- 13
uitest/src/com/vaadin/tests/components/javascriptcomponent/JavaScriptPreloadingTest.java Bestand weergeven



import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/**
*
* @since
* @author Vaadin Ltd
*/
public class JavaScriptPreloadingTest extends MultiBrowserTest { public class JavaScriptPreloadingTest extends MultiBrowserTest {


/*
* (non-Javadoc)
*
* @see com.vaadin.tests.tb3.MultiBrowserTest#getBrowsersToTest()
*/
@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
List<DesiredCapabilities> browsers = super.getBrowsersToTest();
browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
return browsers;
return getBrowsersExcludingPhantomJS();
} }


@Test @Test

+ 2
- 6
uitest/src/com/vaadin/tests/components/menubar/MenuBarTooltipsNearEdgeTest.java Bestand weergeven



@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
// Tooltip tests work unreliably on IE due to an issue with the
// WebDriver (see #13854)
List<DesiredCapabilities> browsers = super.getBrowsersToTest();
browsers.remove(Browser.IE8.getDesiredCapabilities());
return browsers;
// Tooltip test is unreliable on IE8
return getBrowsersExcludingIE8();
}; };


@Test @Test
WebElement tooltip = getTooltipElement(); WebElement tooltip = getTooltipElement();
assertThat(tooltip.getLocation().x, is(lessThan(menuLocation.onPage().x assertThat(tooltip.getLocation().x, is(lessThan(menuLocation.onPage().x
- tooltip.getSize().getWidth()))); - tooltip.getSize().getWidth())));

} }
} }

+ 2
- 26
uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsAndChromeKeyboardNavigationTest.java Bestand weergeven

*/ */
package com.vaadin.tests.components.nativeselect; package com.vaadin.tests.components.nativeselect;


import java.util.Collections;
import java.util.List; import java.util.List;


import org.junit.Assert; import org.junit.Assert;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/**
*
* @since
* @author Vaadin Ltd
*/
public class NativeSelectsAndChromeKeyboardNavigationTest extends public class NativeSelectsAndChromeKeyboardNavigationTest extends
MultiBrowserTest { MultiBrowserTest {


/*
* (non-Javadoc)
*
* @see com.vaadin.tests.tb3.MultiBrowserTest#getBrowsersToTest()
*/
@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
return Collections.singletonList(Browser.CHROME
.getDesiredCapabilities());
return getBrowserCapabilities(Browser.CHROME);
} }


@Test @Test


} }


/*
* (non-Javadoc)
*
* @see com.vaadin.tests.tb3.AbstractTB3Test#getUIClass()
*/
@Override @Override
protected Class<?> getUIClass() { protected Class<?> getUIClass() {
return NativeSelects.class; return NativeSelects.class;
} }


/**
* @since
* @param string
*/
private void menuSub(String string) { private void menuSub(String string) {
getDriver().findElement(By.xpath("//span[text() = '" + string + "']")) getDriver().findElement(By.xpath("//span[text() = '" + string + "']"))
.click(); .click();
new Actions(getDriver()).moveByOffset(100, 0).build().perform(); new Actions(getDriver()).moveByOffset(100, 0).build().perform();
} }


/**
* @since
* @param string
*/
private void menu(String string) { private void menu(String string) {
getDriver().findElement(By.xpath("//span[text() = '" + string + "']")) getDriver().findElement(By.xpath("//span[text() = '" + string + "']"))
.click(); .click();

+ 1
- 0
uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsFocusAndBlurListenerTests.java Bestand weergeven

import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;


import com.vaadin.testbench.elements.NativeSelectElement; import com.vaadin.testbench.elements.NativeSelectElement;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class NativeSelectsFocusAndBlurListenerTests extends MultiBrowserTest { public class NativeSelectsFocusAndBlurListenerTests extends MultiBrowserTest {

+ 4
- 10
uitest/src/com/vaadin/tests/components/notification/NotificationsWaiAriaTest.java Bestand weergeven

/** /**
* Unit test class for Notification ARIA (Accessible Rich Internet Applications) * Unit test class for Notification ARIA (Accessible Rich Internet Applications)
* roles. * roles.
*
*
* @since 7.2 * @since 7.2
* @author Vaadin Ltd * @author Vaadin Ltd
*/ */


/** /**
* Checks if the ARIA roles are correctly applied to Notification. * Checks if the ARIA roles are correctly applied to Notification.
*
*
* @since 7.2 * @since 7.2
* @throws Exception * @throws Exception
*/ */
Assert.assertTrue("Expected '- press ESC to close', found " + text, Assert.assertTrue("Expected '- press ESC to close', found " + text,
text.equals("- press ESC to close")); text.equals("- press ESC to close"));


try {
notification.closeNotification();
} catch (Exception e) {
}
notification.close();


type.selectByText(StringToEnumConverter.enumToString( type.selectByText(StringToEnumConverter.enumToString(
NotificationRole.STATUS, null)); NotificationRole.STATUS, null));
Assert.assertTrue("Expected attribute 'role' to equal 'status', found " Assert.assertTrue("Expected attribute 'role' to equal 'status', found "
+ text, text.equals("status")); + text, text.equals("status"));


try {
notification.closeNotification();
} catch (Exception e) {
}
notification.close();


prefix.clear(); prefix.clear();
postfix.clear(); postfix.clear();

+ 1
- 0
uitest/src/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java Bestand weergeven

import org.openqa.selenium.By; import org.openqa.selenium.By;


import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class CaptionLeakTest extends MultiBrowserTest { public class CaptionLeakTest extends MultiBrowserTest {

+ 5
- 5
uitest/src/com/vaadin/tests/components/orderedlayout/VerticalLayoutFocusWithDOMChangesTest.java Bestand weergeven

import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class VerticalLayoutFocusWithDOMChangesTest extends MultiBrowserTest { public class VerticalLayoutFocusWithDOMChangesTest extends MultiBrowserTest {
Assert.assertEquals("Just a button", activeElement.getText()); Assert.assertEquals("Just a button", activeElement.getText());


DesiredCapabilities capabilities = getDesiredCapabilities(); DesiredCapabilities capabilities = getDesiredCapabilities();
if (capabilities.equals(BrowserUtil.ie(8))
|| capabilities.equals(BrowserUtil.ie(9))) {
if (BrowserUtil.isIE8(capabilities)
|| BrowserUtil.isIE(capabilities, 9)) {
// IE8 and IE9 insert cursor in the start of input instead of end. // IE8 and IE9 insert cursor in the start of input instead of end.
Assert.assertEquals(incrementalText + initialText, Assert.assertEquals(incrementalText + initialText,
tf1.getAttribute("value")); tf1.getAttribute("value"));


new Actions(getDriver()).sendKeys(secondText).build().perform(); new Actions(getDriver()).sendKeys(secondText).build().perform();
DesiredCapabilities capabilities = getDesiredCapabilities(); DesiredCapabilities capabilities = getDesiredCapabilities();
if (capabilities.equals(BrowserUtil.ie(8))
|| capabilities.equals(BrowserUtil.ie(9))) {
if (BrowserUtil.isIE8(capabilities)
|| BrowserUtil.isIE(capabilities, 9)) {
// IE8 and IE9 insert cursor in the start of input instead of end. // IE8 and IE9 insert cursor in the start of input instead of end.
Assert.assertEquals(secondText + firstText, Assert.assertEquals(secondText + firstText,
tf2.getAttribute("value")); tf2.getAttribute("value"));
tf2.getAttribute("value")); tf2.getAttribute("value"));
} }
} }

} }

+ 2
- 2
uitest/src/com/vaadin/tests/components/popupview/PopupViewResizeWhileOpenTest.java Bestand weergeven

import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.lessThan; import static org.hamcrest.Matchers.lessThan;


import java.util.Collections;
import java.util.List; import java.util.List;


import org.junit.Test; import org.junit.Test;
import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.PopupViewElement; import com.vaadin.testbench.elements.PopupViewElement;
import com.vaadin.testbench.elements.VerticalLayoutElement; import com.vaadin.testbench.elements.VerticalLayoutElement;
import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
return Collections.singletonList(Browser.IE8.getDesiredCapabilities());
return getBrowserCapabilities(Browser.IE8);
} }
} }

+ 5
- 10
uitest/src/com/vaadin/tests/components/table/AddSelectionToRemovedRangeTest.java Bestand weergeven

package com.vaadin.tests.components.table; package com.vaadin.tests.components.table;


import java.io.IOException; import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;


import org.junit.Assert; import org.junit.Assert;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class AddSelectionToRemovedRangeTest extends MultiBrowserTest { public class AddSelectionToRemovedRangeTest extends MultiBrowserTest {


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() {
return Collections.unmodifiableList(Arrays.asList(Browser.CHROME
.getDesiredCapabilities()));
protected boolean requireWindowFocusForIE() {
return true;
} }


@Override @Override
protected DesiredCapabilities getDesiredCapabilities() {
DesiredCapabilities cap = new DesiredCapabilities(
super.getDesiredCapabilities());
cap.setCapability("requireWindowFocus", true);
return cap;
public List<DesiredCapabilities> getBrowsersToTest() {
return getBrowserCapabilities(Browser.CHROME);
} }


@Test @Test

+ 4
- 8
uitest/src/com/vaadin/tests/components/table/ContextMenuSizeTest.java Bestand weergeven

import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.lessThan; import static org.hamcrest.Matchers.lessThan;


import java.util.ArrayList;
import java.util.List; import java.util.List;


import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**
* Test for context menu position and size. * Test for context menu position and size.
*
*
* @author Vaadin Ltd * @author Vaadin Ltd
*/ */
public class ContextMenuSizeTest extends MultiBrowserTest { public class ContextMenuSizeTest extends MultiBrowserTest {


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
getAllBrowsers());

// context menu doesn't work in phantom JS and works weirdly with IE8 // context menu doesn't work in phantom JS and works weirdly with IE8
// and selenium. // and selenium.
browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
browsers.remove(Browser.IE8.getDesiredCapabilities());
return browsers;
return getBrowserCapabilities(Browser.IE9, Browser.IE10, Browser.IE11,
Browser.FIREFOX, Browser.CHROME);
} }


@Override @Override

+ 1
- 6
uitest/src/com/vaadin/tests/components/table/CtrlShiftMultiselectTest.java Bestand weergeven



@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
List<DesiredCapabilities> browsers = super.getBrowsersToTest();
// Shift + click doesn't select all rows correctly on these browsers
browsers.remove(Browser.FIREFOX.getDesiredCapabilities());
browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());

return browsers;
return getBrowsersSupportingShiftClick();
} }


@Override @Override

+ 11
- 11
uitest/src/com/vaadin/tests/components/table/DisabledSortingTableTest.java Bestand weergeven



public class DisabledSortingTableTest extends MultiBrowserTest { public class DisabledSortingTableTest extends MultiBrowserTest {


Class<?> uiClass;

@Override @Override
protected void closeApplication() {
// need to close manually to use the correct ui class.
}
protected java.lang.Class<?> getUIClass() {
return uiClass;
};


@Test @Test
public void sortingByEmptyArrayShouldClearSortingIndicator() { public void sortingByEmptyArrayShouldClearSortingIndicator() {
openTestURL(DisabledSortingTable.class);
uiClass = DisabledSortingTable.class;
openTestURL();


assertThatFirstCellHasText("0"); assertThatFirstCellHasText("0");




sortByEmptyArray(); sortByEmptyArray();
assertThatFirstCellHasText("4"); assertThatFirstCellHasText("4");

openTestURL(DisabledSortingTable.class, "closeApplication");
} }


@Test @Test
public void emptySortingClearsIndicatorAndResetsSortingWithSQLContainer() { public void emptySortingClearsIndicatorAndResetsSortingWithSQLContainer() {
openTestURL(DisabledSortingTableSqlContainer.class);
uiClass = DisabledSortingTableSqlContainer.class;
openTestURL();


assertThatFirstCellHasText("1"); assertThatFirstCellHasText("1");


sortByEmptyArray(); sortByEmptyArray();


assertThatFirstCellHasText("1"); assertThatFirstCellHasText("1");

openTestURL(DisabledSortingTableSqlContainer.class, "closeApplication");
} }


private void sortFirstColumnAscending() { private void sortFirstColumnAscending() {
@Override @Override
public String toString() { public String toString() {
// Timed out after 10 seconds waiting for ... // Timed out after 10 seconds waiting for ...
return String.format("header to get class name '%s'",
className);
return String
.format("header to get class name '%s'", className);
} }
}); });
} }

+ 2
- 5
uitest/src/com/vaadin/tests/components/table/MemoryLeakTableTest.java Bestand weergeven



import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.TableElement; import com.vaadin.testbench.elements.TableElement;
import com.vaadin.tests.tb3.AbstractTB3Test.RunLocally;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;
import com.vaadin.tests.tb3.MultiBrowserTest.Browser;


/** /**
* Test case creating and deleting table component in a loop, testing memory * Test case creating and deleting table component in a loop, testing memory
* lead in Table component. This test should not be used in auto testing. * lead in Table component. This test should not be used in auto testing.
*
*
* To test memory consuption. Run test in debug mode. Take memory snapshot in * To test memory consuption. Run test in debug mode. Take memory snapshot in
* Profiler in browser before and after the loop. Compare memory consuption. * Profiler in browser before and after the loop. Compare memory consuption.
*
*
* @since * @since
* @author Vaadin Ltd * @author Vaadin Ltd
*/ */
@RunLocally(Browser.CHROME)
public class MemoryLeakTableTest extends MultiBrowserTest { public class MemoryLeakTableTest extends MultiBrowserTest {


/** /**

+ 1
- 7
uitest/src/com/vaadin/tests/components/table/SelectAllRowsTest.java Bestand weergeven

import static com.vaadin.tests.components.table.SelectAllRows.TOTAL_NUMBER_OF_ROWS; import static com.vaadin.tests.components.table.SelectAllRows.TOTAL_NUMBER_OF_ROWS;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;


import java.util.ArrayList;
import java.util.List; import java.util.List;


import org.junit.Test; import org.junit.Test;


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
// Pressing Shift modifier key does not work with Firefox and PhantomJS
ArrayList<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
super.getBrowsersToTest());
browsers.remove(Browser.FIREFOX.getDesiredCapabilities());
browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
return browsers;
return getBrowsersSupportingShiftClick();
} }


@Test @Test

+ 9
- 12
uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthIE8Test.java Bestand weergeven

package com.vaadin.tests.components.table; package com.vaadin.tests.components.table;


import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.TableElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
import static org.junit.Assert.assertEquals;

import java.util.List;

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


import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.TableElement;
import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;


public class TableColumnResizeContentsWidthIE8Test extends MultiBrowserTest { public class TableColumnResizeContentsWidthIE8Test extends MultiBrowserTest {
@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
List<DesiredCapabilities> browsersToTest = new ArrayList<DesiredCapabilities>();

browsersToTest.add(Browser.IE8.getDesiredCapabilities());

return browsersToTest;
return getBrowserCapabilities(Browser.IE8);
} }


@Override @Override

+ 8
- 13
uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthTest.java Bestand weergeven

*/ */
package com.vaadin.tests.components.table; package com.vaadin.tests.components.table;


import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.TableElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
import static org.junit.Assert.assertEquals;

import java.util.List;

import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedCondition;


import java.util.List;
import static org.junit.Assert.assertEquals;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.TableElement;
import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**
* Tests that components within table cells get resized when their column gets * Tests that components within table cells get resized when their column gets


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
List<DesiredCapabilities> browsersToTest = super.getBrowsersToTest();

// Can't get IE8 to hit the resizer, extracted IE8 to it's own test
// class.
browsersToTest.remove(Browser.IE8.getDesiredCapabilities());

return browsersToTest;
return getBrowsersExcludingIE8();
} }


@Test @Test

+ 7
- 9
uitest/src/com/vaadin/tests/components/table/TableNavigationPageDownTest.java Bestand weergeven

import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;


import java.util.ArrayList;
import java.util.List; import java.util.List;


import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedCondition;


import com.vaadin.testbench.elements.TableElement; import com.vaadin.testbench.elements.TableElement;
import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**


private WebElement wrapper; private WebElement wrapper;



@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
// Sending PageDown has no effect on PhantomJS. On IE focus // Sending PageDown has no effect on PhantomJS. On IE focus
// in Table is often lost, so default scrolling happens on PageDown. // in Table is often lost, so default scrolling happens on PageDown.
List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
getBrowsersExcludingIE());
browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
return browsers;
return getBrowserCapabilities(Browser.FIREFOX, Browser.CHROME);
} }


@Override @Override
} }


private void sendKeyUntilEndIsReached(Keys key) { private void sendKeyUntilEndIsReached(Keys key) {
while(true) {
while (true) {
int lastVisibleRowNumber = getLastVisibleRowNumber(); int lastVisibleRowNumber = getLastVisibleRowNumber();
sendKey(key); sendKey(key);




@Test @Test
public void navigatePageDown() { public void navigatePageDown() {
// Scroll to a point where you can reach the bottom with a couple of page downs.
// Scroll to a point where you can reach the bottom with a couple of
// page downs.
// Can't use v-table-body height because lower rows haven't been // Can't use v-table-body height because lower rows haven't been
// fetched yet. // fetched yet.
testBenchElement(wrapper).scroll( testBenchElement(wrapper).scroll(


@Test @Test
public void navigatePageUp() { public void navigatePageUp() {
// Scroll to a point where you can reach the top with a couple of page ups.
// Scroll to a point where you can reach the top with a couple of page
// ups.
testBenchElement(wrapper).scroll((int) (2.8 * pageHeight)); testBenchElement(wrapper).scroll((int) (2.8 * pageHeight));
waitForScrollToFinish(); waitForScrollToFinish();



+ 1
- 4
uitest/src/com/vaadin/tests/components/table/TableScrollAfterAddRowTest.java Bestand weergeven

import com.vaadin.testbench.screenshot.ReferenceNameGenerator; import com.vaadin.testbench.screenshot.ReferenceNameGenerator;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/**
*
* @author Vaadin Ltd
*/
public class TableScrollAfterAddRowTest extends MultiBrowserTest { public class TableScrollAfterAddRowTest extends MultiBrowserTest {


@Before @Before
@Test @Test
public void testJumpToFirstRow() throws InterruptedException { public void testJumpToFirstRow() throws InterruptedException {
jumpToFifteenthRow(); jumpToFifteenthRow();
sleep(300);
jumpToFirstRow(); jumpToFirstRow();
assertEquals("0", getCurrentPageFirstItemIndex()); assertEquals("0", getCurrentPageFirstItemIndex());
} }

+ 1
- 3
uitest/src/com/vaadin/tests/components/table/TableWithPollingTest.java Bestand weergeven

// Selenium has issues with drag-and-drop on IE8 making it impossible to // Selenium has issues with drag-and-drop on IE8 making it impossible to
// drag a target as small as the table resizer. So we'll just have to // drag a target as small as the table resizer. So we'll just have to
// ignore IE8 completely. // ignore IE8 completely.
List<DesiredCapabilities> browsers = super.getBrowsersToTest();
browsers.remove(Browser.IE8.getDesiredCapabilities());
return browsers;
return getBrowsersExcludingIE8();
} }
} }

+ 1
- 0
uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZoomingTest.java Bestand weergeven



import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.commands.TestBenchCommandExecutor; import com.vaadin.testbench.commands.TestBenchCommandExecutor;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class UnnecessaryScrollbarWhenZoomingTest extends MultiBrowserTest { public class UnnecessaryScrollbarWhenZoomingTest extends MultiBrowserTest {

+ 1
- 3
uitest/src/com/vaadin/tests/components/tabsheet/TabSheetFocusedTabTest.java Bestand weergeven



@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
List<DesiredCapabilities> browsers = super.getBrowsersToTest();
// PhantomJS doesn't send Focus / Blur events when clicking or // PhantomJS doesn't send Focus / Blur events when clicking or
// navigating with keyboard // navigating with keyboard
browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
return browsers;
return getBrowsersExcludingPhantomJS();
} }


@Override @Override

+ 2
- 2
uitest/src/com/vaadin/tests/components/ui/DynamicViewportEmptyTest.java Bestand weergeven

*/ */
package com.vaadin.tests.components.ui; package com.vaadin.tests.components.ui;


import java.util.Arrays;
import java.util.List; import java.util.List;


import org.junit.Assert; import org.junit.Assert;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class DynamicViewportEmptyTest extends MultiBrowserTest { public class DynamicViewportEmptyTest extends MultiBrowserTest {


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
return Arrays.asList(Browser.CHROME.getDesiredCapabilities());
return getBrowserCapabilities(Browser.CHROME);
} }


@Test @Test

+ 4
- 11
uitest/src/com/vaadin/tests/components/ui/TextAreaEventPropagationModifierKeysTest.java Bestand weergeven

import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.elements.TextAreaElement; import com.vaadin.testbench.elements.TextAreaElement;
import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class TextAreaEventPropagationModifierKeysTest extends MultiBrowserTest { public class TextAreaEventPropagationModifierKeysTest extends MultiBrowserTest {


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
List<DesiredCapabilities> browsers = super.getBrowsersToTest();
// Can't handle ctrl
browsers.remove(Browser.IE8.getDesiredCapabilities());
browsers.remove(Browser.FIREFOX.getDesiredCapabilities());

// Can't handle shift or ctrl
browsers.remove(Browser.IE9.getDesiredCapabilities());
browsers.remove(Browser.IE10.getDesiredCapabilities());
browsers.remove(Browser.IE11.getDesiredCapabilities());
return browsers;

// IE8 and Firefox can't handle ctrl.
// IE9-11 has issues with shift and ctrl
return getBrowserCapabilities(Browser.CHROME, Browser.PHANTOMJS);
} }


@Override @Override

+ 3
- 9
uitest/src/com/vaadin/tests/components/uitest/UIScrollingTest.java Bestand weergeven



import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.StaleElementReferenceException;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;


import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
notification.findElement(By.tagName("h1")).getText()); notification.findElement(By.tagName("h1")).getText());


// attempt to close the notification // attempt to close the notification
try {
notification.closeNotification();
} catch (StaleElementReferenceException e) {
}
notification.close();


WebElement ui = findElement(By.className("v-ui")); WebElement ui = findElement(By.className("v-ui"));
testBenchElement(ui).scroll(1020); testBenchElement(ui).scroll(1020);
assertEquals("Scrolled to 1020 px", assertEquals("Scrolled to 1020 px",
notification.findElement(By.tagName("h1")).getText()); notification.findElement(By.tagName("h1")).getText());


try {
notification.closeNotification();
} catch (StaleElementReferenceException e) {
}
notification.close();

} }
} }

+ 1
- 3
uitest/src/com/vaadin/tests/components/upload/TestFileUploadTest.java Bestand weergeven

@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
// PhantomJS fails to upload files for unknown reasons // PhantomJS fails to upload files for unknown reasons
List<DesiredCapabilities> b = super.getBrowsersToTest();
b.remove(Browser.PHANTOMJS.getDesiredCapabilities());
return b;
return getBrowsersExcludingPhantomJS();
} }


@Test @Test

+ 8
- 11
uitest/src/com/vaadin/tests/components/window/CloseShortcutTest.java Bestand weergeven

import org.openqa.selenium.Keys; import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedCondition;


import com.vaadin.testbench.elements.CheckBoxElement; import com.vaadin.testbench.elements.CheckBoxElement;
import com.vaadin.testbench.elements.TextFieldElement; import com.vaadin.testbench.elements.TextFieldElement;
import com.vaadin.testbench.elements.WindowElement; import com.vaadin.testbench.elements.WindowElement;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**
public void testOtherWithAll() { public void testOtherWithAll() {
attemptOtherShortcut(); attemptOtherShortcut();
// TODO: remove this check once #14902 has been fixed // TODO: remove this check once #14902 has been fixed
if (!Browser.IE8.getDesiredCapabilities().equals(
getDesiredCapabilities())
&& !Browser.FIREFOX.getDesiredCapabilities().equals(
getDesiredCapabilities())
&& !Browser.CHROME.getDesiredCapabilities().equals(
getDesiredCapabilities())) {
DesiredCapabilities cap = getDesiredCapabilities();
if ((BrowserUtil.isIE(cap) && !BrowserUtil.isIE8(cap))
|| BrowserUtil.isPhantomJS(cap)) {
ensureWindowClosed(); ensureWindowClosed();
} }
} }
public void testCtrlWithAll() { public void testCtrlWithAll() {
attemptCtrlShortcut(); attemptCtrlShortcut();
// TODO: remove this check once #14902 has been fixed // TODO: remove this check once #14902 has been fixed
if (Browser.PHANTOMJS.getDesiredCapabilities().equals(
getDesiredCapabilities())) {
if (BrowserUtil.isPhantomJS(getDesiredCapabilities())) {
ensureWindowClosed(); ensureWindowClosed();
} }
} }
public void testShiftWithAll() { public void testShiftWithAll() {
attemptShiftShortcut(); attemptShiftShortcut();
// TODO: remove this check once #14902 has been fixed // TODO: remove this check once #14902 has been fixed
if (getBrowsersExcludingIE().contains(getDesiredCapabilities())
|| Browser.IE8.getDesiredCapabilities().equals(
getDesiredCapabilities())) {
DesiredCapabilities capabilities = getDesiredCapabilities();
if (!BrowserUtil.isIE(capabilities) || BrowserUtil.isIE8(capabilities)) {
ensureWindowClosed(); ensureWindowClosed();
} }
} }

+ 2
- 11
uitest/src/com/vaadin/tests/components/window/SubWindowsTextSelectionTest.java Bestand weergeven

*/ */
package com.vaadin.tests.components.window; package com.vaadin.tests.components.window;


import java.util.ArrayList;
import java.util.List; import java.util.List;


import org.junit.Assert; import org.junit.Assert;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**
return SubWindows.class; return SubWindows.class;
} }


/*
* (non-Javadoc)
*
* @see com.vaadin.tests.tb3.MultiBrowserTest#getBrowsersToTest()
*/
@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
ArrayList<DesiredCapabilities> list = new ArrayList<DesiredCapabilities>();
list.add(BrowserUtil.ie(9));
list.add(BrowserUtil.ie(10));
list.add(BrowserUtil.ie(11));
return list;
return getBrowserCapabilities(Browser.IE9, Browser.IE10, Browser.IE11);
} }


@Test @Test

+ 2
- 4
uitest/src/com/vaadin/tests/components/window/WindowBGColorChameleonIE8Test.java Bestand weergeven

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


import com.vaadin.tests.tb3.MultiBrowserTest;
import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.SingleBrowserTest; import com.vaadin.tests.tb3.SingleBrowserTest;


public class WindowBGColorChameleonIE8Test extends SingleBrowserTest { public class WindowBGColorChameleonIE8Test extends SingleBrowserTest {
*/ */
@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {

return Arrays.asList(MultiBrowserTest.Browser.IE8
.getDesiredCapabilities());
return Arrays.asList(Browser.IE8.getDesiredCapabilities());
} }


@Test @Test

+ 1
- 5
uitest/src/com/vaadin/tests/components/window/WindowShadowTest.java Bestand weergeven



import java.awt.AWTException; import java.awt.AWTException;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import java.util.List;


import org.junit.Test; import org.junit.Test;
// ignore this browser in testing // ignore this browser in testing
@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
getAllBrowsers());
browsers.remove(Browser.IE8.getDesiredCapabilities());
return browsers;
return getBrowsersExcludingIE8();
} }
} }

+ 1
- 1
uitest/src/com/vaadin/tests/debug/PushVersionInfoTest.java Bestand weergeven

import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


/** /**

+ 1
- 1
uitest/src/com/vaadin/tests/extensions/SetThemeAndResponsiveLayoutTest.java Bestand weergeven

public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
// Seems like stylesheet onload is not fired on PhantomJS // Seems like stylesheet onload is not fired on PhantomJS
// https://github.com/ariya/phantomjs/issues/12332 // https://github.com/ariya/phantomjs/issues/12332
return super.getBrowsersExcludingPhantomJS();
return getBrowsersExcludingPhantomJS();
} }


@Test @Test

+ 1
- 1
uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java Bestand weergeven

import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement; import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.GridElement.GridEditorElement; import com.vaadin.testbench.elements.GridElement.GridEditorElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("grid") @TestCategory("grid")

+ 1
- 1
uitest/src/com/vaadin/tests/integration/AbstractIntegrationTest.java Bestand weergeven

*/ */
package com.vaadin.tests.integration; package com.vaadin.tests.integration;


import com.vaadin.testbench.parallel.TestNameSuffix;
import com.vaadin.tests.tb3.PrivateTB3Configuration; import com.vaadin.tests.tb3.PrivateTB3Configuration;
import com.vaadin.tests.tb3.TestNameSuffix;


/** /**
* Base class for integration tests. Integration tests use the * Base class for integration tests. Integration tests use the

+ 2
- 2
uitest/src/com/vaadin/tests/layouts/IE8MeasuredSizeMemoryLeakTest.java Bestand weergeven

*/ */
package com.vaadin.tests.layouts; package com.vaadin.tests.layouts;


import java.util.Collections;
import java.util.List; import java.util.List;


import org.junit.Assert; import org.junit.Assert;
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class IE8MeasuredSizeMemoryLeakTest extends MultiBrowserTest { public class IE8MeasuredSizeMemoryLeakTest extends MultiBrowserTest {


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
return Collections.singletonList(Browser.IE8.getDesiredCapabilities());
return getBrowserCapabilities(Browser.IE8);
} }
} }

+ 1
- 1
uitest/src/com/vaadin/tests/push/BarInUIDLTest.java Bestand weergeven

import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("push") @TestCategory("push")

+ 1
- 1
uitest/src/com/vaadin/tests/push/BasicPushTest.java Bestand weergeven

import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedCondition;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.AbstractTB3Test; import com.vaadin.tests.tb3.AbstractTB3Test;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;



+ 1
- 1
uitest/src/com/vaadin/tests/push/EnableDisablePushTest.java Bestand weergeven

import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("push") @TestCategory("push")

+ 1
- 1
uitest/src/com/vaadin/tests/push/IdlePushChannelTest.java Bestand weergeven

import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("push") @TestCategory("push")

+ 1
- 1
uitest/src/com/vaadin/tests/push/PushConfigurationTest.java Bestand weergeven

import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedCondition;


import com.vaadin.testbench.elements.NativeSelectElement; import com.vaadin.testbench.elements.NativeSelectElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("push") @TestCategory("push")

+ 1
- 7
uitest/src/com/vaadin/tests/push/PushConfigurationWebSocketTest.java Bestand weergeven



@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {

List<DesiredCapabilities> browsers = super.getBrowsersToTest();
browsers.remove(Browser.IE8.getDesiredCapabilities());
browsers.remove(Browser.IE9.getDesiredCapabilities());
browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());

return browsers;
return getBrowsersSupportingWebSocket();
} }


@Test @Test

+ 2
- 1
uitest/src/com/vaadin/tests/push/PushErrorHandlingTest.java Bestand weergeven

import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;


import com.vaadin.testbench.elements.LabelElement; import com.vaadin.testbench.elements.LabelElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("push") @TestCategory("push")

+ 1
- 1
uitest/src/com/vaadin/tests/push/PushFromInitTest.java Bestand weergeven

import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedCondition;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("push") @TestCategory("push")

+ 1
- 1
uitest/src/com/vaadin/tests/push/PushLargeDataLongPollingTest.java Bestand weergeven

import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.ExpectedConditions;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("push") @TestCategory("push")

+ 1
- 1
uitest/src/com/vaadin/tests/push/PushLargeDataStreamingTest.java Bestand weergeven

import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.ExpectedConditions;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("push") @TestCategory("push")

+ 1
- 2
uitest/src/com/vaadin/tests/push/RefreshCloseConnectionTest.java Bestand weergeven



import java.util.List; import java.util.List;


import com.vaadin.tests.annotations.TestCategory;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;
import com.vaadin.tests.tb3.WebsocketTest;


@TestCategory("push") @TestCategory("push")
public class RefreshCloseConnectionTest extends MultiBrowserTest { public class RefreshCloseConnectionTest extends MultiBrowserTest {

+ 3
- 2
uitest/src/com/vaadin/tests/push/SendMultibyteCharactersTest.java Bestand weergeven

package com.vaadin.tests.push; package com.vaadin.tests.push;


import org.junit.Test;

import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.TextAreaElement; import com.vaadin.testbench.elements.TextAreaElement;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;
import org.junit.Test;


@TestCategory("push") @TestCategory("push")
public abstract class SendMultibyteCharactersTest extends MultiBrowserTest { public abstract class SendMultibyteCharactersTest extends MultiBrowserTest {

+ 1
- 1
uitest/src/com/vaadin/tests/push/TogglePushTest.java Bestand weergeven

import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("push") @TestCategory("push")

+ 1
- 1
uitest/src/com/vaadin/tests/push/TrackMessageSizeUITest.java Bestand weergeven

import org.junit.Assert; import org.junit.Assert;
import org.junit.Test; import org.junit.Test;


import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


@TestCategory("push") @TestCategory("push")

+ 24
- 458
uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java Bestand weergeven



package com.vaadin.tests.tb3; package com.vaadin.tests.tb3;


import static com.vaadin.tests.tb3.TB3Runner.localWebDriverIsUsed;

import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.StringWriter; import java.io.StringWriter;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicHttpEntityEnclosingRequest; import org.apache.http.message.BasicHttpEntityEnclosingRequest;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule; import org.junit.Rule;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.interactions.HasInputDevices; import org.openqa.selenium.interactions.HasInputDevices;
import org.openqa.selenium.interactions.Keyboard; import org.openqa.selenium.interactions.Keyboard;
import org.openqa.selenium.interactions.Mouse; import org.openqa.selenium.interactions.Mouse;
import org.openqa.selenium.interactions.internal.Coordinates; import org.openqa.selenium.interactions.internal.Coordinates;
import org.openqa.selenium.internal.Locatable; import org.openqa.selenium.internal.Locatable;
import org.openqa.selenium.remote.BrowserType;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.HttpCommandExecutor; import org.openqa.selenium.remote.HttpCommandExecutor;
import org.openqa.selenium.remote.RemoteWebDriver; import org.openqa.selenium.remote.RemoteWebDriver;
import com.thoughtworks.selenium.webdriven.WebDriverBackedSelenium; import com.thoughtworks.selenium.webdriven.WebDriverBackedSelenium;
import com.vaadin.server.LegacyApplication; import com.vaadin.server.LegacyApplication;
import com.vaadin.server.UIProvider; import com.vaadin.server.UIProvider;
import com.vaadin.testbench.TestBench;
import com.vaadin.testbench.TestBenchDriverProxy; import com.vaadin.testbench.TestBenchDriverProxy;
import com.vaadin.testbench.TestBenchElement; import com.vaadin.testbench.TestBenchElement;
import com.vaadin.testbench.TestBenchTestCase;
import com.vaadin.testbench.elements.AbstractElement;
import com.vaadin.testbench.annotations.BrowserConfiguration;
import com.vaadin.testbench.elements.CheckBoxElement; import com.vaadin.testbench.elements.CheckBoxElement;
import com.vaadin.testbench.elements.LabelElement; import com.vaadin.testbench.elements.LabelElement;
import com.vaadin.testbench.elements.TableElement; import com.vaadin.testbench.elements.TableElement;
import com.vaadin.testbench.elements.VerticalLayoutElement; import com.vaadin.testbench.elements.VerticalLayoutElement;
import com.vaadin.testbench.parallel.Browser;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.testbench.parallel.ParallelTest;
import com.vaadin.tests.components.AbstractTestUIWithLog; import com.vaadin.tests.components.AbstractTestUIWithLog;
import com.vaadin.tests.tb3.MultiBrowserTest.Browser;
import com.vaadin.ui.UI; import com.vaadin.ui.UI;


import elemental.json.JsonObject; import elemental.json.JsonObject;
* *
* @author Vaadin Ltd * @author Vaadin Ltd
*/ */
@RunWith(value = TB3Runner.class)
public abstract class AbstractTB3Test extends TestBenchTestCase {
@RunWith(TB3Runner.class)
public abstract class AbstractTB3Test extends ParallelTest {


@Rule @Rule
public RetryOnFail retry = new RetryOnFail(); public RetryOnFail retry = new RetryOnFail();
*/ */
private static final int BROWSER_TIMEOUT_IN_MS = 30 * 1000; private static final int BROWSER_TIMEOUT_IN_MS = 30 * 1000;


private static final int BROWSER_INIT_ATTEMPTS = 5;

private DesiredCapabilities desiredCapabilities;

private boolean debug = false; private boolean debug = false;


private boolean push = false; private boolean push = false;
{
// Default browser to run on unless setDesiredCapabilities is called
desiredCapabilities = Browser.FIREFOX.getDesiredCapabilities();
}


static { static {
com.vaadin.testbench.Parameters com.vaadin.testbench.Parameters
* *
* @throws Exception * @throws Exception
*/ */
@Before
@Override
public void setup() throws Exception { public void setup() throws Exception {
setupDriver();
}

/**
* Creates and configure the web driver to be used for the test. By default
* creates a remote web driver which connects to {@link #getHubURL()} and
* selects a browser based on {@link #getDesiredCapabilities()}.
*
* This method MUST call {@link #setDriver(WebDriver)} with the newly
* generated driver.
*
* @throws Exception
* If something goes wrong
*/
protected void setupDriver() throws Exception {
DesiredCapabilities capabilities;

Browser runLocallyBrowser = getRunLocallyBrowser();
if (runLocallyBrowser != null) {
if (System.getenv().containsKey("TEAMCITY_VERSION")) {
throw new RuntimeException(
"@RunLocally is not supported for tests run on the build server");
}
capabilities = runLocallyBrowser.getDesiredCapabilities();
setupLocalDriver(capabilities);
} else {
capabilities = getDesiredCapabilities();

for (int i = 1; i <= BROWSER_INIT_ATTEMPTS; i++) {
try {
if (localWebDriverIsUsed()) {
setupLocalDriver(capabilities);
} else {
setupRemoteDriver(capabilities);
}
break;
} catch (Exception e) {
System.err
.println("Browser startup for " + capabilities
+ " failed on attempt " + i + ": "
+ e.getMessage());
if (i == BROWSER_INIT_ATTEMPTS) {
throw e;
}
}
}

}
super.setup();


int w = SCREENSHOT_WIDTH; int w = SCREENSHOT_WIDTH;
int h = SCREENSHOT_HEIGHT; int h = SCREENSHOT_HEIGHT;


if (BrowserUtil.isIE8(capabilities)) {
if (BrowserUtil.isIE8(super.getDesiredCapabilities())) {
// IE8 gets size wrong, who would have guessed... // IE8 gets size wrong, who would have guessed...
w += 4; w += 4;
h += 4; h += 4;


} }


protected Browser getRunLocallyBrowser() {
RunLocally runLocally = getClass().getAnnotation(RunLocally.class);
if (runLocally != null) {
return runLocally.value();
} else {
return null;
/**
* Method for closing the tested application.
*/
protected void closeApplication() {
if (driver != null) {
try {
openTestURL("closeApplication");
} catch (Exception e) {
e.printStackTrace();
}
} }
} }


waitUntilRowIsVisible(table, rowToWait); waitUntilRowIsVisible(table, rowToWait);
} }


@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface RunLocally {
public Browser value() default Browser.FIREFOX;
}

/**
* Creates a {@link WebDriver} instance used for running the test locally
* for debug purposes. Used only when {@link #runLocally()} is overridden to
* return true;
*/
protected abstract void setupLocalDriver(
DesiredCapabilities desiredCapabilities);

/**
* Creates a {@link WebDriver} instance used for running the test remotely.
*
* @since
* @param capabilities
* the type of browser needed
* @throws Exception
*/
private void setupRemoteDriver(DesiredCapabilities capabilities)
throws Exception {
if (BrowserUtil.isIE(capabilities)) {
if (requireWindowFocusForIE()) {
capabilities.setCapability(
InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
}
if (!usePersistentHoverForIE()) {
capabilities.setCapability(
InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING,
false);
}
}

WebDriver dr = TestBench.createDriver(new RemoteWebDriver(new URL(
getHubURL()), capabilities));
setDriver(dr);
}

/** /**
* Opens the given test (defined by {@link #getTestUrl()}, optionally with * Opens the given test (defined by {@link #getTestUrl()}, optionally with
* debug window and/or push (depending on {@link #isDebug()} and * debug window and/or push (depending on {@link #isDebug()} and
protected void openTestURL(Class<?> uiClass, String... parameters) { protected void openTestURL(Class<?> uiClass, String... parameters) {
String url = getTestURL(uiClass); String url = getTestURL(uiClass);


if(parameters.length > 0) {
if (parameters.length > 0) {
url += "?" + Joiner.on("&").join(parameters); url += "?" + Joiner.on("&").join(parameters);
} }




/** /**
* Returns the full URL to be used for the test for the provided UI class. * Returns the full URL to be used for the test for the provided UI class.
*
*
* @return the full URL for the test * @return the full URL for the test
*/ */
protected String getTestURL(Class<?> uiClass) { protected String getTestURL(Class<?> uiClass) {
return StringUtils.strip(getBaseURL(), "/") + getDeploymentPath(uiClass);
return StringUtils.strip(getBaseURL(), "/")
+ getDeploymentPath(uiClass);
} }


/**
*
* @return the location (URL) of the TB hub
*/
protected String getHubURL() {
return "http://" + getHubHostname() + ":4444/wd/hub";
}

/**
* Used for building the hub URL to use for the test
*
* @return the host name of the TestBench hub
*/
protected abstract String getHubHostname();

/** /**
* Used to determine what URL to initially open for the test * Used to determine what URL to initially open for the test
* *
* *
* @return The browsers to run the test on * @return The browsers to run the test on
*/ */
@BrowserConfiguration
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
return Collections.singletonList(Browser.FIREFOX return Collections.singletonList(Browser.FIREFOX
.getDesiredCapabilities()); .getDesiredCapabilities());
} }


/**
* Used to determine which capabilities should be used when setting up a
* {@link WebDriver} for this test. Typically set by a test runner or left
* at its default (Firefox 24). If you want to run a test on a single
* browser other than Firefox 24 you can override this method.
*
* @return the requested browser capabilities
*/
protected DesiredCapabilities getDesiredCapabilities() {
return desiredCapabilities;
}

/**
* Sets the requested browser capabilities (typically browser name and
* version)
*
* @param desiredCapabilities
*/
public void setDesiredCapabilities(DesiredCapabilities desiredCapabilities) {
// Make a copy as the desired capabilities can come from a shared,
// static resource. This will cause all kinds of problems if some test
// modifies the capabilities
this.desiredCapabilities = new DesiredCapabilities(desiredCapabilities);
}

/**
* Shuts down the driver after the test has been completed
*
* @throws Exception
*/
@After
public void tearDown() throws Exception {
if (driver != null) {
try {
closeApplication();
} catch (Exception e) {
e.printStackTrace();
}
driver.quit();
}
driver = null;
}

protected void closeApplication() {
openTestURL("closeApplication");
}

/** /**
* Finds an element based on the part of a TB2 style locator following the * Finds an element based on the part of a TB2 style locator following the
* :: (e.g. vaadin=runLabelModes::PID_Scheckboxaction-Enabled/domChild[0] -> * :: (e.g. vaadin=runLabelModes::PID_Scheckboxaction-Enabled/domChild[0] ->
} }
} }


/**
* Provides helper method for selecting the browser to run on
*
* @author Vaadin Ltd
*/
public static class BrowserUtil {
/**
* Gets the capabilities for Safari of the given version
*
* @param version
* the major version
* @return an object describing the capabilities required for running a
* test on the given Safari version
*/
public static DesiredCapabilities safari(int version) {
DesiredCapabilities c = DesiredCapabilities.safari();
c.setPlatform(Platform.MAC);
c.setVersion("" + version);
return c;
}

/**
* Gets the capabilities for Chrome of the given version
*
* @param version
* the major version
* @return an object describing the capabilities required for running a
* test on the given Chrome version
*/
public static DesiredCapabilities chrome(int version) {
DesiredCapabilities c = DesiredCapabilities.chrome();
c.setVersion("" + version);
c.setPlatform(Platform.VISTA);
return c;
}

/**
* Gets the capabilities for Opera of the given version
*
* @param version
* the major version
* @return an object describing the capabilities required for running a
* test on the given Opera version
*/
public static DesiredCapabilities opera(int version) {
DesiredCapabilities c = DesiredCapabilities.opera();
c.setVersion("" + version);
c.setPlatform(Platform.XP);
return c;
}

/**
* Gets the capabilities for Firefox of the given version
*
* @param version
* the major version
* @return an object describing the capabilities required for running a
* test on the given Firefox version
*/
public static DesiredCapabilities firefox(int version) {
DesiredCapabilities c = DesiredCapabilities.firefox();
c.setVersion("" + version);
c.setPlatform(Platform.XP);
return c;
}

/**
* Gets the capabilities for Internet Explorer of the given version
*
* @param version
* the major version
* @return an object describing the capabilities required for running a
* test on the given Internet Explorer version
*/
public static DesiredCapabilities ie(int version) {
DesiredCapabilities c = DesiredCapabilities.internetExplorer();
c.setVersion("" + version);
c.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION,
true);
return c;
}

/**
* Gets the capabilities for PhantomJS of the given version
*
* @param version
* the major version
* @return an object describing the capabilities required for running a
* test on the given PhantomJS version
*/
public static DesiredCapabilities phantomJS(int version) {
DesiredCapabilities c = DesiredCapabilities.phantomjs();
c.setPlatform(Platform.LINUX);
c.setVersion("" + version);
return c;
}

/**
* Checks if the given capabilities refer to Internet Explorer 8
*
* @param capabilities
* @param version
* @return true if the capabilities refer to IE8, false otherwise
*/
public static boolean isIE8(DesiredCapabilities capabilities) {
return isIE(8, capabilities);
}

/**
* Checks if the given capabilities refer to Internet Explorer of the
* given version
*
* @param capabilities
* @param version
* @return true if the capabilities refer to IE of the given version,
* false otherwise
*/
public static boolean isIE(int version, DesiredCapabilities capabilities) {
return isIE(capabilities)
&& ("" + version).equals(capabilities.getVersion());
}

/**
* @param capabilities
* The capabilities to check
* @return true if the capabilities refer to Internet Explorer, false
* otherwise
*/
public static boolean isIE(DesiredCapabilities capabilities) {
return BrowserType.IE.equals(capabilities.getBrowserName());
}

/**
* @param capabilities
* The capabilities to check
* @return true if the capabilities refer to Chrome, false otherwise
*/
public static boolean isChrome(DesiredCapabilities capabilities) {
return BrowserType.CHROME.equals(capabilities.getBrowserName());
}

/**
* @param capabilities
* The capabilities to check
* @return true if the capabilities refer to Opera, false otherwise
*/
public static boolean isOpera(DesiredCapabilities capabilities) {
return BrowserType.OPERA.equals(capabilities.getBrowserName());
}

/**
* @param capabilities
* The capabilities to check
* @return true if the capabilities refer to Safari, false otherwise
*/
public static boolean isSafari(DesiredCapabilities capabilities) {
return BrowserType.SAFARI.equals(capabilities.getBrowserName());
}

/**
* @param capabilities
* The capabilities to check
* @return true if the capabilities refer to Firefox, false otherwise
*/
public static boolean isFirefox(DesiredCapabilities capabilities) {
return BrowserType.FIREFOX.equals(capabilities.getBrowserName());
}

/**
* @param capabilities
* The capabilities to check
* @return true if the capabilities refer to PhantomJS, false otherwise
*/
public static boolean isPhantomJS(DesiredCapabilities capabilities) {
return BrowserType.PHANTOMJS.equals(capabilities.getBrowserName());
}

/**
* Returns a human readable identifier of the given browser. Used for
* test naming and screenshots
*
* @param capabilities
* @return a human readable string describing the capabilities
*/
public static String getBrowserIdentifier(
DesiredCapabilities capabilities) {
if (isIE(capabilities)) {
return "InternetExplorer";
} else if (isFirefox(capabilities)) {
return "Firefox";
} else if (isChrome(capabilities)) {
return "Chrome";
} else if (isSafari(capabilities)) {
return "Safari";
} else if (isOpera(capabilities)) {
return "Opera";
} else if (isPhantomJS(capabilities)) {
return "PhantomJS";
}

return capabilities.getBrowserName();
}

/**
* Returns a human readable identifier of the platform described by the
* given capabilities. Used mainly for screenshots
*
* @param capabilities
* @return a human readable string describing the platform
*/
public static String getPlatform(DesiredCapabilities capabilities) {
if (capabilities.getPlatform() == Platform.WIN8
|| capabilities.getPlatform() == Platform.WINDOWS
|| capabilities.getPlatform() == Platform.VISTA
|| capabilities.getPlatform() == Platform.XP) {
return "Windows";
} else if (capabilities.getPlatform() == Platform.MAC) {
return "Mac";
}
return capabilities.getPlatform().toString();
}

/**
* Returns a string which uniquely (enough) identifies this browser.
* Used mainly in screenshot names.
*
* @param capabilities
*
* @return a unique string for each browser
*/
public static String getUniqueIdentifier(
DesiredCapabilities capabilities) {
return getUniqueIdentifier(getPlatform(capabilities),
getBrowserIdentifier(capabilities),
capabilities.getVersion());
}

/**
* Returns a string which uniquely (enough) identifies this browser.
* Used mainly in screenshot names.
*
* @param capabilities
*
* @return a unique string for each browser
*/
public static String getUniqueIdentifier(
DesiredCapabilities capabilities, String versionOverride) {
return getUniqueIdentifier(getPlatform(capabilities),
getBrowserIdentifier(capabilities), versionOverride);
}

private static String getUniqueIdentifier(String platform,
String browser, String version) {
return platform + "_" + browser + "_" + version;
}

}

/** /**
* Called by the test runner whenever there is an exception in the test that * Called by the test runner whenever there is an exception in the test that
* will cause termination of the test * will cause termination of the test
protected void click(CheckBoxElement checkbox) { protected void click(CheckBoxElement checkbox) {
checkbox.findElement(By.xpath("input")).click(); checkbox.findElement(By.xpath("input")).click();
} }

@Override
public boolean isElementPresent(Class<? extends AbstractElement> clazz) {
// This is a bug in TB4 as isElementPresent(..) should just return true
// or false but can also throw exceptions. The problem is possibly if
// this is run when the Vaadin app is not initialized yet
try {
return super.isElementPresent(clazz);
} catch (NoSuchElementException e) {
return false;
}
}

} }

+ 4
- 1
uitest/src/com/vaadin/tests/tb3/AffectedTB3Tests.java Bestand weergeven

package com.vaadin.tests.tb3; package com.vaadin.tests.tb3;


import java.io.IOException;

import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.junit.runners.model.InitializationError; import org.junit.runners.model.InitializationError;




public static class AffectedTB3TestSuite extends TB3TestSuite { public static class AffectedTB3TestSuite extends TB3TestSuite {


public AffectedTB3TestSuite(Class<?> klass) throws InitializationError {
public AffectedTB3TestSuite(Class<?> klass) throws InitializationError,
IOException {
super(klass, AbstractTB3Test.class, "com.vaadin.tests", super(klass, AbstractTB3Test.class, "com.vaadin.tests",
new String[] { "com.vaadin.tests.integration" }, new String[] { "com.vaadin.tests.integration" },
new AffectedTB3TestLocator()); new AffectedTB3TestLocator());

+ 4
- 1
uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java Bestand weergeven



package com.vaadin.tests.tb3; package com.vaadin.tests.tb3;


import java.io.IOException;

import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.junit.runners.model.InitializationError; import org.junit.runners.model.InitializationError;




public static class AllTB3TestsSuite extends TB3TestSuite { public static class AllTB3TestsSuite extends TB3TestSuite {


public AllTB3TestsSuite(Class<?> klass) throws InitializationError {
public AllTB3TestsSuite(Class<?> klass) throws InitializationError,
IOException {
super(klass, AbstractTB3Test.class, "com.vaadin.tests", super(klass, AbstractTB3Test.class, "com.vaadin.tests",
new String[] { "com.vaadin.tests.integration" }); new String[] { "com.vaadin.tests.integration" });
} }

+ 4
- 1
uitest/src/com/vaadin/tests/tb3/ChangedTB3Tests.java Bestand weergeven

*/ */
package com.vaadin.tests.tb3; package com.vaadin.tests.tb3;


import java.io.IOException;

import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.junit.runners.model.InitializationError; import org.junit.runners.model.InitializationError;


@RunWith(ChangedTB3TestsSuite.class) @RunWith(ChangedTB3TestsSuite.class)
public class ChangedTB3Tests { public class ChangedTB3Tests {
public static class ChangedTB3TestsSuite extends TB3TestSuite { public static class ChangedTB3TestsSuite extends TB3TestSuite {
public ChangedTB3TestsSuite(Class<?> klass) throws InitializationError {
public ChangedTB3TestsSuite(Class<?> klass) throws InitializationError,
IOException {
super(klass, AbstractTB3Test.class, "com.vaadin.tests", super(klass, AbstractTB3Test.class, "com.vaadin.tests",
new String[] { "com.vaadin.tests.integration" }, new String[] { "com.vaadin.tests.integration" },
new ChangedTB3TestLocator()); new ChangedTB3TestLocator());

+ 2
- 0
uitest/src/com/vaadin/tests/tb3/DndActionsTest.java Bestand weergeven

import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;


import com.vaadin.testbench.parallel.BrowserUtil;

/** /**
* Base class for TestBench 3+ tests that use DnD. This class contains utility * Base class for TestBench 3+ tests that use DnD. This class contains utility
* methods for DnD operations. * methods for DnD operations.

+ 44
- 74
uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java Bestand weergeven

package com.vaadin.tests.tb3; package com.vaadin.tests.tb3;


import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;


import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.DesiredCapabilities;


import com.vaadin.testbench.parallel.Browser;
import com.vaadin.testbench.parallel.BrowserUtil;

/** /**
* Base class for tests which should be run on all supported browsers. The test * Base class for tests which should be run on all supported browsers. The test
* is automatically launched for multiple browsers in parallel by the test * is automatically launched for multiple browsers in parallel by the test
public abstract class MultiBrowserTest extends PrivateTB3Configuration { public abstract class MultiBrowserTest extends PrivateTB3Configuration {


protected List<DesiredCapabilities> getBrowsersSupportingWebSocket() { protected List<DesiredCapabilities> getBrowsersSupportingWebSocket() {
List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
getAllBrowsers());

browsers.remove(Browser.IE8.getDesiredCapabilities());
browsers.remove(Browser.IE9.getDesiredCapabilities());
browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());

return browsers;
// No WebSocket support in IE8-9 and PhantomJS
return getBrowserCapabilities(Browser.IE10, Browser.IE11,
Browser.FIREFOX, Browser.CHROME);
} }


protected List<DesiredCapabilities> getBrowsersExcludingPhantomJS() { protected List<DesiredCapabilities> getBrowsersExcludingPhantomJS() {
List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
getAllBrowsers());

browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());

return browsers;
return getBrowserCapabilities(Browser.IE8, Browser.IE9, Browser.IE10,
Browser.IE11, Browser.CHROME, Browser.FIREFOX);
} }


protected List<DesiredCapabilities> getBrowsersExcludingIE() { protected List<DesiredCapabilities> getBrowsersExcludingIE() {
List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
getAllBrowsers());
browsers.remove(Browser.IE8.getDesiredCapabilities());
browsers.remove(Browser.IE9.getDesiredCapabilities());
browsers.remove(Browser.IE10.getDesiredCapabilities());
browsers.remove(Browser.IE11.getDesiredCapabilities());
return getBrowserCapabilities(Browser.FIREFOX, Browser.CHROME,
Browser.PHANTOMJS);
}


return browsers;
protected List<DesiredCapabilities> getBrowsersExcludingIE8() {
return getBrowserCapabilities(Browser.IE9, Browser.IE10, Browser.IE11,
Browser.FIREFOX, Browser.CHROME, Browser.PHANTOMJS);
} }


protected List<DesiredCapabilities> getBrowsersSupportingShiftClick() { protected List<DesiredCapabilities> getBrowsersSupportingShiftClick() {
List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
getAllBrowsers());

// IE supports shift click only when require window focus is true
browsers.remove(Browser.FIREFOX.getDesiredCapabilities());
browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());

return browsers;
return getBrowserCapabilities(Browser.IE8, Browser.IE9, Browser.IE10,
Browser.IE11, Browser.CHROME);
} }


protected List<DesiredCapabilities> getIEBrowsersOnly() { protected List<DesiredCapabilities> getIEBrowsersOnly() {
List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>();
browsers.add(Browser.IE8.getDesiredCapabilities());
browsers.add(Browser.IE9.getDesiredCapabilities());
browsers.add(Browser.IE10.getDesiredCapabilities());
browsers.add(Browser.IE11.getDesiredCapabilities());

return browsers;
return getBrowserCapabilities(Browser.IE8, Browser.IE9, Browser.IE10,
Browser.IE11);
} }


public enum Browser {
FIREFOX(BrowserUtil.firefox(24)), CHROME(BrowserUtil.chrome(40)), SAFARI(
BrowserUtil.safari(7)), IE8(BrowserUtil.ie(8)), IE9(BrowserUtil
.ie(9)), IE10(BrowserUtil.ie(10)), IE11(BrowserUtil.ie(11)), OPERA(
BrowserUtil.opera(17)), PHANTOMJS(BrowserUtil.phantomJS(1));
private DesiredCapabilities desiredCapabilities;

private Browser(DesiredCapabilities desiredCapabilities) {
this.desiredCapabilities = desiredCapabilities;
}

public DesiredCapabilities getDesiredCapabilities() {
return desiredCapabilities;
@Override
public void setDesiredCapabilities(DesiredCapabilities desiredCapabilities) {
if (BrowserUtil.isIE(desiredCapabilities)) {
if (requireWindowFocusForIE()) {
desiredCapabilities.setCapability(
InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
}
if (!usePersistentHoverForIE()) {
desiredCapabilities.setCapability(
InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING,
false);
}
} }
}


static List<DesiredCapabilities> allBrowsers = new ArrayList<DesiredCapabilities>();
static {
allBrowsers.add(Browser.IE8.getDesiredCapabilities());
allBrowsers.add(Browser.IE9.getDesiredCapabilities());
allBrowsers.add(Browser.IE10.getDesiredCapabilities());
allBrowsers.add(Browser.IE11.getDesiredCapabilities());
allBrowsers.add(Browser.FIREFOX.getDesiredCapabilities());
// Uncomment once we have the capability to run on Safari 6
// allBrowsers.add(SAFARI);
allBrowsers.add(Browser.CHROME.getDesiredCapabilities());
allBrowsers.add(Browser.PHANTOMJS.getDesiredCapabilities());
// Re-enable this when it is possible to run on a modern Opera version
// allBrowsers.add(Browser.OPERA.getDesiredCapabilities());
}

/**
* @return all supported browsers which are actively tested
*/
public static List<DesiredCapabilities> getAllBrowsers() {
return Collections.unmodifiableList(allBrowsers);
super.setDesiredCapabilities(desiredCapabilities);
} }


@Override @Override
public List<DesiredCapabilities> getBrowsersToTest() { public List<DesiredCapabilities> getBrowsersToTest() {
// Return a copy so sub classes can do
// super.getBrowseresToTest().remove(something)
return new ArrayList<DesiredCapabilities>(getAllBrowsers());
// Uncomment Safari and Opera if those become tested browsers again.
return getBrowserCapabilities(Browser.IE8, Browser.IE9, Browser.IE10,
Browser.IE11, Browser.FIREFOX, Browser.CHROME,
Browser.PHANTOMJS /* , Browser.SAFARI, Browser.OPERA */);
} }


protected List<DesiredCapabilities> getBrowserCapabilities(
Browser... browsers) {
List<DesiredCapabilities> capabilities = new ArrayList<DesiredCapabilities>();
for (Browser browser : browsers) {
capabilities.add(browser.getDesiredCapabilities());
}
return capabilities;
}
} }

+ 1
- 1
uitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java Bestand weergeven

import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException; import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session; import com.jcraft.jsch.Session;
import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.testbench.parallel.TestCategory;


@TestCategory("push") @TestCategory("push")
public abstract class MultiBrowserTestWithProxy extends MultiBrowserTest { public abstract class MultiBrowserTestWithProxy extends MultiBrowserTest {

+ 0
- 0
uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java Bestand weergeven


Some files were not shown because too many files changed in this diff

Laden…
Annuleren
Opslaan