Commit 36a34290 authored by Rohit Rao's avatar Rohit Rao Committed by Commit Bot

Include "future_on" policies when writing appconfig.xml.

For now, all iOS policies are marked as future_on, so we should include
them in appconfig.xml to make testing policy support easier. Once policy
support is launched to stable, we can revisit and omit future_on
policies.

Bug: 1115986
Change-Id: I057789f4eb5c558610abcb431ba9ee2a883a45b9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2352510Reviewed-by: default avatarYann Dago <ydago@chromium.org>
Commit-Queue: Rohit Rao <rohitrao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#798666}
parent abd491f7
...@@ -19,6 +19,10 @@ class IOSAppConfigWriter(xml_formatted_writer.XMLFormattedWriter): ...@@ -19,6 +19,10 @@ class IOSAppConfigWriter(xml_formatted_writer.XMLFormattedWriter):
'''Simple writer that writes app_config.xml files. '''Simple writer that writes app_config.xml files.
''' '''
def IsFuturePolicySupported(self, policy):
# For now, include all future policies in appconfig.xml.
return True
def CreateDocument(self): def CreateDocument(self):
dom_impl = minidom.getDOMImplementation('') dom_impl = minidom.getDOMImplementation('')
return dom_impl.createDocument('http://www.w3.org/2001/XMLSchema-instance', return dom_impl.createDocument('http://www.w3.org/2001/XMLSchema-instance',
...@@ -41,7 +45,13 @@ class IOSAppConfigWriter(xml_formatted_writer.XMLFormattedWriter): ...@@ -41,7 +45,13 @@ class IOSAppConfigWriter(xml_formatted_writer.XMLFormattedWriter):
def WritePolicy(self, policy): def WritePolicy(self, policy):
element_type = self.policy_type_to_xml_tag[policy['type']] element_type = self.policy_type_to_xml_tag[policy['type']]
if element_type: if element_type:
self.AddElement(self._policies, element_type, {'keyName': policy['name']}) attributes = {'keyName': policy['name']}
# Add a "future=true" attribute for future policies.
if 'future_on' in policy:
for config in policy['future_on']:
if config['platform'] == 'ios':
attributes['future'] = 'true'
self.AddElement(self._policies, element_type, attributes)
def Init(self): def Init(self):
self._doc = self.CreateDocument() self._doc = self.CreateDocument()
......
...@@ -16,14 +16,20 @@ from writers import writer_unittest_common ...@@ -16,14 +16,20 @@ from writers import writer_unittest_common
class IOSAppConfigWriterUnitTests(writer_unittest_common.WriterUnittestCommon): class IOSAppConfigWriterUnitTests(writer_unittest_common.WriterUnittestCommon):
'''Unit tests for IOSAppConfigWriter.''' '''Unit tests for IOSAppConfigWriter.'''
def _GetTestPolicyTemplate(self, policy_name, policy_type): def _GetTestPolicyTemplate(self, policy_name, policy_type, future=False):
supported_or_future = ''
if future:
supported_or_future = ''''future_on':['ios']'''
else:
supported_or_future = ''''supported_on':['ios:80-']'''
return ''' return '''
{ {
'policy_definitions': [ 'policy_definitions': [
{ {
'name': '%s', 'name': '%s',
'type': '%s', 'type': '%s',
'supported_on':['ios:80-'], %s,
'caption': '', 'caption': '',
'desc': '', 'desc': '',
'items': [{ 'items': [{
...@@ -37,7 +43,7 @@ class IOSAppConfigWriterUnitTests(writer_unittest_common.WriterUnittestCommon): ...@@ -37,7 +43,7 @@ class IOSAppConfigWriterUnitTests(writer_unittest_common.WriterUnittestCommon):
'placeholders': [], 'placeholders': [],
'messages': {}, 'messages': {},
} }
''' % (policy_name, policy_type) ''' % (policy_name, policy_type, supported_or_future)
def _GetExpectedOutput(self, version, tag): def _GetExpectedOutput(self, version, tag):
if tag: if tag:
...@@ -135,6 +141,30 @@ class IOSAppConfigWriterUnitTests(writer_unittest_common.WriterUnittestCommon): ...@@ -135,6 +141,30 @@ class IOSAppConfigWriterUnitTests(writer_unittest_common.WriterUnittestCommon):
}, 'ios_app_config') }, 'ios_app_config')
self.assertEquals(output.strip(), expected.strip()) self.assertEquals(output.strip(), expected.strip())
def testFuturePolicy(self):
policy_json = self._GetTestPolicyTemplate('FuturePolicy',
'string',
future=True)
expected = self._GetExpectedOutput(
'83.0.4089.0', '<string future="true" keyName="FuturePolicy"/>')
output = self.GetOutput(policy_json, {
'_google_chrome': '1',
'version': '83.0.4089.0'
}, 'ios_app_config')
self.assertEquals(output.strip(), expected.strip())
def testNonFuturePolicy(self):
policy_json = self._GetTestPolicyTemplate('NonFuturePolicy',
'string',
future=False)
expected = self._GetExpectedOutput('83.0.4089.0',
'<string keyName="NonFuturePolicy"/>')
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__': if __name__ == '__main__':
unittest.main() unittest.main()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment