1# Copyright 2013 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import json 6 7 8CANNED_MASTER_FS_DATA = { 9 'api': { 10 '_api_features.json': json.dumps({ 11 'add_rules_tester': { 'dependencies': ['permission:add_rules_tester'] }, 12 'ref_test': { 'dependencies': ['permission:ref_test'] }, 13 'tester': { 14 'dependencies': ['permission:tester', 'manifest:tester'], 15 'contexts': ['content_script'] 16 }, 17 'tester.test1': {'contexts': ['content_script']}, 18 'tester.test2': {} 19 }), 20 '_manifest_features.json': json.dumps({'tester': {}, 'ref_test': {}}), 21 '_permission_features.json': json.dumps({ 22 'tester': {}, 23 'ref_test': {}, 24 'add_rules_tester': {} 25 }), 26 'add_rules_tester.json': json.dumps([{ 27 'namespace': 'add_rules_tester', 28 'description': ('A test api with a couple of events which support or ' 29 'do not support rules.'), 30 'types': [], 31 'functions': [], 32 'events': [ 33 { 34 'name': 'rules', 35 'options': { 36 'supportsRules': True, 37 'conditions': [], 38 'actions': [] 39 } 40 }, 41 { 42 'name': 'noRules', 43 'type': 'function', 44 'description': 'Listeners can be registered with this event.', 45 'parameters': [] 46 } 47 ] 48 }]), 49 'events.json': json.dumps([{ 50 'namespace': 'events', 51 'description': 'These are events.', 52 'types': [ 53 { 54 'id': 'Event', 55 'type': 'object', 56 'description': 'An Event object.', 57 'functions': [ 58 { 59 'name': 'addListener', 60 'type': 'function', 61 'description': 'Adds a listener.' 62 } 63 ], 64 } 65 ] 66 }]), 67 'tester.json': json.dumps([{ 68 'namespace': 'tester', 69 'description': 'a test api', 70 'types': [ 71 { 72 'id': 'TypeA', 73 'type': 'object', 74 'description': 'A cool thing.', 75 'properties': { 76 'a': {'nodoc': True, 'type': 'string', 'minimum': 0}, 77 'b': {'type': 'array', 'optional': True, 'items': {'$ref': 'TypeA'}, 78 'description': 'List of TypeA.'} 79 } 80 } 81 ], 82 'functions': [ 83 { 84 'name': 'get', 85 'type': 'function', 86 'description': 'Gets stuff.', 87 'parameters': [ 88 { 89 'name': 'a', 90 'description': 'a param', 91 'choices': [ 92 {'type': 'string'}, 93 {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1} 94 ] 95 }, 96 { 97 'type': 'function', 98 'name': 'callback', 99 'parameters': [ 100 {'name': 'results', 'type': 'array', 'items': {'$ref': 'TypeA'}} 101 ] 102 } 103 ] 104 } 105 ], 106 'events': [ 107 { 108 'name': 'EventA', 109 'type': 'function', 110 'description': 'A cool event.', 111 'parameters': [ 112 {'type': 'string', 'name': 'id'}, 113 { 114 '$ref': 'TypeA', 115 'name': 'bookmark' 116 } 117 ] 118 } 119 ] 120 }]), 121 'ref_test.json': json.dumps([{ 122 'namespace': 'ref_test', 123 'description': 'An API for testing ref\'s', 124 'types': [ 125 { 126 'id': 'type1', 127 'type': 'string', 128 'description': '$ref:type2' 129 }, 130 { 131 'id': 'type2', 132 'type': 'string', 133 'description': 'A $ref:type3, or $ref:type2' 134 }, 135 { 136 'id': 'type3', 137 'type': 'string', 138 'description': '$ref:other.type2 != $ref:ref_test.type2' 139 } 140 ], 141 'events': [ 142 { 143 'name': 'event1', 144 'type': 'function', 145 'description': 'We like $ref:type1', 146 'parameters': [ 147 { 148 'name': 'param1', 149 'type': 'string' 150 } 151 ] 152 } 153 ], 154 'properties': { 155 'prop1': { 156 '$ref': 'type3' 157 } 158 }, 159 'functions': [ 160 { 161 'name': 'func1', 162 'type': 'function', 163 'parameters': [ 164 { 165 'name': 'param1', 166 'type': 'string' 167 } 168 ] 169 } 170 ] 171 }]) 172 }, 173 'docs': { 174 'templates': { 175 'intros': { 176 'test.html': '<h1>hi</h1>you<h2>first</h2><h3>inner</h3><h2>second</h2>' 177 }, 178 'json': { 179 'api_availabilities.json': json.dumps({ 180 'master_api': { 181 'channel': 'master' 182 }, 183 'dev_api': { 184 'channel': 'dev' 185 }, 186 'beta_api': { 187 'channel': 'beta' 188 }, 189 'stable_api': { 190 'channel': 'stable', 191 'version': 20 192 } 193 }), 194 'intro_tables.json': json.dumps({ 195 'tester': { 196 'Permissions': [ 197 { 198 'class': 'override', 199 'text': '"tester"' 200 }, 201 { 202 'text': 'is an API for testing things.' 203 } 204 ], 205 'Learn More': [ 206 { 207 'link': 'https://tester.test.com/welcome.html', 208 'text': 'Welcome!' 209 } 210 ] 211 } 212 }), 213 'manifest.json': '{}', 214 'permissions.json': '{}' 215 }, 216 'private': { 217 'intro_tables': { 218 'master_message.html': 'available on master', 219 'stable_message.html': 'Since {{content.version}}.', 220 'content_scripts.html': 'Content Scripts' 221 } 222 } 223 } 224 } 225} 226