From dcb4792ac63b16ee31556668c05e2c64ea22a763 Mon Sep 17 00:00:00 2001 From: Alexei Barantsev Date: Thu, 23 Nov 2017 00:59:24 +0300 Subject: [PATCH] Ignoring configurations that does not match current platform. Also, apparently, node does not read configuration from json resource, it is defined in the code. --- .../configuration/GridNodeConfiguration.java | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/java/server/src/org/openqa/grid/internal/utils/configuration/GridNodeConfiguration.java b/java/server/src/org/openqa/grid/internal/utils/configuration/GridNodeConfiguration.java index e2fd30df743f5..50902d42fc486 100644 --- a/java/server/src/org/openqa/grid/internal/utils/configuration/GridNodeConfiguration.java +++ b/java/server/src/org/openqa/grid/internal/utils/configuration/GridNodeConfiguration.java @@ -51,7 +51,9 @@ import java.net.URL; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.UUID; +import java.util.stream.Collectors; public class GridNodeConfiguration extends GridConfiguration { public static final String DEFAULT_NODE_CONFIG_FILE = "defaults/DefaultNodeWebDriver.json"; @@ -129,15 +131,24 @@ static final List getCapabilities() { DesiredCapabilities firefox = new DesiredCapabilities(); firefox.setBrowserName("firefox"); + firefox.setCapability("marionette", true); firefox.setCapability("maxInstances", 5); firefox.setCapability("seleniumProtocol", "WebDriver"); DesiredCapabilities ie = new DesiredCapabilities(); ie.setBrowserName("internet explorer"); + ie.setPlatform(Platform.WINDOWS); ie.setCapability("maxInstances", 1); ie.setCapability("seleniumProtocol", "WebDriver"); - return Lists.newArrayList(chrome, firefox, ie); + DesiredCapabilities safari = new DesiredCapabilities(); + safari.setBrowserName("safari"); + safari.setCapability("technologyPreview", false); + safari.setPlatform(Platform.MAC); + safari.setCapability("maxInstances", 1); + safari.setCapability("seleniumProtocol", "WebDriver"); + + return Lists.newArrayList(chrome, firefox, ie, safari); } } @@ -515,15 +526,15 @@ public void fixUpCapabilities() { } Platform current = Platform.getCurrent(); - for (MutableCapabilities cap : capabilities) { - if (cap.getPlatform() == null) { - cap.setCapability(CapabilityType.PLATFORM, current); - } - if (cap.getCapability(RegistrationRequest.SELENIUM_PROTOCOL) == null) { - cap.setCapability(RegistrationRequest.SELENIUM_PROTOCOL, SeleniumProtocol.WebDriver.toString()); - } - cap.setCapability(CONFIG_UUID_CAPABILITY, UUID.randomUUID().toString()); - } + capabilities = capabilities.stream() + .peek(cap -> cap.setCapability(CapabilityType.PLATFORM, + Optional.ofNullable(cap.getPlatform()).orElse(current))) + .filter(cap -> current.is(cap.getPlatform())) + .peek(cap -> cap.setCapability(RegistrationRequest.SELENIUM_PROTOCOL, + Optional.ofNullable(cap.getCapability(RegistrationRequest.SELENIUM_PROTOCOL)) + .orElse(SeleniumProtocol.WebDriver.toString()))) + .peek(cap -> cap.setCapability(CONFIG_UUID_CAPABILITY, UUID.randomUUID().toString())) + .collect(Collectors.toList()); } public void fixUpHost() {