From 66dbc5a743e240d9d01b6bdd073380aef18838d3 Mon Sep 17 00:00:00 2001 From: Ondrej Machulda Date: Thu, 9 Sep 2021 16:55:55 +0200 Subject: [PATCH 1/3] Download Selenium server releases from GitHub --- CHANGELOG.md | 3 + src-tests/AssertDownloadableTrait.php | 3 +- src-tests/Selenium/DownloaderTest.php | 18 +- .../Selenium/Fixtures/releases-latest.json | 244 ++++ .../releases-response-invalid-version.xml | 40 - .../Fixtures/releases-response-missing.json | 1 + .../Fixtures/releases-response-missing.xml | 620 -------- .../Selenium/Fixtures/releases-response.xml | 1259 ----------------- src-tests/Selenium/VersionResolverTest.php | 96 +- src/Selenium/Downloader.php | 26 +- src/Selenium/VersionResolver.php | 80 +- src/Utils/FileGetContentsWrapper.php | 11 +- 12 files changed, 301 insertions(+), 2100 deletions(-) create mode 100644 src-tests/Selenium/Fixtures/releases-latest.json delete mode 100644 src-tests/Selenium/Fixtures/releases-response-invalid-version.xml create mode 100644 src-tests/Selenium/Fixtures/releases-response-missing.json delete mode 100644 src-tests/Selenium/Fixtures/releases-response-missing.xml delete mode 100644 src-tests/Selenium/Fixtures/releases-response.xml diff --git a/CHANGELOG.md b/CHANGELOG.md index e635d6e1..9b6a2e2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ ## Unreleased +### Changed +- Download Selenium server releases from GitHub (see [announcement](https://www.selenium.dev/blog/2021/downloads-moving-to-github-releases/)). + ### Removed - `resolveRequiredCapabilities()` method from `CustomCapabilitiesResolverInterface`, as this feature is not fully used in php-webdriver anyway. diff --git a/src-tests/AssertDownloadableTrait.php b/src-tests/AssertDownloadableTrait.php index e7baf6ba..c5c8483b 100644 --- a/src-tests/AssertDownloadableTrait.php +++ b/src-tests/AssertDownloadableTrait.php @@ -8,9 +8,8 @@ protected function assertIsDownloadable(string $url): void { $context = stream_context_create(['http' => ['method' => 'HEAD', 'ignore_errors' => true]]); $fd = fopen($url, 'rb', false, $context); - $responseCode = $http_response_header[0]; fclose($fd); - $this->assertStringContainsString('200 OK', $responseCode, 'Error downloading from "' . $url . '"'); + $this->assertContains('HTTP/1.1 200 OK', $http_response_header, 'Error downloading from "' . $url . '"'); } } diff --git a/src-tests/Selenium/DownloaderTest.php b/src-tests/Selenium/DownloaderTest.php index 4b8b48db..918467f1 100644 --- a/src-tests/Selenium/DownloaderTest.php +++ b/src-tests/Selenium/DownloaderTest.php @@ -49,7 +49,7 @@ public function testShouldAssembleUrlToDownload(string $version, string $expecte $downloader = new Downloader(__DIR__ . '/Fixtures', Version::createFromString($version)); $this->assertSame( - 'https://selenium-release.storage.googleapis.com' . $expectedPath, + 'https://github.com/SeleniumHQ/selenium/releases/download/' . $expectedPath, $downloader->getFileUrl() ); } @@ -60,12 +60,12 @@ public function testShouldAssembleUrlToDownload(string $version, string $expecte public function provideVersions(): array { return [ - ['2.53.0', '/2.53/selenium-server-standalone-2.53.0.jar'], - ['2.53.1', '/2.53/selenium-server-standalone-2.53.1.jar'], - ['3.0.0-beta2', '/3.0-beta2/selenium-server-standalone-3.0.0-beta2.jar'], - ['3.0.0', '/3.0/selenium-server-standalone-3.0.0.jar'], - ['4.0.0-beta-1', '/4.0-beta-1/selenium-server-4.0.0-beta-1.jar'], - ['4.0.0', '/4.0/selenium-server-4.0.0.jar'], + ['2.53.0', 'selenium-2.53.0/selenium-server-standalone-2.53.0.jar'], + ['2.53.1', 'selenium-2.53.1/selenium-server-standalone-2.53.1.jar'], + ['3.0.0', 'selenium-3.0.0/selenium-server-standalone-3.0.0.jar'], + ['3.141.59', 'selenium-3.141.59/selenium-server-standalone-3.141.59.jar'], + ['4.0.0-beta-4', 'selenium-4.0.0-beta-4/selenium-server-4.0.0-beta-4.jar'], + ['4.0.0', 'selenium-4.0.0/selenium-server-4.0.0.jar'], ]; } @@ -94,7 +94,7 @@ public function testShouldStoreDownloadedFileToExpectedLocation(): void $expectedFile = __DIR__ . '/Fixtures/selenium-server-standalone-1.33.7.jar'; $this->assertFileNotExists($expectedFile, 'File already exists, though it should be created only by the test'); - $this->mockGetHeadersToReturnHeader('HTTP/1.0 200 OK'); + $this->mockGetHeadersToReturnHeader('HTTP/1.1 200 OK'); $this->assertEquals(9, $downloader->download()); $this->assertFileExists($expectedFile); @@ -141,7 +141,7 @@ public function testShouldCreateTargetDirectoryIfNotExists(): void ->method('getFileUrl') ->willReturn(__DIR__ . '/Fixtures/dummy-file.jar'); - $this->mockGetHeadersToReturnHeader('HTTP/1.0 200 OK'); + $this->mockGetHeadersToReturnHeader('HTTP/1.1 200 OK'); $downloader->download(); diff --git a/src-tests/Selenium/Fixtures/releases-latest.json b/src-tests/Selenium/Fixtures/releases-latest.json new file mode 100644 index 00000000..8d06619c --- /dev/null +++ b/src-tests/Selenium/Fixtures/releases-latest.json @@ -0,0 +1,244 @@ +{ + "url": "https://api.github.com/repos/SeleniumHQ/selenium/releases/14625132", + "assets_url": "https://api.github.com/repos/SeleniumHQ/selenium/releases/14625132/assets", + "upload_url": "https://uploads.github.com/repos/SeleniumHQ/selenium/releases/14625132/assets{?name,label}", + "html_url": "https://github.com/SeleniumHQ/selenium/releases/tag/selenium-3.141.59", + "id": 14625132, + "author": { + "login": "ddavison", + "id": 2972876, + "node_id": "MDQ6VXNlcjI5NzI4NzY=", + "avatar_url": "https://avatars.githubusercontent.com/u/2972876?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ddavison", + "html_url": "https://github.com/ddavison", + "followers_url": "https://api.github.com/users/ddavison/followers", + "following_url": "https://api.github.com/users/ddavison/following{/other_user}", + "gists_url": "https://api.github.com/users/ddavison/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ddavison/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ddavison/subscriptions", + "organizations_url": "https://api.github.com/users/ddavison/orgs", + "repos_url": "https://api.github.com/users/ddavison/repos", + "events_url": "https://api.github.com/users/ddavison/events{/privacy}", + "received_events_url": "https://api.github.com/users/ddavison/received_events", + "type": "User", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE0NjI1MTMy", + "tag_name": "selenium-3.141.59", + "target_commitish": "master", + "name": "Selenium 3.141.59", + "draft": false, + "prerelease": false, + "created_at": "2018-11-14T08:00:10Z", + "published_at": "2018-12-19T20:46:40Z", + "assets": [ + { + "url": "https://api.github.com/repos/SeleniumHQ/selenium/releases/assets/42658262", + "id": 42658262, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjU4MjYy", + "name": "IEDriverServer_Win32_3.141.59.zip", + "label": null, + "uploader": { + "login": "shs96c", + "id": 28229, + "node_id": "MDQ6VXNlcjI4MjI5", + "avatar_url": "https://avatars.githubusercontent.com/u/28229?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/shs96c", + "html_url": "https://github.com/shs96c", + "followers_url": "https://api.github.com/users/shs96c/followers", + "following_url": "https://api.github.com/users/shs96c/following{/other_user}", + "gists_url": "https://api.github.com/users/shs96c/gists{/gist_id}", + "starred_url": "https://api.github.com/users/shs96c/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/shs96c/subscriptions", + "organizations_url": "https://api.github.com/users/shs96c/orgs", + "repos_url": "https://api.github.com/users/shs96c/repos", + "events_url": "https://api.github.com/users/shs96c/events{/privacy}", + "received_events_url": "https://api.github.com/users/shs96c/received_events", + "type": "User", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1093522, + "download_count": 72, + "created_at": "2021-08-17T16:22:47Z", + "updated_at": "2021-08-17T16:22:50Z", + "browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-3.141.59/IEDriverServer_Win32_3.141.59.zip" + }, + { + "url": "https://api.github.com/repos/SeleniumHQ/selenium/releases/assets/42658255", + "id": 42658255, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjU4MjU1", + "name": "IEDriverServer_x64_3.141.59.zip", + "label": null, + "uploader": { + "login": "shs96c", + "id": 28229, + "node_id": "MDQ6VXNlcjI4MjI5", + "avatar_url": "https://avatars.githubusercontent.com/u/28229?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/shs96c", + "html_url": "https://github.com/shs96c", + "followers_url": "https://api.github.com/users/shs96c/followers", + "following_url": "https://api.github.com/users/shs96c/following{/other_user}", + "gists_url": "https://api.github.com/users/shs96c/gists{/gist_id}", + "starred_url": "https://api.github.com/users/shs96c/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/shs96c/subscriptions", + "organizations_url": "https://api.github.com/users/shs96c/orgs", + "repos_url": "https://api.github.com/users/shs96c/repos", + "events_url": "https://api.github.com/users/shs96c/events{/privacy}", + "received_events_url": "https://api.github.com/users/shs96c/received_events", + "type": "User", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 1227653, + "download_count": 33, + "created_at": "2021-08-17T16:22:39Z", + "updated_at": "2021-08-17T16:22:47Z", + "browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-3.141.59/IEDriverServer_x64_3.141.59.zip" + }, + { + "url": "https://api.github.com/repos/SeleniumHQ/selenium/releases/assets/42658263", + "id": 42658263, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjU4MjYz", + "name": "selenium-html-runner-3.141.59.jar", + "label": null, + "uploader": { + "login": "shs96c", + "id": 28229, + "node_id": "MDQ6VXNlcjI4MjI5", + "avatar_url": "https://avatars.githubusercontent.com/u/28229?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/shs96c", + "html_url": "https://github.com/shs96c", + "followers_url": "https://api.github.com/users/shs96c/followers", + "following_url": "https://api.github.com/users/shs96c/following{/other_user}", + "gists_url": "https://api.github.com/users/shs96c/gists{/gist_id}", + "starred_url": "https://api.github.com/users/shs96c/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/shs96c/subscriptions", + "organizations_url": "https://api.github.com/users/shs96c/orgs", + "repos_url": "https://api.github.com/users/shs96c/repos", + "events_url": "https://api.github.com/users/shs96c/events{/privacy}", + "received_events_url": "https://api.github.com/users/shs96c/received_events", + "type": "User", + "site_admin": false + }, + "content_type": "application/java-archive", + "state": "uploaded", + "size": 13565180, + "download_count": 21, + "created_at": "2021-08-17T16:22:50Z", + "updated_at": "2021-08-17T16:23:20Z", + "browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-3.141.59/selenium-html-runner-3.141.59.jar" + }, + { + "url": "https://api.github.com/repos/SeleniumHQ/selenium/releases/assets/42829933", + "id": 42829933, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyODI5OTMz", + "name": "selenium-java-3.141.59.zip", + "label": null, + "uploader": { + "login": "diemol", + "id": 5992658, + "node_id": "MDQ6VXNlcjU5OTI2NTg=", + "avatar_url": "https://avatars.githubusercontent.com/u/5992658?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/diemol", + "html_url": "https://github.com/diemol", + "followers_url": "https://api.github.com/users/diemol/followers", + "following_url": "https://api.github.com/users/diemol/following{/other_user}", + "gists_url": "https://api.github.com/users/diemol/gists{/gist_id}", + "starred_url": "https://api.github.com/users/diemol/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/diemol/subscriptions", + "organizations_url": "https://api.github.com/users/diemol/orgs", + "repos_url": "https://api.github.com/users/diemol/repos", + "events_url": "https://api.github.com/users/diemol/events{/privacy}", + "received_events_url": "https://api.github.com/users/diemol/received_events", + "type": "User", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 7537069, + "download_count": 4773, + "created_at": "2021-08-19T16:42:30Z", + "updated_at": "2021-08-19T16:42:41Z", + "browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-3.141.59/selenium-java-3.141.59.zip" + }, + { + "url": "https://api.github.com/repos/SeleniumHQ/selenium/releases/assets/42658302", + "id": 42658302, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjU4MzAy", + "name": "selenium-server-3.141.59.zip", + "label": null, + "uploader": { + "login": "shs96c", + "id": 28229, + "node_id": "MDQ6VXNlcjI4MjI5", + "avatar_url": "https://avatars.githubusercontent.com/u/28229?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/shs96c", + "html_url": "https://github.com/shs96c", + "followers_url": "https://api.github.com/users/shs96c/followers", + "following_url": "https://api.github.com/users/shs96c/following{/other_user}", + "gists_url": "https://api.github.com/users/shs96c/gists{/gist_id}", + "starred_url": "https://api.github.com/users/shs96c/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/shs96c/subscriptions", + "organizations_url": "https://api.github.com/users/shs96c/orgs", + "repos_url": "https://api.github.com/users/shs96c/repos", + "events_url": "https://api.github.com/users/shs96c/events{/privacy}", + "received_events_url": "https://api.github.com/users/shs96c/received_events", + "type": "User", + "site_admin": false + }, + "content_type": "application/zip", + "state": "uploaded", + "size": 10459982, + "download_count": 54, + "created_at": "2021-08-17T16:23:20Z", + "updated_at": "2021-08-17T16:23:45Z", + "browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-3.141.59/selenium-server-3.141.59.zip" + }, + { + "url": "https://api.github.com/repos/SeleniumHQ/selenium/releases/assets/42658330", + "id": 42658330, + "node_id": "MDEyOlJlbGVhc2VBc3NldDQyNjU4MzMw", + "name": "selenium-server-standalone-3.141.59.jar", + "label": null, + "uploader": { + "login": "shs96c", + "id": 28229, + "node_id": "MDQ6VXNlcjI4MjI5", + "avatar_url": "https://avatars.githubusercontent.com/u/28229?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/shs96c", + "html_url": "https://github.com/shs96c", + "followers_url": "https://api.github.com/users/shs96c/followers", + "following_url": "https://api.github.com/users/shs96c/following{/other_user}", + "gists_url": "https://api.github.com/users/shs96c/gists{/gist_id}", + "starred_url": "https://api.github.com/users/shs96c/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/shs96c/subscriptions", + "organizations_url": "https://api.github.com/users/shs96c/orgs", + "repos_url": "https://api.github.com/users/shs96c/repos", + "events_url": "https://api.github.com/users/shs96c/events{/privacy}", + "received_events_url": "https://api.github.com/users/shs96c/received_events", + "type": "User", + "site_admin": false + }, + "content_type": "application/java-archive", + "state": "uploaded", + "size": 10649948, + "download_count": 8100, + "created_at": "2021-08-17T16:23:45Z", + "updated_at": "2021-08-17T16:24:04Z", + "browser_download_url": "https://github.com/SeleniumHQ/selenium/releases/download/selenium-3.141.59/selenium-server-standalone-3.141.59.jar" + } + ], + "tarball_url": "https://api.github.com/repos/SeleniumHQ/selenium/tarball/selenium-3.141.59", + "zipball_url": "https://api.github.com/repos/SeleniumHQ/selenium/zipball/selenium-3.141.59", + "body": "\r\n### Changelog\r\n\r\nFor each component's detailed changelog, please check:\r\n* [Ruby](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)\r\n* [Python](https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES)\r\n* [JavaScript](https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/CHANGES.md)\r\n* [Java](https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG)\r\n* [DotNet](https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG)\r\n* [IEDriverServer](https://github.com/SeleniumHQ/selenium/blob/trunk/cpp/iedriverserver/CHANGELOG)\r\n\r\n### Commits in this release\r\n
\r\nClick to see all the commits included in this release\r\n\r\n* [`ed3aa1e776`](http://github.com/seleniumhq/selenium/commit/ed3aa1e7766456110aa993e09c0500a6e02be270) - [nodejs] add pollTimeout argument to wait() in WebDriver class (#6520) :: Oleksii\r\n* [`c9b57f0182`](http://github.com/seleniumhq/selenium/commit/c9b57f0182d172600a0672f36767a2984baab387) - Copy static resources required by java tests into place :: Simon Stewart\r\n* [`cacc0208e3`](http://github.com/seleniumhq/selenium/commit/cacc0208e34da7d4761fdddb0e54a0a8460fbf84) - Rework how we obtain command handlers :: Simon Stewart\r\n* [`0dd0327f2e`](http://github.com/seleniumhq/selenium/commit/0dd0327f2e33755c4b969027ab3b444d9de71c03) - Migrate router to use the new routes :: Simon Stewart\r\n* [`1dcd1b9d09`](http://github.com/seleniumhq/selenium/commit/1dcd1b9d09f3c8c2c4dd10b288ca2be84aad8ebc) - Migrate the Node to use the new routes :: Simon Stewart\r\n* [`eda8bb8e09`](http://github.com/seleniumhq/selenium/commit/eda8bb8e09bf7838b40d4c2244ff2f8cb63cb21f) - Move the Distributor to the new routes :: Simon Stewart\r\n* [`cd4450a9a7`](http://github.com/seleniumhq/selenium/commit/cd4450a9a74993f0bbcea689902e89516cc71eec) - Move the session map to the new routes :: Simon Stewart\r\n* [`12ae931dee`](http://github.com/seleniumhq/selenium/commit/12ae931dee35a7bef5b3e186946c81e30aabe42b) - Installing Requests in Python (#6628) :: wildloop\r\n* [`5b0a928495`](http://github.com/seleniumhq/selenium/commit/5b0a928495f3bd67578c2fec984799dc83faed86) - Implement `WrapsElement` by `Select` element wrapper (#6616) :: Valery Yatsynovich\r\n* [`fea631688f`](http://github.com/seleniumhq/selenium/commit/fea631688f9d8a00a3587a45238a5f3e775c5d29) - [Grid] Adding a test to check that remoteHost is properly read and set. :: Diego Molina\r\n* [`b1fbb3b0a5`](http://github.com/seleniumhq/selenium/commit/b1fbb3b0a579908d2c344ee5f858d4791538b2f3) - [py] Fixing/tidying docstring. :: Lucas Diniz\r\n* [`37ba6ab28f`](http://github.com/seleniumhq/selenium/commit/37ba6ab28f59bca9aa902d2dca99f178339b4fb5) - Reveal the cunning plan of where to place java tracing :: Simon Stewart\r\n* [`b162748f8b`](http://github.com/seleniumhq/selenium/commit/b162748f8bd38619ad496acfe320451c05a5bb14) - Replace CompoundHandler with Routes :: Simon Stewart\r\n* [`07a116aa32`](http://github.com/seleniumhq/selenium/commit/07a116aa32e6b464567a331ed9d1c4ffbee104bb) - Restored remoteHost support :: wildloop\r\n* [`a2a97bcad6`](http://github.com/seleniumhq/selenium/commit/a2a97bcad6de0d45d4b5a29ee7064aeb955cd726) - Delete the old IDE :: Simon Stewart\r\n* [`700f5b1ea6`](http://github.com/seleniumhq/selenium/commit/700f5b1ea6fef50250cdc2f7fae17f99ba1fe28e) - Encourage people to access help over https :: Simon Stewart\r\n* [`24dbcddd65`](http://github.com/seleniumhq/selenium/commit/24dbcddd653b21c0f47aca91306733e7d0c41277) - Organise imports. No logical changes :: Simon Stewart\r\n* [`72bc0f07a8`](http://github.com/seleniumhq/selenium/commit/72bc0f07a89972638cd984caad1ecca9b8076658) - Fix mime-types of displayed content in help servlet :: Simon Stewart\r\n* [`6aa186b6a0`](http://github.com/seleniumhq/selenium/commit/6aa186b6a04d63abb2781df1daf15a88048d2b29) - Start binding distributed tracing into selenium :: Simon Stewart\r\n* [`173e41ac82`](http://github.com/seleniumhq/selenium/commit/173e41ac82bbdadbd0811cee55893dc489816be4) - Allow us to inject tracing information into headers :: Simon Stewart\r\n* [`465fc74e52`](http://github.com/seleniumhq/selenium/commit/465fc74e522f0390fb2d768b712d2d5a76c89624) - Oops. Did not mean to check this in :: Simon Stewart\r\n* [`b66fe3e8dc`](http://github.com/seleniumhq/selenium/commit/b66fe3e8dcbf1f5a9f4a3e234773e40f8f46b396) - Add the distributed tracer to the grid :: Simon Stewart\r\n* [`c7c9ecb3f2`](http://github.com/seleniumhq/selenium/commit/c7c9ecb3f2614c12c07d4fc5f9bb402987efd978) - Move tracing into the http client factory :: Simon Stewart\r\n* [`570f533c5c`](http://github.com/seleniumhq/selenium/commit/570f533c5c0d37058900fcae3d788fd0729417fc) - Wire tracing into the node :: Simon Stewart\r\n* [`00a7ba7738`](http://github.com/seleniumhq/selenium/commit/00a7ba773863182b45ffd8e73d0568db44fd1040) - Add the ability to autodetect opentracing implementations :: Simon Stewart\r\n* [`2778509e64`](http://github.com/seleniumhq/selenium/commit/2778509e648e1e8fc5fb36b8c61933261b5bb32c) - Continue wiring up distributed tracing for the new Grid :: Simon Stewart\r\n* [`b32e053049`](http://github.com/seleniumhq/selenium/commit/b32e053049d4149d078207e594f064658dc9192a) - Removing premature break statements in IE obscured element check :: Jim Evans\r\n* [`0adb38f936`](http://github.com/seleniumhq/selenium/commit/0adb38f9369d151e7b6818314705cdfdffdd2506) - Adding support for strictFileInteractability capability in IE :: Jim Evans\r\n* [`e4248409f2`](http://github.com/seleniumhq/selenium/commit/e4248409f257d76bcb795db31fbd614d4402fea1) - Updating error message return from unserializable JavaScript result in IE :: Jim Evans\r\n* [`46bdda0a67`](http://github.com/seleniumhq/selenium/commit/46bdda0a671b036501332c7f5ac9743ad6e75156) - Updating IE prebuilts with latest binaries :: Jim Evans\r\n* [`48c3eb6a55`](http://github.com/seleniumhq/selenium/commit/48c3eb6a55451520c5d5317822faf6063594f517) - Add a test to check for trace propagation :: Simon Stewart\r\n* [`dce76b5aa8`](http://github.com/seleniumhq/selenium/commit/dce76b5aa86184f4f0a629139b6406a9752cce74) - Removing client-side references to tracing. For now :: Simon Stewart\r\n* [`3f8670ddf1`](http://github.com/seleniumhq/selenium/commit/3f8670ddf1fd033c00732ae64ace2254f8cf4f41) - delete unnecessary return value, nil :: Takuma Chiba\r\n* [`96ddac513b`](http://github.com/seleniumhq/selenium/commit/96ddac513bdc4e9de390ef3e749feaf05855d707) - Removing the scratch test. Again. Furrfu :: Simon Stewart\r\n* [`0840fb9b23`](http://github.com/seleniumhq/selenium/commit/0840fb9b2307bf16084a9e31299c8998e3a4609e) - Avoid checking in temp tests again :: Simon Stewart\r\n* [`7312f98094`](http://github.com/seleniumhq/selenium/commit/7312f9809409904c9a35de7b99f049c232984ac3) - Ensure that the tracing library does not touch the old grid code :: Simon Stewart\r\n* [`e82be7d358`](http://github.com/seleniumhq/selenium/commit/e82be7d3584062a0d16af8d562d387e3d4855aa1) - Bump the java version and update changelogs :: Simon Stewart\r\n
\r\n" +} diff --git a/src-tests/Selenium/Fixtures/releases-response-invalid-version.xml b/src-tests/Selenium/Fixtures/releases-response-invalid-version.xml deleted file mode 100644 index 33962cbf..00000000 --- a/src-tests/Selenium/Fixtures/releases-response-invalid-version.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - selenium-release - - - false - - 3.1/selenium-server-standalone-3.1.0.jar - 1487261815730000 - 1 - 2017-02-16T16:16:55.727Z - "013429ed5d56aea3de8fe2a2ba9a0888" - 21190292 - - - 3.8/selenium-server-standalone-invalid.jar - 1512155826778637 - 1 - 2017-12-01T19:17:06.743Z - "c2d12c231f9de454bdfc758a784ec080" - 22844868 - - - 4.0/selenium-server-.jar - 1512155826778637 - 1 - 2017-12-01T19:17:06.743Z - "c2d12c231f9de454bdfc758a784ec080" - 22844868 - - - 3.10/selenium-server-standalone-3.10.0.jar - 1520017950497751 - 1 - 2018-03-02T19:12:30.487Z - "d99e11f4e1f6fcfd1247a02b5619ce2f" - 23427664 - - diff --git a/src-tests/Selenium/Fixtures/releases-response-missing.json b/src-tests/Selenium/Fixtures/releases-response-missing.json new file mode 100644 index 00000000..0967ef42 --- /dev/null +++ b/src-tests/Selenium/Fixtures/releases-response-missing.json @@ -0,0 +1 @@ +{} diff --git a/src-tests/Selenium/Fixtures/releases-response-missing.xml b/src-tests/Selenium/Fixtures/releases-response-missing.xml deleted file mode 100644 index b81f05d4..00000000 --- a/src-tests/Selenium/Fixtures/releases-response-missing.xml +++ /dev/null @@ -1,620 +0,0 @@ - - - - selenium-release - - - false - - 2.39/IEDriverServer_Win32_2.39.0.zip - 1389651460351000 - 4 - 2014-01-13T22:17:40.327Z - "bd4bc2b77a04999148e7fab974336e99" - 836478 - - - - 2.39/IEDriverServer_x64_2.39.0.zip - 1389651273362000 - 2 - 2014-01-13T22:14:33.323Z - "7d19f3d7ffb9cb40fc26cc38885b9160" - 946479 - - - - 2.39/selenium-dotnet-2.39.0.zip - 1389651287806000 - 2 - 2014-01-13T22:14:47.774Z - "e5d82bd497eff0bf3a3990cb746a2680" - 10263239 - - - - 2.39/selenium-dotnet-strongnamed-2.39.0.zip - 1389651300568000 - 2 - 2014-01-13T22:15:00.557Z - "2b8e3938ada2d1b4d9bbf76a7430bbe6" - 7973108 - - - - 2.39/selenium-java-2.39.0.zip - 1389651222570000 - 2 - 2014-01-13T22:13:42.435Z - "0fc6c9fd784fdcfce482878dfa1002e6" - 24502128 - - - - 2.39/selenium-server-2.39.0.zip - 1389651450563000 - 2 - 2014-01-13T22:17:30.509Z - "4adf11c3c5b9310a94ce41ee76fe331d" - 65552312 - - - - 2.39/renamed-file-2.39.0.jar - 1389651272031000 - 2 - 2014-01-13T22:14:31.988Z - "7c2d1e12c1a9e445193967314fa72d85" - 34603971 - - - - 2.40/ - 1393275456335000 - 1 - 2014-02-24T20:57:36.135Z - "d41d8cd98f00b204e9800998ecf8427e" - 0 - - - - 2.40/IEDriverServer_Win32_2.40.0.zip - 1393275747841000 - 2 - 2014-02-24T21:02:27.758Z - "90c495b4bcd5e86c0a2e5c5c4ac16369" - 847357 - - - - 2.40/IEDriverServer_x64_2.40.0.zip - 1393275749634000 - 2 - 2014-02-24T21:02:29.563Z - "7769f840dc566657efe0a1268ec24904" - 954035 - - - - 2.40/selenium-dotnet-2.40.0.zip - 1393275764323000 - 2 - 2014-02-24T21:02:44.181Z - "88fda538060fab5cf28cc6a90deeabdc" - 10569695 - - - - 2.40/selenium-dotnet-strongnamed-2.40.0.zip - 1393275775115000 - 2 - 2014-02-24T21:02:55.085Z - "2882e8f3fc6a753c282118fe75a08ce2" - 8186128 - - - - 2.40/selenium-java-2.40.0.zip - 1393275805096000 - 2 - 2014-02-24T21:03:24.715Z - "36552f3a2eeacf74b32425288aea82d3" - 24024159 - - - - 2.40/selenium-server-2.40.0.zip - 1393275895609000 - 2 - 2014-02-24T21:04:55.601Z - "06d33598488f9a76a32d67c42966f47d" - 65442635 - - - - 2.40/renamed-file-2.40.0.jar - 1393275943933000 - 2 - 2014-02-24T21:05:43.903Z - "b6df2212bf7512414c569dcb0fd0a171" - 34561710 - - - - 2.41/IEDriverServer_Win32_2.41.0.zip - 1395955776889000 - 1 - 2014-03-27T21:29:36.889Z - "c676276cc4b5bca71b3872dabdd3af7f" - 847387 - - - - 2.41/IEDriverServer_x64_2.41.0.zip - 1395955778952000 - 1 - 2014-03-27T21:29:38.952Z - "4acb8e7be4a8015c31c00d02e6f05a51" - 953293 - - - - 2.41/selenium-dotnet-2.41.0.zip - 1395955796718000 - 1 - 2014-03-27T21:29:56.717Z - "68635da247aa1a9e3586cba447ecddac" - 10553191 - - - - 2.41/selenium-dotnet-strongnamed-2.41.0.zip - 1395955786909000 - 1 - 2014-03-27T21:29:46.909Z - "808c981801499ea8697bfe568558bfff" - 8183099 - - - - 2.41/selenium-java-2.41.0.zip - 1395955715679000 - 1 - 2014-03-27T21:28:35.679Z - "4b73c40305138ace32e2379a4d4d62c2" - 24027815 - - - - 2.41/selenium-server-2.41.0.zip - 1395955774857000 - 1 - 2014-03-27T21:29:34.857Z - "f7ffc1c2ae6e72dc1bafe5c62467634e" - 65451053 - - - - 2.41/renamed-file-2.41.0.jar - 1395955550351000 - 1 - 2014-03-27T21:25:50.351Z - "00042f9912c55a6191d7b3fe01239135" - 34564662 - - - - 2.42/IEDriverServer_Win32_2.42.0.zip - 1401207468930000 - 1 - 2014-05-27T16:17:48.930Z - "c1698989012a8f87b61905445fb7a07f" - 828671 - - - - 2.42/IEDriverServer_x64_2.42.0.zip - 1401207468006000 - 1 - 2014-05-27T16:17:48.005Z - "3401f66ad84a58f1210c485c41bf3e92" - 932617 - - - - 2.42/selenium-dotnet-2.42.0.zip - 1401207466741000 - 1 - 2014-05-27T16:17:46.741Z - "3d116682c1b90893df44d685c937ebf2" - 10717020 - - - - 2.42/selenium-dotnet-strongnamed-2.42.0.zip - 1401207378479000 - 1 - 2014-05-27T16:16:18.478Z - "e55876c43bae82069ed78ea832f19a13" - 8398809 - - - - 2.42/selenium-java-2.42.0.zip - 1400790620379000 - 1 - 2014-05-22T20:30:20.379Z - "bfcf8d9e36527df062e7e25ba5149828" - 24718528 - - - - 2.42/selenium-java-2.42.1.zip - 1401380372806000 - 1 - 2014-05-29T16:19:32.806Z - "ee1f4b0d5694c00aaf61418e1c91edb6" - 24719003 - - - - 2.42/selenium-java-2.42.2.zip - 1401818055978000 - 1 - 2014-06-03T17:54:15.977Z - "fca86bfb72a2d2bba73d347d5d79c9ed" - 24718924 - - - - 2.42/selenium-server-2.42.0.zip - 1400790628249000 - 1 - 2014-05-22T20:30:28.249Z - "3689cbdd67aecbb72524ead8727d69da" - 65936608 - - - - 2.42/selenium-server-2.42.1.zip - 1401380380473000 - 1 - 2014-05-29T16:19:40.472Z - "305e27647fe82b3997870661195424b0" - 65937502 - - - - 2.42/selenium-server-2.42.2.zip - 1401818048595000 - 1 - 2014-06-03T17:54:08.594Z - "dee5d14023e66e856c21cd3219f58a8c" - 65937565 - - - - 2.42/renamed-file-2.42.0.jar - 1400790616797000 - 1 - 2014-05-22T20:30:16.797Z - "0a67614b436e525dccc0e6b972333bb3" - 34823093 - - - - 2.42/renamed-file-2.42.1.jar - 1401380385464000 - 1 - 2014-05-29T16:19:45.464Z - "5359263800a6ca39db5fe7fc04c6f955" - 34823352 - - - - 2.42/renamed-file-2.42.2.jar - 1401818052575000 - 1 - 2014-06-03T17:54:12.574Z - "e357c6c0a757311b0da571abd7386cac" - 34823352 - - - - 2.43/ - 1410297711522000 - 1 - 2014-09-09T21:21:51.522Z - "d41d8cd98f00b204e9800998ecf8427e" - 0 - - - - 2.43/IEDriverServer_Win32_2.43.0.zip - 1410303583230000 - 1 - 2014-09-09T22:59:43.230Z - "ea66ca4650e992563a5d9953845cced4" - 848613 - - - - 2.43/IEDriverServer_x64_2.43.0.zip - 1410303584504000 - 1 - 2014-09-09T22:59:44.504Z - "93bcebb71836238ee8f07b34a097957a" - 956463 - - - - 2.43/selenium-dotnet-2.43.0.zip - 1410303592142000 - 1 - 2014-09-09T22:59:52.142Z - "e259d1b03fae6bd6ac92240762b2db78" - 10827845 - - - - 2.43/selenium-dotnet-2.43.1.zip - 1410363917507000 - 1 - 2014-09-10T15:45:17.507Z - "7ae5696c1d8c9d6c1cb2328ea00f949d" - 10826432 - - - - 2.43/selenium-dotnet-strongnamed-2.43.0.zip - 1410303597657000 - 1 - 2014-09-09T22:59:57.656Z - "99a7bd4e768dc610e972110e52a88785" - 8522136 - - - - 2.43/selenium-dotnet-strongnamed-2.43.1.zip - 1410363931035000 - 1 - 2014-09-10T15:45:31.035Z - "def97d3025cf04e49d81fa87563de600" - 8521824 - - - - 2.43/selenium-java-2.43.0.zip - 1410297846078000 - 2 - 2014-09-09T21:24:06.077Z - "a95de6755ba65701e9a1be3213a0e39f" - 24808348 - - - - 2.43/selenium-java-2.43.1.zip - 1410367238755000 - 1 - 2014-09-10T16:40:38.755Z - "7c52aedf62c32ee1e149b860bd986463" - 24808227 - - - - 2.43/selenium-server-2.43.0.zip - 1410297856315000 - 2 - 2014-09-09T21:24:16.315Z - "44c3497421b8467e8209430e551fe79e" - 65595124 - - - - 2.43/selenium-server-2.43.1.zip - 1410367202969000 - 1 - 2014-09-10T16:40:02.968Z - "36b667413b2f35a0f911d560717fff3a" - 65595145 - - - - 2.43/renamed-file-2.43.0.jar - 1410297896124000 - 2 - 2014-09-09T21:24:56.123Z - "eead2ce13843c4c12609bf8b5e4a79b5" - 34932130 - - - - 2.43/renamed-file-2.43.1.jar - 1410367129025000 - 1 - 2014-09-10T16:38:49.025Z - "6b95d6fe34b69f2ec180bf70e040f182" - 34932047 - - - - 2.44/IEDriverServer_Win32_2.44.0.zip - 1414099419682000 - 1 - 2014-10-23T21:23:39.682Z - "1d177d00dd1267556520973516491081" - 837259 - - - - 2.44/IEDriverServer_x64_2.44.0.zip - 1414099418401000 - 1 - 2014-10-23T21:23:38.401Z - "a7335ef03f8aec1a6d5de219ad4689d6" - 938552 - - - - 2.44/selenium-dotnet-2.44.0.zip - 1414099417067000 - 1 - 2014-10-23T21:23:37.066Z - "93b4eeb12fe78b538f264c7edcd4aee4" - 10826934 - - - - 2.44/selenium-dotnet-strongnamed-2.44.0.zip - 1414099411488000 - 1 - 2014-10-23T21:23:31.488Z - "1fe340569f274796a66e9870f5dc0c9e" - 8522043 - - - - 2.44/selenium-java-2.44.0.zip - 1414094843049000 - 1 - 2014-10-23T20:07:23.049Z - "4064c33f4aa3163d00adcab065184847" - 24972017 - - - - 2.44/selenium-server-2.44.0.zip - 1414094847025000 - 1 - 2014-10-23T20:07:27.025Z - "32a9c19529390d6f432fdfee48a13dc9" - 33629243 - - - - 2.44/renamed-file-2.44.0.jar - 1414094850765000 - 1 - 2014-10-23T20:07:30.765Z - "6514fd7c3869e2699f8c2a16868da336" - 35169724 - - - - 2.45/IEDriverServer_Win32_2.45.0.zip - 1425061088253000 - 1 - 2015-02-27T18:18:08.253Z - "dde210e04e5c1b0d6019fd8a1199df18" - 845190 - - - - 2.45/IEDriverServer_x64_2.45.0.zip - 1425061089687000 - 1 - 2015-02-27T18:18:09.687Z - "fc9e083200dfdc35d837a586927a1f86" - 947768 - - - - 2.45/SafariDriver.safariextz - 1424995659647000 - 1 - 2015-02-27T00:07:39.647Z - "8f6c341f8fb6a8b89801ae532c68e1b1" - 222394 - - - - 2.45/selenium-dotnet-2.45.0.zip - 1425061087348000 - 1 - 2015-02-27T18:18:07.348Z - "9b172ad6a96cf497867be0efbe9acac8" - 10620606 - - - - 2.45/selenium-dotnet-strongnamed-2.45.0.zip - 1425061075724000 - 1 - 2015-02-27T18:17:55.724Z - "ff51ed60c1b04255649f6f28e13e4207" - 8256185 - - - - 2.45/selenium-java-2.45.0.zip - 1425597139747000 - 1 - 2015-03-05T23:12:19.747Z - "5adf84e7eb9f7b32e1b6a1d59cb93769" - 25065632 - - - - 2.45/selenium-server-2.45.0.zip - 1424995656643000 - 1 - 2015-02-27T00:07:36.643Z - "5034f099c70533fbac38f0c246101b9b" - 33728675 - - - - 2.45/renamed-file-2.45.0.jar - 1424995653143000 - 1 - 2015-02-27T00:07:33.143Z - "a62db4c36e230a936455aaacda9340a8" - 35269077 - - - - icons/back.gif - 1389651464491000 - 2 - 2014-01-13T22:17:44.445Z - "4bce9846e05d3bffdfb293d47c840a8e" - 216 - - - - icons/binary.gif - 1389651166628000 - 4 - 2014-01-13T22:12:46.557Z - "96bd4beed88ff93356586485c13e5d89" - 246 - - - - icons/blank.gif - 1389651167385000 - 4 - 2014-01-13T22:12:47.329Z - "19517fb39a31be6b8d7ccf53ad84908f" - 148 - - - - icons/folder.gif - 1389651168089000 - 4 - 2014-01-13T22:12:47.995Z - "d342cba375fea336967317bdb5d7cf19" - 225 - - - - index.html - 1389651159940000 - 4 - 2014-01-13T22:12:39.793Z - "704b0f841aad1b1428481b7ff3c759c0" - 10574 - - - diff --git a/src-tests/Selenium/Fixtures/releases-response.xml b/src-tests/Selenium/Fixtures/releases-response.xml deleted file mode 100644 index 2d4a143b..00000000 --- a/src-tests/Selenium/Fixtures/releases-response.xml +++ /dev/null @@ -1,1259 +0,0 @@ - - - selenium-release - - - false - - - 2.53/IEDriverServer_Win32_2.53.0.zip - 1458158206319000 - 1 - 2016-03-16T19:56:46.318Z - "63066830741d59ae6c74045a9f24291c" - 1002225 - - - 2.53/IEDriverServer_Win32_2.53.1.zip - 1459786970866000 - 1 - 2016-04-04T16:22:50.864Z - "35ac005f9088f2995d6a1cdc384fe4cb" - 995084 - - - 2.53/IEDriverServer_x64_2.53.0.zip - 1458158211557000 - 1 - 2016-03-16T19:56:51.555Z - "0acce304cbd05a25ba6f11f7c8b9311c" - 1178037 - - - 2.53/IEDriverServer_x64_2.53.1.zip - 1459786972569000 - 1 - 2016-04-04T16:22:52.568Z - "6c822788a04e4e8d4727dc4c08c0102a" - 1169399 - - - 2.53/selenium-dotnet-2.53.0.zip - 1458158185853000 - 1 - 2016-03-16T19:56:25.851Z - "48497a5fee161525c084902d23f9f343" - 6462967 - - - 2.53/selenium-dotnet-2.53.1.zip - 1467208972078000 - 1 - 2016-06-29T14:02:52.069Z - "89e6bf9613ed24da24fd52097b5d90f4" - 6452905 - - - 2.53/selenium-dotnet-strongnamed-2.53.0.zip - 1458158201712000 - 1 - 2016-03-16T19:56:41.710Z - "74430a6ae437d7a03d04ca3858ab5fe8" - 4063912 - - - 2.53/selenium-dotnet-strongnamed-2.53.1.zip - 1467208970946000 - 1 - 2016-06-29T14:02:50.941Z - "934ee45515dfff254bf684e47ab3cee5" - 4022021 - - - 2.53/selenium-java-2.53.0.zip - 1458061759268000 - 1 - 2016-03-15T17:09:19.267Z - "e76e4cb82b51e459a78244c7af7076d5" - 10491314 - - - 2.53/selenium-java-2.53.1.zip - 1467314953171000 - 1 - 2016-06-30T19:29:13.165Z - "b2d9f0efcefcbb3f16802836aed23a42" - 10491210 - - - 2.53/selenium-server-2.53.0.zip - 1458061758819000 - 1 - 2016-03-15T17:09:18.817Z - "3a1daead013d4237ff6c24909a600073" - 19209563 - - - 2.53/selenium-server-2.53.1.zip - 1467314967826000 - 1 - 2016-06-30T19:29:27.821Z - "fe506d2323d3fbfe82c3d91badb8f012" - 19209475 - - - 2.53/selenium-server-standalone-2.53.0.jar - 1458061325282000 - 1 - 2016-03-15T17:02:05.280Z - "774efe2d84987fb679f2dea038c2fa32" - 21231089 - - - 2.53/selenium-server-standalone-2.53.1.jar - 1467314938331000 - 1 - 2016-06-30T19:28:58.327Z - "63a0b96eab18f8420b9bba2f0f5d380c" - 21231092 - - - 3.0-beta1/selenium-dotnet-3.0.0-beta1.zip - 1469814062945000 - 1 - 2016-07-29T17:41:02.939Z - "b06d3e1fcda8374dd8f6a7c4aaf2bef3" - 6470195 - - - 3.0-beta1/selenium-dotnet-strongnamed-3.0.0-beta1.zip - 1469814063738000 - 1 - 2016-07-29T17:41:03.728Z - "e916d9c4919b9925cb1d9284ea8cc021" - 4029501 - - - 3.0-beta1/selenium-java-3.0.0-beta1.zip - 1469754698355000 - 1 - 2016-07-29T01:11:38.346Z - "318bb36f89e6424c3aba24b49843f7bd" - 7819964 - - - 3.0-beta1/selenium-server-3.0.0-beta1.zip - 1469754714983000 - 1 - 2016-07-29T01:11:54.977Z - "8052bd66bcbbc5fd8df4b7f15cc0bf4f" - 22448491 - - - 3.0-beta1/selenium-server-standalone-3.0.0-beta1.jar - 1469754733373000 - 1 - 2016-07-29T01:12:13.366Z - "d38f875627e2a6cde25fa37fbe400833" - 25755816 - - - 3.0-beta2/selenium-dotnet-3.0.0-beta2.zip - 1470326105469000 - 1 - 2016-08-04T15:55:05.463Z - "afbbcd7617ff34feb6d5fedd9c777f18" - 6470785 - - - 3.0-beta2/selenium-dotnet-strongnamed-3.0.0-beta2.zip - 1470326104294000 - 1 - 2016-08-04T15:55:04.288Z - "f5ac02760f1a5010595c38a768a816ab" - 4030196 - - - 3.0-beta2/selenium-html-runner-3.0.0-beta3.jar - 1472768954131000 - 1 - 2016-09-01T22:29:14.124Z - "b0596fe249229569a3b51fc7b07f4226" - 15621359 - - - 3.0-beta2/selenium-java-3.0.0-beta2.zip - 1470175703297000 - 1 - 2016-08-02T22:08:23.293Z - "4033df8a9d5a4e1f8a591f6f14e74d4d" - 7820103 - - - 3.0-beta2/selenium-java-3.0.0-beta3.zip - 1472768953507000 - 1 - 2016-09-01T22:29:13.503Z - "2a2187bb255ba0dcdf8f6a4694487756" - 7859850 - - - 3.0-beta2/selenium-server-3.0.0-beta2.zip - 1470175763343000 - 1 - 2016-08-02T22:09:23.332Z - "6d13e417bdec6a672619efb5368881ea" - 22448841 - - - 3.0-beta2/selenium-server-3.0.0-beta3.zip - 1472768952930000 - 1 - 2016-09-01T22:29:12.923Z - "01da1daedca0c5db1d275ff50c288196" - 18733120 - - - 3.0-beta2/selenium-server-standalone-3.0.0-beta2.jar - 1470175702791000 - 1 - 2016-08-02T22:08:22.780Z - "d5c8ca8c7f92c6abf82df1dc2fbb0e8a" - 25756083 - - - 3.0-beta2/selenium-server-standalone-3.0.0-beta3.jar - 1472768952239000 - 1 - 2016-09-01T22:29:12.226Z - "5c97631ccb1f92eb9f682cd845611738" - 21633718 - - - 3.0-beta3/selenium-dotnet-3.0.0-beta3.zip - 1472833525982000 - 1 - 2016-09-02T16:25:25.977Z - "8f49d9b188cb6fc57ee500c8428bdf7b" - 6536785 - - - 3.0-beta3/selenium-dotnet-strongnamed-3.0.0-beta3.zip - 1472833524769000 - 1 - 2016-09-02T16:25:24.764Z - "149fc13353cd26cba424329107efdd4a" - 4033106 - - - 3.0-beta3/selenium-html-runner-3.0.0-beta3.jar - 1472768979204000 - 1 - 2016-09-01T22:29:39.198Z - "b0596fe249229569a3b51fc7b07f4226" - 15621359 - - - 3.0-beta3/selenium-java-3.0.0-beta3.zip - 1472768978606000 - 1 - 2016-09-01T22:29:38.601Z - "2a2187bb255ba0dcdf8f6a4694487756" - 7859850 - - - 3.0-beta3/selenium-server-3.0.0-beta3.zip - 1472768978144000 - 1 - 2016-09-01T22:29:38.137Z - "01da1daedca0c5db1d275ff50c288196" - 18733120 - - - 3.0-beta3/selenium-server-standalone-3.0.0-beta3.jar - 1472768977550000 - 1 - 2016-09-01T22:29:37.538Z - "5c97631ccb1f92eb9f682cd845611738" - 21633718 - - - 3.0-beta4/selenium-html-runner-3.0.0-beta4.jar - 1475176116950000 - 1 - 2016-09-29T19:08:36.943Z - "a885be1da004278bb35ff600a5d73645" - 15629308 - - - 3.0-beta4/selenium-java-3.0.0-beta4.zip - 1475176116214000 - 1 - 2016-09-29T19:08:36.209Z - "eb9169cc8ce582b4da0479cdb555085f" - 7861180 - - - 3.0-beta4/selenium-server-3.0.0-beta4.zip - 1475176115471000 - 1 - 2016-09-29T19:08:35.457Z - "feb16994aa992ae23ba1695e4afd767d" - 18771227 - - - 3.0-beta4/selenium-server-standalone-3.0.0-beta4.jar - 1475176114830000 - 1 - 2016-09-29T19:08:34.822Z - "fcd82183355009b9dd402495857f544b" - 21673022 - - - 3.0/IEDriverServer_Win32_3.0.0.zip - 1476382456061000 - 1 - 2016-10-13T18:14:16.051Z - "4ba666e144f07869a0aa5f7a4c7a2091" - 988008 - - - 3.0/IEDriverServer_x64_3.0.0.zip - 1476382456465000 - 1 - 2016-10-13T18:14:16.461Z - "4396e6ca7fe643ef49ee137a81723a42" - 1153691 - - - 3.0/selenium-dotnet-3.0.0.zip - 1476382459517000 - 1 - 2016-10-13T18:14:19.511Z - "9169f5932a3a728f5ea8e7e0a98a3c3e" - 6240131 - - - 3.0/selenium-dotnet-3.0.1.zip - 1479762186539000 - 1 - 2016-11-21T21:03:06.532Z - "80b8bafe7dd14262ff67bb157f890baa" - 6240477 - - - 3.0/selenium-dotnet-strongnamed-3.0.0.zip - 1476382458261000 - 1 - 2016-10-13T18:14:18.257Z - "19015d1ffdfe66d8df232ad60119f4c5" - 3919363 - - - 3.0/selenium-dotnet-strongnamed-3.0.1.zip - 1479762187393000 - 1 - 2016-11-21T21:03:07.382Z - "1a2611711c749dd6a98c3cd4400d13e3" - 3997974 - - - 3.0/selenium-html-runner-3.0.0.jar - 1476381694591000 - 1 - 2016-10-13T18:01:34.579Z - "8c96e8bcfef4b4d545d2fb600d90fd7e" - 15631841 - - - 3.0/selenium-html-runner-3.0.1.jar - 1476812418559000 - 1 - 2016-10-18T17:40:18.548Z - "b5379528ecd5ff6f23767c4684dec069" - 15632908 - - - 3.0/selenium-java-3.0.0.zip - 1476381675880000 - 1 - 2016-10-13T18:01:15.870Z - "0b4402f2c33eca30b9c27805c4a519c0" - 7863239 - - - 3.0/selenium-java-3.0.1.zip - 1476812421253000 - 1 - 2016-10-18T17:40:21.243Z - "11e47c8a3b19690998709325c3743545" - 17056105 - - - 3.0/selenium-server-3.0.0.zip - 1476381665867000 - 1 - 2016-10-13T18:01:05.859Z - "17f7bac67c712a598ea045d6b7e7e81f" - 19232832 - - - 3.0/selenium-server-3.0.1.zip - 1476812420486000 - 1 - 2016-10-18T17:40:20.474Z - "d60ef0b2c480f7ad223da95c89b9ed21" - 19233106 - - - 3.0/selenium-server-standalone-3.0.0.jar - 1476381650776000 - 1 - 2016-10-13T18:00:50.769Z - "d0c6d9b3df57ee458839def908a45033" - 22138949 - - - 3.0/selenium-server-standalone-3.0.1.jar - 1476812417855000 - 1 - 2016-10-18T17:40:17.842Z - "31a9b1af54c6b00cc6028370e3e00a91" - 22139212 - - - 3.1/IEDriverServer_Win32_3.1.0.zip - 1487261821414000 - 1 - 2017-02-16T16:17:01.411Z - "d2fd01194c6fe38d2e083889d4ce7448" - 990343 - - - 3.1/IEDriverServer_x64_3.1.0.zip - 1487261822456000 - 1 - 2017-02-16T16:17:02.454Z - "c8b8b4945858039a4d538208c9ab41a5" - 1155407 - - - 3.1/selenium-dotnet-3.1.0.zip - 1487261823502000 - 1 - 2017-02-16T16:17:03.499Z - "b92fdbae06f5e66b7165d63cd4fe9afa" - 6254207 - - - 3.1/selenium-dotnet-strongnamed-3.1.0.zip - 1487261824409972 - 1 - 2017-02-16T16:17:04.364Z - "350ae470be53fb65cc9f557271a49f02" - 4001768 - - - 3.1/selenium-html-runner-3.1.0.jar - 1487261818800000 - 1 - 2017-02-16T16:16:58.796Z - "20e5b4385800b8dc6e147d8ee6d4f4cf" - 14686765 - - - 3.1/selenium-java-3.1.0.zip - 1487261820998000 - 1 - 2017-02-16T16:17:00.991Z - "f1949c67c0b0c98c48e82e0aa68fa2ff" - 16227489 - - - 3.1/selenium-server-3.1.0.zip - 1487261812647000 - 1 - 2017-02-16T16:16:52.639Z - "8fd42b6030b80e284881b80e3204051e" - 18407547 - - - 3.1/selenium-server-standalone-3.1.0.jar - 1487261815730000 - 1 - 2017-02-16T16:16:55.727Z - "013429ed5d56aea3de8fe2a2ba9a0888" - 21190292 - - - - 3.14/IEDriverServer_Win32_3.14.0.zip - 1533228380192540 - 1 - 2018-08-02T16:46:20.192Z - "6180c79e264be40dd371a892f9325203" - 1072779 - - - 3.14/IEDriverServer_x64_3.14.0.zip - 1533228380556751 - 1 - 2018-08-02T16:46:20.556Z - "ffc923b46ec81a6618678c9dd048b51f" - 1181472 - - - 3.14/selenium-dotnet-3.14.0.zip - 1533228381338253 - 1 - 2018-08-02T16:46:21.338Z - "dbe88b0e12614de381129d377c0a60d9" - 5456409 - - - 3.14/selenium-dotnet-strongnamed-3.14.0.zip - 1533228382074867 - 1 - 2018-08-02T16:46:22.074Z - "afd744ff0937312135a8beb65828e9a7" - 5461346 - - - 3.14/selenium-html-runner-3.14.0.jar - 1533240926417033 - 1 - 2018-08-02T20:15:26.416Z - "935fe58a578ac7d47b229311481609f5" - 14898184 - - - 3.14/selenium-java-3.14.0.zip - 1533240915868002 - 1 - 2018-08-02T20:15:15.867Z - "2d8a4080f86a8f6cc1d363207a01f1b7" - 8811955 - - - 3.14/selenium-server-3.14.0.zip - 1533240909445807 - 1 - 2018-08-02T20:15:09.445Z - "c582478919bb0859f7e223850ea9c24f" - 21939279 - - - 3.14/selenium-server-standalone-3.14.0.jar - 1533240894119413 - 1 - 2018-08-02T20:14:54.119Z - "376450bd517510442b60018646deadfe" - 23246050 - - - 3.141/IEDriverServer_Win32_3.141.0.zip - 1541019272817833 - 1 - 2018-10-31T20:54:32.817Z - "564eae5d205068327aaa7c65e392b9ff" - 1091836 - - - 3.141/IEDriverServer_Win32_3.141.5.zip - 1547488804603513 - 1 - 2019-01-14T18:00:04.603Z - "ef3b84e595058759e317d77a7fd3e00c" - 1082213 - - - 3.141/IEDriverServer_Win32_3.141.59.zip - 1554919950150287 - 1 - 2019-04-10T18:12:30.149Z - "06c36edba50adb4173849804558b370c" - 1093522 - - - 3.141/IEDriverServer_x64_3.141.0.zip - 1541019273400125 - 1 - 2018-10-31T20:54:33.399Z - "449d5527081f674d1cec16a2fc587e6b" - 1199110 - - - 3.141/IEDriverServer_x64_3.141.5.zip - 1547488805201125 - 1 - 2019-01-14T18:00:05.200Z - "a03bcc25909c8e5e9996c3a9ff8cfdf6" - 1194320 - - - 3.141/IEDriverServer_x64_3.141.59.zip - 1554919950943784 - 1 - 2019-04-10T18:12:30.943Z - "f0df9fa124bdf9650b32e25387529931" - 1227653 - - - 3.141/selenium-dotnet-3.141.0.zip - 1541019270896686 - 1 - 2018-10-31T20:54:30.896Z - "4ffd3da4bb4cd7854571a7949835cd2d" - 5461251 - - - 3.141/selenium-dotnet-strongnamed-3.141.0.zip - 1541019272083979 - 1 - 2018-10-31T20:54:32.083Z - "1789a8e45dbb97415631f87a5dd742b0" - 5465495 - - - 3.141/selenium-html-runner-3.141.0.jar - 1541017428554508 - 1 - 2018-10-31T20:23:48.554Z - "3eeae3c319b64bf201dafd92ae41354f" - 13571769 - - - 3.141/selenium-html-runner-3.141.5.jar - 1541505579792548 - 1 - 2018-11-06T11:59:39.792Z - "16436d5ad035909cdf067826bc8dcf1e" - 13565159 - - - 3.141/selenium-html-runner-3.141.59.jar - 1542184029083108 - 1 - 2018-11-14T08:27:09.082Z - "1d825010548595a2f1ec18405d9475da" - 13565180 - - - 3.141/selenium-java-3.141.0.zip - 1541017418928319 - 1 - 2018-10-31T20:23:38.928Z - "237cfa338f827e3882e4b75e1b9eb53a" - 7548650 - - - 3.141/selenium-java-3.141.5.zip - 1541505570113156 - 1 - 2018-11-06T11:59:30.113Z - "5700bf4c5a156217523a4a0e208fd247" - 7536796 - - - 3.141/selenium-java-3.141.59.zip - 1542184019535152 - 1 - 2018-11-14T08:26:59.534Z - "c32219ff3b2a995bbe131696b9baca12" - 7537069 - - - 3.141/selenium-server-3.141.0.zip - 1541017413312377 - 1 - 2018-10-31T20:23:33.311Z - "2e2b827fa6359ad821c881d37719aefa" - 10459965 - - - 3.141/selenium-server-3.141.5.zip - 1541505564408802 - 1 - 2018-11-06T11:59:24.408Z - "a9cfa9f98382d6499246b7aced49ae4b" - 10448248 - - - 3.141/selenium-server-3.141.59.zip - 1542184013884959 - 1 - 2018-11-14T08:26:53.884Z - "18e2559bf9d6b1b9c3bcdb9e40d7841a" - 10459982 - - - 3.141/selenium-server-standalone-3.141.0.jar - 1541017405640946 - 1 - 2018-10-31T20:23:25.640Z - "f6530e753173ef3df51f7911315acd5e" - 10649576 - - - 3.141/selenium-server-standalone-3.141.5.jar - 1541505556143416 - 1 - 2018-11-06T11:59:16.143Z - "af67f1e9edd8b7e66f586380660d0fcf" - 10642908 - - - 3.141/selenium-server-standalone-3.141.59.jar - 1542184006302312 - 1 - 2018-11-14T08:26:46.300Z - "947e57925b4185ae04d03ceec175a34a" - 10649948 - - - 3.150/IEDriverServer_Win32_3.150.0.zip - 1566502372143643 - 1 - 2019-08-22T19:32:52.143Z - "a8198cc5b643ee5d926f5c69bbeb2252" - 1099083 - - - 3.150/IEDriverServer_Win32_3.150.1.zip - 1571349523675397 - 1 - 2019-10-17T21:58:43.675Z - "d97654ab742e4b813d3489e408e5e219" - 1112869 - - - 3.150/IEDriverServer_x64_3.150.0.zip - 1566502376549745 - 1 - 2019-08-22T19:32:56.549Z - "e0ebb786b17c71ad48e5139bfc3833ac" - 1224148 - - - 3.150/IEDriverServer_x64_3.150.1.zip - 1571349524197420 - 1 - 2019-10-17T21:58:44.197Z - "6cbeb9e71795dd8870bea1dfb3fc0b50" - 1218599 - - - 3.2/IEDriverServer_Win32_3.2.0.zip - 1487886118624000 - 1 - 2017-02-23T21:41:58.620Z - "0ec0ef4685fca7382bd47921f6c4a1e5" - 929795 - - - 3.2/IEDriverServer_x64_3.2.0.zip - 1487886118999000 - 1 - 2017-02-23T21:41:58.995Z - "c9fd963a071e8744314da8c56e1ec4f4" - 1061276 - - - 3.2/selenium-dotnet-3.2.0.zip - 1487886117194404 - 1 - 2017-02-23T21:41:57.146Z - "55338757826906aaacd4fe90cc8dd9e0" - 6125292 - - - 3.2/selenium-dotnet-strongnamed-3.2.0.zip - 1487886118040000 - 1 - 2017-02-23T21:41:58.036Z - "41a97aec5c7b3bb37041325d12b7bb3a" - 3964268 - - - 3.2/selenium-html-runner-3.2.0.jar - 1488476464229000 - 1 - 2017-03-02T17:41:04.222Z - "0e796e50257d73b9eed3eae30595338b" - 14329581 - - - 3.2/selenium-java-3.2.0.zip - 1488476453993000 - 1 - 2017-03-02T17:40:53.985Z - "8711fa28473d74ba9a910ae8e99cc117" - 16503102 - - - 3.2/selenium-server-3.2.0.zip - 1488476426916000 - 1 - 2017-03-02T17:40:26.904Z - "492b5d7c8d8865815675c713d01fd08d" - 18860911 - - - 3.2/selenium-server-standalone-3.2.0.jar - 1488476442193000 - 1 - 2017-03-02T17:40:42.176Z - "dfcf8e8d8a95af0acf5e24aa1c0572fb" - 21676996 - - - 3.3/IEDriverServer_Win32_3.3.0.zip - 1488913682211000 - 1 - 2017-03-07T19:08:02.208Z - "29fca76218a9421442d64d615909ccd1" - 929794 - - - - 4.0-alpha-5/selenium-html-runner-4.0.0-alpha-5.jar - 1584524486490283 - 1 - 2020-03-18T09:41:26.490Z - "8e04c8cc2fa88d822c8f78e658cba697" - 18120578 - - - 4.0-alpha-5/selenium-java-4.0.0-alpha-5.zip - 1584524462832539 - 1 - 2020-03-18T09:41:02.832Z - "295f139eb9a63706be15cdc5e19fbef2" - 17168193 - - - 4.0-alpha-5/selenium-server-4.0.0-alpha-5.jar - 1584524472667653 - 1 - 2020-03-18T09:41:12.667Z - "371ed1590112f4a0fe63b2a2ec969294" - 16023505 - - - 4.0-alpha-6/selenium-html-runner-4.0.0-alpha-6.jar - 1590743718797117 - 1 - 2020-05-29T09:15:18.796Z - "ee120e0fa455d066337fcadc45609450" - 21136031 - - - 4.0-alpha-6/selenium-java-4.0.0-alpha-6.zip - 1590743690793962 - 1 - 2020-05-29T09:14:50.793Z - "efea5bc9f95c81dde1c1d1f2cf81b7b4" - 20325428 - - - 4.0-alpha-6/selenium-server-4.0.0-alpha-6.jar - 1590743704789228 - 1 - 2020-05-29T09:15:04.789Z - "f4772802b15045e69ee30e35feaf7e50" - 20939738 - - - 4.0-alpha-7/selenium-dotnet-4.0.0-alpha07.zip - 1605022195455639 - 1 - 2020-11-10T15:29:55.455Z - "13717b37375c44c55fa3aeb5ae62ae99" - 12556316 - - - 4.0-alpha-7/selenium-dotnet-strongnamed-4.0.0-alpha07.zip - 1605022196982456 - 1 - 2020-11-10T15:29:56.982Z - "36b852d4f79bb1fb68aed192c195f013" - 12401262 - - - 4.0-alpha-7/selenium-html-runner-4.0.0-alpha-7.jar - 1605019978730385 - 1 - 2020-11-10T14:52:58.730Z - "b484478b7ee6cc22f5b954d90c87edf2" - 21189242 - - - 4.0-alpha-7/selenium-java-4.0.0-alpha-7.zip - 1605019937170527 - 1 - 2020-11-10T14:52:17.170Z - "4a8f190d5d92b6aee6ef0c750baaf0fa" - 24095570 - - - 4.0-alpha-7/selenium-server-4.0.0-alpha-7.jar - 1605019957659826 - 1 - 2020-11-10T14:52:37.659Z - "633e341c0936b6dbe868dc6271c9676e" - 19870773 - - - 4.0-alpha/selenium-dotnet-4.0.0-alpha03.zip - 1569858323170216 - 1 - 2019-09-30T15:45:23.170Z - "075d84fd7b80a7c8beba77571a7348f7" - 3252045 - - - 4.0-alpha/selenium-dotnet-strongnamed-4.0.0.alpha03.zip - 1569858323831357 - 1 - 2019-09-30T15:45:23.831Z - "b6c082612fa2710d9ab6a41d53a40b48" - 3256161 - - - 4.0-alpha/selenium-html-runner-4.0.0-alpha-3.jar - 1569518135548803 - 1 - 2019-09-26T17:15:35.548Z - "9f98e2464d0b33676c40bbe5392631ea" - 16435474 - - - 4.0-alpha/selenium-java-4.0.0-alpha-3.zip - 1569518371830598 - 1 - 2019-09-26T17:19:31.830Z - "6c3f0248a800afc2f7ba9a7b245a9f99" - 12064718 - - - 4.0-alpha/selenium-server-4.0.0-alpha-3.jar - 1569518134520889 - 1 - 2019-09-26T17:15:34.520Z - "ab26c52599fd0e87269802b12a439329" - 13245828 - - - 4.0-alpha1/selenium-dotnet-4.0.0-alpha01.zip - 1555656867156838 - 1 - 2019-04-19T06:54:27.156Z - "b9735331522dfd6e0ab2c7fdff8b4d4a" - 2463926 - - - 4.0-alpha1/selenium-dotnet-strongnamed-4.0.0-alpha01.zip - 1555656868431957 - 1 - 2019-04-19T06:54:28.431Z - "f2ab20c4de1d7accc5f1ea45ca033484" - 2466727 - - - 4.0-alpha2/selenium-dotnet-4.0.0-alpha02.zip - 1562620004065248 - 1 - 2019-07-08T21:06:44.065Z - "0648eb69f98533d61c74ae7fe3132935" - 3225869 - - - 4.0-alpha2/selenium-dotnet-strongnamed-4.0.0-alpha02.zip - 1562620004768082 - 1 - 2019-07-08T21:06:44.767Z - "8d494a0fa8bd44ec9ea2d0d658847de2" - 3229393 - - - 4.0-alpha4/selenium-dotnet-4.0.0-alpha04.zip - 1578703217438130 - 1 - 2020-01-11T00:40:17.438Z - "b00b8137dfe2d1dd26f419786176ea69" - 2601179 - - - 4.0-alpha4/selenium-dotnet-strongnamed-4.0.0-alpha04.zip - 1578703218576210 - 1 - 2020-01-11T00:40:18.576Z - "2713641e93bdf044b7746ad68eb296a0" - 2603999 - - - 4.0-alpha4/selenium-html-runner-4.0.0-alpha-4.jar - 1578580903259794 - 1 - 2020-01-09T14:41:43.259Z - "f1d95204b38287200ac0c530b4cd5d5a" - 17302085 - - - 4.0-alpha4/selenium-java-4.0.0-alpha-4.zip - 1578580901042353 - 1 - 2020-01-09T14:41:41.042Z - "5097599282bc212fb9dcd4dffad1b008" - 16696079 - - - 4.0-alpha4/selenium-server-4.0.0-alpha-4.jar - 1578580900105343 - 1 - 2020-01-09T14:41:40.105Z - "be28243bdc8e77aac29fb80b884ff71a" - 15631738 - - - 4.0-alpha4/selenium-server-4.0.0-alpha-4.zip - 1578580902285808 - 1 - 2020-01-09T14:41:42.285Z - "767595562c4756e87996d6f6e555659c" - 32702610 - - - 4.0-alpha5/selenium-dotnet-4.0.0-alpha05.zip - 1584487039663917 - 1 - 2020-03-17T23:17:19.663Z - "98ae7fa19d982e1b2060d422d7069a8f" - 3458268 - - - 4.0-alpha5/selenium-dotnet-strongnamed-4.0.0-alpha05.zip - 1584487040210286 - 1 - 2020-03-17T23:17:20.210Z - "ec6ea70aa6085ace2bce3ca0edf1ec4a" - 3350193 - - - 4.0-alpha5/selenium-html-runner-4.0.0-alpha-5.jar - 1584526070263337 - 1 - 2020-03-18T10:07:50.263Z - "8e04c8cc2fa88d822c8f78e658cba697" - 18120578 - - - 4.0-alpha5/selenium-java-4.0.0-alpha-5.zip - 1584526047148915 - 1 - 2020-03-18T10:07:27.148Z - "295f139eb9a63706be15cdc5e19fbef2" - 17168193 - - - 4.0-alpha5/selenium-server-4.0.0-alpha-5.jar - 1584526058658254 - 1 - 2020-03-18T10:07:38.658Z - "371ed1590112f4a0fe63b2a2ec969294" - 16023505 - - - 4.0-alpha5/selenium-server-4.0.0-alpha-5.zip - 1584526036446769 - 1 - 2020-03-18T10:07:16.446Z - "c9b47d1890c5de014db2eb3ad4fddaa5" - 33758473 - - - 4.0-beta-1/selenium-dotnet-4.0.0-beta1.zip - 1613410679203148 - 1 - 2021-02-15T17:37:59.235Z - "68cfd3eec5b1465c6fa8dfbda0f68299" - 23995075 - - - 4.0-beta-1/selenium-dotnet-strongnamed-4.0.0-beta1.zip - 1613410679892187 - 1 - 2021-02-15T17:37:59.924Z - "8ba0092dceeca579e666678dd68f692c" - 14258144 - - - 4.0-beta-1/selenium-html-runner-4.0.0-beta-1.jar - 1613389088043594 - 1 - 2021-02-15T11:38:08.076Z - "8f392add154f599d7965f7583c619bbf" - 17835081 - - - 4.0-beta-1/selenium-java-4.0.0-beta-1.zip - 1613389044649266 - 1 - 2021-02-15T11:37:24.681Z - "20d727af49336bb8410bd648b7426bc4" - 20410688 - - - 4.0-beta-1/selenium-server-4.0.0-beta-1.jar - 1613389067509998 - 1 - 2021-02-15T11:37:47.724Z - "23058b80d10d7a2cf4966b842b766420" - 22326851 - - - 4.0/selenium-html-runner-4.0.0-alpha-1.jar - 1556122622727272 - 1 - 2019-04-24T16:17:02.727Z - "2eca35318710f46d1ba5ed5543a906c9" - 14175475 - - - 4.0/selenium-html-runner-4.0.0-alpha-2.jar - 1562016761897252 - 1 - 2019-07-01T21:32:41.897Z - "346d72e4f425bfec91c7073a46c96208" - 14424639 - - - 4.0/selenium-java-4.0.0-alpha-1.zip - 1556122621773408 - 1 - 2019-04-24T16:17:01.773Z - "db9ed262a07c1cd2bb6098263c7f1e7b" - 8869057 - - - 4.0/selenium-java-4.0.0-alpha-2.zip - 1562016753085293 - 1 - 2019-07-01T21:32:33.085Z - "2d31929580c3d829197eea97ade5f4f0" - 9162101 - - - 4.0/selenium-server-4.0.0-alpha-1.jar - 1556122618304605 - 1 - 2019-04-24T16:16:58.304Z - "c32b1dd1c12cdb42b48f345d65d657fb" - 11134323 - - - 4.0/selenium-server-4.0.0-alpha-1.zip - 1556122619196288 - 1 - 2019-04-24T16:16:59.196Z - "7f0bc4bb4fc2a5a7f0a262f62bf782d3" - 10700037 - - - 4.0/selenium-server-4.0.0-alpha-2.jar - 1562016724869272 - 1 - 2019-07-01T21:32:04.869Z - "d0676e6b3ee508b48416aba603662573" - 11314879 - - - 4.0/selenium-server-4.0.0-alpha-2.zip - 1562016731450773 - 1 - 2019-07-01T21:32:11.450Z - "fb19d62db44a7b163f1fbc2fff9dff0a" - 10973471 - - - 4.0/selenium-server-standalone-4.0.0-alpha-1.jar - 1556122620115927 - 1 - 2019-04-24T16:17:00.115Z - "ac553ec987d16d2af8c8e3ef9061772c" - 12564804 - - - 4.0/selenium-server-standalone-4.0.0-alpha-1.zip - 1556122620996687 - 1 - 2019-04-24T16:17:00.996Z - "1974b11f970bad6e15c84e3840ec3897" - 12342093 - - - 4.0/selenium-server-standalone-4.0.0-alpha-2.jar - 1562016739229945 - 1 - 2019-07-01T21:32:19.229Z - "d000d97d24389fde5bfb94f450ede780" - 12926731 - - - 4.0/selenium-server-standalone-4.0.0-alpha-2.zip - 1562016747186283 - 1 - 2019-07-01T21:32:27.186Z - "2466773c71eeddea02004371a5e32324" - 12856268 - - - - 4.0/selenium-server-4.0.0.jar - 1613389067509998 - 1 - 2021-04-15T11:37:47.724Z - "23058b80d10d7a2cf4966b842b766420" - 22326851 - - - icons/back.gif - 1389651464491000 - 2 - 2014-01-13T22:17:44.445Z - "4bce9846e05d3bffdfb293d47c840a8e" - 216 - - - icons/binary.gif - 1389651166628000 - 4 - 2014-01-13T22:12:46.557Z - "96bd4beed88ff93356586485c13e5d89" - 246 - - - icons/blank.gif - 1389651167385000 - 4 - 2014-01-13T22:12:47.329Z - "19517fb39a31be6b8d7ccf53ad84908f" - 148 - - - icons/folder.gif - 1389651168089000 - 4 - 2014-01-13T22:12:47.995Z - "d342cba375fea336967317bdb5d7cf19" - 225 - - - index.html - 1389651159940000 - 4 - 2014-01-13T22:12:39.793Z - "704b0f841aad1b1428481b7ff3c759c0" - 10574 - - diff --git a/src-tests/Selenium/VersionResolverTest.php b/src-tests/Selenium/VersionResolverTest.php index 0126f7e9..3b4c5acd 100644 --- a/src-tests/Selenium/VersionResolverTest.php +++ b/src-tests/Selenium/VersionResolverTest.php @@ -19,85 +19,27 @@ protected function setUp(): void $this->resolver = new VersionResolver(); } - public function testShouldGetAvailableVersions(): void - { - $releasesDummyResponse = file_get_contents(__DIR__ . '/Fixtures/releases-response.xml'); - $fileGetContentsMock = $this->createConfiguredMock( - FileGetContentsWrapper::class, - ['fileGetContents' => $releasesDummyResponse] - ); - - $this->resolver->setFileGetContentsWrapper($fileGetContentsMock); - $availableVersions = $this->resolver->getAvailableVersions(); - - $this->assertContainsOnlyInstancesOf(Version::class, $availableVersions); - - $this->assertSame( - [ - '2.53.0', - '2.53.1', - '3.0.0-beta1', - '3.0.0-beta2', - '3.0.0-beta3', - '3.0.0-beta4', - '3.0.0', - '3.0.1', - '3.1.0', - '3.2.0', - '3.14.0', - '3.141.0', - '3.141.5', - '3.141.59', - '4.0.0-alpha-5', - '4.0.0-alpha-6', - '4.0.0-alpha-7', - '4.0.0-beta-1', - '4.0.0', - ], - array_map( - static function (Version $version) { - return $version->toString(); - }, - $availableVersions - ) - ); - } - public function testShouldGetLatestVersion(): void { $fileGetContentsMock = $this->createConfiguredMock( FileGetContentsWrapper::class, - ['fileGetContents' => file_get_contents(__DIR__ . '/Fixtures/releases-response.xml')] - ); - - $this->resolver->setFileGetContentsWrapper($fileGetContentsMock); - - $this->assertEquals('4.0.0', $this->resolver->getLatestVersion()->toString()); - } - - public function testShouldReturnEmptyArrayOfAvailableVersionsIfRequestToGetVersionFailed(): void - { - $fileGetContentsMock = $this->createConfiguredMock( - FileGetContentsWrapper::class, - ['fileGetContents' => false] + ['fileGetContents' => file_get_contents(__DIR__ . '/Fixtures/releases-latest.json')] ); $this->resolver->setFileGetContentsWrapper($fileGetContentsMock); - $this->assertSame([], $this->resolver->getAvailableVersions()); - $this->assertNull($this->resolver->getLatestVersion()); + $this->assertEquals('3.141.59', $this->resolver->getLatestVersion()->toString()); } - public function testShouldReturnEmptyArrayOfAvailableVersionsIfRequestToGetLatestVersionReturnsInvalidXml(): void + public function testShouldReturnEmptyArrayOfAvailableVersionsIfRequestToGetLatestVersionReturnsInvalidJson(): void { $fileGetContentsMock = $this->createConfiguredMock( FileGetContentsWrapper::class, - ['fileGetContents' => 'this is not XM'] + ['fileGetContents' => 'this is not JSON'] ); $this->resolver->setFileGetContentsWrapper($fileGetContentsMock); - $this->assertSame([], $this->resolver->getAvailableVersions()); $this->assertNull($this->resolver->getLatestVersion()); } @@ -105,40 +47,14 @@ public function testShouldReturnEmptyArrayOfAvailableVersionsIfLatestVersionCann { $fileGetContentsMock = $this->createConfiguredMock( FileGetContentsWrapper::class, - ['fileGetContents' => file_get_contents(__DIR__ . '/Fixtures/releases-response-missing.xml')] + ['fileGetContents' => file_get_contents(__DIR__ . '/Fixtures/releases-response-missing.json')] ); $this->resolver->setFileGetContentsWrapper($fileGetContentsMock); - $this->assertSame([], $this->resolver->getAvailableVersions()); $this->assertNull($this->resolver->getLatestVersion()); } - public function testShouldNotIncludeInvalidVersionsInAvailableVersions(): void - { - $fileGetContentsMock = $this->createConfiguredMock( - FileGetContentsWrapper::class, - ['fileGetContents' => file_get_contents(__DIR__ . '/Fixtures/releases-response-invalid-version.xml')] - ); - - $this->resolver->setFileGetContentsWrapper($fileGetContentsMock); - - $this->assertEquals( - [Version::createFromString('3.1.0'), Version::createFromString('3.10.0')], - $this->resolver->getAvailableVersions() - ); - } - - /** - * @group integration - */ - public function testShouldResolveActualAvailableVersion(): void - { - $availableVersions = (new VersionResolver())->getAvailableVersions(); - - $this->assertGreaterThanOrEqual(59, count($availableVersions)); - } - /** * @group integration */ @@ -147,6 +63,6 @@ public function testShouldResolveActualLatestVersion(): void $latestVersion = (new VersionResolver())->getLatestVersion(); $this->assertRegExp('/^\d+\.\d+\.\d+.*$/', $latestVersion->toString()); - $this->assertGreaterThanOrEqual((int) $latestVersion->getMajor(), 4); + $this->assertGreaterThanOrEqual(4, (int) $latestVersion->getMajor()); } } diff --git a/src/Selenium/Downloader.php b/src/Selenium/Downloader.php index 2bd2d6b6..aec20925 100644 --- a/src/Selenium/Downloader.php +++ b/src/Selenium/Downloader.php @@ -8,7 +8,7 @@ class Downloader { /** @var string */ - public const SELENIUM_STORAGE_URL = 'https://selenium-release.storage.googleapis.com'; + private const DOWNLOAD_URL = 'https://github.com/SeleniumHQ/selenium/releases/download'; /** @var string Target directory where should be the file saved */ private $targetDir; /** @var Version Version to download */ @@ -36,7 +36,7 @@ public function isAlreadyDownloaded(): bool */ public function getFilePath(): string { - return $this->targetDir . '/' . $this->getFileName(); + return $this->targetDir . '/' . $this->assembleFileName(); } /** @@ -45,12 +45,10 @@ public function getFilePath(): string public function getFileUrl(): string { return sprintf( - '%s/%s.%s%s/%s', - self::SELENIUM_STORAGE_URL, - $this->version->getMajor(), - $this->version->getMinor(), - $this->version->getDev() !== '' ? '-' . $this->version->getDev() : '', - $this->getFileName() + '%s/%s/%s', + self::DOWNLOAD_URL, + $this->assembleTagName(), + $this->assembleFileName() ); } @@ -72,7 +70,7 @@ public function download(): int $fp = @fopen($fileUrl, 'rb'); $responseHeaders = get_headers($fileUrl); - if (mb_strpos($responseHeaders[0], '200 OK') === false) { + if (!in_array('HTTP/1.1 200 OK', $responseHeaders, true)) { throw new \RuntimeException(sprintf('Error downloading file "%s" (%s)', $fileUrl, $responseHeaders[0])); } @@ -86,10 +84,18 @@ public function download(): int return $downloadedSize; } + private function assembleTagName(): string + { + return sprintf( + 'selenium-%s', + $this->version->toString() + ); + } + /** * Get name of the jar file */ - protected function getFileName(): string + protected function assembleFileName(): string { $baseName = ($this->version->getMajor() === '4' ? 'selenium-server' : 'selenium-server-standalone'); diff --git a/src/Selenium/VersionResolver.php b/src/Selenium/VersionResolver.php index ec8a9c04..1da33963 100644 --- a/src/Selenium/VersionResolver.php +++ b/src/Selenium/VersionResolver.php @@ -9,18 +9,7 @@ */ class VersionResolver { - /** @var string[] Versions with malformed names, duplicates etc. */ - private const IGNORED_VERSIONS = [ - '3.0-beta2/selenium-server-standalone-3.0.0-beta3.jar', - '4.0/selenium-server-4.0.0-alpha-1.jar', - '4.0/selenium-server-4.0.0-alpha-2.jar', - '4.0/selenium-server-standalone-4.0.0-alpha-1.jar', - '4.0/selenium-server-standalone-4.0.0-alpha-2.jar', - '4.0-alpha/selenium-server-4.0.0-alpha-3.jar', - '4.0-alpha4/selenium-server-4.0.0-alpha-4.jar', - '4.0-alpha5/selenium-server-4.0.0-alpha-5.jar', - ]; - + private const RELEASES_API_URL = 'https://api.github.com/repos/SeleniumHQ/selenium/releases'; /** @var FileGetContentsWrapper */ private $fileGetContentsWrapper; @@ -38,71 +27,24 @@ public function setFileGetContentsWrapper(FileGetContentsWrapper $fileGetContent } /** - * @return Version[] - */ - public function getAvailableVersions(): array - { - $data = $this->fileGetContentsWrapper->fileGetContents(Downloader::SELENIUM_STORAGE_URL); - if (!$data) { - return []; - } - - libxml_use_internal_errors(true); // disable errors from being thrown - $xml = simplexml_load_string($data); - if (!$xml) { - return []; - } - - $releases = $xml->xpath('//*[text()[contains(.,"selenium-server") and contains(.,".jar")]]'); - $availableVersions = []; - foreach ($releases as $release) { - $release = (string) $release; - - if (in_array($release, self::IGNORED_VERSIONS, true)) { // skip ignored version - continue; - } - - $parsedVersion = preg_replace('/.*(standalone|server)-(.+\..+\..+)\.jar/', '$2', $release); - if ($release === $parsedVersion) { // regexp did not match - continue; - } - - $availableVersions[] = Version::createFromString($parsedVersion); - } - - $this->sortVersions($availableVersions); - - return $availableVersions; - } - - /** - * Get latest released version of Selenium server. If not found, null is returned. + * Get latest released stable version of Selenium server. If not found, null is returned. */ public function getLatestVersion(): ?Version { - $availableVersions = $this->getAvailableVersions(); + $responseData = $this->fileGetContentsWrapper->fileGetContents(self::RELEASES_API_URL . '/latest'); - if (empty($availableVersions)) { + try { + $decodedData = json_decode($responseData, false, 512, JSON_THROW_ON_ERROR); + } catch (\JsonException $e) { return null; } - return end($availableVersions); - } - - private function sortVersions(array &$versions): void - { - // Sort naturally, but versions like 3.0.0 must be after 3.0.0-beta, so we must take care of them explicitly - usort($versions, static function (Version $a, Version $b): int { - $aParts = explode('-', $a->toString()); - $bParts = explode('-', $b->toString()); + if (!isset($decodedData->tag_name)) { + return null; + } - // First part is the same (3.0.0), but one string does have second part (-beta) while the other one does not - if ($aParts[0] === $bParts[0] && (count($aParts) !== count($bParts))) { - // The one with less parts should be ordered after the longer one - return count($bParts) <=> count($aParts); - } + $version = preg_replace('/^selenium-(.+)$/', '$1', $decodedData->tag_name); - return strnatcmp(mb_strtolower($a->toString()), mb_strtolower($b->toString())); - }); + return Version::createFromString($version); } } diff --git a/src/Utils/FileGetContentsWrapper.php b/src/Utils/FileGetContentsWrapper.php index fda3bfa4..ca786d98 100644 --- a/src/Utils/FileGetContentsWrapper.php +++ b/src/Utils/FileGetContentsWrapper.php @@ -12,6 +12,15 @@ class FileGetContentsWrapper */ public function fileGetContents(string $filename) { - return file_get_contents($filename); + $options = [ + 'http' => [ + 'method' => 'GET', + 'header' => "User-Agent: PHP\r\n", + ], + ]; + + $context = stream_context_create($options); + + return file_get_contents($filename, false, $context); } } From 54faa8f6245c9d82d1ab5bb0dd34287973f6b893 Mon Sep 17 00:00:00 2001 From: Ondrej Machulda Date: Thu, 28 Oct 2021 23:57:11 +0200 Subject: [PATCH 2/3] Run integration tests on Selenium 4.1.0 --- .github/workflows/tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 0cb6916d..f1cc1f36 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -54,7 +54,7 @@ jobs: strategy: matrix: - selenium-version: ['3.141.59', '4.0.0-beta-2'] + selenium-version: ['3.141.59', '4.1.0'] name: Integration tests (Selenium ${{ matrix.selenium-version }}) From 28295b58487ebfdfecd988a965d90de256d82efe Mon Sep 17 00:00:00 2001 From: Ondrej Machulda Date: Fri, 26 Nov 2021 00:58:47 +0100 Subject: [PATCH 3/3] Build on AppVeyor on the latest available PHP version --- .appveyor.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 2415b2ae..3250f53b 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -21,8 +21,7 @@ init: install: - IF EXIST c:\tools\php (SET PHP=0) - IF %PHP%==1 cinst -y OpenSSL.Light - # TODO: remove -version and use the latest PHP (after Steward has PHP 8.0 support) - - IF %PHP%==1 cinst -y php -version 7.4.15 --params "/InstallDir:C:\tools\php" # we could use -version to specify exact version, but we rather use the latest available + - IF %PHP%==1 cinst -y php --params "/InstallDir:C:\tools\php" # we do not use -version to specify exact version, but we rather use the latest available - cd C:\tools\php - IF %PHP%==1 copy php.ini-production php.ini /Y - IF %PHP%==1 echo extension_dir=ext >> php.ini @@ -37,6 +36,6 @@ install: test_script: - cd %APPVEYOR_BUILD_FOLDER%\src-tests\ - - ..\vendor\bin\phpunit --colors=always --exclude-group integration + - php ..\vendor\bin\phpunit --colors=always --exclude-group integration build: false # disable build step (we only run tests)