# 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 TestChromeElementCSS(MarionetteTestCase):
    def get_element_computed_style(self, element, property):
        return self.marionette.execute_script(
            """
            const [el, prop] = arguments;
            const elStyle = window.getComputedStyle(el);
            return elStyle[prop];""",
            script_args=(element, property),
            sandbox=None,
        )

    def test_we_can_get_css_value_on_chrome_element(self):
        with self.marionette.using_context("chrome"):
            identity_icon = self.marionette.find_element(By.ID, "identity-icon")
            favicon_image = identity_icon.value_of_css_property("list-style-image")
            self.assertIn("chrome://", favicon_image)
            identity_box = self.marionette.find_element(By.ID, "identity-box")
            expected_bg_colour = self.get_element_computed_style(
                identity_box, "backgroundColor"
            )
            actual_bg_colour = identity_box.value_of_css_property("background-color")
            self.assertEqual(expected_bg_colour, actual_bg_colour)
