--- a/browser/components/migration/tests/marionette/test_refresh_firefox.py
+++ b/browser/components/migration/tests/marionette/test_refresh_firefox.py
@@ -1,10 +1,12 @@
-import os, shutil
-from marionette import MarionetteTestCase
+import os
+import shutil
+
+from marionette_harness import MarionetteTestCase
class TestFirefoxRefresh(MarionetteTestCase):
_username = "marionette-test-login"
_password = "marionette-test-password"
_bookmarkURL = "about:mozilla"
_bookmarkText = "Some bookmark from Marionette"
--- a/build/mach_bootstrap.py
+++ b/build/mach_bootstrap.py
@@ -63,17 +63,17 @@ SEARCH_PATHS = [
'dom/media/test/external',
'layout/tools/reftest',
'other-licenses/ply',
'taskcluster',
'testing',
'testing/firefox-ui/harness',
'testing/marionette/client',
'testing/marionette/harness',
- 'testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py',
+ 'testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py',
'testing/marionette/puppeteer/firefox',
'testing/mozbase/mozcrash',
'testing/mozbase/mozdebug',
'testing/mozbase/mozdevice',
'testing/mozbase/mozfile',
'testing/mozbase/mozhttpd',
'testing/mozbase/mozinfo',
'testing/mozbase/mozinstall',
--- a/build/virtualenv_packages.txt
+++ b/build/virtualenv_packages.txt
@@ -1,13 +1,13 @@
altgraph.pth:python/altgraph
marionette_driver.pth:testing/marionette/client
-browsermobproxy.pth:testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py
+marionette_harness.pth:testing/marionette/harness
+browsermobproxy.pth:testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py
wptserve.pth:testing/web-platform/tests/tools/wptserve
-marionette.pth:testing/marionette/harness
blessings.pth:python/blessings
configobj.pth:python/configobj
jsmin.pth:python/jsmin
mach.pth:python/mach
mozbuild.pth:python/mozbuild
mozversioncontrol.pth:python/mozversioncontrol
mozlint.pth:python/mozlint
pymake.pth:build/pymake
--- a/dom/media/test/external/external_media_harness/runtests.py
+++ b/dom/media/test/external/external_media_harness/runtests.py
@@ -1,21 +1,25 @@
# 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 manifestparser import read_ini
import os
import sys
-from marionette import BaseMarionetteTestRunner, BaseMarionetteArguments
-from marionette.runner import BrowserMobProxyArguments
-from marionette.runtests import MarionetteHarness, cli as mn_cli
import mozlog
+from manifestparser import read_ini
+from marionette_harness import (
+ BaseMarionetteTestRunner,
+ BaseMarionetteArguments,
+ BrowserMobProxyArguments,
+)
+from marionette_harness.runtests import MarionetteHarness, cli as mn_cli
+
import external_media_tests
from testcase import MediaTestCase
from external_media_tests.media_utils.video_puppeteer import debug_script
class MediaTestArgumentsBase(object):
name = 'Firefox Media Tests'
args = [
--- a/dom/media/test/external/external_media_harness/testcase.py
+++ b/dom/media/test/external/external_media_harness/testcase.py
@@ -1,20 +1,23 @@
# 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/.
import re
import os
-import time
-from marionette import BrowserMobProxyTestCaseMixin, MarionetteTestCase, Marionette
from marionette_driver import Wait
from marionette_driver.errors import TimeoutException
-from marionette.marionette_test import SkipTest
+from marionette_harness import (
+ BrowserMobProxyTestCaseMixin,
+ MarionetteTestCase,
+ Marionette,
+ SkipTest,
+)
from firefox_puppeteer import PuppeteerMixin
from external_media_tests.utils import (timestamp_now, verbose_until)
from external_media_tests.media_utils.video_puppeteer import (
VideoException,
VideoPuppeteer
)
--- a/dom/media/test/external/external_media_tests/media_utils/video_puppeteer.py
+++ b/dom/media/test/external/external_media_tests/media_utils/video_puppeteer.py
@@ -1,16 +1,17 @@
# 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 collections import namedtuple
from time import clock, sleep
-from marionette import Marionette
from marionette_driver import By, expected, Wait
+from marionette_harness import Marionette
from external_media_tests.utils import verbose_until
# Adapted from
# https://github.com/gavinsharp/aboutmedia/blob/master/chrome/content/aboutmedia.xhtml
debug_script = """
var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
--- a/dom/media/test/external/external_media_tests/media_utils/youtube_puppeteer.py
+++ b/dom/media/test/external/external_media_tests/media_utils/youtube_puppeteer.py
@@ -1,19 +1,22 @@
# 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 collections import namedtuple
-from time import sleep
+
import re
-from json import loads
-from marionette import Marionette
+from collections import namedtuple
+from json import loads
+from time import sleep
+
from marionette_driver import By, expected, Wait
from marionette_driver.errors import TimeoutException, NoSuchElementException
+from marionette_harness import Marionette
+
from video_puppeteer import VideoPuppeteer, VideoException
from external_media_tests.utils import verbose_until
class YouTubePuppeteer(VideoPuppeteer):
"""
Wrapper around a YouTube .html5-video-player element.
--- a/dom/media/test/external/external_media_tests/playback/test_eme_playback_limiting_bandwidth.py
+++ b/dom/media/test/external/external_media_tests/playback/test_eme_playback_limiting_bandwidth.py
@@ -1,20 +1,21 @@
# 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 marionette import BrowserMobProxyTestCaseMixin
+from marionette_harness import BrowserMobProxyTestCaseMixin
from external_media_harness.testcase import (
EMESetupMixin,
NetworkBandwidthTestCase,
NetworkBandwidthTestsMixin,
)
+
class TestEMEPlaybackLimitingBandwidth(NetworkBandwidthTestCase,
BrowserMobProxyTestCaseMixin,
NetworkBandwidthTestsMixin,
EMESetupMixin):
def setUp(self):
super(TestEMEPlaybackLimitingBandwidth, self).setUp()
--- a/dom/media/test/external/external_media_tests/playback/test_full_playback.py
+++ b/dom/media/test/external/external_media_tests/playback/test_full_playback.py
@@ -1,14 +1,14 @@
# 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 marionette_harness import Marionette
-from marionette import Marionette
from external_media_harness.testcase import MediaTestCase
from external_media_tests.media_utils.video_puppeteer import VideoPuppeteer
class TestFullPlayback(MediaTestCase):
""" Test MSE playback in HTML5 video element.
These tests should pass on any site where a single video element plays
--- a/dom/media/test/external/external_media_tests/playback/test_playback_limiting_bandwidth.py
+++ b/dom/media/test/external/external_media_tests/playback/test_playback_limiting_bandwidth.py
@@ -1,13 +1,13 @@
# 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 marionette import BrowserMobProxyTestCaseMixin
+from marionette_harness import BrowserMobProxyTestCaseMixin
from external_media_harness.testcase import (
NetworkBandwidthTestCase, NetworkBandwidthTestsMixin
)
class TestPlaybackLimitingBandwidth(NetworkBandwidthTestCase,
NetworkBandwidthTestsMixin,
--- a/dom/media/test/external/external_media_tests/playback/test_shaka_playback.py
+++ b/dom/media/test/external/external_media_tests/playback/test_shaka_playback.py
@@ -1,14 +1,14 @@
# 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 marionette_harness import Marionette
-from marionette import Marionette
from external_media_harness.testcase import MediaTestCase
from external_media_tests.media_utils.video_puppeteer import VideoPuppeteer
class TestShakaPlayback(MediaTestCase):
""" Test Widevine playback in shaka-player
This test takes manifest URLs rather than URLs for pages with videos. These
--- a/dom/media/test/external/external_media_tests/playback/test_ultra_low_bandwidth.py
+++ b/dom/media/test/external/external_media_tests/playback/test_ultra_low_bandwidth.py
@@ -1,13 +1,13 @@
# 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 marionette import BrowserMobProxyTestCaseMixin
+from marionette_harness import BrowserMobProxyTestCaseMixin
from external_media_harness.testcase import NetworkBandwidthTestCase
class TestUltraLowBandwidth(NetworkBandwidthTestCase,
BrowserMobProxyTestCaseMixin):
def test_playback_limiting_bandwidth_160(self):
--- a/dom/media/test/external/external_media_tests/playback/youtube/test_basic_playback.py
+++ b/dom/media/test/external/external_media_tests/playback/youtube/test_basic_playback.py
@@ -1,15 +1,15 @@
# 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 marionette import Marionette
from marionette_driver import Wait
from marionette_driver.errors import TimeoutException
+from marionette_harness import Marionette
from external_media_tests.utils import verbose_until
from external_media_harness.testcase import MediaTestCase
from external_media_tests.media_utils.video_puppeteer import VideoException
from external_media_tests.media_utils.youtube_puppeteer import YouTubePuppeteer
class TestBasicYouTubePlayback(MediaTestCase):
--- a/dom/media/test/external/external_media_tests/test_example.py
+++ b/dom/media/test/external/external_media_tests/test_example.py
@@ -1,9 +1,10 @@
-from marionette import Marionette
+from marionette_harness import Marionette
+
from external_media_harness.testcase import MediaTestCase
class TestSomethingElse(MediaTestCase):
def setUp(self):
MediaTestCase.setUp(self)
self.test_urls = [
'mozilla.html',
--- a/dom/media/test/external/requirements.txt
+++ b/dom/media/test/external/requirements.txt
@@ -1,20 +1,5 @@
-browsermob-proxy==0.7.1
+firefox-puppeteer >= 52.1.0, <53.0.0
manifestparser==1.1
-mozcrash==0.17
-mozdevice==0.48
-mozfile==1.2
-mozhttpd==0.7
-mozinfo==0.9
-# optional - mozharness install step
-mozInstall==1.12
+marionette-driver==2.2.0
+marionette-harness==4.0.0
mozlog==3.3
-moznetwork==0.27
-mozprocess==0.23
-mozprofile==0.28
-mozrunner==6.12
-moztest==0.7
-mozversion==1.4
-wptserve==1.3.0
-marionette-client==3.1.0
-marionette-driver==2.0.0
-firefox-puppeteer >= 52.1.0, <53.0.0
--- a/dom/system/gonk/tests/marionette/test_ril_code_quality.py
+++ b/dom/system/gonk/tests/marionette/test_ril_code_quality.py
@@ -24,25 +24,25 @@ We merge these two scripts into one by t
--------------------------------
Script A (ril_worker.js) runs global strict mode.
Script B (ril_consts.js) not.
The above merge way ensures the correct scope of 'strict mode.'
"""
-
-from marionette.marionette_test import MarionetteTestCase
import bisect
import inspect
import os
import os.path
import re
import unicodedata
+from marionette_harness import MarionetteTestCase
+
class StringUtility:
"""A collection of some string utilities."""
@staticmethod
def find_match_lines(lines, pattern):
"""Return a list of lines that contains given pattern."""
--- a/layout/base/tests/marionette/test_accessiblecaret_cursor_mode.py
+++ b/layout/base/tests/marionette/test_accessiblecaret_cursor_mode.py
@@ -1,21 +1,22 @@
# -*- coding: utf-8 -*-
# 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/.
import string
-from marionette.marionette_test import (
- MarionetteTestCase, parameterized
-)
from marionette_driver.by import By
from marionette_driver.marionette import Actions
from marionette_driver.selection import SelectionManager
+from marionette_harness.marionette_test import (
+ MarionetteTestCase,
+ parameterized,
+)
class AccessibleCaretCursorModeTestCase(MarionetteTestCase):
'''Test cases for AccessibleCaret under cursor mode.
We call the blinking cursor (nsCaret) as cursor, and call AccessibleCaret as
caret for short.
--- a/layout/base/tests/marionette/test_accessiblecaret_selection_mode.py
+++ b/layout/base/tests/marionette/test_accessiblecaret_selection_mode.py
@@ -1,21 +1,23 @@
# -*- coding: utf-8 -*-
# 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/.
import re
-from marionette.marionette_test import (
- MarionetteTestCase, SkipTest, parameterized
-)
from marionette_driver.by import By
from marionette_driver.marionette import Actions
from marionette_driver.selection import SelectionManager
+from marionette_harness.marionette_test import (
+ MarionetteTestCase,
+ SkipTest,
+ parameterized
+)
def skip_if_not_rotatable(target):
def wrapper(self, *args, **kwargs):
if not self.marionette.session_capabilities.get('rotatable'):
raise SkipTest('skipping due to device not rotatable')
return target(self, *args, **kwargs)
return wrapper
--- a/layout/tools/reftest/runreftest.py
+++ b/layout/tools/reftest/runreftest.py
@@ -30,18 +30,18 @@ import mozleak
import mozlog
import mozprocess
import mozprofile
import mozrunner
from mozrunner.utils import get_stack_fixer_function, test_environment
from mozscreenshot import printstatus, dump_screen
try:
- from marionette import Marionette
from marionette_driver.addons import Addons
+ from marionette_harness import Marionette
except ImportError, e:
# Defer ImportError until attempt to use Marionette
def reraise(*args, **kwargs):
raise(e)
Marionette = reraise
from output import OutputHandler, ReftestFormatter
import reftestcommandline
--- a/layout/tools/reftest/runreftestb2g.py
+++ b/layout/tools/reftest/runreftestb2g.py
@@ -16,18 +16,19 @@ if here not in sys.path:
from automation import Automation
from b2gautomation import B2GRemoteAutomation
from runreftestmulet import run_test_harness as run_mulet_reftests
from output import OutputHandler
from remotereftest import RemoteReftestResolver, ReftestServer
from runreftest import RefTest
import reftestcommandline
+from marionette_harness import Marionette
from mozdevice import DeviceManagerADB, DMError
-from marionette import Marionette
+
class ProfileConfigParser(ConfigParser.RawConfigParser):
"""Subclass of RawConfigParser that outputs .ini files in the exact
format expected for profiles.ini, which is slightly different
than the default format.
"""
def optionxform(self, optionstr):
--- a/python/mozbuild/mozbuild/action/test_archive.py
+++ b/python/mozbuild/mozbuild/action/test_archive.py
@@ -100,30 +100,30 @@ ARCHIVE_FILES = {
'patterns': [
'client/**',
'harness/**',
'puppeteer/**',
'mach_test_package_commands.py',
],
'dest': 'marionette',
'ignore': [
- 'harness/docs',
- 'harness/marionette/tests',
+ 'client/docs',
+ 'harness/marionette_harness/tests',
'puppeteer/firefox/docs',
],
},
{
'source': buildconfig.topsrcdir,
'base': '',
'manifests': [
- 'testing/marionette/harness/marionette/tests/unit-tests.ini',
- 'testing/marionette/harness/marionette/tests/webapi-tests.ini',
+ 'testing/marionette/harness/marionette_harness/tests/unit-tests.ini',
+ 'testing/marionette/harness/marionette_harness/tests/webapi-tests.ini',
],
# We also need the manifests and harness_unit tests
- 'pattern': 'testing/marionette/harness/marionette/tests/**',
+ 'pattern': 'testing/marionette/harness/marionette_harness/tests/**',
'dest': 'marionette/tests',
},
{
'source': buildconfig.topobjdir,
'base': '_tests',
'pattern': 'mozbase/**',
},
{
--- a/taskcluster/ci/marionette-harness/kind.yml
+++ b/taskcluster/ci/marionette-harness/kind.yml
@@ -36,16 +36,16 @@ jobs:
TOOLTOOL_REV: "master"
artifacts:
- name: public/logs/
path: /home/worker/workspace/mozharness_workspace/upload/logs/
type: directory
command:
- "bash"
- "/home/worker/bin/build.sh"
- - "--tests=testing/marionette/harness/marionette/tests/harness_unit"
+ - "--tests=testing/marionette/harness/marionette_harness/tests/harness_unit"
- "--work-dir=mozharness_workspace"
max-run-time: 1800
when:
files-changed:
- "testing/marionette/harness/**"
- "testing/mozharness/scripts/marionette_harness_tests.py"
- "testing/config/marionette_harness_test_requirements.txt"
--- a/testing/config/marionette_harness_test_requirements.txt
+++ b/testing/config/marionette_harness_test_requirements.txt
@@ -1,13 +1,13 @@
-r mozbase_requirements.txt
# TODO - if we structure common.tests.zip to match the in-tree structure of the
# testing directory, we could use ./marionette_requirements.txt instead
../web-platform/tests/tools/wptserve
../marionette/client
-../marionette/harness/marionette/runner/mixins/browsermob-proxy-py
+../marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py
../marionette/harness
# pytest
../../python/py
../../python/pytest
../../python/mock-1.0.0
--- a/testing/config/marionette_requirements.txt
+++ b/testing/config/marionette_requirements.txt
@@ -1,8 +1,9 @@
-r mozbase_requirements.txt
+
../tools/wptserve
../marionette/client
-../marionette/harness/marionette/runner/mixins/browsermob-proxy-py
+../marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py
../marionette/harness
# Allows to use the Puppeteer page object model for Firefox
../marionette/puppeteer/firefox/
--- a/testing/firefox-ui/harness/firefox_ui_harness/arguments/base.py
+++ b/testing/firefox-ui/harness/firefox_ui_harness/arguments/base.py
@@ -1,13 +1,13 @@
# 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 marionette import BaseMarionetteArguments
+from marionette_harness import BaseMarionetteArguments
class FirefoxUIBaseArguments(object):
name = 'Firefox UI Tests'
args = []
class FirefoxUIArguments(BaseMarionetteArguments):
--- a/testing/firefox-ui/harness/firefox_ui_harness/cli_functional.py
+++ b/testing/firefox-ui/harness/firefox_ui_harness/cli_functional.py
@@ -1,15 +1,15 @@
#!/usr/bin/env 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/.
-from marionette.runtests import cli as mn_cli
+from marionette_harness.runtests import cli as mn_cli
from firefox_ui_harness.arguments import FirefoxUIArguments
from firefox_ui_harness.runners import FirefoxUITestRunner
def cli(args=None):
mn_cli(runner_class=FirefoxUITestRunner,
parser_class=FirefoxUIArguments,
--- a/testing/firefox-ui/harness/firefox_ui_harness/cli_update.py
+++ b/testing/firefox-ui/harness/firefox_ui_harness/cli_update.py
@@ -1,15 +1,15 @@
#!/usr/bin/env 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/.
-from marionette.runtests import cli as mn_cli
+from marionette_harness.runtests import cli as mn_cli
from firefox_ui_harness.arguments import UpdateArguments
from firefox_ui_harness.runners import UpdateTestRunner
def cli(args=None):
mn_cli(runner_class=UpdateTestRunner,
parser_class=UpdateArguments,
--- a/testing/firefox-ui/harness/firefox_ui_harness/runners/base.py
+++ b/testing/firefox-ui/harness/firefox_ui_harness/runners/base.py
@@ -4,17 +4,17 @@
import os
import shutil
import tempfile
import mozfile
import mozinfo
-from marionette import BaseMarionetteTestRunner, MarionetteTestCase
+from marionette_harness import BaseMarionetteTestRunner, MarionetteTestCase
class FirefoxUITestRunner(BaseMarionetteTestRunner):
def __init__(self, **kwargs):
super(FirefoxUITestRunner, self).__init__(**kwargs)
# select the appropriate GeckoInstance
--- a/testing/firefox-ui/harness/firefox_ui_harness/testcases.py
+++ b/testing/firefox-ui/harness/firefox_ui_harness/testcases.py
@@ -7,20 +7,19 @@ import pprint
from datetime import datetime
import mozfile
from firefox_puppeteer import PuppeteerMixin
from firefox_puppeteer.api.prefs import Preferences
from firefox_puppeteer.api.software_update import SoftwareUpdate
from firefox_puppeteer.ui.update_wizard import UpdateWizardDialog
-
-from marionette import MarionetteTestCase
from marionette_driver import Wait
from marionette_driver.errors import NoSuchWindowException
+from marionette_harness import MarionetteTestCase
class UpdateTestCase(PuppeteerMixin, MarionetteTestCase):
TIMEOUT_UPDATE_APPLY = 300
TIMEOUT_UPDATE_CHECK = 30
TIMEOUT_UPDATE_DOWNLOAD = 720
--- a/testing/firefox-ui/harness/requirements.txt
+++ b/testing/firefox-ui/harness/requirements.txt
@@ -1,5 +1,5 @@
firefox-puppeteer >= 52.1.0, <53.0.0
-marionette-client >= 2.3.0
+marionette-harness >= 4.0.0
mozfile >= 1.2
mozinfo >= 0.8
mozinstall >= 1.12
--- a/testing/firefox-ui/tests/functional/keyboard_shortcuts/test_browser_window.py
+++ b/testing/firefox-ui/tests/functional/keyboard_shortcuts/test_browser_window.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import Wait
+from marionette_harness import MarionetteTestCase
class TestBrowserWindowShortcuts(PuppeteerMixin, MarionetteTestCase):
def test_addons_manager(self):
# If an about:xyz page is visible, no new tab will be opened
with self.marionette.using_context('content'):
self.marionette.navigate('about:')
--- a/testing/firefox-ui/tests/functional/locationbar/test_access_locationbar.py
+++ b/testing/firefox-ui/tests/functional/locationbar/test_access_locationbar.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import Wait
+from marionette_harness import MarionetteTestCase
class TestAccessLocationBar(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestAccessLocationBar, self).setUp()
# Clear complete history so there's no interference from previous entries.
--- a/testing/firefox-ui/tests/functional/locationbar/test_escape_autocomplete.py
+++ b/testing/firefox-ui/tests/functional/locationbar/test_escape_autocomplete.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import Wait
+from marionette_harness import MarionetteTestCase
class TestEscapeAutocomplete(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestEscapeAutocomplete, self).setUp()
# Clear complete history so there's no interference from previous entries.
--- a/testing/firefox-ui/tests/functional/locationbar/test_favicon_in_autocomplete.py
+++ b/testing/firefox-ui/tests/functional/locationbar/test_favicon_in_autocomplete.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import Wait
+from marionette_harness import MarionetteTestCase
class TestFaviconInAutocomplete(PuppeteerMixin, MarionetteTestCase):
PREF_SUGGEST_SEARCHES = 'browser.urlbar.suggest.searches'
PREF_SUGGEST_BOOKMARK = 'browser.urlbar.suggest.bookmark'
def setUp(self):
--- a/testing/firefox-ui/tests/functional/locationbar/test_suggest_bookmarks.py
+++ b/testing/firefox-ui/tests/functional/locationbar/test_suggest_bookmarks.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import By, Wait
+from marionette_harness import MarionetteTestCase
class TestStarInAutocomplete(PuppeteerMixin, MarionetteTestCase):
""" This replaces
http://hg.mozilla.org/qa/mozmill-tests/file/default/firefox/tests/functional/testAwesomeBar/testSuggestBookmarks.js
Check a star appears in autocomplete list for a bookmarked page.
"""
--- a/testing/firefox-ui/tests/functional/private_browsing/test_about_private_browsing.py
+++ b/testing/firefox-ui/tests/functional/private_browsing/test_about_private_browsing.py
@@ -1,16 +1,16 @@
# 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 firefox_puppeteer import PuppeteerMixin
from firefox_puppeteer.ui.browser.window import BrowserWindow
-from marionette import MarionetteTestCase
from marionette_driver import By, Wait
+from marionette_harness import MarionetteTestCase
class TestAboutPrivateBrowsing(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestAboutPrivateBrowsing, self).setUp()
# Use a fake local support URL
--- a/testing/firefox-ui/tests/functional/security/test_dv_certificate.py
+++ b/testing/firefox-ui/tests/functional/security/test_dv_certificate.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import Wait
+from marionette_harness import MarionetteTestCase
class TestDVCertificate(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestDVCertificate, self).setUp()
self.locationbar = self.browser.navbar.locationbar
--- a/testing/firefox-ui/tests/functional/security/test_enable_privilege.py
+++ b/testing/firefox-ui/tests/functional/security/test_enable_privilege.py
@@ -1,14 +1,14 @@
# 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 marionette import MarionetteTestCase
from marionette_driver import By
+from marionette_harness import MarionetteTestCase
class TestEnablePrivilege(MarionetteTestCase):
def test_enable_privilege(self):
with self.marionette.using_context('content'):
url = self.marionette.absolute_url('security/enable_privilege.html')
self.marionette.navigate(url)
--- a/testing/firefox-ui/tests/functional/security/test_ev_certificate.py
+++ b/testing/firefox-ui/tests/functional/security/test_ev_certificate.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import Wait
+from marionette_harness import MarionetteTestCase
class TestEVCertificate(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestEVCertificate, self).setUp()
self.locationbar = self.browser.navbar.locationbar
--- a/testing/firefox-ui/tests/functional/security/test_mixed_content_page.py
+++ b/testing/firefox-ui/tests/functional/security/test_mixed_content_page.py
@@ -1,14 +1,14 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestMixedContentPage(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestMixedContentPage, self).setUp()
self.locationbar = self.browser.navbar.locationbar
self.identity_popup = self.locationbar.identity_popup
--- a/testing/firefox-ui/tests/functional/security/test_mixed_script_content_blocking.py
+++ b/testing/firefox-ui/tests/functional/security/test_mixed_script_content_blocking.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import By, Wait
+from marionette_harness import MarionetteTestCase
class TestMixedScriptContentBlocking(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestMixedScriptContentBlocking, self).setUp()
self.url = 'https://mozqa.com/data/firefox/security/mixed_content_blocked/index.html'
--- a/testing/firefox-ui/tests/functional/security/test_no_certificate.py
+++ b/testing/firefox-ui/tests/functional/security/test_no_certificate.py
@@ -1,17 +1,17 @@
# 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 urlparse import urlparse
from firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import expected, Wait
+from marionette_harness import MarionetteTestCase
class TestNoCertificate(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestNoCertificate, self).setUp()
self.locationbar = self.browser.navbar.locationbar
--- a/testing/firefox-ui/tests/functional/security/test_safe_browsing_initial_download.py
+++ b/testing/firefox-ui/tests/functional/security/test_safe_browsing_initial_download.py
@@ -1,17 +1,17 @@
# 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/.
import os
from firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import Wait
+from marionette_harness import MarionetteTestCase
class TestSafeBrowsingInitialDownload(PuppeteerMixin, MarionetteTestCase):
file_extensions = [
'pset',
'sbstore',
]
--- a/testing/firefox-ui/tests/functional/security/test_safe_browsing_notification.py
+++ b/testing/firefox-ui/tests/functional/security/test_safe_browsing_notification.py
@@ -1,17 +1,17 @@
# 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/.
import time
from firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import By, expected, Wait
+from marionette_harness import MarionetteTestCase
class TestSafeBrowsingNotificationBar(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestSafeBrowsingNotificationBar, self).setUp()
self.test_data = [
--- a/testing/firefox-ui/tests/functional/security/test_safe_browsing_warning_pages.py
+++ b/testing/firefox-ui/tests/functional/security/test_safe_browsing_warning_pages.py
@@ -1,17 +1,17 @@
# 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/.
import time
from firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import By, expected, Wait
+from marionette_harness import MarionetteTestCase
class TestSafeBrowsingWarningPages(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestSafeBrowsingWarningPages, self).setUp()
self.urls = [
--- a/testing/firefox-ui/tests/functional/security/test_security_notification.py
+++ b/testing/firefox-ui/tests/functional/security/test_security_notification.py
@@ -1,18 +1,18 @@
# 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/.
import time
from firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import By, Wait
from marionette_driver.errors import MarionetteException
+from marionette_harness import MarionetteTestCase
class TestSecurityNotification(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestSecurityNotification, self).setUp()
self.urls = [
--- a/testing/firefox-ui/tests/functional/security/test_ssl_disabled_error_page.py
+++ b/testing/firefox-ui/tests/functional/security/test_ssl_disabled_error_page.py
@@ -1,18 +1,18 @@
# 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/.
import time
from firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import By, expected, Wait
from marionette_driver.errors import MarionetteException
+from marionette_harness import MarionetteTestCase
class TestSSLDisabledErrorPage(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestSSLDisabledErrorPage, self).setUp()
self.url = 'https://tlsv1-0.mozqa.com'
--- a/testing/firefox-ui/tests/functional/security/test_ssl_status_after_restart.py
+++ b/testing/firefox-ui/tests/functional/security/test_ssl_status_after_restart.py
@@ -1,16 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
-from marionette.marionette_test import skip_if_e10s
from marionette_driver import Wait
+from marionette_harness import MarionetteTestCase, skip_if_e10s
class TestSSLStatusAfterRestart(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestSSLStatusAfterRestart, self).setUp()
self.test_data = (
--- a/testing/firefox-ui/tests/functional/security/test_submit_unencrypted_info_warning.py
+++ b/testing/firefox-ui/tests/functional/security/test_submit_unencrypted_info_warning.py
@@ -1,17 +1,17 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import By, expected, Wait
from marionette_driver.errors import NoAlertPresentException
from marionette_driver.marionette import Alert
+from marionette_harness import MarionetteTestCase
class TestSubmitUnencryptedInfoWarning(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestSubmitUnencryptedInfoWarning, self).setUp()
self.url = 'https://ssl-dv.mozqa.com/data/firefox/security/unencryptedsearch.html'
--- a/testing/firefox-ui/tests/functional/security/test_unknown_issuer.py
+++ b/testing/firefox-ui/tests/functional/security/test_unknown_issuer.py
@@ -1,17 +1,17 @@
# 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/.
import time
-from marionette import MarionetteTestCase
from marionette_driver import By
from marionette_driver.errors import MarionetteException
+from marionette_harness import MarionetteTestCase
class TestUnknownIssuer(MarionetteTestCase):
def setUp(self):
super(TestUnknownIssuer, self).setUp()
self.url = 'https://ssl-unknownissuer.mozqa.com'
--- a/testing/firefox-ui/tests/functional/security/test_untrusted_connection_error_page.py
+++ b/testing/firefox-ui/tests/functional/security/test_untrusted_connection_error_page.py
@@ -1,18 +1,18 @@
# 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/.
import time
from firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import By, Wait
from marionette_driver.errors import MarionetteException
+from marionette_harness import MarionetteTestCase
class TestUntrustedConnectionErrorPage(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestUntrustedConnectionErrorPage, self).setUp()
self.url = 'https://ssl-selfsigned.mozqa.com'
--- a/testing/firefox-ui/tests/functional/sessionstore/test_restore_windows_after_restart.py
+++ b/testing/firefox-ui/tests/functional/sessionstore/test_restore_windows_after_restart.py
@@ -1,14 +1,14 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestRestoreWindowsAfterRestart(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestRestoreWindowsAfterRestart, self).setUp()
# Each list element represents a window of tabs loaded at
--- a/testing/firefox-ui/tests/puppeteer/test_about_window.py
+++ b/testing/firefox-ui/tests/puppeteer/test_about_window.py
@@ -1,14 +1,14 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestAboutWindow(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestAboutWindow, self).setUp()
self.about_window = self.browser.open_about_window()
--- a/testing/firefox-ui/tests/puppeteer/test_appinfo.py
+++ b/testing/firefox-ui/tests/puppeteer/test_appinfo.py
@@ -1,16 +1,16 @@
# 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/.
import mozversion
from firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestAppInfo(PuppeteerMixin, MarionetteTestCase):
def test_valid_properties(self):
binary = self.marionette.bin
version_info = mozversion.get_version(binary=binary)
--- a/testing/firefox-ui/tests/puppeteer/test_l10n.py
+++ b/testing/firefox-ui/tests/puppeteer/test_l10n.py
@@ -1,17 +1,17 @@
# 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 firefox_puppeteer import PuppeteerMixin
from firefox_puppeteer.api.l10n import L10n
-from marionette import MarionetteTestCase
from marionette_driver import By
from marionette_driver.errors import MarionetteException
+from marionette_harness import MarionetteTestCase
class TestL10n(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestL10n, self).setUp()
self.l10n = L10n(self.marionette)
--- a/testing/firefox-ui/tests/puppeteer/test_menubar.py
+++ b/testing/firefox-ui/tests/puppeteer/test_menubar.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver.errors import NoSuchElementException
+from marionette_harness import MarionetteTestCase
class TestMenuBar(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestMenuBar, self).setUp()
def test_click_item_in_menubar(self):
--- a/testing/firefox-ui/tests/puppeteer/test_notifications.py
+++ b/testing/firefox-ui/tests/puppeteer/test_notifications.py
@@ -2,19 +2,19 @@
# 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 firefox_puppeteer import PuppeteerMixin
from firefox_puppeteer.ui.browser.notifications import (
AddOnInstallFailedNotification,
AddOnInstallConfirmationNotification,
)
-from marionette import MarionetteTestCase
from marionette_driver import By
from marionette_driver.errors import TimeoutException
+from marionette_harness import MarionetteTestCase
class TestNotifications(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestNotifications, self).setUp()
self.puppeteer.prefs.set_pref('extensions.install.requireSecureOrigin', False)
--- a/testing/firefox-ui/tests/puppeteer/test_page_info_window.py
+++ b/testing/firefox-ui/tests/puppeteer/test_page_info_window.py
@@ -1,14 +1,14 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestPageInfoWindow(PuppeteerMixin, MarionetteTestCase):
def tearDown(self):
try:
self.puppeteer.windows.close_all([self.browser])
finally:
--- a/testing/firefox-ui/tests/puppeteer/test_places.py
+++ b/testing/firefox-ui/tests/puppeteer/test_places.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import By, Wait
+from marionette_harness import MarionetteTestCase
class TestPlaces(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestPlaces, self).setUp()
self.urls = [self.marionette.absolute_url('layout/mozilla_governance.html'),
--- a/testing/firefox-ui/tests/puppeteer/test_prefs.py
+++ b/testing/firefox-ui/tests/puppeteer/test_prefs.py
@@ -1,14 +1,14 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class testPreferences(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(testPreferences, self).setUp()
self.new_pref = 'marionette.unittest.set_pref'
--- a/testing/firefox-ui/tests/puppeteer/test_security.py
+++ b/testing/firefox-ui/tests/puppeteer/test_security.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
from firefox_puppeteer.errors import NoCertificateError
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestSecurity(PuppeteerMixin, MarionetteTestCase):
def test_get_address_from_certificate(self):
url = 'https://ssl-ev.mozqa.com'
with self.marionette.using_context(self.marionette.CONTEXT_CONTENT):
--- a/testing/firefox-ui/tests/puppeteer/test_software_update.py
+++ b/testing/firefox-ui/tests/puppeteer/test_software_update.py
@@ -1,17 +1,17 @@
# 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/.
import os
from firefox_puppeteer import PuppeteerMixin
from firefox_puppeteer.api.software_update import SoftwareUpdate
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestSoftwareUpdate(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestSoftwareUpdate, self).setUp()
self.software_update = SoftwareUpdate(self.marionette)
--- a/testing/firefox-ui/tests/puppeteer/test_tabbar.py
+++ b/testing/firefox-ui/tests/puppeteer/test_tabbar.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
from firefox_puppeteer.errors import NoCertificateError
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestTabBar(PuppeteerMixin, MarionetteTestCase):
def tearDown(self):
try:
self.browser.tabbar.close_all_tabs([self.browser.tabbar.tabs[0]])
finally:
--- a/testing/firefox-ui/tests/puppeteer/test_toolbars.py
+++ b/testing/firefox-ui/tests/puppeteer/test_toolbars.py
@@ -1,16 +1,16 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
from marionette_driver import expected, By, Wait
from marionette_driver.errors import NoSuchElementException
+from marionette_harness import MarionetteTestCase
class TestNavBar(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestNavBar, self).setUp()
self.navbar = self.browser.navbar
--- a/testing/firefox-ui/tests/puppeteer/test_update_wizard.py
+++ b/testing/firefox-ui/tests/puppeteer/test_update_wizard.py
@@ -1,15 +1,15 @@
# 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 firefox_puppeteer import PuppeteerMixin
from firefox_puppeteer.ui.update_wizard import UpdateWizardDialog
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestUpdateWizard(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestUpdateWizard, self).setUp()
def opener(win):
--- a/testing/firefox-ui/tests/puppeteer/test_utils.py
+++ b/testing/firefox-ui/tests/puppeteer/test_utils.py
@@ -1,14 +1,14 @@
# 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 firefox_puppeteer import PuppeteerMixin
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestSanitize(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
super(TestSanitize, self).setUp()
# Clear all previous history and cookies.
--- a/testing/firefox-ui/tests/puppeteer/test_windows.py
+++ b/testing/firefox-ui/tests/puppeteer/test_windows.py
@@ -1,19 +1,19 @@
# 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/.
import firefox_puppeteer.errors as errors
from firefox_puppeteer import PuppeteerMixin
from firefox_puppeteer.ui.windows import BaseWindow
-from marionette import MarionetteTestCase
from marionette_driver import By, Wait
from marionette_driver.errors import NoSuchWindowException
+from marionette_harness import MarionetteTestCase
class BaseWindowTestCase(PuppeteerMixin, MarionetteTestCase):
def setUp(self):
"""
These tests open and close windows pretty rapidly, which
(since bug 1261842) can cause content processes to be
rename from testing/marionette/harness/marionette/chrome/test.xul
rename to testing/marionette/chrome/test.xul
rename from testing/marionette/harness/marionette/chrome/test2.xul
rename to testing/marionette/chrome/test2.xul
rename from testing/marionette/harness/marionette/chrome/test_anonymous_content.xul
rename to testing/marionette/chrome/test_anonymous_content.xul
rename from testing/marionette/harness/marionette/chrome/test_dialog.xul
rename to testing/marionette/chrome/test_dialog.xul
rename from testing/marionette/harness/marionette/chrome/test_nested_iframe.xul
rename to testing/marionette/chrome/test_nested_iframe.xul
--- a/testing/marionette/harness/.flake8
+++ b/testing/marionette/harness/.flake8
@@ -1,3 +1,3 @@
[flake8]
max-line-length = 99
-exclude = __init__.py,disti/*,build/*,session/*,marionette/runner/mixins/*, marionette/tests/*
+exclude = __init__.py,disti/*,build/*,marionette_harness/runner/mixins/*, marionette_harness/tests/*
--- a/testing/marionette/harness/MANIFEST.in
+++ b/testing/marionette/harness/MANIFEST.in
@@ -1,8 +1,3 @@
-recursive-include marionette/touch *.js
-recursive-include marionette/www *
-recursive-include marionette/chrome *
-recursive-include marionette/runner/mixins/resources *
exclude MANIFEST.in
include requirements.txt
-include marionette/runner/test.cert
-include marionette/runner/test.key
+recursive-include marionette_harness/www *
--- a/testing/marionette/harness/README.rst
+++ b/testing/marionette/harness/README.rst
@@ -1,8 +1,30 @@
-marionette-client
-=================
+marionette-harness
+==================
+
+Marionette is an automation driver for Mozilla's Gecko engine. It can remotely
+control either the UI or the internal JavaScript of a Gecko platform, such as
+Firefox. It can control both the chrome (i.e. menus and functions) or the
+content (the webpage loaded inside the browsing context), giving a high level
+of control and ability to replicate user actions. In addition to performing
+actions on the browser, Marionette can also read the properties and attributes
+of the DOM.
-marionette_client has been renamed and is now available as marionette-harness:
+The marionette_harness package contains the test runner for Marionette, and
+allows you to run automated tests written in Python for Gecko based
+applications. Therefore it offers the necessary testcase classes, which are
+based on the unittest framework.
+
+For more information and the repository please checkout:
+
+- home and docs: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette
+
-* marionette-harness <https://pypi.python.org/pypi/marionette-harness/>`_
+Example
+-------
-Please consider migrating to this new package.
+The following command will run the tests as specified via a manifest file, or
+test path, or test folder in Firefox:
+
+ marionette --binary %path_to_firefox% [manifest_file | test_file | test_folder]
+
+To get an overview about all possible option run `marionette --help`.
rename from testing/marionette/harness/marionette/__init__.py
rename to testing/marionette/harness/marionette_harness/__init__.py
--- a/testing/marionette/harness/marionette/__init__.py
+++ b/testing/marionette/harness/marionette_harness/__init__.py
@@ -1,29 +1,31 @@
# 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/.
-__version__ = '3.3.0'
+__version__ = '4.0.0'
from .marionette_test import (
CommonTestCase,
expectedFailure,
MarionetteTestCase,
run_if_e10s,
skip,
skip_if_chrome,
skip_if_desktop,
+ skip_if_e10s,
skip_if_mobile,
SkipTest,
skip_unless_protocol,
)
from .runner import (
BaseMarionetteArguments,
BaseMarionetteTestRunner,
+ BrowserMobProxyArguments,
BrowserMobProxyTestCaseMixin,
Marionette,
MarionetteTest,
MarionetteTestResult,
MarionetteTextTestRunner,
TestManifest,
TestResult,
TestResultCollection,
rename from testing/marionette/harness/marionette/marionette_test/__init__.py
rename to testing/marionette/harness/marionette_harness/marionette_test/__init__.py
rename from testing/marionette/harness/marionette/marionette_test/decorators.py
rename to testing/marionette/harness/marionette_harness/marionette_test/decorators.py
--- a/testing/marionette/harness/marionette/marionette_test/decorators.py
+++ b/testing/marionette/harness/marionette_harness/marionette_test/decorators.py
@@ -1,17 +1,17 @@
# 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/.
import functools
import sys
import types
-from marionette.marionette_test.errors import (
+from .errors import (
_ExpectedFailure,
_UnexpectedSuccess,
SkipTest,
)
def expectedFailure(func):
"""Decorator which marks a test as expected fail."""
rename from testing/marionette/harness/marionette/marionette_test/errors.py
rename to testing/marionette/harness/marionette_harness/marionette_test/errors.py
rename from testing/marionette/harness/marionette/marionette_test/testcases.py
rename to testing/marionette/harness/marionette_harness/marionette_test/testcases.py
--- a/testing/marionette/harness/marionette/marionette_test/testcases.py
+++ b/testing/marionette/harness/marionette_harness/marionette_test/testcases.py
@@ -4,32 +4,32 @@
import imp
import os
import re
import sys
import time
import types
import unittest
+import warnings
import weakref
-import warnings
-
-from marionette.marionette_test.errors import (
- _ExpectedFailure,
- _UnexpectedSuccess,
- SkipTest,
-)
from marionette_driver.errors import (
MarionetteException,
ScriptTimeoutException,
TimeoutException,
)
from mozlog import get_default_logger
+from .errors import (
+ _ExpectedFailure,
+ _UnexpectedSuccess,
+ SkipTest,
+)
+
def _wraps_parameterized(func, func_suffix, args, kwargs):
"""Internal: Decorator used in class MetaParameterized."""
def wrapper(self):
return func(self, *args, **kwargs)
wrapper.__name__ = func.__name__ + '_' + str(func_suffix)
wrapper.__doc__ = '[{0}] {1}'.format(func_suffix, func.__doc__)
return wrapper
rename from testing/marionette/harness/marionette/runner/__init__.py
rename to testing/marionette/harness/marionette_harness/runner/__init__.py
rename from testing/marionette/harness/marionette/runner/base.py
rename to testing/marionette/harness/marionette_harness/runner/base.py
--- a/testing/marionette/harness/marionette/runner/base.py
+++ b/testing/marionette/harness/marionette_harness/runner/base.py
@@ -6,28 +6,29 @@ import json
import os
import random
import re
import socket
import sys
import time
import traceback
import unittest
+
from argparse import ArgumentParser
from copy import deepcopy
import mozinfo
import moznetwork
import mozprofile
-from marionette_driver.marionette import Marionette
-
import mozversion
import serve
+
from manifestparser import TestManifest
from manifestparser.filters import tags
+from marionette_driver.marionette import Marionette
from moztest.adapters.unit import StructuredTestResult, StructuredTestRunner
from moztest.results import TestResult, TestResultCollection, relevant_line
from serve import iter_proc, iter_url
here = os.path.abspath(os.path.dirname(__file__))
def update_mozinfo(path=None):
rename from testing/marionette/harness/marionette/runner/httpd.py
rename to testing/marionette/harness/marionette_harness/runner/httpd.py
rename from testing/marionette/harness/marionette/runner/mixins/__init__.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/__init__.py
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/History.md
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/History.md
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/__init__.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/__init__.py
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/client.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/client.py
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/server.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/server.py
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/browsermobproxy/webdriver_event_listener.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/browsermobproxy/webdriver_event_listener.py
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/Makefile
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/Makefile
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/.buildinfo
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/.buildinfo
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/browsermobproxy.html
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/browsermobproxy.html
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/index.html
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_modules/index.html
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/client.txt
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/client.txt
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/index.txt
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/index.txt
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/server.txt
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_sources/server.txt
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/basic.css
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/basic.css
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/default.css
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/default.css
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/doctools.js
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/doctools.js
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/jquery.js
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/jquery.js
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/pygments.css
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/pygments.css
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/searchtools.js
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/searchtools.js
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/sidebar.js
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/sidebar.js
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/underscore.js
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/underscore.js
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/websupport.js
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/_static/websupport.js
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/client.html
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/client.html
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/genindex.html
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/genindex.html
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/index.html
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/index.html
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/objects.inv
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/objects.inv
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/py-modindex.html
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/py-modindex.html
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/search.html
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/search.html
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/searchindex.js
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/searchindex.js
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/_build/html/server.html
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/_build/html/server.html
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/client.rst
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/client.rst
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/conf.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/conf.py
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/index.rst
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/index.rst
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/make.bat
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/make.bat
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/docs/server.rst
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/docs/server.rst
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/readme.md
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/readme.md
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/setup.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/setup.py
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/test/test_client.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/test/test_client.py
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/test/test_remote.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/test/test_remote.py
rename from testing/marionette/harness/marionette/runner/mixins/browsermob-proxy-py/test/test_webdriver.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob-proxy-py/test/test_webdriver.py
rename from testing/marionette/harness/marionette/runner/mixins/browsermob.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/browsermob.py
--- a/testing/marionette/harness/marionette/runner/mixins/browsermob.py
+++ b/testing/marionette/harness/marionette_harness/runner/mixins/browsermob.py
@@ -1,16 +1,16 @@
# 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/.
import os
from browsermobproxy import Server
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class BrowserMobProxyArguments(object):
name = 'Browsermob Proxy'
args = [
[['--browsermob-script'],
{'help': 'path to the browsermob-proxy shell script or batch file',
}],
rename from testing/marionette/harness/marionette/runner/mixins/window_manager.py
rename to testing/marionette/harness/marionette_harness/runner/mixins/window_manager.py
rename from testing/marionette/harness/marionette/runner/serve.py
rename to testing/marionette/harness/marionette_harness/runner/serve.py
--- a/testing/marionette/harness/marionette/runner/serve.py
+++ b/testing/marionette/harness/marionette_harness/runner/serve.py
@@ -8,20 +8,22 @@
processes.
"""
import argparse
import multiprocessing
import os
import sys
+
from collections import defaultdict
import httpd
+
__all__ = ["default_doc_root",
"iter_proc",
"iter_url",
"registered_servers",
"servers",
"start",
"where_is"]
here = os.path.abspath(os.path.dirname(__file__))
@@ -155,17 +157,17 @@ def start_servers(doc_root, ssl_config,
servers[schema] = (proc.get_url("/"), proc)
return servers
def start(doc_root=None, **kwargs):
"""Start all relevant test servers.
If no `doc_root` is given the default
- testing/marionette/harness/marionette/www directory will be used.
+ testing/marionette/harness/marionette_harness/www directory will be used.
Additional keyword arguments can be given which will be passed on
to the individual ``FixtureServer``'s in httpd.py.
"""
doc_root = doc_root or default_doc_root
ssl_config = {"cert_path": httpd.default_ssl_cert,
"key_path": httpd.default_ssl_key}
rename from testing/marionette/harness/marionette/runner/test.cert
rename to testing/marionette/harness/marionette_harness/runner/test.cert
rename from testing/marionette/harness/marionette/runner/test.key
rename to testing/marionette/harness/marionette_harness/runner/test.key
rename from testing/marionette/harness/marionette/runtests.py
rename to testing/marionette/harness/marionette_harness/runtests.py
--- a/testing/marionette/harness/marionette/runtests.py
+++ b/testing/marionette/harness/marionette_harness/runtests.py
@@ -1,23 +1,25 @@
# 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/.
import sys
-from marionette import __version__
+import mozlog
+
from marionette_driver import __version__ as driver_version
-from marionette.marionette_test import MarionetteTestCase
-from marionette.runner import (
+
+from marionette_harness import (
+ __version__,
BaseMarionetteTestRunner,
BaseMarionetteArguments,
BrowserMobProxyArguments,
+ MarionetteTestCase,
)
-import mozlog
class MarionetteTestRunner(BaseMarionetteTestRunner):
def __init__(self, **kwargs):
BaseMarionetteTestRunner.__init__(self, **kwargs)
self.test_handlers = [MarionetteTestCase]
rename from testing/marionette/harness/marionette/tests/harness_unit/conftest.py
rename to testing/marionette/harness/marionette_harness/tests/harness_unit/conftest.py
--- a/testing/marionette/harness/marionette/tests/harness_unit/conftest.py
+++ b/testing/marionette/harness/marionette_harness/tests/harness_unit/conftest.py
@@ -2,17 +2,18 @@
# 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/.
import pytest
from mock import Mock, MagicMock
from marionette_driver.marionette import Marionette
-from marionette.runner.httpd import FixtureServer
+
+from marionette_harness.runner.httpd import FixtureServer
@pytest.fixture(scope='module')
def logger():
"""
Fake logger to help with mocking out other runner-related classes.
"""
import mozlog
rename from testing/marionette/harness/marionette/tests/harness_unit/test_httpd.py
rename to testing/marionette/harness/marionette_harness/tests/harness_unit/test_httpd.py
--- a/testing/marionette/harness/marionette/tests/harness_unit/test_httpd.py
+++ b/testing/marionette/harness/marionette_harness/tests/harness_unit/test_httpd.py
@@ -4,19 +4,20 @@
import json
import os
import types
import urllib2
import pytest
-from marionette.runner import httpd
from wptserve.handlers import json_handler
+from marionette_harness.runner import httpd
+
here = os.path.abspath(os.path.dirname(__file__))
parent = os.path.dirname(here)
default_doc_root = os.path.join(os.path.dirname(parent), "www")
@pytest.yield_fixture
def server():
server = httpd.FixtureServer(default_doc_root)
rename from testing/marionette/harness/marionette/tests/harness_unit/test_marionette_arguments.py
rename to testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_arguments.py
--- a/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_arguments.py
+++ b/testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_arguments.py
@@ -1,14 +1,14 @@
# 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/.
import pytest
-from marionette.runtests import MarionetteArguments
+from marionette_harness.runtests import MarionetteArguments
@pytest.mark.parametrize("socket_timeout", ['A', '10', '1B-', '1C2', '44.35'])
def test_parse_arg_socket_timeout(socket_timeout):
argv = ['marionette', '--socket-timeout', socket_timeout]
parser = MarionetteArguments()
def _is_float_convertible(value):
rename from testing/marionette/harness/marionette/tests/harness_unit/test_marionette_harness.py
rename to testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_harness.py
--- a/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_harness.py
+++ b/testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_harness.py
@@ -1,18 +1,19 @@
# 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/.
+
import pytest
from mock import Mock, patch, sentinel
-from marionette.runtests import MarionetteTestRunner, MarionetteHarness, cli
+import marionette_harness.marionette_test as marionette_test
-import marionette.marionette_test as marionette_test
+from marionette_harness.runtests import MarionetteTestRunner, MarionetteHarness, cli
@pytest.fixture
def harness_class(request):
"""
Mock based on MarionetteHarness whose run method just returns a number of
failures according to the supplied test parameter
"""
@@ -57,27 +58,27 @@ def test_cli_exit_code(num_fails_crashed
assert err.value.code == exit_code
@pytest.mark.parametrize("num_fails_crashed", [(0, 0), (1, 0), (1, 1)])
def test_call_harness_with_parsed_args_yields_num_failures(mach_parsed_kwargs,
runner_class,
num_fails_crashed):
with patch(
- 'marionette.runtests.MarionetteHarness.parse_args'
+ 'marionette_harness.runtests.MarionetteHarness.parse_args'
) as parse_args:
failed_or_crashed = MarionetteHarness(runner_class,
args=mach_parsed_kwargs).run()
parse_args.assert_not_called()
assert failed_or_crashed == sum(num_fails_crashed)
def test_call_harness_with_no_args_yields_num_failures(runner_class):
with patch(
- 'marionette.runtests.MarionetteHarness.parse_args',
+ 'marionette_harness.runtests.MarionetteHarness.parse_args',
return_value={'tests': []}
) as parse_args:
failed_or_crashed = MarionetteHarness(runner_class).run()
assert parse_args.call_count == 1
assert failed_or_crashed == 0
def test_args_passed_to_runner_class(mach_parsed_kwargs, runner_class):
rename from testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
rename to testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_runner.py
--- a/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_runner.py
+++ b/testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_runner.py
@@ -1,17 +1,18 @@
# 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/.
+
+import manifestparser
import pytest
from mock import Mock, patch, mock_open, sentinel, DEFAULT
-from marionette.runtests import MarionetteTestRunner
-import manifestparser
+from marionette_harness.runtests import MarionetteTestRunner
@pytest.fixture
def runner(mach_parsed_kwargs):
"""
MarionetteTestRunner instance initialized with default options.
"""
return MarionetteTestRunner(**mach_parsed_kwargs)
@@ -23,27 +24,27 @@ def mock_runner(runner, mock_marionette,
MarionetteTestRunner instance with mocked-out
self.marionette and other properties,
to enable testing runner.run_tests().
"""
runner.driverclass = mock_marionette
for attr in ['run_test_set', '_capabilities']:
setattr(runner, attr, Mock())
runner._appName = 'fake_app'
- monkeypatch.setattr('marionette.runner.base.mozversion', Mock())
+ monkeypatch.setattr('marionette_harness.runner.base.mozversion', Mock())
return runner
@pytest.fixture
def build_kwargs_using(mach_parsed_kwargs):
'''Helper function for test_build_kwargs_* functions'''
def kwarg_builder(new_items, return_socket=False):
mach_parsed_kwargs.update(new_items)
runner = MarionetteTestRunner(**mach_parsed_kwargs)
- with patch('marionette.runner.base.socket') as socket:
+ with patch('marionette_harness.runner.base.socket') as socket:
built_kwargs = runner._build_kwargs()
if return_socket:
return built_kwargs, socket
return built_kwargs
return kwarg_builder
@pytest.fixture
@@ -206,17 +207,17 @@ def test_parsing_testvars(mach_parsed_kw
"ssid": "blah",
"keyManagement": "WPA-PSK",
"psk": "foo",
"PEAP": "bar"
},
"device": {"stuff": "buzz"}
}
with patch(
- 'marionette.runtests.MarionetteTestRunner._load_testvars',
+ 'marionette_harness.runtests.MarionetteTestRunner._load_testvars',
return_value=testvars_json_loads
) as load:
runner = MarionetteTestRunner(**mach_parsed_kwargs)
assert runner.testvars == expected_dict
assert load.call_count == 1
def test_load_testvars_throws_expected_errors(mach_parsed_kwargs):
@@ -288,38 +289,40 @@ def test_add_test_directory(runner):
assert isdir.called and walk.called
for test in runner.tests:
assert test_dir in test['filepath']
assert len(runner.tests) == 4
@pytest.mark.parametrize("test_files_exist", [True, False])
def test_add_test_manifest(mock_runner, manifest_with_tests, monkeypatch, test_files_exist):
- monkeypatch.setattr('marionette.runner.base.TestManifest', manifest_with_tests.manifest_class)
- with patch('marionette.runner.base.os.path.exists', return_value=test_files_exist):
+ monkeypatch.setattr('marionette_harness.runner.base.TestManifest',
+ manifest_with_tests.manifest_class)
+ with patch('marionette_harness.runner.base.os.path.exists', return_value=test_files_exist):
if test_files_exist or manifest_with_tests.n_enabled == 0:
mock_runner.add_test(manifest_with_tests.filepath)
assert len(mock_runner.tests) == manifest_with_tests.n_enabled
assert len(mock_runner.manifest_skipped_tests) == manifest_with_tests.n_disabled
for test in mock_runner.tests:
assert test['filepath'].endswith(test['expected'] + '.py')
else:
pytest.raises(IOError, "mock_runner.add_test(manifest_with_tests.filepath)")
assert manifest_with_tests.manifest_class().read.called
assert manifest_with_tests.manifest_class().active_tests.called
def get_kwargs_passed_to_manifest(mock_runner, manifest, monkeypatch, **kwargs):
'''Helper function for test_manifest_* tests.
Returns the kwargs passed to the call to manifest.active_tests.'''
- monkeypatch.setattr('marionette.runner.base.TestManifest', manifest.manifest_class)
- monkeypatch.setattr('marionette.runner.base.mozinfo.info', {'mozinfo_key': 'mozinfo_val'})
+ monkeypatch.setattr('marionette_harness.runner.base.TestManifest', manifest.manifest_class)
+ monkeypatch.setattr('marionette_harness.runner.base.mozinfo.info',
+ {'mozinfo_key': 'mozinfo_val'})
for attr in kwargs:
setattr(mock_runner, attr, kwargs[attr])
- with patch('marionette.runner.base.os.path.exists', return_value=True):
+ with patch('marionette_harness.runner.base.os.path.exists', return_value=True):
mock_runner.add_test(manifest.filepath)
call_args, call_kwargs = manifest.manifest_class().active_tests.call_args
return call_kwargs
def test_manifest_basic_args(mock_runner, manifest, monkeypatch):
kwargs = get_kwargs_passed_to_manifest(mock_runner, manifest, monkeypatch)
assert kwargs['exists'] is False
@@ -339,19 +342,20 @@ def test_manifest_with_test_tags(mock_ru
kwargs = get_kwargs_passed_to_manifest(mock_runner, manifest, monkeypatch, test_tags=test_tags)
if test_tags is None:
assert kwargs['filters'] == []
else:
assert len(kwargs['filters']) == 1 and kwargs['filters'][0].tags == test_tags
def test_cleanup_with_manifest(mock_runner, manifest_with_tests, monkeypatch):
- monkeypatch.setattr('marionette.runner.base.TestManifest', manifest_with_tests.manifest_class)
+ monkeypatch.setattr('marionette_harness.runner.base.TestManifest',
+ manifest_with_tests.manifest_class)
if manifest_with_tests.n_enabled > 0:
- context = patch('marionette.runner.base.os.path.exists', return_value=True)
+ context = patch('marionette_harness.runner.base.os.path.exists', return_value=True)
else:
context = pytest.raises(Exception)
with context:
mock_runner.run_tests([manifest_with_tests.filepath])
assert mock_runner.marionette is None
assert mock_runner.fixture_servers == {}
rename from testing/marionette/harness/marionette/tests/harness_unit/test_marionette_test_result.py
rename to testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_test_result.py
--- a/testing/marionette/harness/marionette/tests/harness_unit/test_marionette_test_result.py
+++ b/testing/marionette/harness/marionette_harness/tests/harness_unit/test_marionette_test_result.py
@@ -1,20 +1,21 @@
# 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/.
+
import pytest
-from marionette.runner import MarionetteTestResult
+from marionette_harness import MarionetteTestResult
@pytest.fixture
def empty_marionette_testcase():
""" Testable MarionetteTestCase class """
- from marionette.marionette_test import MarionetteTestCase
+ from marionette_harness import MarionetteTestCase
class EmptyTestCase(MarionetteTestCase):
def test_nothing(self):
pass
return EmptyTestCase
rename from testing/marionette/harness/marionette/tests/harness_unit/test_serve.py
rename to testing/marionette/harness/marionette_harness/tests/harness_unit/test_serve.py
--- a/testing/marionette/harness/marionette/tests/harness_unit/test_serve.py
+++ b/testing/marionette/harness/marionette_harness/tests/harness_unit/test_serve.py
@@ -1,18 +1,18 @@
# 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/.
import types
import pytest
-from marionette.runner import serve
-from marionette.runner.serve import iter_proc, iter_url
+from marionette_harness.runner import serve
+from marionette_harness.runner.serve import iter_proc, iter_url
def teardown_function(func):
for server in [server for server in iter_proc(serve.servers) if server.is_alive]:
server.stop()
server.kill()
rename from testing/marionette/harness/marionette/tests/unit-tests.ini
rename to testing/marionette/harness/marionette_harness/tests/unit-tests.ini
rename from testing/marionette/harness/marionette/tests/unit/importanotherscript.js
rename to testing/marionette/harness/marionette_harness/tests/unit/importanotherscript.js
rename from testing/marionette/harness/marionette/tests/unit/importscript.js
rename to testing/marionette/harness/marionette_harness/tests/unit/importscript.js
rename from testing/marionette/harness/marionette/tests/unit/mn-restartless-unsigned.xpi
rename to testing/marionette/harness/marionette_harness/tests/unit/mn-restartless-unsigned.xpi
rename from testing/marionette/harness/marionette/tests/unit/single_finger_functions.py
rename to testing/marionette/harness/marionette_harness/tests/unit/single_finger_functions.py
rename from testing/marionette/harness/marionette/tests/unit/test_about_pages.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_about_pages.py
--- a/testing/marionette/harness/marionette/tests/unit/test_about_pages.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_about_pages.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase, WindowManagerMixin
+from marionette_driver.by import By
from marionette_driver.keys import Keys
-from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
class TestAboutPages(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(TestAboutPages, self).setUp()
if self.marionette.session_capabilities['platformName'] == 'darwin':
rename from testing/marionette/harness/marionette/tests/unit/test_accessibility.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_accessibility.py
--- a/testing/marionette/harness/marionette/tests/unit/test_accessibility.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_accessibility.py
@@ -1,16 +1,19 @@
# 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 marionette import MarionetteTestCase
-from marionette_driver.errors import (ElementNotAccessibleException,
- ElementNotVisibleException)
from marionette_driver.by import By
+from marionette_driver.errors import (
+ ElementNotAccessibleException,
+ ElementNotVisibleException
+)
+
+from marionette_harness import MarionetteTestCase
class TestAccessibility(MarionetteTestCase):
def setUp(self):
super(TestAccessibility, self).setUp()
with self.marionette.using_context("chrome"):
self.marionette.set_pref("dom.ipc.processCount", 1)
rename from testing/marionette/harness/marionette/tests/unit/test_addons.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_addons.py
--- a/testing/marionette/harness/marionette/tests/unit/test_addons.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_addons.py
@@ -1,18 +1,20 @@
# 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/.
import os
import unittest
-from marionette import MarionetteTestCase
from marionette_driver.addons import Addons, AddonInstallException
+from marionette_harness import MarionetteTestCase
+
+
here = os.path.abspath(os.path.dirname(__file__))
class TestAddons(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.addons = Addons(self.marionette)
rename from testing/marionette/harness/marionette/tests/unit/test_anonymous_content.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_anonymous_content.py
--- a/testing/marionette/harness/marionette/tests/unit/test_anonymous_content.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_anonymous_content.py
@@ -1,20 +1,21 @@
# 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 unittest import skip
-from marionette import MarionetteTestCase, WindowManagerMixin
+from marionette_driver.by import By
from marionette_driver.errors import NoSuchElementException
from marionette_driver.expected import element_present
from marionette_driver.marionette import HTMLElement
from marionette_driver.wait import Wait
-from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
class TestAnonymousContent(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(TestAnonymousContent, self).setUp()
self.marionette.set_context("chrome")
rename from testing/marionette/harness/marionette/tests/unit/test_browsermobproxy.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_browsermobproxy.py
--- a/testing/marionette/harness/marionette/tests/unit/test_browsermobproxy.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_browsermobproxy.py
@@ -1,11 +1,11 @@
import datetime
-from marionette.runner import BrowserMobTestCase
+from marionette_harness.runner import BrowserMobTestCase
class TestBrowserMobProxy(BrowserMobTestCase):
"""To run this test, you'll need to download the browsermob-proxy from
http://bmp.lightbody.net/, and then pass the path to the startup
script (typically /path/to/browsermob-proxy-2.0.0/bin/browsermob-proxy)
as the --browsermob-script argument when running runtests.py.
rename from testing/marionette/harness/marionette/tests/unit/test_capabilities.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_capabilities.py
--- a/testing/marionette/harness/marionette/tests/unit/test_capabilities.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_capabilities.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.errors import SessionNotCreatedException
+from marionette_harness import MarionetteTestCase
+
class TestCapabilities(MarionetteTestCase):
def setUp(self):
super(TestCapabilities, self).setUp()
self.caps = self.marionette.session_capabilities
with self.marionette.using_context("chrome"):
self.appinfo = self.marionette.execute_script(
rename from testing/marionette/harness/marionette/tests/unit/test_certificates.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_certificates.py
--- a/testing/marionette/harness/marionette/tests/unit/test_certificates.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_certificates.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.errors import UnknownException
+from marionette_harness import MarionetteTestCase
+
class TestCertificates(MarionetteTestCase):
def test_block_insecure_sites(self):
self.marionette.delete_session()
self.marionette.start_session()
self.marionette.navigate(self.fixtures.where_is("test.html", on="http"))
self.assertIn("http://", self.marionette.get_url())
rename from testing/marionette/harness/marionette/tests/unit/test_checkbox.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_checkbox.py
--- a/testing/marionette/harness/marionette/tests/unit/test_checkbox.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_checkbox.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
class TestCheckbox(MarionetteTestCase):
def test_selected(self):
test_html = self.marionette.absolute_url("test.html")
self.marionette.navigate(test_html)
box = self.marionette.find_element(By.NAME, "myCheckBox")
self.assertFalse(box.is_selected())
box.click()
rename from testing/marionette/harness/marionette/tests/unit/test_checkbox_chrome.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_checkbox_chrome.py
--- a/testing/marionette/harness/marionette/tests/unit/test_checkbox_chrome.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_checkbox_chrome.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase, WindowManagerMixin
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
+
class TestSelectedChrome(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(TestSelectedChrome, self).setUp()
self.marionette.set_context("chrome")
rename from testing/marionette/harness/marionette/tests/unit/test_chrome.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_chrome.py
--- a/testing/marionette/harness/marionette/tests/unit/test_chrome.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_chrome.py
@@ -8,19 +8,20 @@
# http://www.apache.org/licenses/LICENSE-2.0
#
#Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and
#limitations under the License.
-from marionette import MarionetteTestCase, WindowManagerMixin
from marionette_driver import By
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
+
class ChromeTests(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(ChromeTests, self).setUp()
self.marionette.set_context('chrome')
rename from testing/marionette/harness/marionette/tests/unit/test_chrome_async_finish.js
rename to testing/marionette/harness/marionette_harness/tests/unit/test_chrome_async_finish.js
rename from testing/marionette/harness/marionette/tests/unit/test_chrome_element_css.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_chrome_element_css.py
--- a/testing/marionette/harness/marionette/tests/unit/test_chrome_element_css.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_chrome_element_css.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
class TestChromeElementCSS(MarionetteTestCase):
def test_we_can_get_css_value_on_chrome_element(self):
self.marionette.navigate("about:blank")
with self.marionette.using_context("chrome"):
element = self.marionette.find_element(By.ID, "identity-icon")
favicon_image = element.value_of_css_property("list-style-image")
rename from testing/marionette/harness/marionette/tests/unit/test_clearing.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_clearing.py
--- a/testing/marionette/harness/marionette/tests/unit/test_clearing.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_clearing.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
+from marionette_driver.by import By
from marionette_driver.errors import InvalidElementStateException
-from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase
class TestClear(MarionetteTestCase):
def testWriteableTextInputShouldClear(self):
test_html = self.marionette.absolute_url("test_clearing.html")
self.marionette.navigate(test_html)
element = self.marionette.find_element(By.ID, "writableTextInput")
element.clear()
rename from testing/marionette/harness/marionette/tests/unit/test_click.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_click.py
--- a/testing/marionette/harness/marionette/tests/unit/test_click.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_click.py
@@ -1,19 +1,19 @@
# 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/.
import urllib
-from unittest import skip
from marionette_driver.by import By
from marionette_driver.errors import NoSuchElementException, ElementNotVisibleException
from marionette_driver.wait import Wait
-from marionette import MarionetteTestCase
+
+from marionette_harness import MarionetteTestCase
def inline(doc):
return "data:text/html;charset=utf-8,{}".format(urllib.quote(doc))
# The <a> element in the following HTML is not interactable because it
# is hidden by an overlay when scrolled into the top of the viewport.
rename from testing/marionette/harness/marionette/tests/unit/test_click_chrome.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_click_chrome.py
--- a/testing/marionette/harness/marionette/tests/unit/test_click_chrome.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_click_chrome.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
class TestClickChrome(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.root_window = self.marionette.current_window_handle
self.marionette.set_context("chrome")
self.marionette.execute_script(
"window.open('chrome://marionette/content/test.xul', 'foo', 'chrome,centerscreen')")
rename from testing/marionette/harness/marionette/tests/unit/test_click_scrolling.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_click_scrolling.py
--- a/testing/marionette/harness/marionette/tests/unit/test_click_scrolling.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_click_scrolling.py
@@ -1,15 +1,16 @@
# 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 marionette_driver.by import By
from marionette_driver.errors import MoveTargetOutOfBoundsException
-from marionette import MarionetteTestCase, skip
+
+from marionette_harness import MarionetteTestCase, skip
class TestClickScrolling(MarionetteTestCase):
def test_clicking_on_anchor_scrolls_page(self):
scrollScript = """
var pageY;
rename from testing/marionette/harness/marionette/tests/unit/test_cookies.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_cookies.py
--- a/testing/marionette/harness/marionette/tests/unit/test_cookies.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_cookies.py
@@ -1,12 +1,17 @@
+# 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/.
+
import calendar
+import random
import time
-import random
-from marionette import MarionetteTestCase
+
+from marionette_harness import MarionetteTestCase
class CookieTest(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
test_url = self.marionette.absolute_url('test.html')
self.marionette.navigate(test_url)
rename from testing/marionette/harness/marionette/tests/unit/test_crash.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_crash.py
--- a/testing/marionette/harness/marionette/tests/unit/test_crash.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_crash.py
@@ -1,21 +1,21 @@
# 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/.
import glob
import shutil
-from marionette import MarionetteTestCase, expectedFailure, run_if_e10s
from marionette_driver.errors import MarionetteException
-
# Import runner module to monkey patch mozcrash module
from mozrunner.base import runner
+from marionette_harness import MarionetteTestCase, expectedFailure, run_if_e10s
+
class MockMozCrash(object):
"""Mock object to replace original mozcrash methods."""
def __init__(self, marionette):
self.marionette = marionette
with self.marionette.using_context('chrome'):
rename from testing/marionette/harness/marionette/tests/unit/test_data_driven.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py
--- a/testing/marionette/harness/marionette/tests/unit/test_data_driven.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_data_driven.py
@@ -1,13 +1,13 @@
# 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 marionette.marionette_test import (
+from marionette_harness.marionette_test import (
parameterized,
with_parameters,
MetaParameterized,
MarionetteTestCase
)
class Parameterizable(object):
__metaclass__ = MetaParameterized
rename from testing/marionette/harness/marionette/tests/unit/test_date_time_value.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_date_time_value.py
--- a/testing/marionette/harness/marionette/tests/unit/test_date_time_value.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_date_time_value.py
@@ -1,17 +1,17 @@
# 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 datetime import datetime
-from marionette import MarionetteTestCase
+from marionette_driver.by import By
from marionette_driver.date_time_value import DateTimeValue
-from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
class TestDateTime(MarionetteTestCase):
def test_set_date(self):
test_html = self.marionette.absolute_url("datetimePage.html")
self.marionette.navigate(test_html)
element = self.marionette.find_element(By.ID, "date-test")
rename from testing/marionette/harness/marionette/tests/unit/test_element_retrieval.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_element_retrieval.py
--- a/testing/marionette/harness/marionette/tests/unit/test_element_retrieval.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_element_retrieval.py
@@ -1,19 +1,20 @@
# 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/.
import re
import urllib
-from marionette import MarionetteTestCase, skip
-from marionette_driver.marionette import HTMLElement
from marionette_driver.by import By
from marionette_driver.errors import NoSuchElementException, InvalidSelectorException
+from marionette_driver.marionette import HTMLElement
+
+from marionette_harness import MarionetteTestCase, skip
def inline(doc, doctype="html"):
if doctype == "html":
return "data:text/html;charset=utf-8,{}".format(urllib.quote(doc))
elif doctype == "xhtml":
return "data:application/xhtml+xml,{}".format(urllib.quote(
r"""<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
rename from testing/marionette/harness/marionette/tests/unit/test_element_state.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_element_state.py
--- a/testing/marionette/harness/marionette/tests/unit/test_element_state.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_element_state.py
@@ -1,18 +1,19 @@
# 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/.
import types
import urllib
-from marionette import MarionetteTestCase
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
boolean_attributes = {
"audio": ["autoplay", "controls", "loop", "muted"],
"button": ["autofocus", "disabled", "formnovalidate"],
"details": ["open"],
"dialog": ["open"],
"fieldset": ["disabled"],
"form": ["novalidate"],
rename from testing/marionette/harness/marionette/tests/unit/test_element_state_chrome.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_element_state_chrome.py
--- a/testing/marionette/harness/marionette/tests/unit/test_element_state_chrome.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_element_state_chrome.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
class TestIsElementEnabledChrome(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.marionette.set_context("chrome")
self.win = self.marionette.current_window_handle
self.marionette.execute_script("window.open('chrome://marionette/content/test.xul', 'foo', 'chrome,centerscreen');")
self.marionette.switch_to_window('foo')
rename from testing/marionette/harness/marionette/tests/unit/test_elementsize.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_elementsize.py
--- a/testing/marionette/harness/marionette/tests/unit/test_elementsize.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_elementsize.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
class TestElementSize(MarionetteTestCase):
def testShouldReturnTheSizeOfALink(self):
test_html = self.marionette.absolute_url("testSize.html")
self.marionette.navigate(test_html)
shrinko = self.marionette.find_element(By.ID, 'linkId')
size = shrinko.rect
self.assertTrue(size['width'] > 0)
rename from testing/marionette/harness/marionette/tests/unit/test_elementsize_chrome.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_elementsize_chrome.py
--- a/testing/marionette/harness/marionette/tests/unit/test_elementsize_chrome.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_elementsize_chrome.py
@@ -1,15 +1,15 @@
# 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 marionette_driver.by import By
-from marionette import MarionetteTestCase, WindowManagerMixin
-from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
class TestElementSizeChrome(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(TestElementSizeChrome, self).setUp()
self.marionette.set_context("chrome")
rename from testing/marionette/harness/marionette/tests/unit/test_errors.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_errors.py
--- a/testing/marionette/harness/marionette/tests/unit/test_errors.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_errors.py
@@ -1,17 +1,19 @@
# 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/.
import sys
-from marionette import marionette_test
from marionette_driver import errors
+from marionette_harness import marionette_test
+
+
def fake_cause():
try:
raise ValueError("bar")
except ValueError as e:
return sys.exc_info()
message = "foo"
cause = fake_cause()
rename from testing/marionette/harness/marionette/tests/unit/test_execute_async_script.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_execute_async_script.py
--- a/testing/marionette/harness/marionette/tests/unit/test_execute_async_script.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_execute_async_script.py
@@ -1,16 +1,18 @@
# 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 marionette import MarionetteTestCase
-from marionette_driver.errors import ( JavascriptException,
- MarionetteException,
- ScriptTimeoutException )
+from marionette_driver.errors import (
+ JavascriptException,
+ ScriptTimeoutException,
+)
+
+from marionette_harness import MarionetteTestCase
class TestExecuteAsyncContent(MarionetteTestCase):
def setUp(self):
super(TestExecuteAsyncContent, self).setUp()
self.marionette.timeout.script = 1
def test_execute_async_simple(self):
rename from testing/marionette/harness/marionette/tests/unit/test_execute_isolate.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_execute_isolate.py
--- a/testing/marionette/harness/marionette/tests/unit/test_execute_isolate.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_execute_isolate.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
-from marionette_driver.errors import (MarionetteException,
- ScriptTimeoutException)
+from marionette_driver.errors import ScriptTimeoutException
+
+from marionette_harness import MarionetteTestCase
+
class TestExecuteIsolationContent(MarionetteTestCase):
def setUp(self):
super(TestExecuteIsolationContent, self).setUp()
self.content = True
def test_execute_async_isolate(self):
# Results from one execute call that has timed out should not
rename from testing/marionette/harness/marionette/tests/unit/test_execute_sandboxes.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_execute_sandboxes.py
--- a/testing/marionette/harness/marionette/tests/unit/test_execute_sandboxes.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_execute_sandboxes.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.errors import JavascriptException
+from marionette_harness import MarionetteTestCase
+
class TestExecuteSandboxes(MarionetteTestCase):
def setUp(self):
super(TestExecuteSandboxes, self).setUp()
def test_execute_system_sandbox(self):
# Test that "system" sandbox has elevated privileges in execute_script
result = self.marionette.execute_script(
rename from testing/marionette/harness/marionette/tests/unit/test_execute_script.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_execute_script.py
--- a/testing/marionette/harness/marionette/tests/unit/test_execute_script.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_execute_script.py
@@ -1,21 +1,20 @@
# 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/.
import os
-import time
import urllib
from marionette_driver import By, errors
from marionette_driver.marionette import HTMLElement
from marionette_driver.wait import Wait
-from marionette import MarionetteTestCase, WindowManagerMixin
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
def inline(doc):
return "data:text/html;charset=utf-8,{}".format(urllib.quote(doc))
elements = inline("<p>foo</p> <p>bar</p>")
rename from testing/marionette/harness/marionette/tests/unit/test_expected.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_expected.py
--- a/testing/marionette/harness/marionette/tests/unit/test_expected.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_expected.py
@@ -2,17 +2,17 @@
# 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/.
import urllib
from marionette_driver import expected
from marionette_driver.by import By
-from marionette import marionette_test
+from marionette_harness import marionette_test
def inline(doc):
return "data:text/html;charset=utf-8,{}".format(urllib.quote(doc))
static_element = inline("""<p>foo</p>""")
static_elements = static_element + static_element
rename from testing/marionette/harness/marionette/tests/unit/test_expectedfail.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_expectedfail.py
--- a/testing/marionette/harness/marionette/tests/unit/test_expectedfail.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_expectedfail.py
@@ -1,10 +1,11 @@
# 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 marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
+
class TestFail(MarionetteTestCase):
def test_fails(self):
# this test is supposed to fail!
self.assertEquals(True, False)
rename from testing/marionette/harness/marionette/tests/unit/test_file_upload.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_file_upload.py
--- a/testing/marionette/harness/marionette/tests/unit/test_file_upload.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_file_upload.py
@@ -2,19 +2,19 @@
# 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/.
import contextlib
import urllib
from tempfile import NamedTemporaryFile as tempfile
-from marionette import MarionetteTestCase, skip
from marionette_driver import By, errors, expected
from marionette_driver.wait import Wait
+from marionette_harness import MarionetteTestCase, skip
single = "data:text/html,{}".format(urllib.quote("<input type=file>"))
multiple = "data:text/html,{}".format(urllib.quote("<input type=file multiple>"))
upload = lambda url: "data:text/html,{}".format(urllib.quote("""
<form action='{}' method=post enctype='multipart/form-data'>
<input type=file>
<input type=submit>
rename from testing/marionette/harness/marionette/tests/unit/test_findelement_chrome.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_findelement_chrome.py
--- a/testing/marionette/harness/marionette/tests/unit/test_findelement_chrome.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_findelement_chrome.py
@@ -1,16 +1,17 @@
# 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 marionette import MarionetteTestCase
-from marionette_driver.marionette import HTMLElement
from marionette_driver.by import By
from marionette_driver.errors import NoSuchElementException
+from marionette_driver.marionette import HTMLElement
+
+from marionette_harness import MarionetteTestCase
class TestElementsChrome(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.marionette.set_context("chrome")
self.win = self.marionette.current_window_handle
self.marionette.execute_script("window.open('chrome://marionette/content/test.xul', 'foo', 'chrome,centerscreen');")
rename from testing/marionette/harness/marionette/tests/unit/test_geckoinstance.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_geckoinstance.py
--- a/testing/marionette/harness/marionette/tests/unit/test_geckoinstance.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_geckoinstance.py
@@ -1,15 +1,16 @@
# 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 marionette.marionette_test import MarionetteTestCase
from marionette_driver.geckoinstance import apps, GeckoInstance
+from marionette_harness import MarionetteTestCase
+
class TestGeckoInstance(MarionetteTestCase):
def test_create(self):
"""Test that the correct gecko instance is determined."""
for app in apps:
# If app has been specified we directly return the appropriate instance class
self.assertEqual(type(GeckoInstance.create(app=app, bin="n/a")),
rename from testing/marionette/harness/marionette/tests/unit/test_getactiveframe_oop.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_getactiveframe_oop.py
--- a/testing/marionette/harness/marionette/tests/unit/test_getactiveframe_oop.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_getactiveframe_oop.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
OOP_BY_DEFAULT = "dom.ipc.browser_frames.oop_by_default"
BROWSER_FRAMES_ENABLED = "dom.mozBrowserFramesEnabeld"
class TestGetActiveFrameOOP(MarionetteTestCase):
def setUp(self):
super(TestGetActiveFrameOOP, self).setUp()
rename from testing/marionette/harness/marionette/tests/unit/test_implicit_waits.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_implicit_waits.py
--- a/testing/marionette/harness/marionette/tests/unit/test_implicit_waits.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_implicit_waits.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
+from marionette_driver.by import By
from marionette_driver.errors import NoSuchElementException
-from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase
class TestImplicitWaits(MarionetteTestCase):
def test_implicitly_wait_for_single_element(self):
test_html = self.marionette.absolute_url("test_dynamic.html")
self.marionette.navigate(test_html)
add = self.marionette.find_element(By.ID, "adder")
self.marionette.timeout.implicit = 30
rename from testing/marionette/harness/marionette/tests/unit/test_import_script.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_import_script.py
--- a/testing/marionette/harness/marionette/tests/unit/test_import_script.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_import_script.py
@@ -1,17 +1,18 @@
# 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/.
import os
-from marionette import MarionetteTestCase, WindowManagerMixin, skip_if_chrome
+from marionette_driver.by import By
from marionette_driver.errors import JavascriptException
-from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase, WindowManagerMixin, skip_if_chrome
class TestImportScriptContent(WindowManagerMixin, MarionetteTestCase):
contexts = set(["chrome", "content"])
script_file = os.path.abspath(
os.path.join(__file__, os.path.pardir, "importscript.js"))
another_script_file = os.path.abspath(
rename from testing/marionette/harness/marionette/tests/unit/test_key_actions.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_key_actions.py
--- a/testing/marionette/harness/marionette/tests/unit/test_key_actions.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_key_actions.py
@@ -1,16 +1,17 @@
# 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 marionette import MarionetteTestCase, WindowManagerMixin
+from marionette_driver.by import By
from marionette_driver.keys import Keys
from marionette_driver.marionette import Actions
-from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
class TestKeyActions(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(TestKeyActions, self).setUp()
if self.marionette.session_capabilities["platformName"] == "darwin":
self.mod_key = Keys.META
rename from testing/marionette/harness/marionette/tests/unit/test_localization.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_localization.py
--- a/testing/marionette/harness/marionette/tests/unit/test_localization.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_localization.py
@@ -1,17 +1,18 @@
# 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 marionette import MarionetteTestCase
from marionette_driver import By
from marionette_driver.errors import InvalidArgumentException, NoSuchElementException
from marionette_driver.localization import L10n
+from marionette_harness import MarionetteTestCase
+
class TestL10n(MarionetteTestCase):
def setUp(self):
super(TestL10n, self).setUp()
self.l10n = L10n(self.marionette)
rename from testing/marionette/harness/marionette/tests/unit/test_log.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_log.py
--- a/testing/marionette/harness/marionette/tests/unit/test_log.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_log.py
@@ -1,13 +1,13 @@
# 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 marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestLog(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
# clears log cache
self.marionette.get_logs()
rename from testing/marionette/harness/marionette/tests/unit/test_marionette.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_marionette.py
--- a/testing/marionette/harness/marionette/tests/unit/test_marionette.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_marionette.py
@@ -1,18 +1,18 @@
# 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/.
import itertools
import time
-from marionette.marionette_test import MarionetteTestCase
+from marionette_driver import errors
-from marionette_driver import errors
+from marionette_harness import MarionetteTestCase
class TestMarionette(MarionetteTestCase):
def test_correct_test_name(self):
"""Test that the correct test name gets set."""
expected_test_name = '{module}.py {cls}.{func}'.format(
module=__name__,
rename from testing/marionette/harness/marionette/tests/unit/test_modal_dialogs.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_modal_dialogs.py
--- a/testing/marionette/harness/marionette/tests/unit/test_modal_dialogs.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_modal_dialogs.py
@@ -1,17 +1,18 @@
# 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 marionette.marionette_test import MarionetteTestCase, skip_if_e10s
+from marionette_driver.by import By
from marionette_driver.errors import NoAlertPresentException, ElementNotVisibleException
from marionette_driver.marionette import Alert
from marionette_driver.wait import Wait
-from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase, skip_if_e10s
class TestTabModals(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.marionette.enforce_gecko_prefs({"prompts.tab_modal.enabled": True})
self.marionette.navigate(self.marionette.absolute_url('modal_dialogs.html'))
rename from testing/marionette/harness/marionette/tests/unit/test_mouse_action.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_mouse_action.py
--- a/testing/marionette/harness/marionette/tests/unit/test_mouse_action.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_mouse_action.py
@@ -1,16 +1,17 @@
# 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 marionette import MarionetteTestCase
+from marionette_driver.by import By
+from marionette_driver.keys import Keys
from marionette_driver.marionette import Actions
-from marionette_driver.keys import Keys
-from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase
class TestMouseAction(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
if self.marionette.session_capabilities["platformName"] == "darwin":
self.mod_key = Keys.META
else:
rename from testing/marionette/harness/marionette/tests/unit/test_navigation.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_navigation.py
--- a/testing/marionette/harness/marionette/tests/unit/test_navigation.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_navigation.py
@@ -1,19 +1,20 @@
# 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/.
+import contextlib
import time
import urllib
-import contextlib
-from marionette import MarionetteTestCase, WindowManagerMixin
from marionette_driver import errors, By, Wait
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
+
def inline(doc):
return "data:text/html;charset=utf-8,%s" % urllib.quote(doc)
class TestNavigate(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
rename from testing/marionette/harness/marionette/tests/unit/test_pagesource.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_pagesource.py
--- a/testing/marionette/harness/marionette/tests/unit/test_pagesource.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_pagesource.py
@@ -1,13 +1,13 @@
# 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 marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestPageSource(MarionetteTestCase):
def testShouldReturnTheSourceOfAPage(self):
test_html = self.marionette.absolute_url("testPageSource.html")
self.marionette.navigate(test_html)
source = self.marionette.page_source
from_web_api = self.marionette.execute_script("return document.documentElement.outerHTML")
rename from testing/marionette/harness/marionette/tests/unit/test_pagesource_chrome.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_pagesource_chrome.py
--- a/testing/marionette/harness/marionette/tests/unit/test_pagesource_chrome.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_pagesource_chrome.py
@@ -1,13 +1,13 @@
# 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 marionette import MarionetteTestCase, WindowManagerMixin
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
class TestPageSourceChrome(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(TestPageSourceChrome, self).setUp()
self.marionette.set_context("chrome")
rename from testing/marionette/harness/marionette/tests/unit/test_position.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_position.py
--- a/testing/marionette/harness/marionette/tests/unit/test_position.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_position.py
@@ -1,11 +1,16 @@
-from marionette import MarionetteTestCase
+# 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 marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
class TestPosition(MarionetteTestCase):
def test_should_get_element_position_back(self):
test_url = self.marionette.absolute_url('rectangles.html')
self.marionette.navigate(test_url)
r2 = self.marionette.find_element(By.ID, "r2")
rename from testing/marionette/harness/marionette/tests/unit/test_prefs.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_prefs.py
--- a/testing/marionette/harness/marionette/tests/unit/test_prefs.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_prefs.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.errors import JavascriptException
+from marionette_harness import MarionetteTestCase
+
class TestPreferences(MarionetteTestCase):
prefs = {
"bool": "marionette.test.bool",
"int": "marionette.test.int",
"string": "marionette.test.string",
}
rename from testing/marionette/harness/marionette/tests/unit/test_profile_management.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_profile_management.py
--- a/testing/marionette/harness/marionette/tests/unit/test_profile_management.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_profile_management.py
@@ -1,13 +1,13 @@
# 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 marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestProfileManagement(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.marionette.enforce_gecko_prefs(
{"marionette.test.bool": True,
rename from testing/marionette/harness/marionette/tests/unit/test_proxy.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_proxy.py
--- a/testing/marionette/harness/marionette/tests/unit/test_proxy.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_proxy.py
@@ -1,15 +1,17 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.errors import InvalidArgumentException
+from marionette_harness import MarionetteTestCase
+
+
class TestProxy(MarionetteTestCase):
def setUp(self):
super(TestProxy, self).setUp()
self.marionette.delete_session()
def test_that_we_can_set_a_autodetect_proxy(self):
capabilities = {"requiredCapabilities":
rename from testing/marionette/harness/marionette/tests/unit/test_quit_restart.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_quit_restart.py
--- a/testing/marionette/harness/marionette/tests/unit/test_quit_restart.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_quit_restart.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.errors import MarionetteException
+from marionette_harness import MarionetteTestCase
+
class TestQuitRestart(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.pid = self.marionette.process_id
self.session_id = self.marionette.session_id
rename from testing/marionette/harness/marionette/tests/unit/test_rendered_element.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_rendered_element.py
--- a/testing/marionette/harness/marionette/tests/unit/test_rendered_element.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_rendered_element.py
@@ -8,19 +8,20 @@
# http://www.apache.org/licenses/LICENSE-2.0
#
#Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and
#limitations under the License.
-from marionette import MarionetteTestCase
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
class RenderedElementTests(MarionetteTestCase):
def testWeCanGetComputedStyleValueOnElement(self):
test_url = self.marionette.absolute_url('javascriptPage.html')
self.marionette.navigate(test_url)
element = self.marionette.find_element(By.ID, "green-parent")
backgroundColour = element.value_of_css_property("background-color")
rename from testing/marionette/harness/marionette/tests/unit/test_report.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_report.py
--- a/testing/marionette/harness/marionette/tests/unit/test_report.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_report.py
@@ -1,13 +1,13 @@
# 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 marionette import MarionetteTestCase, expectedFailure, skip
+from marionette_harness import MarionetteTestCase, expectedFailure, skip
class TestReport(MarionetteTestCase):
def test_pass(self):
assert True
def test_fail(self):
rename from testing/marionette/harness/marionette/tests/unit/test_run_js_test.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_run_js_test.py
--- a/testing/marionette/harness/marionette/tests/unit/test_run_js_test.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_run_js_test.py
@@ -1,9 +1,10 @@
# Any copyright is dedicated to the Public Domain.
# http://creativecommons.org/publicdomain/zero/1.0/
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
+
class TestRunJSTest(MarionetteTestCase):
def test_basic(self):
self.run_js_test('test_simpletest_pass.js')
self.run_js_test('test_simpletest_fail.js')
rename from testing/marionette/harness/marionette/tests/unit/test_screen_orientation.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_screen_orientation.py
--- a/testing/marionette/harness/marionette/tests/unit/test_screen_orientation.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_screen_orientation.py
@@ -1,19 +1,22 @@
# 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 marionette_driver import errors
-from marionette import MarionetteTestCase, skip_if_desktop, skip_if_mobile
from mozrunner.devices.emulator_screen import EmulatorScreen
+from marionette_harness import MarionetteTestCase, skip_if_desktop, skip_if_mobile
+
+
default_orientation = "portrait-primary"
unknown_orientation = "Unknown screen orientation: {}"
+
class TestScreenOrientation(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.is_mobile = self.marionette.session_capabilities.get("rotatable", False)
def tearDown(self):
if self.is_mobile:
self.marionette.set_orientation(default_orientation)
rename from testing/marionette/harness/marionette/tests/unit/test_screenshot.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_screenshot.py
--- a/testing/marionette/harness/marionette/tests/unit/test_screenshot.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_screenshot.py
@@ -5,19 +5,20 @@
import base64
import hashlib
import imghdr
import struct
import urllib
from unittest import skip
-from marionette import MarionetteTestCase, WindowManagerMixin
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
+
def inline(doc, mime="text/html;charset=utf-8"):
return "data:{0},{1}".format(mime, urllib.quote(doc))
ELEMENT = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAVklEQVRoge3PMQ0AMAzAsPJHVWYbjEWTj/zx7O75oXk9AAISD6QWSC2QWiC1QGqB1AKpBVILpBZILZBaILVAaoHUAqkFUgukFkgtkFogtUBqgdT6BnIBMKa1DtYxhPkAAAAASUVORK5CYII="
HIGHLIGHTED_ELEMENT = "iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAVklEQVRoge3PQRHAQAgAMfyrwhm1sb3JIwIyN3MvmJu53f01kRqRGpEakRqRGpEakRqRGpEakRqRGpEakRqRGpEakRqRGpEakRqRGpEakRqRmvciL/gAQgW/OxTpMPwAAAAASUVORK5CYII="
rename from testing/marionette/harness/marionette/tests/unit/test_select.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_select.py
--- a/testing/marionette/harness/marionette/tests/unit/test_select.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_select.py
@@ -1,17 +1,18 @@
# 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/.
import urllib
-from marionette import MarionetteTestCase
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
def inline(doc):
return "data:text/html;charset=utf-8,{}".format(urllib.quote(doc))
class SelectTestCase(MarionetteTestCase):
def assertSelected(self, option_element):
self.assertTrue(option_element.is_selected(), "<option> element not selected")
rename from testing/marionette/harness/marionette/tests/unit/test_session.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_session.py
--- a/testing/marionette/harness/marionette/tests/unit/test_session.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_session.py
@@ -1,15 +1,17 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.errors import SessionNotCreatedException
+from marionette_harness import MarionetteTestCase
+
+
class TestSession(MarionetteTestCase):
def setUp(self):
super(TestSession, self).setUp()
self.marionette.delete_session()
def test_new_session_returns_capabilities(self):
# Sends newSession
caps = self.marionette.start_session()
rename from testing/marionette/harness/marionette/tests/unit/test_set_window_size.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_set_window_size.py
--- a/testing/marionette/harness/marionette/tests/unit/test_set_window_size.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_set_window_size.py
@@ -1,14 +1,13 @@
# 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 marionette_driver.errors import UnsupportedOperationException
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestSetWindowSize(MarionetteTestCase):
def setUp(self):
super(MarionetteTestCase, self).setUp()
self.start_size = self.marionette.window_size
self.max_width = self.marionette.execute_script("return window.screen.availWidth;")
self.max_height = self.marionette.execute_script("return window.screen.availHeight;")
rename from testing/marionette/harness/marionette/tests/unit/test_shadow_dom.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_shadow_dom.py
--- a/testing/marionette/harness/marionette/tests/unit/test_shadow_dom.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_shadow_dom.py
@@ -1,15 +1,19 @@
# 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 marionette import MarionetteTestCase
-from marionette_driver.errors import (NoSuchElementException, StaleElementException)
from marionette_driver.by import By
+from marionette_driver.errors import (
+ NoSuchElementException,
+ StaleElementException
+)
+
+from marionette_harness import MarionetteTestCase
class TestShadowDom(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.marionette.enforce_gecko_prefs({"dom.webcomponents.enabled": True})
self.marionette.navigate(self.marionette.absolute_url("test_shadow_dom.html"))
rename from testing/marionette/harness/marionette/tests/unit/test_simpletest_chrome.js
rename to testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_chrome.js
rename from testing/marionette/harness/marionette/tests/unit/test_simpletest_fail.js
rename to testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_fail.js
rename from testing/marionette/harness/marionette/tests/unit/test_simpletest_pass.js
rename to testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_pass.js
rename from testing/marionette/harness/marionette/tests/unit/test_simpletest_sanity.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_sanity.py
--- a/testing/marionette/harness/marionette/tests/unit/test_simpletest_sanity.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_sanity.py
@@ -1,13 +1,14 @@
# 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 marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
+
class SimpletestSanityTest(MarionetteTestCase):
callFinish = "return finish();"
def run_sync(self, test):
return self.marionette.execute_js_script(test, async=False)
def run_async(self, test):
rename from testing/marionette/harness/marionette/tests/unit/test_simpletest_timeout.js
rename to testing/marionette/harness/marionette_harness/tests/unit/test_simpletest_timeout.js
rename from testing/marionette/harness/marionette/tests/unit/test_single_finger_desktop.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_single_finger_desktop.py
--- a/testing/marionette/harness/marionette/tests/unit/test_single_finger_desktop.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_single_finger_desktop.py
@@ -1,21 +1,30 @@
-from marionette import MarionetteTestCase
-from marionette_driver.errors import MarionetteException
-from marionette_driver.by import By
-#add this directory to the path
+# 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/.
+
import os
import sys
+
+from marionette_driver.errors import MarionetteException
+from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase
+
+# add this directory to the path
sys.path.append(os.path.dirname(__file__))
+
from single_finger_functions import (
- chain, chain_flick, context_menu, double_tap,
- long_press_action, long_press_on_xy_action,
- move_element, move_element_offset, press_release, single_tap, wait,
- wait_with_value
- )
+ chain, chain_flick, context_menu, double_tap,
+ long_press_action, long_press_on_xy_action,
+ move_element, move_element_offset, press_release, single_tap, wait,
+ wait_with_value
+)
+
class testSingleFingerMouse(MarionetteTestCase):
def setUp(self):
super(MarionetteTestCase, self).setUp()
# set context menu related preferences needed for some tests
self.marionette.set_context("chrome")
self.enabled = self.marionette.execute_script("""
let prefs = Components.classes["@mozilla.org/preferences-service;1"]
@@ -82,17 +91,17 @@ prefs.setIntPref("ui.click_hold_context_
context_menu(self.marionette, self.wait_for_condition, "button1-mousemove-mousedown-contextmenu", "button1-mousemove-mousedown-contextmenu-mouseup-click")
def test_long_press_action(self):
long_press_action(self.marionette, self.wait_for_condition, "button1-mousemove-mousedown-contextmenu-mouseup-click")
def test_long_press_on_xy_action(self):
long_press_on_xy_action(self.marionette, self.wait_for_condition, "button1-mousemove-mousedown-contextmenu-mouseup-click")
"""
-
+
"""
//Skipping due to Bug 865334
def test_long_press_fail(self):
testAction = self.marionette.absolute_url("testAction.html")
self.marionette.navigate(testAction)
button = self.marionette.find_element(By.ID, "button1Copy")
action = Actions(self.marionette)
action.press(button).long_press(button, 5)
rename from testing/marionette/harness/marionette/tests/unit/test_skip_setup.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_skip_setup.py
--- a/testing/marionette/harness/marionette/tests/unit/test_skip_setup.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_skip_setup.py
@@ -1,13 +1,14 @@
# 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 marionette import MarionetteTestCase, SkipTest
+from marionette_harness import MarionetteTestCase, SkipTest
+
class TestSetUpSkipped(MarionetteTestCase):
testVar = {'test':'SkipTest'}
def setUp(self):
try:
self.testVar['email']
rename from testing/marionette/harness/marionette/tests/unit/test_switch_frame.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_switch_frame.py
--- a/testing/marionette/harness/marionette/tests/unit/test_switch_frame.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_switch_frame.py
@@ -1,17 +1,19 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.by import By
-from marionette_driver.errors import (JavascriptException,
- NoSuchFrameException)
-from marionette_driver.by import By
+from marionette_driver.errors import (
+ JavascriptException,
+ NoSuchFrameException,
+)
+
+from marionette_harness import MarionetteTestCase
class TestSwitchFrame(MarionetteTestCase):
def test_switch_simple(self):
start_url = "test_iframe.html"
verify_title = "Marionette IFrame Test"
test_html = self.marionette.absolute_url(start_url)
self.marionette.navigate(test_html)
rename from testing/marionette/harness/marionette/tests/unit/test_switch_frame_chrome.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_switch_frame_chrome.py
--- a/testing/marionette/harness/marionette/tests/unit/test_switch_frame_chrome.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_switch_frame_chrome.py
@@ -1,17 +1,18 @@
# 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 unittest import skip
-from marionette import MarionetteTestCase, WindowManagerMixin
from marionette_driver.errors import JavascriptException
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
+
class TestSwitchFrameChrome(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(TestSwitchFrameChrome, self).setUp()
self.marionette.set_context("chrome")
def open_window_with_js():
rename from testing/marionette/harness/marionette/tests/unit/test_switch_remote_frame.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_switch_remote_frame.py
--- a/testing/marionette/harness/marionette/tests/unit/test_switch_remote_frame.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_switch_remote_frame.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
OOP_BY_DEFAULT = "dom.ipc.browser_frames.oop_by_default"
BROWSER_FRAMES_ENABLED = "dom.mozBrowserFramesEnabled"
class TestSwitchRemoteFrame(MarionetteTestCase):
def setUp(self):
super(TestSwitchRemoteFrame, self).setUp()
rename from testing/marionette/harness/marionette/tests/unit/test_teardown_context_preserved.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_teardown_context_preserved.py
--- a/testing/marionette/harness/marionette/tests/unit/test_teardown_context_preserved.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_teardown_context_preserved.py
@@ -1,13 +1,13 @@
# 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 marionette import MarionetteTestCase, SkipTest
+from marionette_harness import MarionetteTestCase, SkipTest
class TestTearDownContext(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.marionette.set_context(self.marionette.CONTEXT_CHROME)
def tearDown(self):
rename from testing/marionette/harness/marionette/tests/unit/test_text.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_text.py
--- a/testing/marionette/harness/marionette/tests/unit/test_text.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_text.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase
+from marionette_driver.by import By
from marionette_driver.keys import Keys
-from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase
class TestText(MarionetteTestCase):
def test_getText(self):
test_html = self.marionette.absolute_url("test.html")
self.marionette.navigate(test_html)
l = self.marionette.find_element(By.ID, "mozLink")
self.assertEqual("Click me!", l.text)
rename from testing/marionette/harness/marionette/tests/unit/test_text_chrome.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_text_chrome.py
--- a/testing/marionette/harness/marionette/tests/unit/test_text_chrome.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_text_chrome.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase, WindowManagerMixin
from marionette_driver.by import By
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
+
''' Disabled in bug 896043 and when working on Chrome code re-enable for bug 896046
class TestTextChrome(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(TestTextChrome, self).setUp()
self.marionette.set_context("chrome")
rename from testing/marionette/harness/marionette/tests/unit/test_timeouts.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_timeouts.py
--- a/testing/marionette/harness/marionette/tests/unit/test_timeouts.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_timeouts.py
@@ -1,19 +1,21 @@
# 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 marionette import MarionetteTestCase
+from marionette_driver.by import By
+from marionette_driver.errors import (
+ MarionetteException,
+ NoSuchElementException,
+ ScriptTimeoutException,
+)
from marionette_driver.marionette import HTMLElement
-from marionette_driver.errors import (NoSuchElementException,
- MarionetteException,
- InvalidArgumentException,
- ScriptTimeoutException)
-from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase
class TestTimeouts(MarionetteTestCase):
def tearDown(self):
self.marionette.timeout.reset()
MarionetteTestCase.tearDown(self)
def test_page_timeout_notdefinetimeout_pass(self):
rename from testing/marionette/harness/marionette/tests/unit/test_transport.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_transport.py
--- a/testing/marionette/harness/marionette/tests/unit/test_transport.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_transport.py
@@ -1,21 +1,24 @@
# 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/.
import json
-from marionette import MarionetteTestCase, skip_unless_protocol
+
from marionette_driver.transport import (
Command,
Proto2Command,
Proto2Response,
Response,
)
+from marionette_harness import MarionetteTestCase, skip_unless_protocol
+
+
get_current_url = ("getCurrentUrl", None)
execute_script = ("executeScript", {"script": "return 42"})
class TestMessageSequencing(MarionetteTestCase):
@property
def last_id(self):
return self.marionette.client.last_id
rename from testing/marionette/harness/marionette/tests/unit/test_typing.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_typing.py
--- a/testing/marionette/harness/marionette/tests/unit/test_typing.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_typing.py
@@ -1,18 +1,19 @@
# 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/.
import urllib
-from marionette import MarionetteTestCase
+from marionette_driver.by import By
+from marionette_driver.errors import ElementNotVisibleException
from marionette_driver.keys import Keys
-from marionette_driver.errors import ElementNotVisibleException
-from marionette_driver.by import By
+
+from marionette_harness import MarionetteTestCase
def inline(doc):
return "data:text/html;charset=utf-8,{}".format(urllib.quote(doc))
class TestTyping(MarionetteTestCase):
def testShouldFireKeyPressEvents(self):
rename from testing/marionette/harness/marionette/tests/unit/test_using_permissions.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_using_permissions.py
--- a/testing/marionette/harness/marionette/tests/unit/test_using_permissions.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_using_permissions.py
@@ -1,11 +1,16 @@
-from marionette import MarionetteTestCase
+# 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 marionette_driver.errors import JavascriptException
+from marionette_harness import MarionetteTestCase
+
class TestUsingPermssions(MarionetteTestCase):
def test_using_permissions(self):
# Test that multiple permissions can be set with 'using_permissions',
# and that they are set correctly and unset correctly after leaving
# the context manager.
original_perm = self.marionette.get_permission('systemXHR')
rename from testing/marionette/harness/marionette/tests/unit/test_visibility.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_visibility.py
--- a/testing/marionette/harness/marionette/tests/unit/test_visibility.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_visibility.py
@@ -1,11 +1,16 @@
-from marionette import MarionetteTestCase
+# 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 marionette_driver.by import By
+from marionette_harness import MarionetteTestCase
+
class TestVisibility(MarionetteTestCase):
def testShouldAllowTheUserToTellIfAnElementIsDisplayedOrNot(self):
test_html = self.marionette.absolute_url("javascriptPage.html")
self.marionette.navigate(test_html)
self.assertTrue(self.marionette.find_element(By.ID, "displayed").is_displayed())
rename from testing/marionette/harness/marionette/tests/unit/test_wait.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_wait.py
--- a/testing/marionette/harness/marionette/tests/unit/test_wait.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_wait.py
@@ -1,20 +1,19 @@
# 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/.
import sys
import time
-from marionette_driver import errors
-from marionette_driver import wait
+from marionette_driver import errors, wait
from marionette_driver.wait import Wait
-from marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TickingClock(object):
def __init__(self, incr=1):
self.ticks = 0
self.increment = incr
rename from testing/marionette/harness/marionette/tests/unit/test_window_handles.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_window_handles.py
--- a/testing/marionette/harness/marionette/tests/unit/test_window_handles.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_handles.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase, WindowManagerMixin
+from marionette_driver import By, Wait
from marionette_driver.keys import Keys
-from marionette_driver import By, Wait
+
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
class TestWindowHandles(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(TestWindowHandles, self).setUp()
self.test_page = self.marionette.absolute_url("windowHandles.html")
rename from testing/marionette/harness/marionette/tests/unit/test_window_management.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_window_management.py
--- a/testing/marionette/harness/marionette/tests/unit/test_window_management.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_management.py
@@ -1,15 +1,16 @@
# 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 marionette import MarionetteTestCase, WindowManagerMixin
from marionette_driver import By
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
+
class TestSwitchWindow(WindowManagerMixin, MarionetteTestCase):
def setUp(self):
super(TestSwitchWindow, self).setUp()
self.marionette.set_context("chrome")
def tearDown(self):
rename from testing/marionette/harness/marionette/tests/unit/test_window_position.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_window_position.py
--- a/testing/marionette/harness/marionette/tests/unit/test_window_position.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_position.py
@@ -7,19 +7,21 @@
# http://www.apache.org/licenses/LICENSE-2.0
#
#Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and
#limitations under the License.
-from marionette import MarionetteTestCase
from marionette_driver.errors import InvalidArgumentException
+from marionette_harness import MarionetteTestCase
+
+
class TestWindowPosition(MarionetteTestCase):
def test_get_types(self):
position = self.marionette.get_window_position()
self.assertTrue(isinstance(position["x"], int))
self.assertTrue(isinstance(position["y"], int))
def test_set_types(self):
for x, y in (["a", "b"], [1.2, 3.4], [True, False], [[], []], [{}, {}]):
rename from testing/marionette/harness/marionette/tests/unit/test_window_switching.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_window_switching.py
--- a/testing/marionette/harness/marionette/tests/unit/test_window_switching.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_switching.py
@@ -1,17 +1,18 @@
# 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 marionette import MarionetteTestCase, WindowManagerMixin
from marionette_driver.by import By
from marionette_driver.errors import NoSuchElementException
from marionette_driver.wait import Wait
+from marionette_harness import MarionetteTestCase, WindowManagerMixin
+
class TestWindowSwitching(WindowManagerMixin, MarionetteTestCase):
def testJSWindowCreationAndSwitching(self):
test_html = self.marionette.absolute_url("test_windows.html")
self.marionette.navigate(test_html)
def open_window_with_link():
rename from testing/marionette/harness/marionette/tests/unit/test_window_title.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_window_title.py
--- a/testing/marionette/harness/marionette/tests/unit/test_window_title.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_title.py
@@ -1,12 +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 marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestTitle(MarionetteTestCase):
def test_get_html_title(self):
test_html = self.marionette.absolute_url("test.html")
self.marionette.navigate(test_html)
self.assertEqual('Marionette Test', self.marionette.title)
rename from testing/marionette/harness/marionette/tests/unit/test_window_title_chrome.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_window_title_chrome.py
--- a/testing/marionette/harness/marionette/tests/unit/test_window_title_chrome.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_title_chrome.py
@@ -1,13 +1,13 @@
# 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 marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
class TestTitleChrome(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.marionette.set_context("chrome")
self.win = self.marionette.current_window_handle
self.marionette.execute_script("window.open('chrome://marionette/content/test.xul', 'foo', 'chrome,centerscreen');")
rename from testing/marionette/harness/marionette/tests/unit/test_window_type.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_window_type.py
--- a/testing/marionette/harness/marionette/tests/unit/test_window_type.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_window_type.py
@@ -1,13 +1,14 @@
# 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 marionette import MarionetteTestCase
+from marionette_harness import MarionetteTestCase
+
class TestWindowTypeChrome(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
self.marionette.set_context("chrome")
self.win = self.marionette.current_window_handle
self.marionette.execute_script("window.open('chrome://marionette/content/test.xul', 'foo', 'chrome,centerscreen');")
self.marionette.switch_to_window('foo')
rename from testing/marionette/harness/marionette/tests/unit/test_with_using_context.py
rename to testing/marionette/harness/marionette_harness/tests/unit/test_with_using_context.py
--- a/testing/marionette/harness/marionette/tests/unit/test_with_using_context.py
+++ b/testing/marionette/harness/marionette_harness/tests/unit/test_with_using_context.py
@@ -1,16 +1,17 @@
# 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 marionette import MarionetteTestCase
+from marionette_driver.decorators import using_context
from marionette_driver.errors import MarionetteException
-from marionette_driver.decorators import using_context
+from marionette_harness import MarionetteTestCase
+
class TestSetContext(MarionetteTestCase):
def setUp(self):
MarionetteTestCase.setUp(self)
# shortcuts to improve readability of these tests
self.chrome = self.marionette.CONTEXT_CHROME
self.content = self.marionette.CONTEXT_CONTENT
rename from testing/marionette/harness/marionette/tests/unit/unit-tests.ini
rename to testing/marionette/harness/marionette_harness/tests/unit/unit-tests.ini
rename from testing/marionette/harness/marionette/tests/webapi-tests.ini
rename to testing/marionette/harness/marionette_harness/tests/webapi-tests.ini
rename from testing/marionette/harness/marionette/www/bug814037.html
rename to testing/marionette/harness/marionette_harness/www/bug814037.html
rename from testing/marionette/harness/marionette/www/click_out_of_bounds_overflow.html
rename to testing/marionette/harness/marionette_harness/www/click_out_of_bounds_overflow.html
rename from testing/marionette/harness/marionette/www/clicks.html
rename to testing/marionette/harness/marionette_harness/www/clicks.html
rename from testing/marionette/harness/marionette/www/cssTransform.html
rename to testing/marionette/harness/marionette_harness/www/cssTransform.html
rename from testing/marionette/harness/marionette/www/cssTransform2.html
rename to testing/marionette/harness/marionette_harness/www/cssTransform2.html
rename from testing/marionette/harness/marionette/www/datetimePage.html
rename to testing/marionette/harness/marionette_harness/www/datetimePage.html
rename from testing/marionette/harness/marionette/www/deletingFrame.html
rename to testing/marionette/harness/marionette_harness/www/deletingFrame.html
rename from testing/marionette/harness/marionette/www/double_click.html
rename to testing/marionette/harness/marionette_harness/www/double_click.html
rename from testing/marionette/harness/marionette/www/element_bottom.html
rename to testing/marionette/harness/marionette_harness/www/element_bottom.html
rename from testing/marionette/harness/marionette/www/element_left.html
rename to testing/marionette/harness/marionette_harness/www/element_left.html
rename from testing/marionette/harness/marionette/www/element_outside_viewport.html
rename to testing/marionette/harness/marionette_harness/www/element_outside_viewport.html
rename from testing/marionette/harness/marionette/www/element_right.html
rename to testing/marionette/harness/marionette_harness/www/element_right.html
rename from testing/marionette/harness/marionette/www/element_top.html
rename to testing/marionette/harness/marionette_harness/www/element_top.html
rename from testing/marionette/harness/marionette/www/empty.html
rename to testing/marionette/harness/marionette_harness/www/empty.html
rename from testing/marionette/harness/marionette/www/formPage.html
rename to testing/marionette/harness/marionette_harness/www/formPage.html
rename from testing/marionette/harness/marionette/www/frameset.html
rename to testing/marionette/harness/marionette_harness/www/frameset.html
rename from testing/marionette/harness/marionette/www/framesetPage2.html
rename to testing/marionette/harness/marionette_harness/www/framesetPage2.html
rename from testing/marionette/harness/marionette/www/hidden.html
rename to testing/marionette/harness/marionette_harness/www/hidden.html
rename from testing/marionette/harness/marionette/www/html5/blue.jpg
rename to testing/marionette/harness/marionette_harness/www/html5/blue.jpg
rename from testing/marionette/harness/marionette/www/html5/boolean_attributes.html
rename to testing/marionette/harness/marionette_harness/www/html5/boolean_attributes.html
rename from testing/marionette/harness/marionette/www/html5/geolocation.js
rename to testing/marionette/harness/marionette_harness/www/html5/geolocation.js
rename from testing/marionette/harness/marionette/www/html5/green.jpg
rename to testing/marionette/harness/marionette_harness/www/html5/green.jpg
rename from testing/marionette/harness/marionette/www/html5/offline.html
rename to testing/marionette/harness/marionette_harness/www/html5/offline.html
rename from testing/marionette/harness/marionette/www/html5/red.jpg
rename to testing/marionette/harness/marionette_harness/www/html5/red.jpg
rename from testing/marionette/harness/marionette/www/html5/status.html
rename to testing/marionette/harness/marionette_harness/www/html5/status.html
rename from testing/marionette/harness/marionette/www/html5/test.appcache
rename to testing/marionette/harness/marionette_harness/www/html5/test.appcache
rename from testing/marionette/harness/marionette/www/html5/test_html_inputs.html
rename to testing/marionette/harness/marionette_harness/www/html5/test_html_inputs.html
rename from testing/marionette/harness/marionette/www/html5/yellow.jpg
rename to testing/marionette/harness/marionette_harness/www/html5/yellow.jpg
rename from testing/marionette/harness/marionette/www/html5Page.html
rename to testing/marionette/harness/marionette_harness/www/html5Page.html
rename from testing/marionette/harness/marionette/www/javascriptPage.html
rename to testing/marionette/harness/marionette_harness/www/javascriptPage.html
rename from testing/marionette/harness/marionette/www/macbeth.html
rename to testing/marionette/harness/marionette_harness/www/macbeth.html
rename from testing/marionette/harness/marionette/www/modal_dialogs.html
rename to testing/marionette/harness/marionette_harness/www/modal_dialogs.html
rename from testing/marionette/harness/marionette/www/nestedElements.html
rename to testing/marionette/harness/marionette_harness/www/nestedElements.html
rename from testing/marionette/harness/marionette/www/rectangles.html
rename to testing/marionette/harness/marionette_harness/www/rectangles.html
rename from testing/marionette/harness/marionette/www/resultPage.html
rename to testing/marionette/harness/marionette_harness/www/resultPage.html
rename from testing/marionette/harness/marionette/www/scroll.html
rename to testing/marionette/harness/marionette_harness/www/scroll.html
rename from testing/marionette/harness/marionette/www/scroll2.html
rename to testing/marionette/harness/marionette_harness/www/scroll2.html
rename from testing/marionette/harness/marionette/www/scroll3.html
rename to testing/marionette/harness/marionette_harness/www/scroll3.html
rename from testing/marionette/harness/marionette/www/scroll4.html
rename to testing/marionette/harness/marionette_harness/www/scroll4.html
rename from testing/marionette/harness/marionette/www/scroll5.html
rename to testing/marionette/harness/marionette_harness/www/scroll5.html
rename from testing/marionette/harness/marionette/www/shim.js
rename to testing/marionette/harness/marionette_harness/www/shim.js
rename from testing/marionette/harness/marionette/www/test.html
rename to testing/marionette/harness/marionette_harness/www/test.html
rename from testing/marionette/harness/marionette/www/testAction.html
rename to testing/marionette/harness/marionette_harness/www/testAction.html
rename from testing/marionette/harness/marionette/www/testPageSource.html
rename to testing/marionette/harness/marionette_harness/www/testPageSource.html
rename from testing/marionette/harness/marionette/www/testPageSource.xml
rename to testing/marionette/harness/marionette_harness/www/testPageSource.xml
rename from testing/marionette/harness/marionette/www/testPageSourceWithUnicodeChars.html
rename to testing/marionette/harness/marionette_harness/www/testPageSourceWithUnicodeChars.html
rename from testing/marionette/harness/marionette/www/testSize.html
rename to testing/marionette/harness/marionette_harness/www/testSize.html
rename from testing/marionette/harness/marionette/www/test_accessibility.html
rename to testing/marionette/harness/marionette_harness/www/test_accessibility.html
rename from testing/marionette/harness/marionette/www/test_carets_columns.html
rename to testing/marionette/harness/marionette_harness/www/test_carets_columns.html
rename from testing/marionette/harness/marionette/www/test_carets_cursor.html
rename to testing/marionette/harness/marionette_harness/www/test_carets_cursor.html
rename from testing/marionette/harness/marionette/www/test_carets_display_none.html
rename to testing/marionette/harness/marionette_harness/www/test_carets_display_none.html
rename from testing/marionette/harness/marionette/www/test_carets_iframe.html
rename to testing/marionette/harness/marionette_harness/www/test_carets_iframe.html
rename from testing/marionette/harness/marionette/www/test_carets_longtext.html
rename to testing/marionette/harness/marionette_harness/www/test_carets_longtext.html
rename from testing/marionette/harness/marionette/www/test_carets_multipleline.html
rename to testing/marionette/harness/marionette_harness/www/test_carets_multipleline.html
rename from testing/marionette/harness/marionette/www/test_carets_multiplerange.html
rename to testing/marionette/harness/marionette_harness/www/test_carets_multiplerange.html
rename from testing/marionette/harness/marionette/www/test_carets_selection.html
rename to testing/marionette/harness/marionette_harness/www/test_carets_selection.html
rename from testing/marionette/harness/marionette/www/test_clearing.html
rename to testing/marionette/harness/marionette_harness/www/test_clearing.html
rename from testing/marionette/harness/marionette/www/test_dynamic.html
rename to testing/marionette/harness/marionette_harness/www/test_dynamic.html
rename from testing/marionette/harness/marionette/www/test_iframe.html
rename to testing/marionette/harness/marionette_harness/www/test_iframe.html
rename from testing/marionette/harness/marionette/www/test_inner_iframe.html
rename to testing/marionette/harness/marionette_harness/www/test_inner_iframe.html
rename from testing/marionette/harness/marionette/www/test_nested_iframe.html
rename to testing/marionette/harness/marionette_harness/www/test_nested_iframe.html
rename from testing/marionette/harness/marionette/www/test_oop_1.html
rename to testing/marionette/harness/marionette_harness/www/test_oop_1.html
rename from testing/marionette/harness/marionette/www/test_oop_2.html
rename to testing/marionette/harness/marionette_harness/www/test_oop_2.html
rename from testing/marionette/harness/marionette/www/test_shadow_dom.html
rename to testing/marionette/harness/marionette_harness/www/test_shadow_dom.html
rename from testing/marionette/harness/marionette/www/test_windows.html
rename to testing/marionette/harness/marionette_harness/www/test_windows.html
rename from testing/marionette/harness/marionette/www/windowHandles.html
rename to testing/marionette/harness/marionette_harness/www/windowHandles.html
rename from testing/marionette/harness/marionette/www/xhtmlTest.html
rename to testing/marionette/harness/marionette_harness/www/xhtmlTest.html
--- a/testing/marionette/harness/setup.py
+++ b/testing/marionette/harness/setup.py
@@ -1,53 +1,59 @@
import os
import re
-from setuptools import setup, find_packages
+from setuptools import find_packages, setup
THIS_DIR = os.path.dirname(os.path.realpath(__name__))
def read(*parts):
with open(os.path.join(THIS_DIR, *parts)) as f:
return f.read()
def get_version():
return re.findall("__version__ = '([\d\.]+)'",
- read('marionette', '__init__.py'), re.M)[0]
+ read('marionette_harness', '__init__.py'), re.M)[0]
-setup(name='marionette_client',
+setup(name='marionette-harness',
version=get_version(),
- description="Marionette test automation client",
+ description="Marionette test automation harness",
long_description=open('README.rst').read(),
# Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
classifiers=[
- 'Development Status :: 7 - Inactive',
+ 'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)',
'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX',
'Topic :: Software Development :: Quality Assurance',
'Topic :: Software Development :: Testing',
'Topic :: Utilities',
'Programming Language :: Python',
'Programming Language :: Python :: 2.7',
],
keywords='mozilla',
author='Auto-tools',
author_email='tools-marionette@lists.mozilla.org',
url='https://wiki.mozilla.org/Auto-tools/Projects/Marionette',
license='Mozilla Public License 2.0 (MPL 2.0)',
- packages=['marionette_client'],
- package_data={'marionette': ['touch/*.js']},
+ packages=find_packages(),
+ package_data={
+ 'marionette_harness': [
+ 'runner/test.cert',
+ 'runner/test.key'
+ ],
+ },
+ # Needed to include package data as specified in MANIFEST.in
include_package_data=True,
+ install_requires=read('requirements.txt').splitlines(),
zip_safe=False,
entry_points="""
# -*- Entry points: -*-
[console_scripts]
- marionette = marionette.runtests:cli
+ marionette = marionette_harness.runtests:cli
""",
- install_requires=read('requirements.txt').splitlines(),
)
--- a/testing/marionette/jar.mn
+++ b/testing/marionette/jar.mn
@@ -27,14 +27,14 @@ marionette.jar:
content/atom.js (atom.js)
content/evaluate.js (evaluate.js)
content/logging.js (logging.js)
content/navigate.js (navigate.js)
content/l10n.js (l10n.js)
content/assert.js (assert.js)
content/addon.js (addon.js)
#ifdef ENABLE_TESTS
- content/test.xul (harness/marionette/chrome/test.xul)
- content/test2.xul (harness/marionette/chrome/test2.xul)
- content/test_dialog.xul (harness/marionette/chrome/test_dialog.xul)
- content/test_nested_iframe.xul (harness/marionette/chrome/test_nested_iframe.xul)
- content/test_anonymous_content.xul (harness/marionette/chrome/test_anonymous_content.xul)
+ content/test.xul (chrome/test.xul)
+ content/test2.xul (chrome/test2.xul)
+ content/test_dialog.xul (chrome/test_dialog.xul)
+ content/test_nested_iframe.xul (chrome/test_nested_iframe.xul)
+ content/test_anonymous_content.xul (chrome/test_anonymous_content.xul)
#endif
--- a/testing/marionette/mach_commands.py
+++ b/testing/marionette/mach_commands.py
@@ -37,17 +37,17 @@ def run_marionette(tests, binary=None, t
MarionetteTestRunner,
MarionetteHarness
)
parser = setup_marionette_argument_parser()
if not tests:
tests = [os.path.join(topsrcdir,
- 'testing/marionette/harness/marionette/tests/unit-tests.ini')]
+ 'testing/marionette/harness/marionette_harness/tests/unit-tests.ini')]
args = argparse.Namespace(tests=tests)
args.binary = binary
for k, v in kwargs.iteritems():
setattr(args, k, v)
--- a/testing/marionette/mach_test_package_commands.py
+++ b/testing/marionette/mach_test_package_commands.py
@@ -25,17 +25,17 @@ def run_marionette(context, **kwargs):
args = argparse.Namespace(**kwargs)
args.binary = args.binary or context.firefox_bin
args.e10s = context.mozharness_config.get('e10s', args.e10s)
test_root = os.path.join(context.package_root, 'marionette', 'tests')
if not args.tests:
args.tests = [os.path.join(test_root, 'testing', 'marionette', 'harness',
- 'marionette', 'tests', 'unit-tests.ini')]
+ 'marionette_harness', 'tests', 'unit-tests.ini')]
normalize = partial(context.normalize_test_path, test_root)
args.tests = map(normalize, args.tests)
commandline.add_logging_group(parser)
parser.verify_usage(args)
args.logger = commandline.setup_logging("Marionette Unit Tests",
--- a/testing/marionette/moz.build
+++ b/testing/marionette/moz.build
@@ -1,13 +1,13 @@
# 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/.
DIRS += ["components"]
JAR_MANIFESTS += ["jar.mn"]
-MARIONETTE_UNIT_MANIFESTS += ["harness/marionette/tests/unit/unit-tests.ini"]
-MARIONETTE_WEBAPI_MANIFESTS += ["harness/marionette/tests/webapi-tests.ini"]
+MARIONETTE_UNIT_MANIFESTS += ["harness/marionette_harness/tests/unit/unit-tests.ini"]
+MARIONETTE_WEBAPI_MANIFESTS += ["harness/marionette_harness/tests/webapi-tests.ini"]
XPCSHELL_TESTS_MANIFESTS += ["unit.ini"]
with Files("**"):
BUG_COMPONENT = ("Testing", "Marionette")
--- a/testing/mochitest/runtests.py
+++ b/testing/mochitest/runtests.py
@@ -44,18 +44,18 @@ from manifestparser.filters import (
chunk_by_runtime,
chunk_by_slice,
pathprefix,
subsuite,
tags,
)
try:
- from marionette import Marionette
from marionette_driver.addons import Addons
+ from marionette_harness import Marionette
except ImportError, e:
# Defer ImportError until attempt to use Marionette
def reraise(*args, **kwargs):
raise(e)
Marionette = reraise
from leaks import ShutdownLeaks, LSANLeaks
from mochitest_options import (
--- a/testing/mozharness/configs/android/androidarm_4_3.py
+++ b/testing/mozharness/configs/android/androidarm_4_3.py
@@ -352,17 +352,17 @@ config = {
"--xre-path=%(xre_path)s",
"--dm_trans=adb",
"--localBinDir=../bin",
"--apk=%(installer_path)s",
".",
],
},
"marionette": {
- "run_filename": os.path.join("harness", "marionette", "runtests.py"),
+ "run_filename": os.path.join("harness", "marionette_harness", "runtests.py"),
"testsdir": "marionette",
"options": [
"--emulator",
"--app=fennec",
"--package=%(app)s",
"--address=%(address)s",
"%(test_manifest)s",
"--disable-e10s",
--- a/testing/mozharness/scripts/android_emulator_unittest.py
+++ b/testing/mozharness/scripts/android_emulator_unittest.py
@@ -150,20 +150,20 @@ class AndroidEmulatorTest(BlobUploadMixi
dirs['abs_modules_dir'] = os.path.join(
dirs['abs_test_install_dir'], 'modules')
dirs['abs_blob_upload_dir'] = os.path.join(
abs_dirs['abs_work_dir'], 'blobber_upload_dir')
dirs['abs_emulator_dir'] = abs_dirs['abs_work_dir']
dirs['abs_mochitest_dir'] = os.path.join(
dirs['abs_test_install_dir'], 'mochitest')
dirs['abs_marionette_dir'] = os.path.join(
- dirs['abs_test_install_dir'], 'marionette', 'harness', 'marionette')
+ dirs['abs_test_install_dir'], 'marionette', 'harness', 'marionette_harness')
dirs['abs_marionette_tests_dir'] = os.path.join(
dirs['abs_test_install_dir'], 'marionette', 'tests', 'testing',
- 'marionette', 'harness', 'marionette', 'tests')
+ 'marionette', 'harness', 'marionette_harness', 'tests')
dirs['abs_avds_dir'] = self.config.get("avds_dir", "/home/cltbld/.android")
for key in dirs.keys():
if key not in abs_dirs:
abs_dirs[key] = dirs[key]
self.abs_dirs = abs_dirs
return self.abs_dirs
--- a/testing/mozharness/scripts/marionette.py
+++ b/testing/mozharness/scripts/marionette.py
@@ -147,20 +147,20 @@ class MarionetteTest(TestingMixin, Mercu
def query_abs_dirs(self):
if self.abs_dirs:
return self.abs_dirs
abs_dirs = super(MarionetteTest, self).query_abs_dirs()
dirs = {}
dirs['abs_test_install_dir'] = os.path.join(
abs_dirs['abs_work_dir'], 'tests')
dirs['abs_marionette_dir'] = os.path.join(
- dirs['abs_test_install_dir'], 'marionette', 'harness', 'marionette')
+ dirs['abs_test_install_dir'], 'marionette', 'harness', 'marionette_harness')
dirs['abs_marionette_tests_dir'] = os.path.join(
dirs['abs_test_install_dir'], 'marionette', 'tests', 'testing',
- 'marionette', 'harness', 'marionette', 'tests')
+ 'marionette', 'harness', 'marionette_harness', 'tests')
dirs['abs_gecko_dir'] = os.path.join(
abs_dirs['abs_work_dir'], 'gecko')
dirs['abs_emulator_dir'] = os.path.join(
abs_dirs['abs_work_dir'], 'emulator')
dirs['abs_blob_upload_dir'] = os.path.join(abs_dirs['abs_work_dir'], 'blobber_upload_dir')
for key in dirs.keys():
--- a/testing/mozharness/scripts/marionette_harness_tests.py
+++ b/testing/mozharness/scripts/marionette_harness_tests.py
@@ -110,17 +110,17 @@ class MarionetteHarnessTests(VirtualenvM
return TBPL_EXCEPTION
def run_tests(self):
"""Run all the tests"""
dirs = self.query_abs_dirs()
test_relpath = self.config.get(
'test_path',
os.path.join('testing', 'marionette',
- 'harness', 'marionette', 'tests',
+ 'harness', 'marionette_harness', 'tests',
'harness_unit')
)
test_path = os.path.join(dirs['abs_src_dir'], test_relpath)
self.activate_virtualenv()
import pytest
command = ['-p', 'no:terminalreporter', # disable pytest logging
test_path]
logs = {}
--- a/toolkit/components/microformats/test/marionette/microformats_tester.py
+++ b/toolkit/components/microformats/test/marionette/microformats_tester.py
@@ -1,19 +1,20 @@
-from marionette import MarionetteTestCase
-from marionette_driver.errors import NoSuchElementException
import threading
import SimpleHTTPServer
import SocketServer
import BaseHTTPServer
import urllib
import urlparse
import os
import posixpath
+from marionette_driver.errors import NoSuchElementException
+from marionette_harness import MarionetteTestCase
+
DEBUG = True
# Example taken from mozilla-central/browser/components/loop/
# XXX Once we're on a branch with bug 993478 landed, we may want to get
# rid of this HTTP server and just use the built-in one from Marionette,
# since there will less code to maintain, and it will be faster. We'll
# need to consider whether this code wants to be shared with WebDriver tests