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
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ Asaf Mesika <asaf.mesika@gmail.com>
Sergei Egorov <bsideup@gmail.com>
Pete Cornish <outofcoffee@gmail.com>
Miguel Gonzalez Sanchez <miguel-gonzalez@gmx.de>
Julien LAMY <julien.prolyma@gmail.com>
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file.
- Fixed `getServicePort` on `DockerComposeContainer` throws NullPointerException if service instance number in not used. ([\#619](https://github.com/testcontainers/testcontainers-java/issues/619))

### Changed
- Added compatibility with selenium greater than 3.X ([\#611](https://github.com/testcontainers/testcontainers-java/issues/611))
- Abstracted and changed database init script functionality to support use of SQL-like scripts with non-JDBC connections. ([\#551](https://github.com/testcontainers/testcontainers-java/pull/551))
- Added `JdbcDatabaseContainer(Future)` constructor. ([\#543](https://github.com/testcontainers/testcontainers-java/issues/543))
- Mark DockerMachineClientProviderStrategy as not persistable ([\#593](https://github.com/testcontainers/testcontainers-java/pull/593))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,12 @@ public static String determineClasspathSeleniumVersion() {
Manifest manifest = new Manifest();
manifest.read(is);

Attributes buildInfo = manifest.getAttributes("Build-Info");
if (buildInfo != null) {
String seleniumVersion = buildInfo.getValue("Selenium-Version");

if (seleniumVersion != null) {
seleniumVersions.add(seleniumVersion);
LOGGER.info("Selenium API version {} detected on classpath", seleniumVersion);
}
String seleniumVersion = getSeleniumVersionFromManifest(manifest);
if (seleniumVersion != null) {
seleniumVersions.add(seleniumVersion);
LOGGER.info("Selenium API version {} detected on classpath", seleniumVersion);
}
}

}

} catch (Exception e) {
Expand All @@ -67,4 +62,26 @@ public static String determineClasspathSeleniumVersion() {

return foundVersion;
}

/**
* Read Manifest to get Selenium Version.
* @param manifest
* @return Selenium Version detected
*/
public static String getSeleniumVersionFromManifest(Manifest manifest) {
String seleniumVersion = null;
Attributes buildInfo = manifest.getAttributes("Build-Info");
if (buildInfo != null) {
seleniumVersion = buildInfo.getValue("Selenium-Version");
}

// Compatibility Selenium > 3.X
if(seleniumVersion == null) {
Attributes seleniumInfo = manifest.getAttributes("Selenium");
if (seleniumInfo != null) {
seleniumVersion = seleniumInfo.getValue("Selenium-Version");
}
}
return seleniumVersion;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package org.testcontainers.junit;

import org.junit.Test;
import org.testcontainers.containers.SeleniumUtils;

import java.io.IOException;
import java.util.jar.Manifest;

import static org.rnorth.visibleassertions.VisibleAssertions.*;


/**
* Created by Julien LAMY
*/
public class SeleniumUtilsTest {

@Test
public void detectSeleniumVersionUnder3() throws IOException {
checkSeleniumVersionDetected("manifests/MANIFEST-2.45.0.MF", "2.45.0");
}

@Test
public void detectSeleniumVersionUpper3() throws IOException {
checkSeleniumVersionDetected("manifests/MANIFEST-3.5.2.MF", "3.5.2");
}

/**
* Check if Selenium Version detected is the correct one.
* @param urlManifest : manifest file
* @throws IOException
*/
private void checkSeleniumVersionDetected(String urlManifest, String expectedVersion) throws IOException {
Manifest manifest = new Manifest();
manifest.read(this.getClass().getClassLoader().getResourceAsStream(urlManifest));
String seleniumVersion = SeleniumUtils.getSeleniumVersionFromManifest(manifest);
assertEquals("Check if Selenium Version detected is the correct one.", expectedVersion, seleniumVersion);
}

}
11 changes: 11 additions & 0 deletions modules/selenium/src/test/resources/manifests/MANIFEST-2.45.0.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Manifest-Version: 1.0
Built-By: linman
Build-Jdk: 1.7.0_65
Created-By: Apache Maven 3.1.1
Archiver-Version: Plexus Archiver

Name: Build-Info
Selenium-Revision: 5017cb8e7ca8e37638dc3091b2440b90a1d8686f
Selenium-Version: 2.45.0
Selenium-Build-Time: 2015-02-27 09:10:26

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Manifest-Version: 1.0

Name: Build-Info
Build-Revision: 21ac65f960
Build-Time: 2017-08-21T20:29:34.71Z
Build-User: lamaille
Selenium-Version: 3.5.2