Bug 1543725 - Add marionette support to Thunderbird, empty for now. r=rjl,whimboo
☠☠ backed out by 49d7adb910b0 ☠ ☠
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Mon, 03 Jun 2019 19:42:29 +0000
changeset 35780 4058126a02ed6f306b01a07db5e1f8222fec3206
parent 35779 fdc11cc835350decbe04c6def58bfbd1c1dbf8d9
child 35781 49d7adb910b066131e595798ec83a73fee457d07
push id392
push userclokep@gmail.com
push dateMon, 02 Sep 2019 20:17:19 +0000
reviewersrjl, whimboo
bugs1543725
Bug 1543725 - Add marionette support to Thunderbird, empty for now. r=rjl,whimboo Differential Revision: https://phabricator.services.mozilla.com/D27104
build/virtualenv_packages.txt
mail/moz.build
mail/test/marionette/manifest.ini
mail/test/marionette/moz.build
mail/test/marionette/test_empty.py
taskcluster/ci/test/kind.yml
taskcluster/ci/test/marionette.yml
taskcluster/ci/test/test-sets.yml
testing/marionette/thunderbirdinstance.py
testing/marionette/unit-tests.ini
--- a/build/virtualenv_packages.txt
+++ b/build/virtualenv_packages.txt
@@ -1,1 +1,2 @@
 comm.pth:comm/taskcluster
+comm.pth:comm/testing/marionette
--- a/mail/moz.build
+++ b/mail/moz.build
@@ -16,11 +16,11 @@ DIRS += [
 ]
 
 if CONFIG['MAKENSISU']:
     DIRS += ['installer/windows']
 
 if CONFIG['MOZ_BUNDLED_FONTS']:
     DIRS += ['/%s/browser/fonts' % CONFIG['mozreltopsrcdir']]
 
-TEST_DIRS += ['test/mozmill']
+TEST_DIRS += ['test/mozmill', 'test/marionette']
 
 FINAL_TARGET_FILES.defaults += ['app/permissions']
new file mode 100644
--- /dev/null
+++ b/mail/test/marionette/manifest.ini
@@ -0,0 +1,1 @@
+[test_empty.py]
new file mode 100644
--- /dev/null
+++ b/mail/test/marionette/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+MARIONETTE_UNIT_MANIFESTS += ['manifest.ini']
new file mode 100644
--- /dev/null
+++ b/mail/test/marionette/test_empty.py
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+from __future__ import print_function
+
+from marionette_harness import MarionetteTestCase
+
+class TestMain(MarionetteTestCase):
+
+    def test_empty(self):
+        return
--- a/taskcluster/ci/test/kind.yml
+++ b/taskcluster/ci/test/kind.yml
@@ -13,8 +13,9 @@ kind-dependencies:
 transforms:
     - taskgraph.transforms.tests:transforms
     - comm_taskgraph:tests_drop_1proc
     - taskgraph.transforms.job:transforms
     - taskgraph.transforms.task:transforms
 
 jobs-from:
     - tests.yml
+    - marionette.yml
new file mode 100644
--- /dev/null
+++ b/taskcluster/ci/test/marionette.yml
@@ -0,0 +1,36 @@
+job-defaults:
+    suite: marionette
+    mozharness:
+        script: marionette.py
+        config:
+            by-test-platform:
+                macosx.*:
+                    - marionette/prod_config.py
+                    - marionette/mac_taskcluster_config.py
+                windows.*:
+                    - marionette/windows_taskcluster_config.py
+                default:
+                    - marionette/prod_config.py
+                    - remove_executables.py
+        extra-options:
+            - --application=thunderbird --test-manifest=../../../../../comm/testing/marionette/unit-tests.ini
+    run-on-projects: built-projects
+
+marionette:
+    description: "Marionette unittest run"
+    treeherder-symbol: Mn
+    max-run-time: 5400
+    e10s: false
+    instance-size: default
+    chunks: 1
+
+marionette-headless:
+    description: "Marionette headless unittest run"
+    treeherder-symbol: MnH
+    max-run-time: 5400
+    e10s: false
+    instance-size: default
+    mozharness:
+        extra-options:
+            - --headless
+
--- a/taskcluster/ci/test/test-sets.yml
+++ b/taskcluster/ci/test/test-sets.yml
@@ -17,11 +17,13 @@
 # Universal tests
 #
 # Tests that run just about everywhere; common-tests is the shared core, with
 # a few add-on test sets that are included or omitted on some platforms.
 
 common-tests:
     - xpcshell
     - mozmill
+    - marionette
+    - marionette-headless
 
 optimized-tests:
     - mochitest-thunderbird
new file mode 100644
--- /dev/null
+++ b/testing/marionette/thunderbirdinstance.py
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/
+
+# ALL CHANGES TO THIS FILE MUST HAVE REVIEW FROM A MARIONETTE PEER!
+#
+# The Marionette Python client is used out-of-tree with various builds of
+# Firefox. Removing a preference from this file will cause regressions,
+# so please be careful and get review from a Testing :: Marionette peer
+# before you make any changes to this file.
+
+from __future__ import absolute_import
+
+
+thunderbird_prefs = {
+    # Disable application updates
+    "app.update.disabledForTesting": True,
+
+    # Enable output of dump()
+    "browser.dom.window.dump.enabled": True,
+
+    # Do not show the EULA notification which can interfer with tests
+    "browser.EULA.override": True,
+
+    # Do not start first-run items
+    "mail.provider.suppress_dialog_on_startup": True,
+    "mail.spotlight.firstRunDone": True,
+    "mail.winsearch.firstRunDone": True,
+
+    # Do not open start page
+    "mailnews.start_page.override_url": "about:blank",
+    "mailnews.start_page.url": "about:blank",
+}
new file mode 100644
--- /dev/null
+++ b/testing/marionette/unit-tests.ini
@@ -0,0 +1,2 @@
+# mail tests
+[include:../../mail/test/marionette/manifest.ini]