1# Copyright 2024 The Chromium Authors 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5from __future__ import annotations 6 7import unittest 8 9from crossbench.browsers.attributes import BrowserAttributes 10from tests import test_helper 11 12 13class BrowserAttributesTestCase(unittest.TestCase): 14 15 def test_is_chromium_based(self): 16 custom_chrome = ( 17 BrowserAttributes.CHROMIUM | BrowserAttributes.CHROMIUM_BASED) 18 self.assertTrue(custom_chrome) 19 self.assertFalse(custom_chrome & BrowserAttributes.SAFARI) 20 self.assertTrue(custom_chrome & BrowserAttributes.CHROMIUM_BASED) 21 self.assertIs(custom_chrome & BrowserAttributes.CHROMIUM_BASED, 22 BrowserAttributes.CHROMIUM_BASED) 23 self.assertTrue(custom_chrome.is_chromium_based) 24 25 def test_is_chrome(self): 26 for value in BrowserAttributes: 27 self.assertEqual(value.is_chrome, value is BrowserAttributes.CHROME) 28 custom = BrowserAttributes.CHROME | BrowserAttributes.WEBDRIVER 29 self.assertTrue(custom.is_chrome) 30 self.assertTrue(BrowserAttributes.CHROME.is_chrome) 31 self.assertFalse(BrowserAttributes.SAFARI.is_chrome) 32 33 def test_is_safari(self): 34 for value in BrowserAttributes: 35 self.assertEqual(value.is_safari, value is BrowserAttributes.SAFARI) 36 custom = BrowserAttributes.SAFARI | BrowserAttributes.WEBDRIVER 37 self.assertTrue(custom.is_safari) 38 self.assertTrue(BrowserAttributes.SAFARI.is_safari) 39 self.assertFalse(BrowserAttributes.CHROME.is_safari) 40 41 def test_is_edge(self): 42 for value in BrowserAttributes: 43 self.assertEqual(value.is_edge, value is BrowserAttributes.EDGE) 44 custom = BrowserAttributes.EDGE | BrowserAttributes.WEBDRIVER 45 self.assertTrue(custom.is_edge) 46 self.assertTrue(BrowserAttributes.EDGE.is_edge) 47 self.assertFalse(BrowserAttributes.CHROME.is_edge) 48 49 def test_is_firefox(self): 50 for value in BrowserAttributes: 51 self.assertEqual(value.is_firefox, value is BrowserAttributes.FIREFOX) 52 custom = BrowserAttributes.FIREFOX | BrowserAttributes.WEBDRIVER 53 self.assertTrue(custom.is_firefox) 54 self.assertTrue(BrowserAttributes.FIREFOX.is_firefox) 55 self.assertFalse(BrowserAttributes.CHROME.is_firefox) 56 57 58if __name__ == "__main__": 59 test_helper.run_pytest(__file__) 60