Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

package org.openqa.selenium.grid.data;

import static org.openqa.selenium.remote.CapabilityType.ENABLE_DOWNLOADS;

import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
Expand Down Expand Up @@ -129,13 +131,13 @@ private Boolean initialMatch(Capabilities stereotype, Capabilities capabilities)

private Boolean managedDownloadsEnabled(Capabilities stereotype, Capabilities capabilities) {
// First lets check if user wanted a Node with managed downloads enabled
Object raw = capabilities.getCapability("se:downloadsEnabled");
Object raw = capabilities.getCapability(ENABLE_DOWNLOADS);
if (raw == null || !Boolean.parseBoolean(raw.toString())) {
// User didn't ask. So lets move on to the next matching criteria
return true;
}
// User wants managed downloads enabled to be done on this Node, let's check the stereotype
raw = stereotype.getCapability("se:downloadsEnabled");
raw = stereotype.getCapability(ENABLE_DOWNLOADS);
// Try to match what the user requested
return raw != null && Boolean.parseBoolean(raw.toString());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

package org.openqa.selenium.grid.node.config;

import static org.openqa.selenium.remote.CapabilityType.ENABLE_DOWNLOADS;

import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableMap;
Expand Down Expand Up @@ -749,8 +751,7 @@ public Capabilities enhanceStereotype(Capabilities capabilities) {
.setCapability("se:noVncPort", noVncPort());
}
if (isManagedDownloadsEnabled() && canConfigureDownloadsDir(capabilities)) {
capabilities =
new PersistentCapabilities(capabilities).setCapability("se:downloadsEnabled", true);
capabilities = new PersistentCapabilities(capabilities).setCapability(ENABLE_DOWNLOADS, true);
}
return capabilities;
}
Expand Down
3 changes: 2 additions & 1 deletion java/src/org/openqa/selenium/grid/node/local/LocalNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import static org.openqa.selenium.grid.data.Availability.DRAINING;
import static org.openqa.selenium.grid.data.Availability.UP;
import static org.openqa.selenium.grid.node.CapabilityResponseEncoder.getEncoder;
import static org.openqa.selenium.remote.CapabilityType.ENABLE_DOWNLOADS;
import static org.openqa.selenium.remote.HttpSessionId.getSessionId;
import static org.openqa.selenium.remote.RemoteTags.CAPABILITIES;
import static org.openqa.selenium.remote.RemoteTags.SESSION_ID;
Expand Down Expand Up @@ -575,7 +576,7 @@ public Either<WebDriverException, CreateSessionResponse> newSession(
}

