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