Chromium Code Reviews| Index: chrome/common/extensions/docs/server2/features_bundle_test.py |
| diff --git a/chrome/common/extensions/docs/server2/features_bundle_test.py b/chrome/common/extensions/docs/server2/features_bundle_test.py |
| index 2806e0855e656d7b63d77b2b9f642d8122c54336..3c8c39a249d3b609b4e1c3a43475576758af3b9d 100755 |
| --- a/chrome/common/extensions/docs/server2/features_bundle_test.py |
| +++ b/chrome/common/extensions/docs/server2/features_bundle_test.py |
| @@ -64,7 +64,81 @@ _TEST_FILESYSTEM = { |
| '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': { |
| @@ -97,6 +171,12 @@ _TEST_FILESYSTEM = { |
| 'sockets': { |
| 'channel': 'dev', |
| 'extension_types': ['platform_app'] |
| + }, |
| + 'testDeep4': { |
| + 'extension_types': ['extension'] |
| + }, |
| + 'multipleAmbiguous': { |
| + 'extension_types': ['extension'] |
| } |
| }), |
| '_permission_features.json': json.dumps({ |
| @@ -115,13 +195,25 @@ _TEST_FILESYSTEM = { |
| ] |
| }, |
| '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': { |
| @@ -149,7 +241,7 @@ _TEST_FILESYSTEM = { |
| }, |
| 'tabs': { |
| 'partial': 'permissions/tabs.html' |
| - }, |
| + } |
| }) |
| } |
| } |
| @@ -167,155 +259,274 @@ class FeaturesBundleTest(unittest.TestCase): |
| 'background': { |
| 'name': 'background', |
| 'channel': 'stable', |
| - 'platforms': ['extensions'], |
| - 'documentation': 'background_pages.html' |
| + 'documentation': 'background_pages.html', |
| }, |
| - 'inheritsPlatformAndChannelFromDependency': { |
| + 'inheritsPlatformAndChannelFromDependency': { |
| 'channel': 'dev', |
| 'name': 'inheritsPlatformAndChannelFromDependency', |
| - 'platforms': ['extensions'] |
| }, |
| 'manifest_version': { |
| 'name': 'manifest_version', |
| 'channel': 'stable', |
| - 'platforms': ['apps', 'extensions'], |
| 'documentation': 'manifest/manifest_version.html', |
| 'level': 'required', |
| - 'example': 2 |
| + 'example': 2, |
| }, |
| 'omnibox': { |
| 'name': 'omnibox', |
| 'channel': 'stable', |
| - 'platforms': ['extensions'] |
| + 'platforms': ['win'], |
| }, |
| 'page_action': { |
| 'name': 'page_action', |
| 'channel': 'stable', |
| - 'platforms': ['extensions'], |
| 'documentation': 'pageAction.html', |
| 'level': 'only_one', |
| - 'example': {} |
| + 'example': {}, |
| + }, |
| + 'testDeep4': { |
| + 'name': 'testDeep4', |
| + 'channel': 'stable' |
| + }, |
| + 'multipleAmbiguous': { |
| + 'name': 'multipleAmbiguous', |
| + 'channel': 'stable' |
| + } |
| + } |
| + 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', |
| + 'level': 'required', |
| + 'example': 2, |
| }, |
| 'sockets': { |
| 'name': 'sockets', |
| 'channel': 'dev', |
| - 'platforms': ['apps'] |
| } |
| } |
| 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', |
| }, |
| 'overridesPlatformAndChannelFromDependency': { |
| 'name': 'overridesPlatformAndChannelFromDependency', |
| 'channel': 'stable', |
| - 'platforms': ['extensions'] |
| + }, |
| + 'tabs': { |
| + 'name': 'tabs', |
| + 'channel': 'stable', |
| + 'partial': 'permissions/tabs.html' |
| + }, |
| + 'mergingDependencies1': { |
| + 'name': 'mergingDependencies1', |
| + 'channel': 'stable', |
| + }, |
| + 'mergingDependencies3': { |
| + 'name': 'mergingDependencies3', |
| + 'channel': 'stable' |
| + }, |
| + 'defaults': { |
| + 'name': 'defaults', |
| + 'channel': 'stable' |
| + } |
| + } |
| + self.assertEqual( |
| + expected_features, |
| + self._server.platform_bundle.GetFeaturesBundle( |
| + 'extensions').GetPermissionFeatures().Get()) |
| + expected_features = { |
| + 'bluetooth': { |
| + 'name': 'bluetooth', |
| + 'channel': 'dev', |
| }, |
| 'power': { |
| 'name': 'power', |
| 'channel': 'stable', |
| - 'platforms': ['apps', 'extensions'], |
| }, |
| 'syncFileSystem': { |
| 'name': 'syncFileSystem', |
| - 'channel': 'beta', |
| - 'platforms': ['apps'], |
| + 'channel': 'stable', |
| 'partial': 'permissions/sync_file_system.html' |
| }, |
| - 'tabs': { |
| - 'name': 'tabs', |
| + 'mergingDependencies1': { |
| + 'name': 'mergingDependencies1', |
| 'channel': 'stable', |
| - 'platforms': ['extensions'], |
| - 'partial': 'permissions/tabs.html' |
| + }, |
| + 'mergingDependencies2': { |
| + 'name': 'mergingDependencies2', |
| + 'channel': 'beta' |
| + }, |
| + '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'] |
| + }, |
| + 'omnibox': { |
| + 'name': 'omnibox', |
| + 'contexts': ['blessed_extension'], |
| + 'dependencies': ['manifest:omnibox'], |
| + 'channel': 'stable' |
| + }, |
| + 'tabs': { |
| + 'name': 'tabs', |
| + 'channel': 'stable', |
| + 'contexts': ['blessed_extension'], |
| + }, |
| + 'test': { |
| + 'name': 'test', |
| + 'channel': 'stable', |
| + 'contexts': [ |
| + 'blessed_extension', 'unblessed_extension', 'content_script'], |
| + }, |
| + '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' |
| + }, |
| + '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': { |
| - 'channel': 'stable', |
| - 'name': 'omnibox', |
| - 'platforms': ['extensions'], |
| - 'contexts': ['blessed_extension'], |
| - 'dependencies': ['manifest:omnibox'] |
| + 'implicitNoParent.child': { |
| + 'name': 'implicitNoParent.child', |
| + 'channel': 'stable' |
| }, |
| - 'overridesPlatformAndChannelFromDependency': { |
| - 'channel': 'beta', |
| - 'name': 'overridesPlatformAndChannelFromDependency', |
| - 'dependencies': [ |
| - 'permission:overridesPlatformAndChannelFromDependency' |
| - ], |
| - 'platforms': ['apps'] |
| + 'parent': { |
| + 'name': 'parent', |
| + 'channel': 'beta' |
| }, |
| - 'syncFileSystem': { |
| - 'channel': 'beta', |
| - 'name': 'syncFileSystem', |
| - 'platforms': ['apps'], |
| - 'contexts': ['blessed_extension'], |
| - 'dependencies': ['permission:syncFileSystem'] |
| + 'parent.explicitNoParent': { |
| + 'name': 'parent.explicitNoParent', |
| + 'channel': 'stable', |
| + 'noparent': True |
| }, |
| - 'tabs': { |
| + 'parent.inheritAndOverride': { |
| + 'name': 'parent.inheritAndOverride', |
| + 'channel': 'dev' |
|
not at google - send to devlin
2014/06/19 21:06:55
i.e. this should include extension_types
|
| + }, |
| + 'mergeMostStableChannel': { |
| + 'name': 'mergeMostStableChannel', |
| 'channel': 'stable', |
| - 'name': 'tabs', |
| + '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'], |
| + }, |
| + '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'], |
| }, |
| - 'windows': { |
| + 'multipleAmbiguous': { |
| + 'name': 'multipleAmbiguous', |
| + 'value': 1, |
| + 'channel': 'stable' |
| + }, |
| + 'mergingDependencies1': { |
| + 'name': 'mergingDependencies1', |
| + 'dependencies': [ |
| + 'permission:mergingDependencies1', |
| + 'permission:mergingDependencies2' |
| + ], |
| + 'channel': 'beta' |
| + }, |
| + 'overridesPlatformAndChannelFromDependency': { |
| + 'channel': 'beta', |
| + 'name': 'overridesPlatformAndChannelFromDependency', |
| + 'dependencies': [ |
| + 'permission:overridesPlatformAndChannelFromDependency' |
| + ], |
| + }, |
| + 'overridePlatform': { |
| + 'name': 'overridePlatform', |
| 'channel': 'stable', |
| - 'name': 'windows', |
| - 'platforms': ['extensions'], |
| - 'contexts': ['blessed_extension'], |
| - 'dependencies': ['api:tabs'] |
| + 'dependencies': ['permission:tabs'], |
| } |
| } |
| self.assertEqual( |
| expected_features, |
| - self._server.features_bundle.GetAPIFeatures().Get()) |
| + self._server.platform_bundle.GetFeaturesBundle( |
| + 'apps').GetAPIFeatures().Get()) |
| if __name__ == '__main__': |