]> source.dussan.org Git - vaadin-framework.git/commitdiff
Resolve concurrency issue in running TB3 tests
authorArtur Signell <artur@vaadin.com>
Thu, 17 Oct 2013 12:21:09 +0000 (15:21 +0300)
committerArtur Signell <artur@vaadin.com>
Thu, 17 Oct 2013 12:44:07 +0000 (15:44 +0300)
Ensure nobody can update the static collections of browsers to run on
but that sub classes can restrict which browsers to run on using
super.getBrowersToTest().remove(something)

Change-Id: Iad520840801fbeb719bae51050714c0e47148804

uitest/src/com/vaadin/tests/actions/ActionsOnInvisibleComponentsTest.java
uitest/src/com/vaadin/tests/push/BasicPushWebsocketTest.java
uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java
uitest/src/com/vaadin/tests/tb3/WebsocketTest.java

index bb2a7d09954a799441d5da46e3d1063624658acc..ca00c998a62177f2e372e1d510acd5ad2ca6a6e9 100644 (file)
@@ -1,6 +1,6 @@
 package com.vaadin.tests.actions;
 
-import java.util.Collection;
+import java.util.List;
 
 import org.junit.Assert;
 import org.junit.Test;
@@ -15,8 +15,8 @@ public class ActionsOnInvisibleComponentsTest extends MultiBrowserTest {
 
     // This method should be removed once #12785 is fixed
     @Override
-    public Collection<DesiredCapabilities> getBrowsersToTest() {
-        Collection<DesiredCapabilities> browsers = super.getBrowsersToTest();
+    public List<DesiredCapabilities> getBrowsersToTest() {
+        List<DesiredCapabilities> browsers = super.getBrowsersToTest();
         // sendKeys does nothing on these browsers
         browsers.remove(BrowserUtil.firefox(24));
         browsers.remove(BrowserUtil.ie(8));
index ae4e64ad6b5976c10ea5ff1f9bcb6f1860fd27bb..dd0a147d9918f2d120f9474fcc44d75d902b82f6 100644 (file)
@@ -15,7 +15,7 @@
  */
 package com.vaadin.tests.push;
 
-import java.util.Collection;
+import java.util.List;
 
 import org.openqa.selenium.remote.DesiredCapabilities;
 
@@ -23,7 +23,7 @@ import com.vaadin.tests.tb3.WebsocketTest;
 
 public class BasicPushWebsocketTest extends BasicPushTest {
     @Override
-    public Collection<DesiredCapabilities> getBrowsersToTest() {
+    public List<DesiredCapabilities> getBrowsersToTest() {
         return WebsocketTest.getWebsocketBrowsers();
     }
 }
\ No newline at end of file
index 7584f36e2818ce0a207cce595e6e9fb8a4c55bff..fbb04c202236a3b2ce49f742bc4750a433e9e65c 100644 (file)
@@ -17,8 +17,8 @@
 package com.vaadin.tests.tb3;
 
 import java.net.URL;
-import java.util.Collection;
 import java.util.Collections;
+import java.util.List;
 import java.util.logging.Logger;
 
 import org.junit.After;
@@ -214,8 +214,8 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
      * 
      * @return The browsers to run the test on
      */
-    public Collection<DesiredCapabilities> getBrowsersToTest() {
-        return Collections.singleton(BrowserUtil
+    public List<DesiredCapabilities> getBrowsersToTest() {
+        return Collections.singletonList(BrowserUtil
                 .firefox(MultiBrowserTest.TESTED_FIREFOX_VERSION));
 
     }
index 400353978254a0bae6f523dd0ecef57ac1b7363f..040d0156a35fe3dba6af04c3e3e7efb0ad0169cf 100644 (file)
@@ -17,7 +17,7 @@
 package com.vaadin.tests.tb3;
 
 import java.util.ArrayList;
-import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 
 import org.openqa.selenium.remote.DesiredCapabilities;
@@ -57,19 +57,20 @@ public abstract class MultiBrowserTest extends PrivateTB3Configuration {
         // Re-enable this when it is possible to run on a modern Opera version
         // (15+)
         // allBrowsers.add(BrowserUtil.opera(15));
-
     }
 
     /**
      * @return all supported browsers which are actively tested
      */
     public static List<DesiredCapabilities> getAllBrowsers() {
-        return allBrowsers;
+        return Collections.unmodifiableList(allBrowsers);
     }
 
     @Override
-    public Collection<DesiredCapabilities> getBrowsersToTest() {
-        return allBrowsers;
+    public List<DesiredCapabilities> getBrowsersToTest() {
+        // Return a copy so sub classes can do
+        // super.getBrowseresToTest().remove(something)
+        return new ArrayList<DesiredCapabilities>(getAllBrowsers());
     }
 
 }
index 5c6ea329f5e948b8baeda893ca43407e712960f9..26fef667cd671fae8ec89f3d966004f8052df9a3 100644 (file)
@@ -20,7 +20,6 @@
 package com.vaadin.tests.tb3;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
@@ -44,8 +43,8 @@ public abstract class WebsocketTest extends PrivateTB3Configuration {
      * @return All supported browsers which are actively tested and support
      *         websockets
      */
-    public static Collection<DesiredCapabilities> getWebsocketBrowsers() {
-        return Collections.unmodifiableCollection(websocketBrowsers);
+    public static List<DesiredCapabilities> getWebsocketBrowsers() {
+        return Collections.unmodifiableList(websocketBrowsers);
     }
 
     /*
@@ -54,7 +53,7 @@ public abstract class WebsocketTest extends PrivateTB3Configuration {
      * @see com.vaadin.tests.tb3.AbstractTB3Test#getBrowserToRunOn()
      */
     @Override
-    public Collection<DesiredCapabilities> getBrowsersToTest() {
-        return getWebsocketBrowsers();
+    public List<DesiredCapabilities> getBrowsersToTest() {
+        return new ArrayList<DesiredCapabilities>(getWebsocketBrowsers());
     }
 }