manifest_data_source_test.py revision ca12bfac764ba476d6cd062bf1dde12cc64c3f40
1#!/usr/bin/env python 2# Copyright 2013 The Chromium Authors. All rights reserved. 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6import json 7import unittest 8 9from compiled_file_system import CompiledFileSystem 10from manifest_data_source import ManifestDataSource 11from object_store_creator import ObjectStoreCreator 12from test_file_system import TestFileSystem 13 14file_system = TestFileSystem({ 15 "_manifest_features.json": json.dumps({ 16 'req0': { 17 'extension_types': ['platform_app', 'extension'] 18 }, 19 'req1': { 20 'extension_types': 'all' 21 }, 22 'opt0': { 23 'extension_types': ['extension'] 24 }, 25 'opt1': { 26 'extension_types': ['hosted_app'] 27 }, 28 'free0': { 29 'extension_types': ['platform_app'] 30 }, 31 'free1': { 32 'extension_types': ['platform_app', 'hosted_app', 'extension'] 33 }, 34 'only0': { 35 'extension_types': 'all' 36 }, 37 'only1': { 38 'extension_types': ['platform_app'] 39 }, 40 'rec0': { 41 'extension_types': ['extension'] 42 }, 43 'rec1': { 44 'extension_types': ['platform_app', 'extension'] 45 } 46 }), 47 "manifest.json": json.dumps({ 48 'required': [ 49 { 50 'name': 'req0', 51 'example': 'Extension' 52 }, 53 {'name': 'req1'} 54 ], 55 'only_one': [ 56 {'name': 'only0'}, 57 {'name': 'only1'} 58 ], 59 'recommended': [ 60 {'name': 'rec0'}, 61 {'name': 'rec1'} 62 ], 63 'optional': [ 64 {'name': 'opt0'}, 65 {'name': 'opt1'} 66 ] 67 }) 68}) 69 70class ManifestDataSourceTest(unittest.TestCase): 71 def testCreateManifestData(self): 72 expected_extensions = { 73 'required': [ 74 { 75 'name': 'req0', 76 'example': 'Extension' 77 }, 78 {'name': 'req1'} 79 ], 80 'recommended': [ 81 {'name': 'rec0'}, 82 {'name': 'rec1'} 83 ], 84 'only_one': [ 85 {'name': 'only0'} 86 ], 87 'optional': [ 88 {'name': 'free1'}, 89 { 90 'name': 'opt0', 91 'is_last': True 92 } 93 ] 94 } 95 96 expected_apps = { 97 'required': [ 98 { 99 'name': 'req0', 100 'example': 'Application' 101 }, 102 {'name': 'req1'} 103 ], 104 'recommended': [ 105 {'name': 'rec1'} 106 ], 107 'only_one': [ 108 {'name': 'only0'}, 109 {'name': 'only1'} 110 ], 111 'optional': [ 112 {'name': 'free0'}, 113 { 114 'name': 'free1', 115 'is_last': True 116 } 117 ] 118 } 119 120 mds = ManifestDataSource( 121 CompiledFileSystem.Factory(file_system, ObjectStoreCreator.ForTest()), 122 file_system, 'manifest.json', '_manifest_features.json') 123 124 self.assertEqual(expected_extensions, mds.get('extensions')) 125 self.assertEqual(expected_apps, mds.get('apps')) 126 127if __name__ == '__main__': 128 unittest.main() 129