• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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