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