diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-06-22 09:53:13 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-06-22 10:23:17 +0000 |
commit | c5dbcb143405a38088d78b4b760d64aaff5157ab (patch) | |
tree | b37edca540b35f898e212bebfa6ded0806988122 /chromium/components/policy/tools/template_writers/writers/ios_app_config_writer_unittest.py | |
parent | 774f54339e5db91f785733232d3950366db65d07 (diff) | |
download | qtwebengine-chromium-c5dbcb143405a38088d78b4b760d64aaff5157ab.tar.gz |
BASELINE: Update Chromium to 102.0.5005.137
Change-Id: I162cdc7f56760218868e000a4c8ea92573344036
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/policy/tools/template_writers/writers/ios_app_config_writer_unittest.py')
-rwxr-xr-x | chromium/components/policy/tools/template_writers/writers/ios_app_config_writer_unittest.py | 434 |
1 files changed, 434 insertions, 0 deletions
diff --git a/chromium/components/policy/tools/template_writers/writers/ios_app_config_writer_unittest.py b/chromium/components/policy/tools/template_writers/writers/ios_app_config_writer_unittest.py new file mode 100755 index 00000000000..8774f2e84a3 --- /dev/null +++ b/chromium/components/policy/tools/template_writers/writers/ios_app_config_writer_unittest.py @@ -0,0 +1,434 @@ +#!/usr/bin/env python3 +# 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 os +import sys +if __name__ == '__main__': + sys.path.append(os.path.join(os.path.dirname(__file__), '../../../..')) + +import json +import unittest + +from writers import writer_unittest_common + + +class IOSAppConfigWriterUnitTests(writer_unittest_common.WriterUnittestCommon): + '''Unit tests for IOSAppConfigWriter.''' + + def _GetTestPolicyTemplate(self, policy_definitions): + return ''' +{ + 'policy_definitions': %s, + 'policy_atomic_group_definitions': [], + 'placeholders': [], + 'messages': {}, +} +''' % (policy_definitions) + + def _GetExpectedOutput(self, version, policy_definition, policy_presentation): + if policy_definition: + definition = '<dict>\n %s\n </dict>' % policy_definition + else: + definition = '<dict/>' + if policy_presentation: + presentation = '<presentation defaultLocale="en-US">\n %s\n </presentation>' % policy_presentation + else: + presentation = '<presentation defaultLocale="en-US"/>' + + return '''<?xml version="1.0" ?> +<managedAppConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://storage.googleapis.com/appconfig-media/appconfigschema.xsd"> + <version>%s</version> + <bundleId>com.google.chrome.ios</bundleId> + %s + %s +</managedAppConfiguration>''' % (version, definition, presentation) + + def testStringPolicy(self): + policy_definition = json.dumps([{ + 'name': 'string policy', + 'type': 'string', + 'supported_on': ['ios:80-'], + 'caption': 'string caption', + 'desc': 'string description' + }]) + policy_json = self._GetTestPolicyTemplate(policy_definition) + expected_configuration = '''<string keyName="string policy"> + <constraint nullable="true"/> + </string>''' + expected_presentation = '''<field keyName="string policy" type="input"> + <label> + <language value="en-US">string caption</language> + </label> + <description> + <language value="en-US">string description</language> + </description> + </field>''' + expected = self._GetExpectedOutput('83', expected_configuration, + expected_presentation) + output = self.GetOutput(policy_json, { + '_google_chrome': '1', + 'version': '83.0.4089.0' + }, 'ios_app_config') + self.assertEquals(output.strip(), expected.strip()) + + def testIntPolicy(self): + policy_definition = json.dumps([{ + 'name': 'IntPolicy', + 'type': 'int', + 'supported_on': ['ios:80-'], + 'caption': 'int caption', + 'desc': 'int description' + }]) + policy_json = self._GetTestPolicyTemplate(policy_definition) + expected_configuration = '''<integer keyName="IntPolicy"> + <constraint nullable="true"/> + </integer>''' + expected_presentation = '''<field keyName="IntPolicy" type="input"> + <label> + <language value="en-US">int caption</language> + </label> + <description> + <language value="en-US">int description</language> + </description> + </field>''' + expected = self._GetExpectedOutput('83', expected_configuration, + expected_presentation) + output = self.GetOutput(policy_json, { + '_google_chrome': '1', + 'version': '83.0.4089.0' + }, 'ios_app_config') + self.assertEquals(output.strip(), expected.strip()) + + def testIntEnumPolicy(self): + policy_definition = json.dumps([{ + 'name': + 'IntEnumPolicy', + 'type': + 'int-enum', + 'supported_on': ['ios:80-'], + 'caption': + 'int-enum caption', + 'desc': + 'int-enum description', + 'schema': { + 'type': 'integer', + 'enum': [0, 1], + }, + 'items': [{ + 'name': 'item0', + 'value': 0, + 'caption': 'item 0', + }, { + 'name': 'item1', + 'value': 1, + 'caption': 'item 1', + }] + }]) + policy_json = self._GetTestPolicyTemplate(policy_definition) + expected_configuration = '''<integer keyName="IntEnumPolicy"> + <constraint nullable="true"> + <values> + <value>0</value> + <value>1</value> + </values> + </constraint> + </integer>''' + expected_presentation = '''<field keyName="IntEnumPolicy" type="select"> + <label> + <language value="en-US">int-enum caption</language> + </label> + <description> + <language value="en-US">int-enum description</language> + </description> + <options> + <option value="0"> + <language value="en-US">item 0</language> + </option> + <option value="1"> + <language value="en-US">item 1</language> + </option> + </options> + </field>''' + expected = self._GetExpectedOutput('83', expected_configuration, + expected_presentation) + output = self.GetOutput(policy_json, { + '_google_chrome': '1', + 'version': '83.0.4089.0' + }, 'ios_app_config') + self.assertEquals(output.strip(), expected.strip()) + + def testStringEnumPolicy(self): + policy_definition = json.dumps([{ + 'name': + 'StringEnumPolicy', + 'type': + 'string-enum', + 'supported_on': ['ios:80-'], + 'caption': + 'string-enum caption', + 'desc': + 'string-enum description', + 'schema': { + 'type': 'string', + 'enum': ['0', '1'], + }, + 'items': [{ + 'name': 'item0', + 'value': '0', + 'caption': 'item 0', + }, { + 'name': 'item1', + 'value': '1', + 'caption': 'item 1', + }] + }]) + policy_json = self._GetTestPolicyTemplate(policy_definition) + expected_configuration = '''<string keyName="StringEnumPolicy"> + <constraint nullable="true"> + <values> + <value>0</value> + <value>1</value> + </values> + </constraint> + </string>''' + expected_presentation = '''<field keyName="StringEnumPolicy" type="select"> + <label> + <language value="en-US">string-enum caption</language> + </label> + <description> + <language value="en-US">string-enum description</language> + </description> + <options> + <option value="0"> + <language value="en-US">item 0</language> + </option> + <option value="1"> + <language value="en-US">item 1</language> + </option> + </options> + </field>''' + expected = self._GetExpectedOutput('83', expected_configuration, + expected_presentation) + output = self.GetOutput(policy_json, { + '_google_chrome': '1', + 'version': '83.0.4089.0' + }, 'ios_app_config') + self.assertEquals(output.strip(), expected.strip()) + + def testStringEnumListPolicy(self): + policy_definition = json.dumps([{ + 'name': + 'StringEnumListPolicy', + 'type': + 'string-enum-list', + 'supported_on': ['ios:80-'], + 'caption': + 'string-enum-list caption', + 'desc': + 'string-enum-list description', + 'schema': { + 'type': 'string', + 'enum': ['0', '1'], + }, + 'items': [{ + 'name': 'item0', + 'value': '0', + 'caption': 'item 0', + }, { + 'name': 'item1', + 'value': '1', + 'caption': 'item 1', + }] + }]) + policy_json = self._GetTestPolicyTemplate(policy_definition) + expected_configuration = '''<stringArray keyName="StringEnumListPolicy"> + <constraint nullable="true"> + <values> + <value>0</value> + <value>1</value> + </values> + </constraint> + </stringArray>''' + expected_presentation = '''<field keyName="StringEnumListPolicy" type="multiselect"> + <label> + <language value="en-US">string-enum-list caption</language> + </label> + <description> + <language value="en-US">string-enum-list description</language> + </description> + <options> + <option value="0"> + <language value="en-US">item 0</language> + </option> + <option value="1"> + <language value="en-US">item 1</language> + </option> + </options> + </field>''' + expected = self._GetExpectedOutput('83', expected_configuration, + expected_presentation) + output = self.GetOutput(policy_json, { + '_google_chrome': '1', + 'version': '83.0.4089.0' + }, 'ios_app_config') + self.assertEquals(output.strip(), expected.strip()) + + def testBooleanPolicy(self): + policy_definition = json.dumps([{ + 'name': 'BooleanPolicy', + 'type': 'main', + 'supported_on': ['ios:80-'], + 'caption': 'boolean caption', + 'desc': 'boolean description' + }]) + policy_json = self._GetTestPolicyTemplate(policy_definition) + expected_configuration = '''<boolean keyName="BooleanPolicy"> + <constraint nullable="true"/> + </boolean>''' + expected_presentation = '''<field keyName="BooleanPolicy" type="checkbox"> + <label> + <language value="en-US">boolean caption</language> + </label> + <description> + <language value="en-US">boolean description</language> + </description> + </field>''' + expected = self._GetExpectedOutput('83', expected_configuration, + expected_presentation) + output = self.GetOutput(policy_json, { + '_google_chrome': '1', + 'version': '83.0.4089.0' + }, 'ios_app_config') + self.assertEquals(output.strip(), expected.strip()) + + def testListPolicy(self): + policy_definition = json.dumps([{ + 'name': 'ListPolicy', + 'type': 'list', + 'supported_on': ['ios:80-'], + 'caption': 'list caption', + 'desc': 'list description' + }]) + policy_json = self._GetTestPolicyTemplate(policy_definition) + expected_configuration = '''<stringArray keyName="ListPolicy"> + <constraint nullable="true"/> + </stringArray>''' + expected_presentation = '''<field keyName="ListPolicy" type="list"> + <label> + <language value="en-US">list caption</language> + </label> + <description> + <language value="en-US">list description</language> + </description> + </field>''' + expected = self._GetExpectedOutput('83', expected_configuration, + expected_presentation) + output = self.GetOutput(policy_json, { + '_google_chrome': '1', + 'version': '83.0.4089.0' + }, 'ios_app_config') + self.assertEquals(output.strip(), expected.strip()) + + def testDictPolicy(self): + policy_definition = json.dumps([{ + 'name': 'DictPolicy', + 'type': 'dict', + 'supported_on': ['ios:80-'], + 'caption': 'dict caption', + 'desc': 'dict description' + }]) + policy_json = self._GetTestPolicyTemplate(policy_definition) + # Dict policies are not supported by the appconfig.xml format, therefore + # they are treated as JSON strings. + expected_configuration = '''<string keyName="DictPolicy"> + <constraint nullable="true"/> + </string>''' + expected_presentation = '''<field keyName="DictPolicy" type="input"> + <label> + <language value="en-US">dict caption</language> + </label> + <description> + <language value="en-US">dict description</language> + </description> + </field>''' + expected = self._GetExpectedOutput('83', expected_configuration, + expected_presentation) + output = self.GetOutput(policy_json, { + '_google_chrome': '1', + 'version': '83.0.4089.0' + }, 'ios_app_config') + self.assertEquals(output.strip(), expected.strip()) + + def testFuturePolicy(self): + policy_definition = json.dumps([{ + 'name': 'FuturePolicy', + 'type': 'string', + 'future_on': ['ios'], + 'caption': 'string caption', + 'desc': 'string description' + }]) + policy_json = self._GetTestPolicyTemplate(policy_definition) + expected_configuration = '''<!--FUTURE POLICY--> + <string keyName="FuturePolicy"> + <constraint nullable="true"/> + </string>''' + expected_presentation = '''<field keyName="FuturePolicy" type="input"> + <label> + <language value="en-US">string caption</language> + </label> + <description> + <language value="en-US">string description</language> + </description> + </field>''' + expected = self._GetExpectedOutput('83', expected_configuration, + expected_presentation) + output = self.GetOutput(policy_json, { + '_google_chrome': '1', + 'version': '83.0.4089.0' + }, 'ios_app_config') + self.assertEquals(output.strip(), expected.strip()) + + def testPolicyWithGroup(self): + policy_definition = json.dumps([{ + 'name': 'PolicyInGroup', + 'type': 'string', + 'supported_on': ['ios:80-'], + 'caption': 'string caption', + 'desc': 'string description' + }, { + 'name': 'DummyGroup', + 'type': 'group', + 'caption': 'Dummy Group', + 'desc': 'Dummy group for testing', + 'policies': ['PolicyInGroup'] + }]) + policy_json = self._GetTestPolicyTemplate(policy_definition) + expected_configuration = '''<string keyName="PolicyInGroup"> + <constraint nullable="true"/> + </string>''' + expected_presentation = '''<fieldGroup> + <name> + <language value="en-US">Dummy Group</language> + </name> + <field keyName="PolicyInGroup" type="input"> + <label> + <language value="en-US">string caption</language> + </label> + <description> + <language value="en-US">string description</language> + </description> + </field> + </fieldGroup>''' + expected = self._GetExpectedOutput('83', expected_configuration, + expected_presentation) + output = self.GetOutput(policy_json, { + '_google_chrome': '1', + 'version': '83.0.4089.0' + }, 'ios_app_config') + self.assertEquals(output.strip(), expected.strip()) + + +if __name__ == '__main__': + unittest.main() |