private boolean managedDownloadsRequested(Capabilities capabilities) {
Object downloadsEnabled = capabilities.getCapability("se:downloadsEnabled");
Object downloadsEnabled = capabilities.getCapability(ENABLE_DOWNLOADS);
return managedDownloadsEnabled
&& downloadsEnabled != null
&& Boolean.parseBoolean(downloadsEnabled.toString());
Expand Down
6 changes: 4 additions & 2 deletions java/test/org/openqa/selenium/chrome/ChromeOptionsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import static org.openqa.selenium.chromium.ChromiumDriverLogLevel.OFF;
import static org.openqa.selenium.chromium.ChromiumDriverLogLevel.SEVERE;
import static org.openqa.selenium.remote.CapabilityType.ACCEPT_INSECURE_CERTS;
import static org.openqa.selenium.remote.CapabilityType.ENABLE_DOWNLOADS;
import static org.openqa.selenium.remote.CapabilityType.TIMEOUTS;

import java.io.File;
Expand Down Expand Up @@ -98,7 +99,7 @@ void canAddW3CCompliantOptions() {
assertThat(mappedOptions.get("acceptInsecureCerts")).isEqualTo(true);
assertThat(mappedOptions.get("pageLoadStrategy")).hasToString("eager");
assertThat(mappedOptions.get("strictFileInteractability")).isEqualTo(true);
assertThat(mappedOptions.get("se:downloadsEnabled")).isEqualTo(true);
assertThat(mappedOptions.get(ENABLE_DOWNLOADS)).isEqualTo(true);

Map<String, Long> expectedTimeouts = new HashMap<>();
expectedTimeouts.put("implicit", 1000L);
Expand Down Expand Up @@ -239,7 +240,8 @@ void mergingOptionsWithMutableCapabilities() {

MutableCapabilities one = new MutableCapabilities();

ChromeOptions options = new ChromeOptions();
org.openqa.selenium.chrome.ChromeOptions options =
new org.openqa.selenium.chrome.ChromeOptions();
options.addArguments("verbose");
options.addArguments("silent");
options.setExperimentalOption("opt1", "val1");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
package org.openqa.selenium.grid.data;

import static org.assertj.core.api.Assertions.assertThat;
import static org.openqa.selenium.remote.CapabilityType.ENABLE_DOWNLOADS;

import org.junit.jupiter.api.Test;
import org.openqa.selenium.Capabilities;
Expand Down Expand Up @@ -198,15 +199,15 @@ void fullMatchExtensionCaps() {
"firefox",
CapabilityType.PLATFORM_NAME,
Platform.WINDOWS,
"se:downloadsEnabled",
ENABLE_DOWNLOADS,
true);
Capabilities capabilities =
new ImmutableCapabilities(
CapabilityType.BROWSER_NAME,
"firefox",
CapabilityType.PLATFORM_NAME,
Platform.WINDOWS,
"se:downloadsEnabled",
ENABLE_DOWNLOADS,
true);
assertThat(slotMatcher.matches(stereotype, capabilities)).isTrue();
}
Expand Down Expand Up @@ -307,29 +308,25 @@ void matchesBrowser() {
@Test
void matchDownloadsForRegularTestMatchingAgainstADownloadAwareNode() {
Capabilities stereotype =
new ImmutableCapabilities(
CapabilityType.BROWSER_NAME, "chrome", "se:downloadsEnabled", true);
new ImmutableCapabilities(CapabilityType.BROWSER_NAME, "chrome", ENABLE_DOWNLOADS, true);
Capabilities capabilities = new ImmutableCapabilities(CapabilityType.BROWSER_NAME, "chrome");
assertThat(slotMatcher.matches(stereotype, capabilities)).isTrue();
}

@Test
void matchDownloadsForAutoDownloadTestMatchingAgainstADownloadAwareNode() {
Capabilities stereotype =
new ImmutableCapabilities(
CapabilityType.BROWSER_NAME, "chrome", "se:downloadsEnabled", true);
new ImmutableCapabilities(CapabilityType.BROWSER_NAME, "chrome", ENABLE_DOWNLOADS, true);
Capabilities capabilities =
new ImmutableCapabilities(
CapabilityType.BROWSER_NAME, "chrome", "se:downloadsEnabled", true);
new ImmutableCapabilities(CapabilityType.BROWSER_NAME, "chrome", ENABLE_DOWNLOADS, true);
assertThat(slotMatcher.matches(stereotype, capabilities)).isTrue();
}

@Test
void ensureNoMatchFOrDownloadAwareTestMatchingAgainstOrdinaryNode() {
Capabilities stereotype = new ImmutableCapabilities(CapabilityType.BROWSER_NAME, "chrome");
Capabilities capabilities =
new ImmutableCapabilities(
CapabilityType.BROWSER_NAME, "chrome", "se:downloadsEnabled", true);
new ImmutableCapabilities(CapabilityType.BROWSER_NAME, "chrome", ENABLE_DOWNLOADS, true);
assertThat(slotMatcher.matches(stereotype, capabilities)).isFalse();
}

Expand Down
5 changes: 3 additions & 2 deletions java/test/org/openqa/selenium/grid/node/NodeTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.assertj.core.api.InstanceOfAssertFactories.MAP;
import static org.openqa.selenium.json.Json.MAP_TYPE;
import static org.openqa.selenium.remote.CapabilityType.ENABLE_DOWNLOADS;
import static org.openqa.selenium.remote.http.Contents.string;
import static org.openqa.selenium.remote.http.HttpMethod.DELETE;
import static org.openqa.selenium.remote.http.HttpMethod.GET;
Expand Down Expand Up @@ -124,8 +125,8 @@ public void setUp(TestInfo testInfo) throws URISyntaxException {
stereotype = new ImmutableCapabilities("browserName", "cheese");
caps = new ImmutableCapabilities("browserName", "cheese");
if (isDownloadsTestCase) {
stereotype = new ImmutableCapabilities("browserName", "chrome", "se:downloadsEnabled", true);
caps = new ImmutableCapabilities("browserName", "chrome", "se:downloadsEnabled", true);
stereotype = new ImmutableCapabilities("browserName", "chrome", ENABLE_DOWNLOADS, true);
caps = new ImmutableCapabilities("browserName", "chrome", ENABLE_DOWNLOADS, true);
}

uri = new URI("http://localhost:1234");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import static org.junit.jupiter.api.Assertions.fail;
import static org.junit.jupiter.api.Assumptions.assumeFalse;
import static org.junit.jupiter.api.Assumptions.assumeTrue;
import static org.openqa.selenium.remote.CapabilityType.ENABLE_DOWNLOADS;

import com.google.common.collect.ImmutableMap;
import java.io.StringReader;
Expand Down Expand Up @@ -156,7 +157,7 @@ boolean isDownloadEnabled(WebDriverInfo driver, String customMsg) {
.filter(caps -> expected.equalsIgnoreCase(caps.getBrowserName()))
.findFirst()
.orElseThrow(() -> new AssertionError("Unable to find " + customMsg + " info"));
return Optional.ofNullable(found.getCapability("se:downloadsEnabled"))
return Optional.ofNullable(found.getCapability(ENABLE_DOWNLOADS))
.map(value -> Boolean.parseBoolean(value.toString()))
.orElse(Boolean.FALSE);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
package org.openqa.selenium.grid.router;

import static org.assertj.core.api.Assertions.assertThat;
import static org.openqa.selenium.remote.CapabilityType.ENABLE_DOWNLOADS;
import static org.openqa.selenium.testing.drivers.Browser.IE;
import static org.openqa.selenium.testing.drivers.Browser.SAFARI;

Expand Down Expand Up @@ -75,8 +76,7 @@ public void setupServers() {
options.setEnableDownloads(true);

capabilities =
new PersistentCapabilities(browser.getCapabilities())
.setCapability("se:downloadsEnabled", true);
new PersistentCapabilities(browser.getCapabilities()).setCapability(ENABLE_DOWNLOADS, true);

Deployment deployment =
DeploymentTypes.STANDALONE.start(
Expand Down Expand Up @@ -194,7 +194,7 @@ void errorsWhenCapabilityMissing() {

Capabilities caps =
new PersistentCapabilities(Objects.requireNonNull(browser).getCapabilities())
.setCapability("se:downloadsEnabled", false);
.setCapability(ENABLE_DOWNLOADS, false);

WebDriver driver = new RemoteWebDriver(gridUrl, caps);
Assertions.assertThrows(
Expand Down
4 changes: 2 additions & 2 deletions java/test/org/openqa/selenium/grid/router/StressTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import static java.util.concurrent.TimeUnit.MINUTES;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.openqa.selenium.remote.CapabilityType.ENABLE_DOWNLOADS;

import java.io.StringReader;
import java.util.LinkedList;
Expand Down Expand Up @@ -123,8 +124,7 @@ void multipleSimultaneousSessions() throws Exception {
.oneOf(
browser
.getCapabilities()
.merge(
new MutableCapabilities(Map.of("se:downloadsEnabled", true))))
.merge(new MutableCapabilities(Map.of(ENABLE_DOWNLOADS, true))))
.address(server.getUrl())
.build();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import static org.openqa.selenium.remote.CapabilityType.ENABLE_DOWNLOADS;
import static org.openqa.selenium.remote.WebDriverFixture.echoCapabilities;
import static org.openqa.selenium.remote.WebDriverFixture.errorResponder;
import static org.openqa.selenium.remote.WebDriverFixture.exceptionResponder;
Expand Down Expand Up @@ -814,7 +815,7 @@ void getDownloadableFilesReturnsType() {

WebDriverFixture fixture =
new WebDriverFixture(
new ImmutableCapabilities("se:downloadsEnabled", true),
new ImmutableCapabilities(ENABLE_DOWNLOADS, true),
echoCapabilities,
valueResponder(ImmutableMap.of("names", expectedFiles)));

Expand Down