summaryrefslogtreecommitdiffstats
path: root/testing/marionette/harness/marionette_harness/tests/unit/test_log.py
blob: dd3cf82b47439fbb51a856f7e4ecf24117c4d3fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 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 MarionetteTestCase


class TestLog(MarionetteTestCase):
    def setUp(self):
        MarionetteTestCase.setUp(self)
        # clears log cache
        self.marionette.get_logs()

    def test_log(self):
        self.marionette.log("foo")
        logs = self.marionette.get_logs()
        self.assertEqual("INFO", logs[0][0])
        self.assertEqual("foo", logs[0][1])

    def test_log_level(self):
        self.marionette.log("foo", "ERROR")
        logs = self.marionette.get_logs()
        self.assertEqual("ERROR", logs[0][0])
        self.assertEqual("foo", logs[0][1])

    def test_clear(self):
        self.marionette.log("foo")
        self.assertEqual(1, len(self.marionette.get_logs()))
        self.assertEqual(0, len(self.marionette.get_logs()))

    def test_multiple_entries(self):
        self.marionette.log("foo")
        self.marionette.log("bar")
        self.assertEqual(2, len(self.marionette.get_logs()))

    def test_log_from_sync_script(self):
        self.marionette.execute_script("log('foo')")
        logs = self.marionette.get_logs()
        self.assertEqual("INFO", logs[0][0])
        self.assertEqual("foo", logs[0][1])

    def test_log_from_sync_script_level(self):
        self.marionette.execute_script("log('foo', 'ERROR')")
        logs = self.marionette.get_logs()
        self.assertEqual("ERROR", logs[0][0])
        self.assertEqual("foo", logs[0][1])

    def test_log_from_async_script(self):
        self.marionette.execute_async_script("log('foo'); arguments[0]();")
        logs = self.marionette.get_logs()
        self.assertEqual("INFO", logs[0][0])
        self.assertEqual("foo", logs[0][1])

    def test_log_from_async_script_variable_arguments(self):
        self.marionette.execute_async_script("log('foo', 'ERROR'); arguments[0]();")
        logs = self.marionette.get_logs()
        self.assertEqual("ERROR", logs[0][0])
        self.assertEqual("foo", logs[0][1])


class TestLogChrome(TestLog):
    def setUp(self):
        TestLog.setUp(self)
        self.marionette.set_context("chrome")