chromium/chrome/test/webapps/models_unittest.py

#!/usr/bin/env python3
# Copyright 2021 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import unittest

from models import TestPlatform


class ModelsTest(unittest.TestCase):
    def test_platforms_from_chars(self):
        self.assertCountEqual({TestPlatform.LINUX},
                              TestPlatform.get_platforms_from_chars("L"))
        self.assertCountEqual({TestPlatform.MAC},
                              TestPlatform.get_platforms_from_chars("M"))
        self.assertCountEqual({TestPlatform.WINDOWS},
                              TestPlatform.get_platforms_from_chars("W"))
        self.assertCountEqual({TestPlatform.CHROME_OS},
                              TestPlatform.get_platforms_from_chars("C"))
        self.assertCountEqual({TestPlatform.WINDOWS, TestPlatform.CHROME_OS},
                              TestPlatform.get_platforms_from_chars("WC"))

    def test_platforms_from_browsertest_filename(self):
        self.assertCountEqual(
            {TestPlatform.LINUX},
            TestPlatform.get_platforms_from_browsertest_filename(
                "browsertest_name_linux.cc"))
        self.assertCountEqual(
            {TestPlatform.MAC},
            TestPlatform.get_platforms_from_browsertest_filename(
                "browsertest_name_mac.cc"))
        self.assertCountEqual(
            {TestPlatform.WINDOWS},
            TestPlatform.get_platforms_from_browsertest_filename(
                "browsertest_name_win.cc"))
        self.assertCountEqual(
            {TestPlatform.CHROME_OS},
            TestPlatform.get_platforms_from_browsertest_filename(
                "browsertest_name_cros.cc"))
        self.assertCountEqual(
            {TestPlatform.WINDOWS, TestPlatform.CHROME_OS},
            TestPlatform.get_platforms_from_browsertest_filename(
                "browsertest_name_win_cros.cc"))
        # No suffixes should apply to all platforms
        self.assertCountEqual(
            TestPlatform,
            TestPlatform.get_platforms_from_browsertest_filename(
                "browsertest_name.cc"))

    def test_platforms_to_fixture_suffix(self):
        self.assertEqual(
            "MacWinLinux",
            TestPlatform.get_test_fixture_suffix(
                {TestPlatform.MAC, TestPlatform.WINDOWS, TestPlatform.LINUX}))
        self.assertEqual(
            "Cros",
            TestPlatform.get_test_fixture_suffix({TestPlatform.CHROME_OS}))
        self.assertEqual(
            "",
            TestPlatform.get_test_fixture_suffix({
                TestPlatform.MAC, TestPlatform.WINDOWS, TestPlatform.LINUX,
                TestPlatform.CHROME_OS
            }))
        self.assertEqual("", TestPlatform.get_test_fixture_suffix({}))


if __name__ == '__main__':
    unittest.main()