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):
'''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):
dom_impl = minidom.getDOMImplementation('')
return dom_impl.createDocument('http://www.w3.org/2001/XMLSchema-instance',
......@@ -41,7 +45,13 @@ class IOSAppConfigWriter(xml_formatted_writer.XMLFormattedWriter):
def WritePolicy(self, policy):
element_type = self.policy_type_to_xml_tag[policy['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):
self._doc = self.CreateDocument()
......
......@@ -16,14 +16,20 @@ from writers import writer_unittest_common
class IOSAppConfigWriterUnitTests(writer_unittest_common.WriterUnittestCommon):
'''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 '''
{
'policy_definitions': [
{
'name': '%s',
'type': '%s',
'supported_on':['ios:80-'],
%s,
'caption': '',
'desc': '',
'items': [{
......@@ -37,7 +43,7 @@ class IOSAppConfigWriterUnitTests(writer_unittest_common.WriterUnittestCommon):
'placeholders': [],
'messages': {},
}
''' % (policy_name, policy_type)
''' % (policy_name, policy_type, supported_or_future)
def _GetExpectedOutput(self, version, tag):
if tag:
......@@ -135,6 +141,30 @@ class IOSAppConfigWriterUnitTests(writer_unittest_common.WriterUnittestCommon):
}, 'ios_app_config')
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__':
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