blob: 9e37d8f0d9f0c45f18739edeb49656da9c8d5dd4 [file] [log] [blame]
# Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
import generate_flag_labels as gen_labels
class _GenerateFlagLabelsTest(unittest.TestCase):
"""Unittests for the generate_flag_labels module.
"""
def testGetSwitchId(self):
# Arbitrarily, this test verifies the WebViewExtraHeadersSameOriginOnly
# feature since we know from field metrics this is logged correctly.
self.assertEqual(
-1988840552,
gen_labels.GetSwitchId('WebViewExtraHeadersSameOriginOnly:disabled'))
def testFormatName_baseFeature(self):
self.assertEqual('SomeFeature',
gen_labels.FormatName('FooFeatures.SOME_FEATURE', True))
self.assertEqual(
'SomeWebViewFeature',
gen_labels.FormatName('FooFeatures.SOME_WEBVIEW_FEATURE', True))
def testFormatName_commandLine(self):
self.assertEqual('some-switch',
gen_labels.FormatName('FooSwitches.SOME_SWITCH', False))
self.assertEqual(
'some-webview-switch',
gen_labels.FormatName('FooSwitches.SOME_WEBVIEW_SWITCH', False))
def testExtractFlagsFromJavaLines(self):
test_data = """
// Same line
Flag.commandLine(FooSwitches.SOME_SWITCH,
"Some description"),
// Different line
Flag.commandLine(
FooSwitches.SOME_OTHER_SWITCH,
"Some other description"),
// Same line
Flag.baseFeature(FooFeatures.SOME_FEATURE,
"Some description"),
// Different line
Flag.baseFeature(
FooFeatures.SOME_OTHER_FEATURE,
"Some other description"),
""".split('\n')
flags = gen_labels.ExtractFlagsFromJavaLines(test_data)
self.assertEqual(4, len(flags))
self.assertEqual('some-switch', flags[0].name)
self.assertFalse(flags[0].is_base_feature)
self.assertEqual('some-other-switch', flags[1].name)
self.assertFalse(flags[1].is_base_feature)
self.assertEqual('SomeFeature', flags[2].name)
self.assertTrue(flags[2].is_base_feature)
self.assertEqual('SomeOtherFeature', flags[3].name)
self.assertTrue(flags[3].is_base_feature)
if __name__ == '__main__':
unittest.main()