'windows': {
'dependencies': ['api:tabs'],
'contexts': ['blessed_extension']
- }
+ },
+ 'testDeep1': {
+ 'dependencies': ['api:testDeep2']
+ },
+ 'testDeep2': {
+ 'dependencies': ['api:testDeep3']
+ },
+ 'testDeep3': {
+ 'dependencies': ['manifest:testDeep4']
+ },
+ 'testDeep1.child': {},
+ 'multipleAmbiguous': [{
+ 'value': 1,
+ 'extension_types': ['platform_app']
+ }, {
+ 'value': 2,
+ 'dependencies': ['manifest:multipleAmbiguous']
+ }],
+ 'mergingDependencies1': {
+ 'dependencies': [
+ 'permission:mergingDependencies1',
+ 'permission:mergingDependencies2'
+ ]
+ },
+ 'mergingDependencies2': {
+ 'dependencies': [
+ 'permission:mergingDependencies1',
+ 'permission:mergingDependencies3'
+ ]
+ },
+ 'mergingDependencies3': {
+ 'dependencies': [
+ 'permission:mergingDependencies2',
+ 'permission:mergingDependencies3'
+ ]
+ },
+ 'implicitNoParent.child': {
+ 'extension_types': ['extension'],
+ 'channel': 'stable'
+ },
+ 'parent': {
+ 'extension_types': ['extension'],
+ 'channel': 'beta'
+ },
+ 'parent.explicitNoParent': {
+ 'extension_types': ['extension'],
+ 'noparent': True
+ },
+ 'parent.inheritAndOverride': {
+ 'channel': 'dev'
+ },
+ 'overridePlatform': {
+ 'dependencies': ['permission:tabs'],
+ 'extension_types': 'platform_app'
+ },
+ 'mergeMostStableChannel': [{
+ 'channel': 'dev',
+ 'extension_types': ['extension'],
+ 'value1': 1
+ }, {
+ 'channel': 'stable',
+ 'extension_types': ['extension'],
+ 'value2': 2
+ }, {
+ 'channel': 'beta',
+ 'extension_types': ['extension'],
+ 'value3': 3
+ }, {
+ 'channel': 'stable',
+ 'extension_types': ['extension'],
+ 'value4': 4
+ }, {
+ 'extension_types': ['extension'],
+ 'value5': 5
+ }]
}),
'_manifest_features.json': json.dumps({
'app.content_security_policy': {
'sockets': {
'channel': 'dev',
'extension_types': ['platform_app']
+ },
+ 'testDeep4': {
+ 'extension_types': ['extension']
+ },
+ 'multipleAmbiguous': {
+ 'extension_types': ['extension']
}
}),
'_permission_features.json': json.dumps({
]
},
'syncFileSystem': {
- 'channel': 'beta',
+ 'channel': 'stable',
'extension_types': ['platform_app']
},
'tabs': {
'channel': 'stable',
'extension_types': ['extension']
- }
+ },
+ 'mergingDependencies1': {
+ 'channel': 'stable',
+ 'extension_types': 'all'
+ },
+ 'mergingDependencies2': {
+ 'channel': 'beta',
+ 'extension_types': ['platform_app']
+ },
+ 'mergingDependencies3': {
+ 'extension_types': ['extension']
+ },
+ 'defaults': {}
})
},
'docs': {
},
'tabs': {
'partial': 'permissions/tabs.html'
- },
+ }
})
}
}
'background': {
'name': 'background',
'channel': 'stable',
- 'platforms': ['extensions'],
- 'documentation': 'background_pages.html'
+ 'documentation': 'background_pages.html',
+ 'extension_types': ['extension', 'legacy_packaged_app', 'hosted_app']
},
'inheritsPlatformAndChannelFromDependency': {
- 'channel': 'dev',
'name': 'inheritsPlatformAndChannelFromDependency',
- 'platforms': ['extensions']
+ 'channel': 'dev',
+ 'extension_types': ['extension']
},
'manifest_version': {
'name': 'manifest_version',
'channel': 'stable',
- 'platforms': ['apps', 'extensions'],
'documentation': 'manifest/manifest_version.html',
+ 'extension_types': 'all',
'level': 'required',
- 'example': 2
+ 'example': 2,
},
'omnibox': {
'name': 'omnibox',
'channel': 'stable',
- 'platforms': ['extensions']
+ 'extension_types': ['extension'],
+ 'platforms': ['win'],
},
'page_action': {
'name': 'page_action',
'channel': 'stable',
- 'platforms': ['extensions'],
'documentation': 'pageAction.html',
+ 'extension_types': ['extension'],
'level': 'only_one',
- 'example': {}
+ 'example': {},
+ },
+ 'testDeep4': {
+ 'name': 'testDeep4',
+ 'channel': 'stable',
+ 'extension_types': ['extension']
+ },
+ 'multipleAmbiguous': {
+ 'name': 'multipleAmbiguous',
+ 'channel': 'stable',
+ 'extension_types': ['extension']
+ }
+ }
+ self.assertEqual(
+ expected_features,
+ self._server.platform_bundle.GetFeaturesBundle(
+ 'extensions').GetManifestFeatures().Get())
+ expected_features = {
+ 'manifest_version': {
+ 'name': 'manifest_version',
+ 'channel': 'stable',
+ 'documentation': 'manifest/manifest_version.html',
+ 'extension_types': 'all',
+ 'level': 'required',
+ 'example': 2,
},
'sockets': {
'name': 'sockets',
'channel': 'dev',
- 'platforms': ['apps']
+ 'extension_types': ['platform_app']
}
}
self.assertEqual(
expected_features,
- self._server.features_bundle.GetManifestFeatures().Get())
+ self._server.platform_bundle.GetFeaturesBundle(
+ 'apps').GetManifestFeatures().Get())
def testPermissionFeatures(self):
expected_features = {
- 'bluetooth': {
- 'name': 'bluetooth',
- 'channel': 'dev',
- 'platforms': ['apps'],
- },
- 'fakeUnsupportedFeature': {
- 'name': 'fakeUnsupportedFeature',
- 'platforms': []
+ 'power': {
+ 'name': 'power',
+ 'channel': 'stable',
+ 'extension_types': ['extension', 'legacy_packaged_app', 'platform_app']
},
'overridesPlatformAndChannelFromDependency': {
'name': 'overridesPlatformAndChannelFromDependency',
'channel': 'stable',
- 'platforms': ['extensions']
+ 'extension_types': ['extension']
+ },
+ 'tabs': {
+ 'name': 'tabs',
+ 'channel': 'stable',
+ 'extension_types': ['extension'],
+ 'partial': 'permissions/tabs.html'
+ },
+ 'mergingDependencies1': {
+ 'name': 'mergingDependencies1',
+ 'channel': 'stable',
+ 'extension_types': 'all'
+ },
+ 'mergingDependencies3': {
+ 'name': 'mergingDependencies3',
+ 'channel': 'stable',
+ 'extension_types': ['extension']
+ },
+ 'defaults': {
+ 'name': 'defaults',
+ 'channel': 'stable'
+ }
+ }
+ self.assertEqual(
+ expected_features,
+ self._server.platform_bundle.GetFeaturesBundle(
+ 'extensions').GetPermissionFeatures().Get())
+ expected_features = {
+ 'bluetooth': {
+ 'name': 'bluetooth',
+ 'channel': 'dev',
+ 'extension_types': ['platform_app']
},
'power': {
'name': 'power',
'channel': 'stable',
- 'platforms': ['apps', 'extensions'],
+ 'extension_types': ['extension', 'legacy_packaged_app', 'platform_app']
},
'syncFileSystem': {
'name': 'syncFileSystem',
- 'channel': 'beta',
- 'platforms': ['apps'],
+ 'channel': 'stable',
+ 'extension_types': ['platform_app'],
'partial': 'permissions/sync_file_system.html'
},
- 'tabs': {
- 'name': 'tabs',
+ 'mergingDependencies1': {
+ 'name': 'mergingDependencies1',
'channel': 'stable',
- 'platforms': ['extensions'],
- 'partial': 'permissions/tabs.html'
+ 'extension_types': 'all'
+ },
+ 'mergingDependencies2': {
+ 'name': 'mergingDependencies2',
+ 'channel': 'beta',
+ 'extension_types': ['platform_app']
+ },
+ 'defaults': {
+ 'name': 'defaults',
+ 'channel': 'stable'
}
}
self.assertEqual(
expected_features,
- self._server.features_bundle.GetPermissionFeatures().Get())
+ self._server.platform_bundle.GetFeaturesBundle(
+ 'apps').GetPermissionFeatures().Get())
def testAPIFeatures(self):
expected_features = {
- 'audioCapture': {
- 'name': 'audioCapture',
- 'channel': 'stable',
- 'platforms': ['apps']
- },
'background': {
'name': 'background',
'channel': 'stable',
- 'platforms': ['extensions']
+ 'extension_types': ['extension']
+ },
+ 'omnibox': {
+ 'name': 'omnibox',
+ 'contexts': ['blessed_extension'],
+ 'dependencies': ['manifest:omnibox'],
+ 'channel': 'stable'
+ },
+ 'tabs': {
+ 'name': 'tabs',
+ 'channel': 'stable',
+ 'contexts': ['blessed_extension'],
+ 'extension_types': ['extension', 'legacy_packaged_app'],
+ },
+ 'test': {
+ 'name': 'test',
+ 'channel': 'stable',
+ 'contexts': [
+ 'blessed_extension', 'unblessed_extension', 'content_script'],
+ 'extension_types': 'all',
+ },
+ 'windows': {
+ 'name': 'windows',
+ 'contexts': ['blessed_extension'],
+ 'dependencies': ['api:tabs'],
+ 'channel': 'stable'
+ },
+ 'testDeep1': {
+ 'name': 'testDeep1',
+ 'dependencies': ['api:testDeep2'],
+ 'channel': 'stable'
+ },
+ 'testDeep2': {
+ 'name': 'testDeep2',
+ 'dependencies': ['api:testDeep3'],
+ 'channel': 'stable'
+ },
+ 'testDeep3': {
+ 'name': 'testDeep3',
+ 'dependencies': ['manifest:testDeep4'],
+ 'channel': 'stable'
+ },
+ 'testDeep1.child': {
+ 'name': 'testDeep1.child',
+ 'channel': 'stable',
+ 'dependencies': ['api:testDeep2']
+ },
+ 'multipleAmbiguous': {
+ 'name': 'multipleAmbiguous',
+ 'value': 2,
+ 'dependencies': ['manifest:multipleAmbiguous'],
+ 'channel': 'stable'
+ },
+ 'mergingDependencies2': {
+ 'name': 'mergingDependencies2',
+ 'dependencies': [
+ 'permission:mergingDependencies1',
+ 'permission:mergingDependencies3'
+ ],
+ 'channel': 'stable'
},
'inheritsFromDifferentDependencyName': {
'channel': 'dev',
'name': 'inheritsFromDifferentDependencyName',
'dependencies': ['manifest:inheritsPlatformAndChannelFromDependency'],
- 'platforms': ['extensions']
},
'inheritsPlatformAndChannelFromDependency': {
'channel': 'dev',
'name': 'inheritsPlatformAndChannelFromDependency',
'dependencies': ['manifest:inheritsPlatformAndChannelFromDependency'],
- 'platforms': ['extensions']
},
- 'omnibox': {
+ 'implicitNoParent.child': {
+ 'name': 'implicitNoParent.child',
'channel': 'stable',
- 'name': 'omnibox',
- 'platforms': ['extensions'],
- 'contexts': ['blessed_extension'],
- 'dependencies': ['manifest:omnibox']
+ 'extension_types': ['extension'],
},
- 'overridesPlatformAndChannelFromDependency': {
+ 'parent': {
+ 'name': 'parent',
'channel': 'beta',
- 'name': 'overridesPlatformAndChannelFromDependency',
- 'dependencies': [
- 'permission:overridesPlatformAndChannelFromDependency'
- ],
- 'platforms': ['apps']
+ 'extension_types': ['extension'],
},
- 'syncFileSystem': {
- 'channel': 'beta',
- 'name': 'syncFileSystem',
- 'platforms': ['apps'],
- 'contexts': ['blessed_extension'],
- 'dependencies': ['permission:syncFileSystem']
+ 'parent.explicitNoParent': {
+ 'name': 'parent.explicitNoParent',
+ 'channel': 'stable',
+ 'extension_types': ['extension'],
+ 'noparent': True
},
- 'tabs': {
+ 'parent.inheritAndOverride': {
+ 'name': 'parent.inheritAndOverride',
+ 'channel': 'dev',
+ 'extension_types': ['extension']
+ },
+ 'mergeMostStableChannel': {
+ 'name': 'mergeMostStableChannel',
'channel': 'stable',
- 'name': 'tabs',
+ 'extension_types': ['extension'],
+ 'value2': 2,
+ 'value4': 4,
+ 'value5': 5
+ }
+ }
+ self.assertEqual(
+ expected_features,
+ self._server.platform_bundle.GetFeaturesBundle(
+ 'extensions').GetAPIFeatures().Get())
+ expected_features = {
+ 'audioCapture': {
+ 'name': 'audioCapture',
'channel': 'stable',
- 'platforms': ['extensions'],
+ 'extension_types': ['platform_app']
+ },
+ 'syncFileSystem': {
+ 'name': 'syncFileSystem',
'contexts': ['blessed_extension'],
+ 'dependencies': ['permission:syncFileSystem'],
+ 'channel': 'stable'
},
'test': {
- 'channel': 'stable',
'name': 'test',
'channel': 'stable',
- 'platforms': ['apps', 'extensions'],
'contexts': [
'blessed_extension', 'unblessed_extension', 'content_script'],
+ 'extension_types': 'all',
},
- 'windows': {
+ 'multipleAmbiguous': {
+ 'name': 'multipleAmbiguous',
'channel': 'stable',
- 'name': 'windows',
- 'platforms': ['extensions'],
- 'contexts': ['blessed_extension'],
- 'dependencies': ['api:tabs']
+ 'extension_types': ['platform_app'],
+ 'value': 1,
+ },
+ 'mergingDependencies1': {
+ 'name': 'mergingDependencies1',
+ 'channel': 'beta',
+ 'dependencies': [
+ 'permission:mergingDependencies1',
+ 'permission:mergingDependencies2'
+ ],
+ },
+ 'overridesPlatformAndChannelFromDependency': {
+ 'name': 'overridesPlatformAndChannelFromDependency',
+ 'channel': 'beta',
+ 'dependencies': [
+ 'permission:overridesPlatformAndChannelFromDependency'
+ ],
+ 'extension_types': ['platform_app']
+ },
+ 'overridePlatform': {
+ 'name': 'overridePlatform',
+ 'channel': 'stable',
+ 'dependencies': ['permission:tabs'],
+ 'extension_types': 'platform_app'
}
}
self.assertEqual(
expected_features,
- self._server.features_bundle.GetAPIFeatures().Get())
+ self._server.platform_bundle.GetFeaturesBundle(
+ 'apps').GetAPIFeatures().Get())
if __name__ == '__main__':