Commit 32daa36c authored by Jérome Perrin's avatar Jérome Perrin

Firefox 115 on seleniumserver and seleniumrunner

See merge request nexedi/slapos!1470
parents 07711f81 71951a9b
Pipeline #31068 failed with stage
......@@ -6,12 +6,12 @@ parts =
# Contains libasound
recipe = slapos.recipe.cmmi
shared = true
url = ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.1.3.tar.bz2
md5sum = eefe5992567ba00d6110a540657aaf5c
url = https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.10.tar.bz2
md5sum = aced5acdb6161ed86e5ca3bb10618ca1
configure-options =
--disable-static
--disable-aload
--disable-rawmidi
--enable-rawmidi
--disable-ucm
--disable-alisp
--disable-old-symbols
......
......@@ -54,6 +54,10 @@ install =
))
os.fchmod(f.fileno(), 0o755)
[firefox-wrapper-115]
<= firefox-wrapper
part = firefox-115
[firefox-wrapper-78]
<= firefox-wrapper
part = firefox-78
......@@ -66,10 +70,6 @@ part = firefox-68
<= firefox-wrapper
part = firefox-60
[firefox-wrapper-52]
<= firefox-wrapper
part = firefox-52
[firefox-default-fonts-conf]
recipe = slapos.recipe.template:jinja2
url = ${template-fonts-conf:output}
......@@ -92,7 +92,13 @@ cache-dir =
# installed in ${buildout:bin-directory}.
# Installing ${firefox:} is not enough, because wrapper setting $LD_LIBRARY_PATH
# would not be created.
<= firefox-68
<= firefox-115
[firefox-115]
<= firefox-download
version = 115.3.1esr
i686-md5sum = f0df1b5cce1edd65addc823da02f9488
x86_64-md5sum = 910c0786459cf1e4dc214e6402d0633e
[firefox-78]
<= firefox-download
......@@ -112,12 +118,6 @@ version = 60.0.2esr
i686-md5sum = ce7c80716036dfb5c2fb1ca2538556ff
x86_64-md5sum = 6fe25d9a3fcc82670320242c9047d1da
[firefox-52]
<= firefox-download
version = 52.9.0esr
i686-md5sum = 9aa18888b7812670208490609d75c9bc
x86_64-md5sum = 9336d70f45070c743d08e5473b783a7a
[firefox-download]
recipe = slapos.recipe.build
slapos_promise =
......@@ -157,8 +157,10 @@ library =
${libXext:location}/lib
${libXi:location}/lib
${libxml2:location}/lib
${libXrandr:location}/lib
${libXrender:location}/lib
${libXt:location}/lib
${libXtst:location}/lib
${mesa:location}/lib
${pango:location}/lib
${pcre:location}/lib
......@@ -186,7 +188,13 @@ md5sum = ${:x86_64-md5sum}
[geckodriver]
# Current geckodriver installed as ${buildout:bin-directory}/geckodriver
<= geckodriver-0.24.0
<= geckodriver-0.33.0
[geckodriver-0.33.0]
<= geckodriver-base
version = 0.33.0
i686-md5sum = c4a9e6c92dc493f25c8d390f1c6fb11c
x86_64-md5sum = 563c82cfbb21478450e1c828e3730b10
[geckodriver-0.24.0]
<= geckodriver-base
......@@ -200,12 +208,6 @@ version = 0.22.0
i686-md5sum = 6de7544753fda56fbaa8382dcac99aaa
x86_64-md5sum = 81746200ce5841e00cabf3b8ea7db542
[geckodriver-0.16.1]
<= geckodriver-base
version = 0.16.1
i686-md5sum = not not on github
x86_64-md5sum = 57dfd55d4759d9878eb75b4c0123d00c
[geckodriver-base]
# Installs geckodriver ${version}
recipe = slapos.recipe.build
......
......@@ -52,6 +52,3 @@ url = ${:_profile_base_location_}/${:filename}
[template]
<= macro-template
output = ${buildout:directory}/template.cfg
[versions]
plone.recipe.command = 1.1
......@@ -19,4 +19,4 @@ md5sum = 10e19df182c692b71ea552da183a0bcf
[template-selenium]
filename = instance-selenium.cfg.in
md5sum = 2d84d5fb9306b88ef71e101acb46f684
md5sum = 8c48c7bef34dd54ab3bd94c91f2bf041
......@@ -97,28 +97,28 @@ environment =
hostname = $${slap-configuration:ipv4-random}
[selenium-server-node-instance-firefox-52]
<= selenium-server-node-instance
capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX,version=${firefox-52:version},firefox_binary=${firefox-wrapper-52:location}
java-args = -Dwebdriver.gecko.driver=${geckodriver-0.16.1:location}
port = 7777
[selenium-server-node-instance-firefox-60]
<= selenium-server-node-instance
capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX,version=${firefox-60:version},firefox_binary=${firefox-wrapper-60:location}
java-args = -Dwebdriver.gecko.driver=${geckodriver-0.22.0:location}
port = 7778
port = 7777
[selenium-server-node-instance-firefox-68]
<= selenium-server-node-instance
capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX,version=${firefox-68:version},firefox_binary=${firefox-wrapper-68:location}
java-args = -Dwebdriver.gecko.driver=${geckodriver-0.24.0:location}
port = 7779
port = 7778
[selenium-server-node-instance-firefox-78]
<= selenium-server-node-instance
capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX,version=${firefox-78:version},firefox_binary=${firefox-wrapper-78:location}
java-args = -Dwebdriver.gecko.driver=${geckodriver-0.24.0:location}
port = 7779
[selenium-server-node-instance-firefox-115]
<= selenium-server-node-instance
capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX,version=${firefox-115:version},firefox_binary=${firefox-wrapper-115:location}
java-args = -Dwebdriver.gecko.driver=${geckodriver-0.33.0:location}
port = 7780
[selenium-server-node-instance-chromium-69]
......@@ -137,12 +137,10 @@ port = 7782
[selenium-server-admin-password]
recipe = slapos.cookbook:generate.password
username = admin
bytes = 12
[selenium-server-selenium-password]
recipe = slapos.cookbook:generate.password
username = selenium
bytes = 12
[selenium-server-frontnend-certificate]
......@@ -303,10 +301,10 @@ instance-promises =
$${selenium-server-frontend-listen-promise:name}
$${selenium-server-hub-listen-promise:name}
$${selenium-server-hub-nodes-registered-promise:name}
$${selenium-server-node-firefox-52-listen-promise:name}
$${selenium-server-node-firefox-60-listen-promise:name}
$${selenium-server-node-firefox-68-listen-promise:name}
$${selenium-server-node-firefox-78-listen-promise:name}
$${selenium-server-node-firefox-115-listen-promise:name}
$${selenium-server-node-instance-chromium-69-listen-promise:name}
$${selenium-server-node-instance-chromium-91-listen-promise:name}
......@@ -353,11 +351,6 @@ inline =
sys.exit(0 if expected_node_count == actual_node_count else 1)
[selenium-server-node-firefox-52-listen-promise]
<= check-port-listening-promise
config-host = $${selenium-server-node-instance-firefox-52:hostname}
config-port = $${selenium-server-node-instance-firefox-52:port}
[selenium-server-node-firefox-60-listen-promise]
<= check-port-listening-promise
config-host = $${selenium-server-node-instance-firefox-60:hostname}
......@@ -373,6 +366,11 @@ config-port = $${selenium-server-node-instance-firefox-68:port}
config-host = $${selenium-server-node-instance-firefox-78:hostname}
config-port = $${selenium-server-node-instance-firefox-78:port}
[selenium-server-node-firefox-115-listen-promise]
<= check-port-listening-promise
config-host = $${selenium-server-node-instance-firefox-115:hostname}
config-port = $${selenium-server-node-instance-firefox-115:port}
[selenium-server-node-instance-chromium-69-listen-promise]
<= check-port-listening-promise
config-host = $${selenium-server-node-instance-chromium-69:hostname}
......
......@@ -75,3 +75,7 @@ post-install =
[firefox-78]
post-install =
${symlink-extra-fonts-to-firefox-fonts-dir:install}
[firefox-115]
post-install =
${symlink-extra-fonts-to-firefox-fonts-dir:install}
......@@ -290,12 +290,12 @@ class TestBrowserSelection(WebServerMixin, SeleniumServerTestCase):
'Gecko/20100101 Firefox/60.0',
driver.execute_script('return navigator.userAgent'))
driver.quit()
desired_capabilities['version'] = '52.9.0esr'
desired_capabilities['version'] = '115.3.1esr'
driver = webdriver.Remote(
command_executor=webdriver_url,
desired_capabilities=desired_capabilities)
self.assertIn(
'Gecko/20100101 Firefox/52.0',
'Gecko/20100101 Firefox/115.0',
driver.execute_script('return navigator.userAgent'))
driver.quit()
......@@ -310,6 +310,12 @@ class TestFrontend(WebServerMixin, SeleniumServerTestCase):
parsed = urllib.parse.urlparse(admin_url)
self.assertEqual('admin', parsed.username)
self.assertTrue(parsed.password)
self.assertEqual(
requests.get(
parsed._replace(netloc=f"[{parsed.hostname}]:{parsed.port}").geturl(),
verify=False).status_code,
requests.codes.unauthorized
)
self.assertIn('Grid Console', requests.get(admin_url, verify=False).text)
......@@ -319,6 +325,12 @@ class TestFrontend(WebServerMixin, SeleniumServerTestCase):
parsed = urllib.parse.urlparse(webdriver_url)
self.assertEqual('selenium', parsed.username)
self.assertTrue(parsed.password)
self.assertEqual(
requests.get(
parsed._replace(netloc=f"[{parsed.hostname}]:{parsed.port}").geturl(),
verify=False).status_code,
requests.codes.unauthorized
)
# XXX we are using a self signed certificate, but selenium 3.141.0 does
# not expose API to ignore certificate verification
......@@ -397,19 +409,6 @@ class TestSSHServer(SeleniumServerTestCase):
self.assertIn(b"Welcome to SlapOS Selenium Server.", received)
class TestFirefox52(
BrowserCompatibilityMixin,
SeleniumServerTestCase,
ImageComparisonTestCase,
):
desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='52.9.0esr')
user_agent = 'Gecko/20100101 Firefox/52.0'
# resizing window is not supported on firefox 52 geckodriver
@unittest.expectedFailure
def test_resize_window(self):
super().test_resize_window()
class TestFirefox60(
BrowserCompatibilityMixin,
SeleniumServerTestCase,
......@@ -427,6 +426,7 @@ class TestFirefox68(
desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='68.0.2esr')
user_agent = 'Gecko/20100101 Firefox/68.0'
class TestFirefox78(
BrowserCompatibilityMixin,
SeleniumServerTestCase,
......@@ -436,6 +436,20 @@ class TestFirefox78(
user_agent = 'Gecko/20100101 Firefox/78.0'
class TestFirefox115(
BrowserCompatibilityMixin,
SeleniumServerTestCase,
ImageComparisonTestCase,
):
desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='115.3.1esr')
user_agent = 'Gecko/20100101 Firefox/115.0'
# resizing window does not work, but we don't really depend on it
@unittest.expectedFailure
def test_resize_window(self):
super().test_resize_window()
class TestChrome69(
BrowserCompatibilityMixin,
SeleniumServerTestCase,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment