Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / docs / server2 / api_data_source_test.py
1 #!/usr/bin/env python
2 # Copyright (c) 2012 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
6 import unittest
7
8 from api_data_source import APIDataSource
9 from extensions_paths import CHROME_EXTENSIONS
10 from servlet import Request
11 from server_instance import ServerInstance
12 from test_data.api_data_source.canned_trunk_fs import CANNED_TRUNK_FS_DATA
13 from test_file_system import TestFileSystem
14
15
16 class APIDataSourceTest(unittest.TestCase):
17   def setUp(self):
18     self.server_instance = ServerInstance.ForTest(
19         TestFileSystem(CANNED_TRUNK_FS_DATA, relative_to=CHROME_EXTENSIONS))
20
21   def testGet(self):
22     api_ds = APIDataSource(self.server_instance, Request.ForTest('/'))
23     jsc_view = api_ds.get('extensions').get('tester')
24     funcs_arr = [{
25       'availability': None,
26       'callback': {
27         'name': 'callback',
28         'optional': False,
29         'parameters': [{
30           'array': {
31             'availability': None,
32             'description': None,
33             'events': [],
34             'functions': [],
35             'id': 'type-results-resultsType',
36             'is_object': False,
37             'link': {
38               'name': 'TypeA',
39               'ref': 'tester.TypeA',
40               'text': 'TypeA'
41             },
42             'name': 'resultsType',
43             'properties': []
44           },
45           'availability': None,
46           'description': None,
47           'functions': [],
48           'id': 'property-callback-results',
49           'is_object': False,
50           'last': True,
51           'name': 'results',
52           'optional': None,
53           'parameters': [],
54           'parentName': 'callback',
55           'properties': [],
56           'returns': None
57         }],
58         'simple_type': {
59           'simple_type': 'function'
60         }
61       },
62       'description': 'Gets stuff.',
63       'id': 'method-get',
64       'name': 'get',
65       'parameters': [{
66         'availability': None,
67         'choices': [{
68           'availability': None,
69           'description': None,
70           'events': [],
71           'functions': [],
72           'id': 'type-a-string',
73           'is_object': False,
74           'name': 'string',
75           'properties': [],
76           'simple_type': 'string'
77         },
78         {
79           'array': {
80             'availability': None,
81             'description': None,
82             'events': [],
83             'functions': [],
84             'id': 'type-strings-stringsType',
85             'is_object': False,
86             'name': 'stringsType',
87             'properties': [],
88             'simple_type': 'string'
89           },
90           'availability': None,
91           'description': None,
92           'events': [],
93           'functions': [],
94           'id': 'type-a-strings',
95           'is_object': False,
96           'last': True,
97           'name': 'strings',
98           'properties': []
99         }],
100         'description': 'a param',
101         'functions': [],
102         'id': 'property-get-a',
103         'is_object': False,
104         'name': 'a',
105         'optional': None,
106         'parameters': [],
107         'parentName': 'get',
108         'properties': [],
109         'returns': None
110       },
111       {
112         'asFunction': {
113           'name': 'callback',
114           'optional': False,
115           'parameters': [{
116             'array': {
117               'availability': None,
118               'description': None,
119               'events': [],
120               'functions': [],
121               'id': 'type-results-resultsType',
122               'is_object': False,
123               'link': {
124                 'name': 'TypeA',
125                 'ref': 'tester.TypeA',
126                 'text': 'TypeA'
127               },
128               'name': 'resultsType',
129               'properties': []
130             },
131             'availability': None,
132             'description': None,
133             'functions': [],
134             'id': 'property-callback-results',
135             'is_object': False,
136             'last': True,
137             'name': 'results',
138             'optional': None,
139             'parameters': [],
140             'parentName': 'callback',
141             'properties': [],
142             'returns': None
143           }],
144           'simple_type': {
145             'simple_type': 'function'
146           }
147         },
148         'description': None,
149         'id': 'property-get-callback',
150         'isCallback': True,
151         'last': True,
152         'name': 'callback',
153         'optional': False,
154         'parentName': 'get',
155         'simple_type': 'function'
156       }],
157       'returns': None
158     }]
159     self.assertEquals(funcs_arr, jsc_view['functions'])
160     types_arr = [{
161       'availability': None,
162       'description': 'A cool thing.',
163       'events': [],
164       'functions': [],
165       'id': 'type-TypeA',
166       'is_object': True,
167       'name': 'TypeA',
168       'properties': [{
169         'array': {
170           'availability': None,
171           'description': None,
172           'events': [],
173           'functions': [],
174           'id': 'type-b-bType',
175           'is_object': False,
176           'link': {
177             'name': 'TypeA',
178             'ref': 'tester.TypeA',
179             'text': 'TypeA'
180           },
181           'name': 'bType',
182           'properties': []
183         },
184         'availability': None,
185         'description': 'List of TypeA.',
186         'functions': [],
187         'id': 'property-TypeA-b',
188         'is_object': False,
189         'name': 'b',
190         'optional': True,
191         'parameters': [],
192         'parentName': 'TypeA',
193         'properties': [],
194         'returns': None
195       }],
196       'simple_type': 'object'
197     }]
198     self.assertEquals(types_arr, jsc_view['types'])
199
200 if __name__ == '__main__':
201   unittest.main()